Arduino: различия между версиями
Artem (обсуждение | вклад) |
Artem (обсуждение | вклад) |
||
Строка 67: | Строка 67: | ||
3 - +5 вольт | 3 - +5 вольт | ||
Далее качаем либу [https://github.com/z3t0/Arduino-IRremote] в zip и ставим ее через IDE (Скетч - | Далее качаем либу [https://github.com/z3t0/Arduino-IRremote] в zip и ставим ее через IDE (Скетч - Подключить библиотеку - добавить ZIP библиотеку). | ||
'''ВНИМАНИЕ''' удалите библиотеку <путь к IDE>/libraries/RobotIRremote т.к. они конфликтуют. | |||
<pre> | |||
#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); | |||
} | |||
</pre> |
Версия от 01:10, 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); }