Proiect Arduino cu VS1838B KY-022 pentru control la distanta

Proiect Arduino cu VS1838B KY-022 pentru control la distanta

In acest proiect, vom construi un sistem de control la distanta folosind modulul receptor IR VS1838B KY-022.
Modulul receptor IR VS1838B KY-022 este o componenta electronica capabila sa primeasca si sa decodeze semnale in spectrul infrarosu. Acest modul este utilizat pe scara larga in sistemele de control de la distanta si in alte aplicatii electronice care necesita transmiterea si receptia de semnale in infrarosu. Este o componenta esentiala in electronica si poate fi usor integrata cu alte componente pentru a crea o varietate de aplicatii. 
                                                                     
Modulul se bazeaza pe senzorul VS1838B si functioneaza la o tensiune de alimentare cuprinsa intre 2,7V si 5,5V DC. Daca doresti sa afli mai multe informatii despre modulul receptor IR VS1838B KY-022, ii poti accesa datasheetul aici
Pentru controlul iluminarii, vom utiliza o telecomanda IR, o modalitate excelenta de a exercita comenzi la distanta asupra proiectului nostru. Telecomenzile cu infrarosu sunt simple si usor de utilizat, oferind un control eficient asupra luminilor. Prin acest proiect, vom demonstra modul in care tehnologia infrarosie poate fi folosita pentru a controla luminile intr-un mod practic si captivant.


Componente necesare

 In continuare, pentru a putea construi acest proiect vei avea nevoie de:
 

  • 1 x modul receptor IR VS1838B KY-022
  • 1 x telecomanda IR
  • 1 x placa de dezvoltare compatibila Arduino Uno R3
  • 1 x breadboard 400pct
  • 6 x LED 5mm
  • 6 x rezistor 220 Ω
  • 7 x fire tata-tata
  • 3 x fire tata-mama


Acum ca ai aflat care sunt componentele necesare te vei ghida dupa schema de conectare de mai jos.
 

Schema conectare modul receptor IR VS1838B KY-022

 



Se conecteaza GND de la Arduino pe breadboard.
Pentru modulul receptor IR VS1838B KY-022, conecteaza pinul S la portul digital 8 Arduino, pinul din mijloc la 5V Arduino si pinul - la GND Arduino.
Pentru LED-uri, conecteaza pinul - (pinul mai scurt) la un rezistor de 220 conectat la GND de pe breadboard si pinul + (pinul mai lung) la portul digital 7, 6, 5, 4, 3, respectiv 2 Arduino.





Exemplu cod 

In acest proiect va trebui sa folosesti biblioteca IRremote (pentru telecomanda), descarca aici.

Pentru a adăuga o bibliotecă în mediul de dezvoltare Arduino IDE, deschide Arduino IDE si din meniul Sketch/Schita acceseaza Include Library/Incarcare biblioteca si apoi selecteaza Add .zip Library/ Adauga biblioteca.zip. Aici va trebui sa gasesti si sa selectezi fisierul .zip al bibliotecii IRremote . Dupa ce ai deschis fisierul .zip si cand procesul de instalare s-a terminat cu succes, va aparea un mesaj in partea de jos a ferestre care iti va confirma ca fisierul a fost adaugat in biblioteca.   

Dupa ce ai realizat circuitul si ai descarcat cu succes biblioteca IRremote , introdu codul furnizat mai jos. Apoi conecteaza placa Arduino la computer prin intermediul portului USB, selecteaza tipul de placa si portul serial (din meniul Tools/ Instrumente selecteaza pentru optiunea Board/ Placa si Port ceea ce utilizezi). Pentru a incarca codul pe placa, apasa butonul Upload/Incarcare (simbolul de sageata catre dreapta). In partea de jos a ferestrei vei putea urmari mesajele de stare : Compiling Sketch/Compilez schita, Uploading/Incarcare si Done/Incarcare finalizata . Dupa finalizarea cu succes a incarcarii, placa Arduino va rula codul pe care l-ai incarcat.


