Использование инфрокрасника с секундным интервалом
- Войдите на сайт для отправки комментариев
Чт, 27/02/2014 - 18:22
Здравствуйте, прошу помощи для написания скетча для Arduino использование инфрокрасника с секундным интервалом. Не селен в программировании и очень сложно собрать все в кучу нашел похожий скетч, но его нужно поправить запуск с помощью кнопки
01 | /* |
02 | * IR LED connected to PIN 3 (AtmelATmega88 pin 5) |
03 | */ |
04 |
05 | #include <IRremote.h> |
06 |
07 | int RECV_PIN = 11; |
08 | int BUTTON_PIN = 12; |
09 | int STATUS_PIN = 13; |
10 |
11 | IRrecv irrecv(RECV_PIN); |
12 | IRsend irsend; |
13 |
14 | decode_results results; |
15 |
16 | #define on 0x202B24D |
17 | #define usb 0x10C8E11E |
18 |
19 | typedef struct { |
20 | unsigned long time; |
21 | long code; |
22 | } remoteAction; |
23 |
24 | remoteAction beamerShow[2]={ // gives amount of seconds delay from starttime + code to be sent (see defines) |
25 | {1,on},{15,usb}}; |
26 |
27 | int pointer=0; |
28 | void setup () |
29 | { |
30 | Serial .begin(9600); |
31 | irrecv.enableIRIn(); // Start the receiver |
32 | pinMode(BUTTON_PIN, INPUT); |
33 | pinMode(STATUS_PIN, OUTPUT); |
34 |
35 | } |
36 |
37 | void loop () { |
38 | |
39 | unsigned long timer=millis()/1000; |
40 |
41 | if (timer>beamerShow[pointer].time) |
42 | { |
43 | digitalWrite(STATUS_PIN, HIGH); |
44 | irsend.sendNEC(beamerShow[pointer].code, 32); //on/off |
45 | digitalWrite(STATUS_PIN, LOW); |
46 | pointer++; |
47 | } |
48 | } |
1. При коротком нажатии кнопки /назовем12/ запускаем команды
1 | remoteAction beamerShow[2]= |
2 | sent (see defines) |
3 | {1,on},{15,usb}}; |
2. При вторичном коротком нажатии на кнопку /назовем12/ запускаем команды
1 | remoteAction beamerShow[3]= |
2 | sent (see defines) |
3 | {1,on},{2,on},{15,usb}}; |
И так по кругу
3. И отдельно выделенная коротким нажатием кнопка /назовем13/ запускаем команды
1 | remoteAction beamerShow[3]= |
2 | sent (see defines) |
3 | {1,on},{2,on},{15,usb}}; |
4. Сопровождение ВКЛ/ВЫКЛ сигналом