Stap 2: Hier is de Code
Gelieve dubbel te controleren de 5V/Gnd = bedrading. Als dit klopt, kunt u Permanent schade je board.
Zodra bekabeld, probeer de Hello World! Voorbeeld om alles te controleren is OK. U kan nodig zijn om aan te passen de potmeter om te zien de Hello World! Bericht.
(Bestand -> voorbeelden -> LiquidCrystal -> HelloWorld)
OK, dus laten we doorgaan.
We heb een tilt sensor gekoppeld aan Arduino pin d10, zodat wanneer u de sensor onttrekt activeert een excuus om te worden gegenereerd.
Hier is de code:
/* Aangepast van Arduino Starter Kit voorbeeld Onderdelen die nodig zijn: http://Arduino.CC/starterKit Deze voorbeeldcode maakt deel uit van het publieke domein de code van de bibliotheek omvatten: initialiseren van de bibliotheek met de nummers van de pennen van de interface instellen van een constante voor de tilt-switchPin variabele voor de waarde van de switchPin variabele te houden van de vorige waarde van de switchpin een variabele te kiezen die het antwoord van de kristallen bol int i; Definiëren van uw excuses int lengte = 4; VOID Setup {} void loop {} voor (ik = 0; ik < 4; i ++) {} herhalen tot de schakeloptie veranderd van laag naar hoog Als (switchState == HIGH) {}
Excuus Generator
door Anthony Kelly
Project 11 - kristallen bol
Arduino UNO
SainSmart LCD (HD44780 compatibel)
Tilt Sensor
*/
#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 antwoord;
-char * [] start = {"I 'm sorry maar", "Don't blame me", "Niet mijn schuld","Raad eens wat er gebeurd"};
char * midden [] = {"Godzilla" "Chuck Norris", "Dagobert Duck", "Soap McTavish"};
char * eindigt [] = {"wilde doden me","aten mijn huiswerk.","kwam na me.", "stal mijn hoofd."};
het aantal kolommen en rijen op het LCD-scherm instellen
LCD.begin (16, 2);
De pullup aangezet met de schakeloptie-pin
pinMode (switchPin, INPUT);
digitalWrite (switchPin, hoge);
}
schoonmaken van het scherm voordat u afdrukt een nieuwe antwoord
LCD.Clear();
Een bericht op het LCD-scherm afdrukt.
lcd.print ("noodzaak een");
Stel de cursor op de kolom 0, lijn 1
lijn 1 is de tweede rij, aangezien tellen met 0 begint
lcd.setCursor (0, 1);
afdrukken naar de tweede lijn
lcd.print("Excuse?");
terwijl (! () switchState == HIGH & & prevSwitchState == LOW)) {
de schakeloptie veranderde niet van laag naar hoog laatste keer
Herinner mij de vorige schakelaar van de vorige iteratie
prevSwitchState = switchState;
Lezen van de huidige stand
switchState = digitalRead(switchPin);
vertraging als een eenvoudige ontdendering
Delay(100);
}
De tijdjelijn verlaten wthout bijwerken
de vorige toestand van de schakelaar dus doe het nu
prevSwitchState = switchState;
willekeurig Kies een antwoord-index
antwoord = random(length);
schoonmaken van het scherm voordat u afdrukt een nieuwe antwoord
LCD.Clear();
de cursor ingesteld op kolom 0, regel 0
lcd.setCursor (0, 0);
Sommige tekst afdrukken
Een ander deel van het excuus voor elke iteratie van de for-lus
switch(i) {}
zaak 0:lcd.print(start[reply]); breken;
zaak 1:lcd.print(middle[reply]); breken;
zaak 2:lcd.print(ends[reply]); breken;
}
}
}
}