#include < IRremote.h >
int RECV_PIN = 8;
int LED1 = 2;
int LED2 = 3;
int LED3 = 4;
int LED4 = 5;
int LED5 = 6;
int LED6 = 7;
long on1  = 0x00FF30CF;
long off1 = 0x00FF6897;
long on2 = 0x00FF18E7;
long off2 = 0x00FF9867;
long on3 = 0x00FF7A85;
long off3 = 0x00FFB04F;
long on4 = 0x00FF10EF;
long off4 = 0x00FF42BD;
long on5 = 0x00FF38C7;
long off5 = 0x00FF4AB5;
long on6 = 0x00FF5AA5;
long off6 = 0x00FF52AD;
IRrecv irrecv(RECV_PIN);
decode_results results;
void dump(decode_results *results) {
  int count = results->rawlen;
  if (results->decode_type == UNKNOWN) 
    {
     Serial.println("Could not decode message");
    } 
  else 
   {
    if (results->decode_type == NEC) 
      {
       Serial.print("Decoded NEC: ");
      } 
    else if (results->decode_type == SONY) 
      {
       Serial.print("Decoded SONY: ");
      } 
    else if (results->decode_type == RC5) 
      {
       Serial.print("Decoded RC5: ");
      } 
    else if (results->decode_type == RC6) 
      {
       Serial.print("Decoded RC6: ");
      }
     Serial.print(results->value, HEX);
     Serial.print(" (");
     Serial.print(results->bits, DEC);
     Serial.println(" bits)");
   }
     Serial.print("Raw (");
     Serial.print(count, DEC);
     Serial.print("): ");

  for (int i = 0; i < count; i++) 
     {
      if ((i % 2) == 1) {
      Serial.print(results->rawbuf[i]*USECPERTICK, DEC);
     } 
    else  
     {
      Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC);
     }
    Serial.print(" ");
     }
      Serial.println("");
     }

void setup()
 {
  pinMode(RECV_PIN, INPUT);   
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
  pinMode(LED6, OUTPUT);  
  pinMode(13, OUTPUT);
  Serial.begin(9600);
  
  irrecv.enableIRIn();
 }

int on = 0;
unsigned long last = millis();

void loop() 
{
  if (irrecv.decode(&results)) 
   {
    if (millis() - last > 250) 
      {
       on = !on;
//       digitalWrite(8, on ? HIGH : LOW);
       digitalWrite(13, on ? HIGH : LOW);
       dump(&results);
      }
    if (results.value == on1 )
       digitalWrite(LED1, HIGH);
    if (results.value == off1 )
       digitalWrite(LED1, LOW); 
    if (results.value == on2 )
       digitalWrite(LED2, HIGH);
    if (results.value == off2 )
       digitalWrite(LED2, LOW); 
    if (results.value == on3 )
       digitalWrite(LED3, HIGH);
    if (results.value == off3 )
       digitalWrite(LED3, LOW);
    if (results.value == on4 )
       digitalWrite(LED4, HIGH);
    if (results.value == off4 )
       digitalWrite(LED4, LOW); 
    if (results.value == on5 )
       digitalWrite(LED5, HIGH);
    if (results.value == off5 )
       digitalWrite(LED5, LOW); 
    if (results.value == on6 )
       digitalWrite(LED6, HIGH);
    if (results.value == off6 )
       digitalWrite(LED6, LOW);        
    last = millis();      
    irrecv.resume(); 
  }
}

Proiect Arduino cu VS1838B KY-022 pentru control la distanta


In acest videoclip, vei urmari un tutorial care te va ghida pas cu pas prin modul in care trebuie conectat modulul receptor IR VS1838B KY-022 cu celelalte componente necesare

Compara produse

Trebuie sa mai adaugi cel putin un produs pentru a compara produse.

A fost adaugat la favorite!

A fost sters din favorite!