Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Sensor d'Ultrasons: Avís sonor de proximitat
- En apropar un objecte al sensor a menys del límit especificat (20cm) s'encén un LED i fa un senyal acústic.
- */
- int TriggerPin = 3;
- int EchoPin = 4;
- int Brunzidor = 5;
- int LedPin = 13;
- int So = 659; //El valor 659 equival a la nota musical E5
- int limit = 20; //límit en cm especificat per encendre el led
- long duracio = 0;
- long distancia = 0;
- void setup() {
- Serial.begin(9600);
- pinMode(LedPin, OUTPUT);
- pinMode(Brunzidor, OUTPUT);
- pinMode(TriggerPin, OUTPUT);
- pinMode(EchoPin, INPUT);
- }
- void loop() {
- digitalWrite(TriggerPin, LOW); //iniciem el disparador amb LOW durant 4us
- delayMicroseconds(4);
- digitalWrite(TriggerPin, HIGH); //activem el Trigger durant 10us
- delayMicroseconds(10);
- digitalWrite(TriggerPin, LOW);
- duracio = pulseIn(EchoPin, HIGH); //mesurem el temps entre pulsos, en microsegons
- distancia = duracio * 10 / 292/ 2; //convertim a distancia a centímetres
- if (distancia >= 500 || distancia <= 0)
- { // si la distància és major de 500cm o menor de 0cm
- Serial.println("Fora de rang"); // no mesura res
- }
- else {
- if (distancia <= limit && distancia >= 1)
- {
- digitalWrite(LedPin, 1); // encén el led si la distància és menor del límit especificat
- Serial.print("Distancia: "); // envia el valor de la distància pel port serie
- Serial.print(distancia);
- Serial.println("cm. --> Encesa del led");
- noTone(Brunzidor); // mantenim el so apagat
- tone(Brunzidor, So); // senyal acústic d'avís
- delay(distancia*50); // retard per tal de mantenir el senyal acústic 0,1 segundos mínim
- noTone(Brunzidor); // mantenim el so apagat
- }
- else {
- Serial.print("Distancia: "); // envia el valor de la distància pel port serie
- Serial.print(distancia);
- Serial.println("cm.");
- digitalWrite(LedPin, 0); // apaga el led si la distància és najor del límit especificat
- noTone(Brunzidor); // mantenim el so apagat
- }
- }
- delay(100);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement