Super enkla Arduino knappsatsen (den hårda vägen) (7 / 8 steg)

Steg 7: Kodning det upp - Setup och Loop



/ / Här vi setup hur stiften kommer att fungera (input/output), starta LCD och utse som
PIN-kod vi har servo bifogas. Vi kommer även börja med servo vid 0 grader.

void setup() {
pinMode (Knapp1, ingång);
pinMode (button2, ingång);
pinMode (button3, ingång);
pinMode (button4, ingång);
pinMode (button5, ingång);
pinMode (röd, produktionen);
pinMode (grön, utgång);
LCD.BEGIN(16,2);
lcd.setCursor(0,0);
LCD.Print (": Ange kod:");
Serial.BEGIN(9600); / / För debug. Visuellt se knapptryckningar.
myservo.attach(9);
myservo.write(0);
}

Börja med att läsa statligt av stiften.

void loop() {
state1 = digitalRead(button1);
state2 = digitalRead(button2);
state3 = digitalRead(button3);
state4 = digitalRead(button4);
state5 = digitalRead(button5);

Om tillståndet för knappen inte är lika med sin tidigare tillstånd (1 = hög, 0 = låg), som i princip
innebär, var det bara trycks ned och släpps? Om knappen är hög (1)

Vi ökar värdet greven av knappen.

om (state1! = prev1) {
Delay(10);
om (state1 == hög) {
count1 ++;
}
/ / Obs delay(10). Detta är viktigt. Det underlättar en debounce. Knapparna har ett intert
bounciness. Du kan inte känna det, men när du trycker på en knapp, gör ibland
Kontakta mer än en gång och Arduino ser detta som flera pressar. Förseningen
pausar programmet för 10 millisekunder, vilket gör att knappen för att "lösa", och sedan
meritförteckningar. 10 millisekunder bör vara lång nog, men längre justera om det behövs.

annat {}
}

Vi gör det för varje knapp.

om (state2! = prev2) {
Delay(10);
om (state2 == hög) {
count2 ++;
}
annat {}
}

om (state3! = prev3) {
Delay(10);
om (state3 == hög) {
count3 ++;
}
annat {}
}

om (state4! = prev4) {
Delay(10);
om (state4 == hög) {
count4 ++;
}
annat {}
}

om (state5! = prev5) {
Delay(10);
om (state5 == hög) {
count5 ++;
}
annat {}
}

Detta kommer att hjälpa hålla reda på vad typ av åtgärder händer med
knapparna. När knappen trycks, matchar sitt tillstånd inte
Det är tidigare tillstånd, som visar en förändring. Här satt vi den tidigare
Ange att det nuvarande läget, så att ögonblicket du trycka eller
release, Arduino vet det, och agerar därefter.

prev1 = state1;
prev2 = state2;
prev3 = state3;
prev4 = state4;
prev5 = state5;

Då vi räkna upp hur många gånger varje knapp trycktes.

totalCount = count1 + count2 + count3 + count4 + count5;

Det är här vi skriver en asterisk ("*") till LCD-skärmen varje gång en knapp trycks.

för (rader = 0; rader < totalcount; rader + 1) {
lcd.setCursor(rows,1);
LCD.Print("*");
rader ++;
}

"rader" är där markören är (vänster till höger) på LCD-skärmen.
För varje gång en knapp trycks ner, vi ökas "rader" med ett, och
Ange som som markören plats. Vi gör detta till en viss punkt (5)
eftersom det är hur många siffror är i vår kombination.

Nu, om våra totalcount når 5, vi börjar titta på hur många gånger
varje knapp trycktes in. Om det matchar vad våra förutbestämda combo...

om (totalcount == 5) {
om (count1 == 2 & & count2 == 0 & & count3 == 1 & & count4 == 2 & & count5 == 0) {
LCD.Clear();
LCD.Print ("kod ACCEPTERADE"); / / Kod accepterade!
myservo.write(90); / / servo flyttas till 90 grader, som om låsa upp en dörr.
digitalWrite (grön, hög); / / grön är lika med bra, alltså den gröna lampan är på

se till att den röda LED blir bort om du inte få koden rätt första gången
digitalWrite (röd, låg);
count1 = 0; / / Reset all vår conunters till 0, börjar processen om igen.
count2 = 0;
count3 = 0;
count4 = 0;
count5 = 0;
totalCount = 0;
Delay(10000);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print (": Ange kod:"); Och vi är i början.
myservo.write(0);
digitalWrite (grön, låg);
}
annars om (count1! = 2 & & count2! = 0 & & count3! = 1 & & count4! = 2 & & count5! = 0 & & totalcount == 5) {
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("kod avvisad"); / / Detta och delen nedan är där om greven av varje knapp
digitalWrite (röd, hög); / / är inte lika förutbestämda räkningen, eller om det är större än antalet,
digitalWrite (grön, låg); //and antalet totala pressar är lika med 5 (som anger att ett 5 siffrigt
count1 = 0; / / kombination angavs men är fel) då koden avvisas. Avvisade!
count2 = 0;
count3 = 0;
count4 = 0;
count5 = 0;
totalCount = 0;
Delay(5000);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print (": Ange kod:");
digitalWrite (röd, låg);
}
annars om (count1 > 2 & & count2 > 0 & & count3 > 1 & & count4 > 2 & & count5 > 0 || totalcount == 5) {
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("kod avvisad");
digitalWrite (röd, hög);
digitalWrite (grön, låg);
count1 = 0;
count2 = 0;
count3 = 0;
count4 = 0;
count5 = 0;
totalCount = 0;
Delay(5000);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print (": Ange kod:");
digitalWrite (röd, låg);
}
}
}

