Pract3 Arduino Uno
Pract3 Arduino Uno
FACULTA DE INGENIERIA
CONTROL 1
MICROCONTROLADORES
1/5
PRÁCTICA 3
El sensor de ultrasonidos se enmarca dentro de los sensores para medir distancias o superar obstáculos,
entre otras posibles funciones. En este caso vamos a utilizarlo para la medición de distancias. Esto lo
consigue enviando un ultrasonido (inaudible para el oído humano por su alta frecuencia) a través de uno
de la pareja de cilindros que compone el sensor (un transductor) y espera a que dicho sonido rebote
sobre un objeto y vuelva, retorno captado por el otro cilindro. Este sensor en concreto tiene un rango de
distancias sensible entre 3cm y 3m con una precisión
de 3mm.
¿Qué recibimos en el sensor? El tiempo que transcurre entre el envío y la recepción del ultrasonido.
Material
Sensor ultrasónico HC-SR04 3 LED (Rojo. Amarillo y Verde)
Placa Arduino UNO 3 resistencias de 330Ω
Cables (jumpers M-M) Protoboard
Cable USB
Circuito
UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO
FACULTA DE INGENIERIA
CONTROL 1
MICROCONTROLADORES
2/5
Procedimiento
1. Preparar la conexión
En primer lugar, conectamos nuestra placa Arduino mediante un cable USB A-B, del tipo
que se emplean habitualmente para conectar impresoras. De momento no hace falta la
conexión de alimentación o cable adicional, para realizar la programación es suficiente
únicamente con el USB.
CONTROL 1
MICROCONTROLADORES
3/5
4. Seleccionamos el puerto de comunicación al que está conectado.
Ya tenemos la conexión configurada y lista para realizar la carga de nuestro primer programa.
//Zona DECLARACIONES
void setup() {
// Zona funcion SETUP
}
void loop() {
// Zona funcion LOOP
}
CONTROL 1
MICROCONTROLADORES
4/5
CODIGO DE PROGRAMACION
/***********************************************************************************/
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*/
pinMode(13, OUTPUT);/*activación del pin 13 como salida: salida LED Rojo*/
pinMode(12, OUTPUT);/*activación del pin 12 como salida: salida LED Amarillo*/
pinMode(7, OUTPUT);/*activación del pin 7 como salida: salida LED Verde*/
}
void loop(){
digitalWrite(13,LOW); /* Inicializar LED*/
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*/
if ((distancia>10)&&(distancia<50)){
digitalWrite(13, LOW); /*Apagar el LED Rojo*/
digitalWrite(12, HIGH); /*Encender el LED Amarillo*/
digitalWrite(7, LOW); /*Apagar el LED Verde*/
delay(100);
}
if (distancia>50){
digitalWrite(13, LOW); /*Apagarr el LED Rojo*/
digitalWrite(12, LOW); /*Apagar el LED Amarillo*/
digitalWrite(7, HIGH); /*Encender el LED Verde*/
delay(100);
}
CONTROL 1
MICROCONTROLADORES
5/5
Finalmente, pulsamos en el botón remarcado para compilar y enviar la programación a
nuestra placa Arduino. Tras unos segundos, el IDE compilará el programa y lo subirá a la
placa.