Modul senzor IR - evitare obstacole

    Cu acest modul putem detecta prezenta unor obstacole aflate in fata senzorului la o distanta de aproximativ 4-15 cm. Modulul este format dintr-o dioda emitatoare in IR, o dioda receptoare, un circuit integrat de tipul LM393 si cateva componente pasive.
    Acest modul se poate alimenta cu o tensiune cuprinsa intre 3.3V si 5V. Iesirea acestui modul este digitala si ofera 0 (zero) logic la detectia unui obstacol si 1 logic cand nu se detecteaza nici un obstacol.
    Poza cu modulul este mai jos:

    Iar schema acestuia este urmatoarea:

    Pentru a testa acest modul impreuna cu Arduino va trebui sa scriem cateva linii de cod. De asemenea vom afisa statusul detectiei obiectelor pe un display LCD. Informatii despre conectarea acestui LCD si codul sursa folosit se pot citi in acest articol.
    Prima linie de cod va trebui scrisa inainte de functia setup() si este linia in care vom declara variabila care semnifica portul folosit pentru a comunica cu Arduino. Portul folosit in acest exemplu este portul digital 3 al Arduino. Iar aceasta variabila este scrisa in acest fel:

int senzor = 3;

    Apoi in functia setup() va trebui sa specificam modul de lucru al pinului ales. In cazul acesta va trebui sa setam acest port ca si intrare. Iar codul folosit este cel de mai jos:

pinMode(senzor, INPUT);

    In functia loop() vom adauga codul care va detecta prezenta sau absenta unui obstacol. Iar pentru a face acest lucru vom folosi instructiunea conditionala if... else. Dar prima linie de cod va trebui sa stergem continutul displayului LCD:

lcd.clear();

    In urmatoarea linie vom citi valoarea existenta la iesirea modulului si o vom stoca intr-o variabila numita val:

int val = digitalRead(senzor);

    Urmatoarele linii de cod sunt cele in care verificam prezenta sau absenta unui obstacol:

if (val == LOW) {
    lcd.print("Obstacol");
    lcd.setCursor(7, 1);
    lcd.print("detectat");
} else {
    lcd.print("Fara");
    lcd.setCursor(6,1);
    lcd.print("obstacole");
}

    In ultima linie de cod vom adauga o intarziere de 1 secunda:

 delay(1000);

    Sketchul in forma finala este cel de mai jos:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int senzor = 3;

void setup() {
  lcd.begin();
  pinMode(senzor, INPUT);
  lcd.print("Modul senzor IR");
  delay(1000);
}

void loop() {
  lcd.clear();
  int val = digitalRead(senzor);
  if (val == LOW) {
    lcd.print("Obstacol");
    lcd.setCursor(7, 1);
    lcd.print("detectat");
  } else {
    lcd.print("Fara");
    lcd.setCursor(6,1);
    lcd.print("obstacole");
  }
  delay(1000);
}

    Cateva poze cu modulul in functionare sunt mai jos:

 

Nu sunt comentarii in “Modul senzor IR - evitare obstacole”

Lasa un comentariu

Raspuns lui Some User

Autentificare