Testarea unui senzor de distanta digital Sharp GP2Y0D805Z0F 10cm
Ieri am avut la teste un senzor de distanță Sharp care detecteaza orice obiect la o distanta de 10 cm. Modulul senzor vine cu un conector 3 pini, si are un LED rosu care se va aprinde in momentul in care se detectează un obiect.
Pinii senzorului sunt:
- GND este masa și se conctează la GND-ul placii Arduino.
- VIN care se conecteazala 5V de pe Arduino
- OUT este iesirea senzorului si eu l-am conectat la pinul 7 de pe placa Arduino
În momentul in care m-am documentat despre acest senzor am aflat cât de important este să citesc fișa tehnică sau cel puțin descrierea produsului. In loc să obținem tensiuni de intrare analogice diferite și apoi să le convertim în distanțe folosind o formulă matematică, acest senzor returneaza pe pinul OUT „LOW” (0) daca senzorul se apropie la mai putin de 10 cm de un obiect, și altfel “HIGH” (1) în afara acestui interval. Vizual, acest lucru este susținut si de LED-ul roșu al plăcii.
In concluzie rețineți că acești senzori vă vor spune doar dacă există un obiect în raza de detectare (10 cm) si nu vă vor spune cât de departe este obiectul
Câteva exemple de aplicații :
- viteza de rotație a unei roți sau elici
- bara de protecție fără contact sau detector de obstacole
- un contor sau temporizator de obiecte pe măsură ce trec
Documentatie proiect:
- Sharp 15cm GP2Y0D815Z0F digital distance sensor
- https://create.arduino.cc/projecthub/ingo-lohs/sharp-gp2y0d810z0f-digital-distance-sensor-2-10-cm-d82ea0
- https://sandorobotics.com/producto/2465/
Componente:
Schema electronica:
Mai jos este schema electronică a senzorului în sine:
În poza de mai jos m-am apropiat cu aparatul foto la mai puțin de 10 cm , și s-a aprins atât LED-ul de test, cât și LED-ul de pe plăcuța senzorului:
Cod de test:
#define LED_PIN 8
#define IR_PIN 7
int value;
void setup()
{
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT); // Status on pin 3 LED
pinMode(IR_PIN, INPUT); // IR output
}
void loop()
{
value = digitalRead(IR_PIN);
Serial.println(value);
if (value == LOW)
{
digitalWrite(LED_PIN, HIGH);
}
else
{
digitalWrite(LED_PIN, LOW);
}
delay(50);
}
Pentru întrebari și/sau consultanță tehnică vă stau la dispozitie pe blog sau pe email simedruflorin@automatic-house.ro. O seară plăcută tuturor !