piątek, 13 września 2019

Uruchamianie dowolnego urządzenia, dowolnym pilotem IR

Pamiętacie projekt lampki nocnej uruchamianej pilotem od dekodera TV? Tym razem przedstawiam wam projekt uruchamiania dowolnych urządzeń elektrycznych, przy pomocy dowolnego pilota, jaki tylko macie pod ręką. Oczywiście wszystko wykonane jedynie z 3 elementów, czyli arduino, przekaźnika a także odbiornika podczerwieni - wszystko to za bardzo niewielkie koszty.





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

* dowolny odbiornik IR (wiedząc jaki ma schemat wyjść: napięcie, masa, sygnał wyjściowy)






Schemat połączeń:


Biblioteka do wgrania:

Bibliotekę wgrywamy w programie arduino na komputerze:






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();
   }
}
Gotowy efekt:







Prześlij komentarz

Whatsapp Button works on Mobile Device only

Wpisz czego szukasz i kliknij w ikonkę lupy