ultra_so_basic_3
//HC-SR04 detecta 4 zones (configurable) i si estàs fora de camp
// fer a partir d'un exemple de David Ortega Cuadrado - dorcu.com
//modificat per Joan Gelabert i Jesús Arbués www.sacosta.org
//detecta 4 zones d'aproximació i si estàs fora de camp
//molt aprop menys de 10 cm
//aprop entre 10 i 25
//lluny entre 25 i 40
//molt lluny entre 40 i 50
//fora de camp més de 50
// 9 agost 2015
//www.sacosta.org
//en principi han d'estar totes apagades i es van encenen
// Definim els pins a emprar. En aquesta aproximació emprarem només el 7, 8, 5V i GND i els pins 2, 3, 4 i 5 per donar sensació de proximitat o llunyania
#define trigPin 7 //trig va a 7
#define echoPin 8 //echo va a 8
//vcc va a 5v
//gnd a gnd
#define led1 2
#define led2 3
#define led3 4
#define led4 5
int molt_aprop = 10;
int aprop = 25;
int lluny = 40;
int molt_lluny=50;
// Establim la distància en cm per a la comprobació i que ens marqui molt aprop, aprop, lluny, molt lluny o fora de camp
// LLibreria necesaria per el funcionamient ´es pot trobar a https://mega.co.nz/#!bMBXgD7Q!2sCMD1fupFCENXINfngolbyt4zrN0olDw_t5Zk-taAU
#include "Ultrasonic.h"
// Declaram el sensor ultrasonido en los pins digitales assignats anteriorment
Ultrasonic ultrasonido(trigPin,echoPin);
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT); // Establim el pin trig com a sortida
pinMode(echoPin, INPUT); // Establim el pin echo com entrada
pinMode(led1, OUTPUT); // Establim el led1 com a sortida
pinMode(led2, OUTPUT); // Establim el led2 com a sortida
pinMode(led3, OUTPUT); // Establim el led3 com a sortida
pinMode(led4, OUTPUT); // Establim el led4 com a sortida
digitalWrite(led1, LOW); // Apagam el led1
digitalWrite(led2, LOW); // Apagam el led2
digitalWrite(led3, LOW); // Apagam el led3
digitalWrite(led4, LOW); // Apagam el led4
}
void loop() {
int distancia;
distancia = ultrasonido.Ranging(CM);
if (distancia < molt_aprop){//encen els quatre leds i escriu a serial print molt aprop i la posició en cm
Serial.print("Molt aprop - Distancia: ");
Serial.print(ultrasonido.Ranging(CM));
Serial.println(" cm");
digitalWrite(led1,HIGH); // Encenem led1
digitalWrite(led2,HIGH); // Encenem led2
digitalWrite(led3,HIGH); // Encenem led3
digitalWrite(led4,HIGH); // Encenem led4
}
else if (distancia >= molt_aprop && distancia < aprop){//encen els tres primers leds i escriu a serial print aprop i la posició en cm
Serial.print("Aprop - Distancia: ");
Serial.print(ultrasonido.Ranging(CM));
Serial.println(" cm");
digitalWrite(led1,HIGH); // Encenem led1
digitalWrite(led2,HIGH); // Encenem led2
digitalWrite(led3,HIGH); // Encenem led3
digitalWrite(led4,LOW); // Apagam led4
}
else if(distancia >= aprop && distancia < lluny){//encen els 2 primers leds i a serial print escriu lluny i la posició en cm
Serial.print("Lluny - Distancia: ");
Serial.print(ultrasonido.Ranging(CM));
Serial.println(" cm");
digitalWrite(led1,HIGH); // Encenem led1
digitalWrite(led2,HIGH); // Encenem led2
digitalWrite(led3,LOW); // Apagam led3
digitalWrite(led4,LOW); // Apagam led4
}
else if(distancia >= lluny && distancia < molt_lluny){//encen només el primer led i a serial print escriu molt lluny i la posició en cm
Serial.print("Molt_lluny - Distancia: ");
Serial.print(ultrasonido.Ranging(CM));
Serial.println(" cm");
digitalWrite(led1,HIGH); // Encenem led1
digitalWrite(led2,LOW); // Apagam led2
digitalWrite(led3,LOW); // Apagam led3
digitalWrite(led4,LOW); // Apagam led4
}
else {//tots els leds apagats i a serial print escriu molt lluny i distància major de 51
Serial.print("Fora de camp - Distancia > ");
Serial.print(ultrasonido.Ranging(CM));
Serial.println(" cm");
digitalWrite(led1,LOW); // Apagam led1
digitalWrite(led2,LOW); // Apagam led2
digitalWrite(led3,LOW); // Apagam led3
digitalWrite(led4,LOW); // Apagam led4
}
delay(1000);//cada segon comprova la distància
digitalWrite(led1, LOW); // Apagam el led1
digitalWrite(led2, LOW); // Apagam el led1
digitalWrite(led3, LOW); // Apagam el led1
digitalWrite(led4, LOW); // Apagam el led1
}
Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0