Creat per Isaac Muro
És aquest!
Funciona enviant ones de só (s'activa el Trigger), tocant a l'objecte i tornant al receptor (s'activa el Echo).
Primer declarem dues variables pels pins Trig i Echo
const int trigPin = 9;
const int echoPin = 10;
Després declararem dues variables reals per guardar la duració i la distancia.
float duration, distance;
Després declararem dues variables reals per guardar la duració i la distancia.
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
En el loop posem a LOW el pin Trig, esperem 2 miliseconds, el posem a HIGH, esperem 10 milisegons i el tornem a posar a LOW.
Durant el temps que el Trig està HIGH envia la senyal de só.
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
Quan el só arriba al receptor, posa el Echo a HIGH. Existeix una funció a Arduino per esperar fins que un pin es posi a HIGH.
Es diu pulseIn(), i espera fins que el pin es torni HIGH en aquest cas. Retorna el temps en milisegons.
duration = pulseIn(echoPin, HIGH);
Ara tenim el temps que triga la senyal a arribar al pin Echo.
Sabem que la velocitat = distància / temps. Per tant, distància = temps * velocitat.
També sabem que la velocitat del só és: 0.343 centímetres cada milisegon. Ho dividim per 2 perquè va fins l'objecte i torna.
distance = (duration*.0343)/2;
Imprimim el resultat pel port serie.
Serial.print("Distance: ");
Serial.println(distance);
delay(100);
}
Fes que tot això funcioni i comprova que el sensor detecta la distància.
Fes que quan el sensor detecti una distància més petita que 10 cms, s'encengui el led D13.