Arduino: различия между версиями
Artem (обсуждение | вклад) |
Artem (обсуждение | вклад) Нет описания правки |
||
Строка 195: | Строка 195: | ||
delay(500); | delay(500); | ||
} | |||
</pre> | |||
== Ультразвуковой датчик hc sr04 == | |||
<pre> | |||
const int Trig = 8; | |||
const int Echo = 9; | |||
const int ledPin = 11; // 13 – если будете использовать встроенный в Arduino светодиод | |||
void setup() | |||
{ | |||
pinMode(Trig, OUTPUT); | |||
pinMode(Echo, INPUT); | |||
pinMode(ledPin, OUTPUT); | |||
Serial.begin(9600); | |||
} | |||
unsigned int time_us=0; | |||
unsigned int distance_sm=0; | |||
void loop() | |||
{ | |||
digitalWrite(Trig, HIGH); // Подаем сигнал на выход микроконтроллера | |||
delayMicroseconds(10); // Удерживаем 10 микросекунд | |||
digitalWrite(Trig, LOW); // Затем убираем | |||
time_us=pulseIn(Echo, HIGH); // Замеряем длину импульса | |||
distance_sm=time_us/58; // Пересчитываем в сантиметры | |||
Serial.println(distance_sm); // Выводим на порт | |||
if (distance_sm<50) // Если расстояние менее 50 сантиметром | |||
{ | |||
digitalWrite(ledPin, 1); // Зажигаем светодиод | |||
} | |||
else | |||
{ | |||
digitalWrite(ledPin, 0); // иначе тушим | |||
} | |||
delay(100); | |||
} | } | ||
</pre> | </pre> |
Версия от 02:09, 11 марта 2017
Как проверить Arduino
Я работаю в Ubuntu Linux. Скачать последнюю версию IDE можно тут [1]. Запустите ./install.sh чтобы установить ярлыки для быстрого запуска.
sudo usermod -a -G dialout <username>
Убедитесь, что группа есть командой
groups
Иначе перелогиньтесь.
Присоедините Ардуину
ls -l /dev/ttyACM*
Должна быть в списке.
командой arduino запустите IDE. В примерах есть Blink.
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
Прошейте примером, и встроенный диод замигает, или же присоедините диод через резистор 200 кОм на землю и 13 пин.
Реле
Примером Blink можно проверить и реле. Питание +5 вольт, земля и сигнал на 13 пин.
Remote Control
С Ардуино кит поставляется пульт дистанционного управления HX1838 и датчик 1838B. К пульту необходимо приобрести батарейку CR2025.
1 - на 11 пин 2 - земля 3 - +5 вольт
Далее качаем либу [2] в zip и ставим ее через IDE (Скетч - Подключить библиотеку - добавить ZIP библиотеку).
ВНИМАНИЕ удалите библиотеку <путь к IDE>/libraries/RobotIRremote т.к. они конфликтуют.
Прошиваем скетчем, открываем Инструменты и монитор порта - смотрим результат.
#include "IRremote.h" int receiver = 11; // pin 1 of IR receiver to Arduino digital pin 11 IRrecv irrecv(receiver); // create instance of 'irrecv' decode_results results; // create instance of 'decode_results' void setup() { Serial.begin(9600); Serial.println("IR Receiver Raw Data + Button Decode Test"); irrecv.enableIRIn(); // Start the receiver } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); translateIR(); irrecv.resume(); } } void translateIR() // Car MP3 IR { switch(results.value) { case 0xFFA25D: Serial.println(" CH- "); break; case 0xFF629D: Serial.println(" CH "); break; case 0xFFE21D: Serial.println(" CH+ "); break; case 0xFF22DD: Serial.println(" PREV "); break; case 0xFF02FD: Serial.println(" NEXT "); break; case 0xFFC23D: Serial.println(" PLAY/PAUSE "); break; case 0xFFE01F: Serial.println(" VOL- "); break; case 0xFFA857: Serial.println(" VOL+ "); break; case 0xFF906F: Serial.println(" EQ "); break; case 0xFF6897: Serial.println(" 0 "); break; case 0xFF9867: Serial.println(" 100+ "); break; case 0xFFB04F: Serial.println(" 200+ "); break; case 0xFF30CF: Serial.println(" 1 "); break; case 0xFF18E7: Serial.println(" 2 "); break; case 0xFF7A85: Serial.println(" 3 "); break; case 0xFF10EF: Serial.println(" 4 "); break; case 0xFF38C7: Serial.println(" 5 "); break; case 0xFF5AA5: Serial.println(" 6 "); break; case 0xFF42BD: Serial.println(" 7 "); break; case 0xFF4AB5: Serial.println(" 8 "); break; case 0xFF52AD: Serial.println(" 9 "); break; default: Serial.println(" other button "); } delay(500); }
Ультразвуковой датчик hc sr04
const int Trig = 8; const int Echo = 9; const int ledPin = 11; // 13 – если будете использовать встроенный в Arduino светодиод void setup() { pinMode(Trig, OUTPUT); pinMode(Echo, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); } unsigned int time_us=0; unsigned int distance_sm=0; void loop() { digitalWrite(Trig, HIGH); // Подаем сигнал на выход микроконтроллера delayMicroseconds(10); // Удерживаем 10 микросекунд digitalWrite(Trig, LOW); // Затем убираем time_us=pulseIn(Echo, HIGH); // Замеряем длину импульса distance_sm=time_us/58; // Пересчитываем в сантиметры Serial.println(distance_sm); // Выводим на порт if (distance_sm<50) // Если расстояние менее 50 сантиметром { digitalWrite(ledPin, 1); // Зажигаем светодиод } else { digitalWrite(ledPin, 0); // иначе тушим } delay(100); }