Co potrzebujemy?
To co w naszych pozostałych ćwiczeniach:
https://flesztech.blogspot.com/2019/03/arduino-wprowadzenie-do-tematu-pierwszy-prosty-projekt.html
czyli:
* Moduł Mega2560 na układzie Atmega2560-16A U:
https://nowyelektronik.pl/index.php?id_product=89227&controller=product
https://nowyelektronik.pl/index.php?id_product=89227&controller=product
* 1 kanałowy przekaźnik 5V 10A AVR ARM ARDUINO:
https://diolut.pl/modul-1-kanalowy-przekaznik-5v-10a-avr-arm-arduino-p-8746.html?
* dowolny odbiornik IR (wiedząc jaki ma schemat wyjść: napięcie, masa, sygnał wyjściowy)
Schemat połączeń:
Sketche do wgrania:
Wpierw musimy uzyskać kod sygnału od dowolnego pilota IR, dlatego w aplikacji ardunino musimy włączyć monitor portu COM:
i sprawdzić jaki aktualnie kod odbieramy z przycisku pilota i taki też wpisujemy do sketcha:
#include <IRremote.h>
#define irPin 8
IRrecv irrecv(irPin);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
delay(250);
irrecv.resume();
}
}
Potem możemy wgrać program:
#include <IRremote.h>
#define irPin 8
IRrecv irrecv(irPin);
decode_results results;
#define diodaPin 7
int diodaStatus = LOW;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(diodaPin, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
switch (results.value) {
case 0x40BF8877:
Serial.println("srodek");
diodaStatus = ~diodaStatus;
digitalWrite(diodaPin, diodaStatus);
delay(250);
break;
case 0x40BF8878:
Serial.println("DLUGO");
diodaStatus = ~diodaStatus;
digitalWrite(diodaPin, diodaStatus);
delay(250);
break;
}
irrecv.resume();
}
}
Link do pobrania biblioteki i sketcha:
https://drive.google.com/open?id=1_R3_1etZPu5AeA4YwfVHqTcsWGGnVhQL
Gotowy efekt: