Saludos a todos!! Siguiendo con los ejemplos de arduino, en esta ocasión toca el turno del sensor ultrasónico HC-SR04 (en la red hay mucho sobre esto, basta con buscar para encontrar algo, ademas de que arduino tiene mucho soporte) con el cual mostraremos la distancia en el monitor serial que tiene arduino.
Circuito:
El circuito usado es muy sencillo, solo se requiere hacer las conexiones, como se muestra en el dibujo (disculpar si no muestro el esquemático pero me pareció mas sencillo hacer un dibujo, ademas no hay pierde basta con mirar el código para identificar las conexiones y listo):
Código:
El código que hace posible esto, es el siguiente, importante decir que la distancia la muestra con dos decimales:
El código que hace posible esto, es el siguiente, importante decir que la distancia la muestra con dos decimales:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************************************* | |
* | |
* Sensor ultrasónico HC-SR04 | |
* | |
******************************************************************************* | |
* FileName: NANO_HCSR04_test.ino | |
* Processor: ATmega328 | |
* Complier: Arduino v1.6.5 | |
* Author: Pedro Sánchez (MrChunckuee) | |
* Blog: http://mrchunckuee.blogspot.com/ | |
* Email: mrchunckuee.psr@gmail.com | |
* Description: Monitoreo del sensor ultrasónico HC-SR04, la distancia | |
* entregada es con dos decimales. | |
******************************************************************************* | |
* Rev. Date Comment | |
* v1.00 23/07/2016 Creación del firmware | |
******************************************************************************/ | |
int pinECHO = 3; // Pin echo en D3 | |
int pinTRIG = 4; // Pin trig en D4 | |
float distancia; // Variable para guardar la distancia | |
void setup(){ | |
Serial.begin(9600); // Puerto serie a 9600 baudios | |
pinMode(pinTRIG, OUTPUT); | |
pinMode(pinECHO, INPUT); | |
} | |
void loop(){ | |
distancia = GetDistance(); | |
// Si estamos dentro del rango medible mostramos la distancia | |
if(distancia >= 2 && distancia<=450){ | |
Serial.print("Distancia: "); | |
Serial.print(distancia); | |
Serial.println(" cm"); | |
} | |
else Serial.println("Fuera de rango"); | |
delay(200); | |
} | |
float GetDistance(){ | |
float distance, tiempo; | |
digitalWrite(pinTRIG,HIGH); | |
delayMicroseconds(10); | |
digitalWrite(pinTRIG, LOW); | |
tiempo = pulseIn(pinECHO, HIGH); | |
distance = tiempo / 58.00; // Distancia con 2 decimales | |
return distance; | |
} |
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.
Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.
Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.
0 Comentarios