Stap 1:
Zorg ervoor dat het werkt door het uploaden van het volgende schema (code voor Arduino):
Monster met behulp van LiquidCrystal bibliotheek
#include < LiquidCrystal.h >
/*******************************************************
Dit programma werd oorspronkelijk bedacht door
Mark Bramwell, juli 2010
Het werd vervolgens gewijzigd voor een project van de versnellingsmeter
door Brandon Middleton, April 2012
********************************************************/
Selecteer de pinnen gebruikt op het LCD-scherm
LiquidCrystal lcd (8, 9, 4, 5, 6, 7);
sommige waarden gebruikt door het panel en de knoppen definiëren
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
Lees de knoppen
int read_LCD_buttons()
{
adc_key_in = analogRead(0); luiden naar de waarde van de sensor
mijn knoppen wanneer Lees zijn gecentreerd op deze valies: 0, 144, 329, 504, 741
we toevoegen ongeveer 50 aan deze waarden en controleren om te zien als we nauwe
Als (adc_key_in > 1000) return btnNONE; Wij maken dit de 1e optie omwille van de snelheid, omdat het zal het meest waarschijnlijke resultaat
Als (adc_key_in < 50) return btnRIGHT;
Als (adc_key_in < 195) return btnUP;
Als (adc_key_in < 380) return btnDOWN;
Als (adc_key_in < 555) return btnLEFT;
Als (adc_key_in < 790) return btnSELECT;
Return btnNONE; Als alle anderen falen, terug dit...
}
VOID Setup
{
LCD.begin (16, 2); Start de bibliotheek
lcd.setCursor(0,0);
LCD.Print("Acceleration:"); een eenvoudig bericht afdrukken
}
void loop
{
lcd.setCursor(0,1); verplaatsen naar het begin van de tweede lijn
lcd_key = read_LCD_buttons(); Lees de knoppen
schakelaar (lcd_key) / / afhankelijk van welke knop werd geduwd, we een actie uitvoeren
{
Case btnRIGHT:
{
LCD.Print("Y-Axis:.");
lcd.setCursor(8,1); cursor naar tweede lijn "1" en 9 ruimten op
LCD.Print(analogRead(a2)); geeft een getal tussen 0-1023 overeenkomt met de spanning weer
lcd.setCursor(11,1);
LCD.Print("g");
delay(300);
breken;
}
Case btnLEFT:
{
LCD.Print("Y-Axis:.");
lcd.setCursor(8,1); cursor naar tweede lijn "1" en 9 ruimten op
LCD.Print(analogRead(a2));
lcd.setCursor(11,1);
LCD.Print("g");
delay(300);
breken;
}
Case btnUP:
{
LCD.Print("Z-Axis:.");
lcd.setCursor(8,1); cursor naar tweede lijn "1" en 9 ruimten op
LCD.Print(analogRead(a1));
lcd.setCursor(11,1);
LCD.Print("g");
delay(300);
breken;
}
Case btnDOWN:
{
LCD.Print("Z-Axis:.");
lcd.setCursor(8,1); cursor naar tweede lijn "1" en 9 ruimten op
LCD.Print(analogRead(a1));
lcd.setCursor(11,1);
LCD.Print("g");
delay(300);
breken;
}
Case btnSELECT:
{
LCD.Print ("PAUSE");
delay(300);
breken;
}
Case btnNONE:
{
LCD.Print("X-AXIS:.");
lcd.setCursor(8,1); Beweeg de cursor naar de tweede lijn "1" en 8 spaties over
LCD.Print(analogRead(a3));
lcd.setCursor(11,1);
LCD.Print("g");
delay(300);
breken;
}
}
}