Saludos....
En esta ocasión vamos a realizar un sistema para medir distancias, le asignamos unas distancias y cuando estemos cada vez mas cerca del sistema la intermitencia del pitido será cada vez mas rápida..
Materiales utilizados
Conexiones
Código Arduino:
Con este script lo que conseguimos es que cuando estamos entre 2 y 1 metro del sensor el buzzer empieza a pitar pausadamente.
Cuando estamos entre 1 metro y 50 cms. los pitidos serán mas cortos y rápidos que el anterior bloque de distancias.
Cuando estamos entre y 50 cms. y 25 cms. los pitidos serán mas cortos y rápidos que el anterior bloque de distancias.
Cuando la distancia sea menor de 25 cms. los pitidos serán muy cortos y rápidos.
También por el monitor serial nos imprimirá la distancia exacta a la que el objeto se encuentra del módulo.
Bueno... ya está... espero que le sirva a alguien.
Saludos.
.
En esta ocasión vamos a realizar un sistema para medir distancias, le asignamos unas distancias y cuando estemos cada vez mas cerca del sistema la intermitencia del pitido será cada vez mas rápida..
Materiales utilizados
- Una placa Arduino (yo he utilizado la Uno).
- 6 Cables dupont.
- Un módulo para medir distancias por ultrasonidos HC-SR04.
- Un buzzer.
Conexiones
- Pin Vcc del módulo HC-SR04 al pin 5v de arduino.
- Pin Trig del módulo HC-SR04 al pin 9 de arduino.
- Pin Echo del módulo HC-SR04 al pin 8 de arduino.
- Pin GND del módulo HC-SR04 al pin GND de arduino.
- Pin positivo del buzzer al pin 10 de arduino.
- Pin negativo del buzzer al pin GND de arduino.
Código Arduino:
Código:
long distancia;
long tiempo;
int pinSpeaker = 10;
void setup(){
Serial.begin(9600);
pinMode(9, OUTPUT);
pinMode(8, INPUT);
pinMode(pinSpeaker, OUTPUT);
}
void loop(){
digitalWrite(9,LOW);
delayMicroseconds(5);
digitalWrite(9, HIGH);
delayMicroseconds(10);
tiempo=pulseIn(8, HIGH);
distancia= int(0.017*tiempo);
Serial.print("Distancia ");
Serial.print(distancia);
Serial.println(" cm");
if (distancia <= 200 && distancia > 100)
{
playTone(500, 500);
delay(500);
}
else if (distancia <= 100 && distancia > 50)
{
playTone(250, 500);
delay(250);
}
else if (distancia <= 50 && distancia > 25)
{
playTone(200, 500);
delay(100);
}
else if (distancia <= 25)
{
playTone(100, 500);
delay(50);
}
delay(500);
}
void playTone(long duration, int freq) {
duration *= 1000;
int period = (1.0 / freq) * 1000000;
long elapsed_time = 0;
while (elapsed_time < duration) {
digitalWrite(pinSpeaker,HIGH);
delayMicroseconds(period / 2);
digitalWrite(pinSpeaker, LOW);
delayMicroseconds(period / 2);
elapsed_time += (period);
}
}
Con este script lo que conseguimos es que cuando estamos entre 2 y 1 metro del sensor el buzzer empieza a pitar pausadamente.
Cuando estamos entre 1 metro y 50 cms. los pitidos serán mas cortos y rápidos que el anterior bloque de distancias.
Cuando estamos entre y 50 cms. y 25 cms. los pitidos serán mas cortos y rápidos que el anterior bloque de distancias.
Cuando la distancia sea menor de 25 cms. los pitidos serán muy cortos y rápidos.
También por el monitor serial nos imprimirá la distancia exacta a la que el objeto se encuentra del módulo.
Bueno... ya está... espero que le sirva a alguien.
Saludos.
.