In acest proiect, vom construi un sistem de avertizare ce poate fi implementat pe roboti, folosind un modul senzor IR pentru evitarea obstacolelor.
De-a lungul timpului au existat numeroase inovatii in tehnologie care au avut un impact semnificativ asupra lumii, iar printre acestea se afla tehnologia infrarosu. In prezent, tehnologia infrarosu are o gama larga de aplicatii, precum detectarea obiectelor, sisteme de securitate sau automatizare industriala. Astazi vom vorbi despre modulul senzor IR pentru evitarea obstacolelor, compatibil Arduino - o solutie ieftina pentru detectarea si evitarea obstacolelor de catre roboti, masini si alte dispozitive electronice. Acesta functioneaza la o tensiune de alimentare de 3.3V-5V, avand un unghi de detectie de 35 de grade si un raspuns stabil chiar si in conditii de lumina ambientala sau intuneric complet.
Cum functioneaza modulul senzor IR pentru evitarea obstacolelor?
Modulul senzor IR pentru evitarea obstacolelor, compatibil Arduino este alcatuit din doua componente principale: un emitator IR si un receptor IR incorporat. Emitatorul IR emite energie IR si cauta energie IR reflectata pentru a detecta prezenta oricarui obstacol. Cand receptorul IR primeste lumina infrarosie reflectata iesirea va fi ”LOW”, iar cand nu primeste lumina infrarosie reflectata iesirea va fi ”HIGH”.
Emitatorul IR emite un semnal infrarosu care, in cazul unei suprafete reflectorizante (de exemplu, culoarea alba), se reflecta in diverse directii, inclusiv in directia receptorului IR care capteaza semnalul pentru a detecta obiectul. Atunci cand suprafata este absorbanta, semnalul IR nu este reflectat si obiectul nu poate fi detectat de senzor. Acest modul dispune de un potentiometru incorporat, care permite ajustarea intervalului de detectie cuprins intre 2 si 30 cm. De asemenea, dispunde de doi indicatori LED: unul pentru indicarea alimentarii, care se aprinde daca modulul este alimentat de curent electric, si unul pentru indicarea starii iesirii care se activeaza cand exista un obiect in fata senzorului sau cand receptorul IR primeste reflexia luminii infrarosii.
Daca doresti sa afli mai multe informatii despre modulul senzor IR pentru evitarea obstacolelor, compatibil Arduino, ii poti accesa datasheet-ul aici.
Componente necesare
In continuare, pentru a putea construi acest proiect vei avea nevoie de:
- 1 x modul senzor IR pentru evitarea obstacolelor, compatibil Arduino
- 1 x ecran LCD1602 cu modul I2C
- 1 x placa de dezvoltare compatibila Arduino Uno R3
- 1 x LED 5mm
- 1 x rezistor 220Ω
- 1 x breadboard 400 puncte
- 4 x fire tata-mama
- 6 x fire tata-tata
Acum ca ai aflat care sunt componentele necesare, te vei ghida dupa schema de conectare de mai jos.
Schema conectare modul senzor IR pentru evitarea obstacolelor, compatibil Arduino
Se conecteaza 5V si GND de la Arduino pe breadboard.
Pentru modulul senzor IR pentru evitarea obstacolelor, conecteaza pinul OUT la portul digital 2 Arduino, pinul din mijloc la GND de pe breadboard si ultimul pin la 5V de pe breadboard.
Pentru LED, conecteaza pinul + (pinul mai lung) la portul digital 7 Arduino si pinul - (pinul mai scurt) la un rezistor de 220Ω si la GND de pe breadboard.
Pentru ecranul LCD1602 cu modul I2C, conecteaza pinul GND la GND de pe breadboard, pinul VCC la 5V de pe breadboard, pinul SDA la portul analogic A4 Arduino si pinul SCL la portul analogic A5 Arduino.
Exemplu cod
In acest proiect va trebui sa folosesti biblioteca LiquidCrystal_I2C ( pentru ecranul LCD ), 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 LiquidCrystal_I2C. 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 succest bibliotecile LiquidCrystal_I2C, 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 < LiquidCrystal_I2C.h >
LiquidCrystal_I2C lcd(0x27, 16, 2);
int pinIR = 2;
void setup(){
Serial.begin(9600);
pinMode(pinIR, INPUT);
pinMode(7, OUTPUT);
lcd.init();
lcd.backlight();
Serial.println("Detect IR Sensor");
delay(1000);
}
void loop(){
int IRstate = digitalRead(pinIR);
if(IRstate == LOW){
lcd.setCursor(4, 0);
lcd.print("Obstacol ");
lcd.setCursor(4,1 );
lcd.print("detectat ");
digitalWrite(7, HIGH);
}
else if(IRstate == HIGH){
lcd.setCursor(4, 0);
lcd.print("Nu exista ");
lcd.setCursor(4, 1);
lcd.print("obstacol ");
digitalWrite(7, LOW);
}
delay(1000);
}