Hola a todos:
En esta sesión vamos a seguir con estructuras de programación como el condicional, utilizar salidas y entradas analógicas.
PROYECTOS DE LA SESIÓN 3:
- Buzzer piezoeléctrico
- Sensor de ultrasonidos
- Sensor de ultrasonidos con luces
- Sensor de ultrasonidos con luces y aviso acústico
1. Buzzer piezoeléctrico
Código:
int pinzumbador = 9; // pin del zumbador
int frecuencia = 220; // frecuencia correspondiente a la nota La
void setup()
{
}
void loop()
{
tone(pinzumbador,frecuencia); // inicia el zumbido
delay(2000);
noTone(pinzumbador); // lo detiene a los dos segundos
delay(1000);
}
2. Sensor de ultrasonidos.
Código:
long distancia; long tiempo; void setup(){ Serial.begin(9600); pinMode(9, OUTPUT); /*activación del pin 9 como salida: para el pulso ultrasónico*/ pinMode(8, INPUT); /*activación del pin 8 como entrada: tiempo del rebote del ultrasonido*/ } void loop(){ digitalWrite(9,LOW); /* Por cuestión de estabilización del sensor*/ delayMicroseconds(5); digitalWrite(9, HIGH); /* envío del pulso ultrasónico*/ delayMicroseconds(10); tiempo=pulseIn(8, HIGH); /* Función para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envío del pulso ultrasónico y cuando el sensor recibe el rebote, es decir: desde que el pin 12 empieza a recibir el rebote, HIGH, hasta que deja de hacerlo, LOW, la longitud del pulso entrante*/ distancia= int(0.017*tiempo); /*fórmula para calcular la distancia obteniendo un valor entero*/ /*Monitorización en centímetros por el monitor serial*/ Serial.print("Distancia "); Serial.print(distancia); Serial.println(" cm"); delay(1000); }
3. Sensor de ultrasonidos con luces.
Debes crear una configuración en la que si se detecta una cercanía:
-Inferior a 5 cm, se encienda la luz roja.
-Entre 5 y 15 cm, se encienda la luz amarilla.
-Mayor de 15 cm, se encienda la luz verde
Código:
long distancia;
long tiempo;
void setup(){
Serial.begin(9600);
pinMode(9, OUTPUT); /*activación del pin 9 como salida: para el pulso ultrasónico*/
pinMode(8, INPUT); /*activación del pin 8 como entrada: tiempo del rebote del ultrasonido*/
//Definimos los puertos que usarán los LED.
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop(){
digitalWrite(9,LOW); /* Por cuestión de estabilización del sensor*/
delayMicroseconds(5);
digitalWrite(9, HIGH); /* envío del pulso ultrasónico*/
delayMicroseconds(10);
tiempo=pulseIn(8, HIGH); /* Función para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envío
del pulso ultrasónico y cuando el sensor recibe el rebote, es decir: desde que el pin 12 empieza a recibir el rebote, HIGH, hasta que
deja de hacerlo, LOW, la longitud del pulso entrante*/
distancia= int(0.017*tiempo); /*fórmula para calcular la distancia obteniendo un valor entero*/
/*Monitorización en centímetros por el monitor serial*/
Serial.print("Distancia: ");
Serial.print(distancia);
Serial.println(" cm");
//Introducimos el condicional
if (distancia<5)
{
digitalWrite(11,HIGH);
}
if (distancia>=5 && distancia<15)
{
digitalWrite(12,HIGH);
}
if (distancia>=15)
{
digitalWrite(13,HIGH);
}
delay(1000);
//Ahora los apagamos todos los LED y empezamos de nuevo.
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}
4. Sensor de ultrasonidos con luces y aviso acústico.
Código:
No hay comentarios:
Publicar un comentario