Hiparco

Recetas y trucos de GNU/Linux e informática en general

Alojado en http://guimi.net

Arduino: Sensor Eco y pantalla LCD

El circuito (realizado con Fritzing):

/*
 * Este programa lee el valor de un sensor (Utiliza eco por ultrasonido para medir distancias)
 * y lo muestra por un LCD de 16x2.
 *
 * 2014 - Guimi (http://guimi.net)
 */

// LIBRERIAS
//----------
// Para compilar, la libreria debe copiarse a /usr/share/arduino/libraries
// o -segun la version del IDE- <sketchbook>/libraries
#include <Ultrasonic.h> // http://www.ardublog.com/library-for-arduino-ultrasonic-ranging-hc-sr04/
#include <LiquidCrystal.h> // Libreria de arduino para LCD


// VARIABLES
//----------
Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Iniciamos la libreria con los numeros de los pins
int valorSensor=0; // Variable para guardar el valor del sensor [0-1023]


// FUNCION SETUP
//--------------
void setup() {
  lcd.begin(16, 2); // 16 caracteres * 2 lineas
}

// FUNCION LOOP
//-------------
void loop(){
  // Leemos el valor del sensor que tiene un angulo de 30 grados.
  // Para esta libreria el rango es entre 1 y 51 centimetros (espera maxima entre Trig y Eco 30 ms).
  lectura=ultrasonic.Ranging(CM); // CM or INC
  // Mostramos informacion por el LCD
  lcd.clear(); // Limpiamos el LCD
  lcd.setCursor(0, 0); // Nos situamos en el primer caracter de la primera linea
  lcd.print(lectura); // Escribimos
  lcd.print("cm"); // Escribimos
  lcd.setCursor(0, 1); // Nos situamos en el primer caracter de la segunda linea
  lcd.print(millis()/1000); // Escribimos el numero de segundos desde reset de la placa. Se reinicia cada 50 dias.

  // Esperamos un tiempo de reaccion para los componentes
  delay(100);
}