Paso 1:
Asegúrese de que funciona al cargar el siguiente bosquejo (código Arduino):
Muestra utilizando la librería LiquidCrystal
#include < LiquidCrystal.h >
/*******************************************************
Este programa fue creado originalmente por
Marca Bramwell, de julio de 2010
Luego fue cambiado para un proyecto de acelerómetro
por Brandon Middleton, abril de 2012
********************************************************/
Seleccione los pines utilizados en el panel LCD
LiquidCrystal lcd (8, 9, 4, 5, 6, 7);
definir algunos valores utilizados por el panel y los botones
int lcd_key = 0;
int adc_key_in = 0;
#define btnRIGHT 0
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 4
#define btnNONE 5
leer los botones
int read_LCD_buttons()
{
adc_key_in = analogRead(0); leer el valor del sensor
mis botones cuando están centradas en estos valies: 0 144, 329, 504, 741
añadimos aproximadamente 50 a esos valores y comprobar para ver si estamos cercanas
Si (adc_key_in > 1000) vuelta btnNONE; Esto hacemos la 1ª opción por razones de velocidad, ya que será el resultado más probable
Si (adc_key_in < 50) devuelve btnRIGHT;
Si (adc_key_in < 195) vuelta btnUP;
Si (adc_key_in < 380) vuelve btnDOWN;
Si (adc_key_in < 555) vuelve btnLEFT;
Si (adc_key_in < 790) vuelta btnSELECT;
volver btnNONE; Cuando todos los demás no, regresar este...
}
void setup()
{
LCD.Begin (16, 2); iniciar la biblioteca
lcd.setCursor(0,0);
LCD.Print("Acceleration:"); imprimir un mensaje simple
}
void loop()
{
lcd.setCursor(0,1); mover al principio de la segunda línea
lcd_key = read_LCD_buttons(); leer los botones
interruptor (lcd_key) / / función de botón que se pulsa, realizamos una acción
{
btnRIGHT caso:
{
LCD.Print("Y-Axis:.");
lcd.setCursor(8,1); mover el cursor al segundo espacios de la línea "1" y 9
LCD.Print(analogRead(a2)); número entre 0-1023 correspondiente a tensión
lcd.setCursor(11,1);
LCD.Print("g");
Delay(300);
rotura;
}
btnLEFT caso:
{
LCD.Print("Y-Axis:.");
lcd.setCursor(8,1); mover el cursor al segundo espacios de la línea "1" y 9
LCD.Print(analogRead(a2));
lcd.setCursor(11,1);
LCD.Print("g");
Delay(300);
rotura;
}
caso btnUP:
{
LCD.Print("Z-Axis:.");
lcd.setCursor(8,1); mover el cursor al segundo espacios de la línea "1" y 9
LCD.Print(analogRead(a1));
lcd.setCursor(11,1);
LCD.Print("g");
Delay(300);
rotura;
}
btnDOWN caso:
{
LCD.Print("Z-Axis:.");
lcd.setCursor(8,1); mover el cursor al segundo espacios de la línea "1" y 9
LCD.Print(analogRead(a1));
lcd.setCursor(11,1);
LCD.Print("g");
Delay(300);
rotura;
}
caso btnSELECT:
{
LCD.Print ("PAUSE");
Delay(300);
rotura;
}
caso btnNONE:
{
LCD.Print("X-Axis:.");
lcd.setCursor(8,1); mover el cursor al segundo espacios de la línea "1" y 8
LCD.Print(analogRead(a3));
lcd.setCursor(11,1);
LCD.Print("g");
Delay(300);
rotura;
}
}
}