Arduino ursäkt Generator (2 / 3 steg)
Steg 2: Här är koden
Vänligen dubbel check den = 5V/Gnd ledningar. Du kan Permanent skada din styrelse om detta är fel.
När trådbunden upp, prova Hej världen! Exempel att kontrollera allt är OK. Du kan behöva justera potentiometern för att se Hej världen! meddelande.
(Arkiv -> exempel -> LiquidCrystal -> HelloWorld)
OK, så låt oss gå vidare.
Vi har bifogat en tilt sensor till Arduino pin d10 så när du knackar på sensorn aktiveras en ursäkt att genereras.
Här är koden:
/* Anpassad från Arduino Starter Kit exempel Delar som behövs: http://Arduino.cc/starterKit Denna exempelkod är en del av det offentliga rummet inkludera bibliotek-koden: initiera bibliotek med numrerar av gränssnittet stiften ställa in en konstant för tilt switchPin variabel att hålla värdet av switchPin variabel att hålla tidigare värde för switchpin en variabel att välja vilket svarar från kristallkulan int i; Definiera din ursäkter int längd = 4; void setup() { void loop() { för (jag = 0; jag < 4; i ++) { loop tills växeln har ändrats från låg till hög om (switchState == hög) {
Ursäkt för Generator
av Anthony Kelly
Projekt 11 - Crystal Ball
Arduino UNO
SainSmart LCD (HD44780 kompatibel)
Lutningssensorn
*/
#include < LiquidCrystal.h >
#include < string.h >
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
const int switchPin = 10;
int switchState = 0;
int prevSwitchState = 0;
int svar;
char * starta [] = {"Jag är ledsen men", "Skyll inte på mig", "Inte mitt fel","gissa vad som hände"};
char * mitten [] = {"Godzilla", "Chuck Norris", "Joakim von Anka", "Soap McTavish"};
char * slutar [] = {"försökte döda mig","åt min läxor.","kom efter mig.", "stal mitt huvud"};
Ange antal kolumner och rader i LCD
LCD.BEGIN (16, 2);
Ange pullup på switch stift
pinMode (switchPin, ingång);
digitalWrite (switchPin, hög);
}
Rensa skärmen innan du skriver ut ett nytt svar
LCD.Clear();
Skriv ut ett meddelande till LCD-skärmen.
lcd.print ("behovet av en"),
ställa markören till kolumn 0, linje 1
linje 1 är den andra raden, sedan räknar börjar med 0
lcd.setCursor (0, 1);
skriva ut på den andra raden
lcd.print("Excuse?");
medan (! () switchState == hög & & prevSwitchState == låg)) {
växeln ändra inte från låg till hög förra gången
Kom ihåg tidigare switch staten från den senaste iterationen
prevSwitchState = switchState;
Läs det nuvarande tillståndet
switchState = digitalRead(switchPin);
fördröja som en enkel debounce
Delay(100);
}
while loop lämnat wthout uppdatering
det tidigare switch tillståndet så gör det nu
prevSwitchState = switchState;
slumpmässigt välja ett svar index
svar = random(length);
Rensa skärmen innan du skriver ut ett nytt svar
LCD.Clear();
ställa markören till kolumn 0, linje 0
lcd.setCursor (0, 0);
skriva ut lite text
En annan del av ursäkten för varje för-loop iteration
switch(i) {
fall 0:lcd.print(start[reply]); bryta;
fall 1:lcd.print(middle[reply]); bryta;
fall 2:lcd.print(ends[reply]); bryta;
}
}
}
}