Se Steg
Relaterade Ämnen

Att lägga till nycklar till en Arduino Synth den hårda vägen-Blacklord: Organ Donor projekt del 2

(Obs-detta är min 20 instructable! Tack till alla följande och commenting.on mina projekt och personal som gör detta möjligt. Denna webbplats har definitivt fått mig få min A spelet till arbetsbänken.)Auduino granulat synth av Peter Knight ( http://c...

Laptop kylare stativ (den hårda vägen)

Detta är vad jag gjorde igår för att skydda min laptop...Var försiktig med den undervisning och följ dem steg för steg för lyckas...Detta är en står för tvättade rätter!Ett metallföremål, som står för min laptop den hårda vägen :)Vänliga hälsningarFa...

Motoriserad cykel DIY: Den hårda vägen

Mosa en Honda DHX50 motor i en 24" pojkar SNARSTUCKEN Cranbrook Beach CruizerSteg 1: Motoriserad cykel DIY: den hårda vägen Mosa en Honda GXH50 i en SNARSTUCKEN 24" 's boy Cranbrook Cruiser cykel.Oh god Gud! Mer uppdateringar:Ersättningsmaskinen...

Super enkla Arduino Powered Roomba Scheduler

som de flesta människor jag var skeptisk till att få en robotic dammsugare, så som en provkörning jag tänkte jag skulle köpa den nu föråldrade iRobot Roomba 530 som var kraftigt nedsatta (de är fortfarande tillgängliga i Australien, visar hur bakom g...

REMIX - enkla Arduino knappsatsen

Det här är en REMIX av gtr_stitch's Arduino knappsats. Detta är en enkel knappsats för bara några knappar finns Arduino bibliotek för med en faktisk tangentbordet. Jag gjorde några ändringar av den ursprungliga författaren projekt. Jag utelämnade LCD...

Galna omslaget är lentikulär - gåva inslagning den hårda vägen

Varje jul på vårt hem "anonym" galna omslaget sätter gåvor under vårt träd. Gåvor inuti paketen är allmänt alldaglig och helt vanliga. Vad är extraordinära är metoden där gåvor är förpackade. Under trädet hittar människor fyra till åtta identisk...

Hur man pirat en vinylskiva den hårda vägen

En av mina mest roliga projekt hittills! Jag tar en Johnny Cash nyutgåva 7" vinylskiva och duplicera den med silikon gummi mögel och flytande plast. Ärligt blev jag förvånad på hur detaljerat mögel kan hantera som duplicerade posten spelade nästan pe...

Skära plast den hårda vägen

här på TechShop i San Jose, vi har coola sätt att skära och manipulera plast. Du kan använda våra lasrar, våra routrar, våra kvarnar och våra sågar för att skära plast former. Men behöver ibland man ett snabbt snitt. Lyckligtvis med verktyg i våra ve...

Twin-sängram - den hårda vägen

beslöt jag att skapa en sängram utan någon tidigare erfarenhet av snickeri.Vad följde var ett 4 veckors projekt som kostar mer än det ska ha, och var mycket mer komplicerat då behövs. Projektet var full av misstag som jag tillbringat otaliga timmar k...

Enkla Arduino Arm (Pan/Tilt)

Spela katapult på kontoret inspirerade mig att bygga denna Arduino Arm för att tryck på linjalen och släpp för att skjuta. Även om den underlåter att uppfylla min första intension, tror jag denna enkla Arduino Arm kommer att leda till andra svalare p...

Enkla Arduino Monome

ÖversiktDetta Instructable är den enkla versionen av den MaKey MaKey Monome, elektronisk musik Mätinstrument utformat för att vara lätt för barn och nybörjare att reproducera (och upprepa på!). Känn dig fri att kolla in min hemsidaför mer information...

DIY Arduino eller "Den DIY-Duino"

här hela guiden finns också på min hemsida påhttp://www.theparsley.com/Arduino/DIY/För att citera Arduino webbplats:"Arduino är en öppen källkod elektronik prototyping plattform baserad på flexibel, lätt att använda maskinvara och programvara. Den är...

Enkla Arduino Sunrise lampa

hatar att vakna upp i mörkret? Jag också. Jag hittade en billiga 24 LED lampa och tyckte det skulle vara ganska lätt att göra det slå på sakta med min Arduino, som bör bidra till att bannlysa vissa av dessa "vakna upp i mörkret" vintern blues.Du...

Den avskyvärda snö odjuret Prank

jag var verkligen glada över att se en snö tävling eftersom det området jag bor i oftast blir mycket snö. Som tur är det dock, endast har ca 3 lätta dustings i år. BOOOOOOO! En dag det dammade oss med omkring en tum av snön som smälte snabbt så jag u...

Enkla arduino virtuella knappsatsen

Hej jag bara skapat denna enkla knappsatsen för att låsa upp dörrar eller göra några andra sakerkrav:dator (någon os)Arduinoentillval för att bygga reläutgångRelay 5vdiod 1n4007resistor 270 ohmoptocouplerextern strömförsörjningSteg 1: bulding reläutg...

Enkla Arduino PIR rörelse detektor modul Demo

Jag vet att det finns gott om Instructables och tutorials om detta redan. Mitt mål är att förenkla allt den nakna ben minsta krävs så en nybörjare (som jag) kan få det att fungera innan de blir frustrerade och ge upp.För att förhoppningsvis göra dett...

Enkla Arduino stoppur

En Arduino stoppur tillverkad i ett befintligt LiquidCrystal bibliotek exempel - Hello World. Det visar du tiden gått sedan Återställ. Detta instructable är inspirerad av den instructuble skapad av Conor M - Arduino stoppur. Jag skrapat ned koden och...

Enkla Arduino kontrollerade Aquaponic System

detta instructable täcker vissa aspekter av bygga en aquaponic system. Jag använder en arduino micocontroller för att reglera frekvensen av systemet cykling.Om du ett för att bygga ett aquaponic system, instructables, Bloggar, böcker bör genomföras i...

Arduino knappsatsen dörrlås

I denna instrutable kommer jag förklara hur man gör knappsatsen dörrlås från arduino och XHQ-PT.XHQ-PT är en motor stopp solenoiden brukade avstängning de flesta chines dieselgenerator, jag kunde inte hitta en lämplig ställdon för min dörr på den lok...