Arduino ljus & slå upptäcka dörrlås (2 / 4 steg)
Steg 2: Programmera din Arduino
Du kommer att ladda upp vår skiss innan du gör någon av elektroniken så vi kan testa dem när vi går. Koden är bifogat nedan och har kommentarer hela. Du behöver ha din Arduino programvara/drivrutiner installerade för detta steg!1) Hämta filen bifogas nedan
2) Anslut din Arduino till en USB-ingång på datorn.
3) öppna filen i en Arduino skiss (eller om detta ger dig problem, ändra filen till en .txt och kopiera/klistra in koden i en tom skiss) och kompilera/kontrollera den
4) Ladda upp den till din Arduino!
I stegen att komma, kommer att jag ge felsökningstips som rör specifika delar av koden (vissa parametrar måste vara tweaked för varje system). För alla som är intresserade av detaljerna i koden, har jag inkluderat en sammanfattning nedan. Skissen är väl kommenterade i hela, men det är en ansenlig fil och lite klumpig att tolka tiden (gärna göra detta mer elegant, och se till att dela någon framgång i kommentarerna!).
Linjerna 4-33: definierar Arduino stift, konstanter och variabler som vi kommer att använda i koden.
-Du kommer förmodligen vill justera dessa för just ditt dörr/system. Jag guidar dig genom detta
Linjerna 35-47 (setup): definierar pin lägen och initierar seriell övervakning
Linje 49-84, (loop): definierar beteendet för kretsen som väntar att höra (se) en knock (flash)
-Det är där vi ställa in funktionen bakgrund/genomsnitt, som kontinuerligt tar prov data och kalibrerar ingången värderar därmed. Om en ljus eller ljud signal registreras ovanför ingången värderar, sedan körs det "listenToSecretKnock"
Linjerna 86-161 (listenToSecretKnock): registrerar knackar registrerats av mikrofonen
-Registrerar tiden mellan smällar (dröjsmål längd) i en matris och skickar data till validateKnock. Del av detta avsnitt ägnas åt styra LED indikatorer som blinka längs i tid med de registrerade smällar. Om låset har verifierats, dörren kommer att låsa eller låsa upp dörren när beroende på "doorState" (som berättar om våra senaste var låst eller olåst).
Linjerna 163-238 (listenToSecretPhotoKnock): poster lampan blinkar registreras av fotodiod
-I princip samma som linjerna 86-161, men nu med en fotodiod signal/parametrar. Detta är ett bra ställe att börja om du vill effektivisera koden lite mer, eftersom det upprepar en massa vad används tidigare (på min todo-lista)
Linjerna 239-255 (triggerDoorUnlock): visar motorn låsa upp dörren
-Förstå det här avsnittet har att göra med att veta uppförandet av en h-bron, som dikterar riktningen av spänning över motorn. Kan du slå upp bladet speck för ditt chip för att förstå mer (detta var den en jag använd: http://html.alldatasheet.com/html-pdf/28616/TI/SN754410NE/24/1/SN754410NE.html)
Linjerna 257-272 (triggerDoorLock): kör motorn i omvänd att låsa dörren
-Detta avsnitt också upprepar vissa koder och kan ha nytta lite städa upp.
Linjerna för 274-349 (validateKnock): kontroller om inspelade mönstret är en match till nyckel.
-Detta normaliserar varje knock till den längsta pausen och jämför de relativa intervallerna mellan smällar. Detta innebär att du kan göra samma mönster långsamt eller snabbt, och det bör fortfarande utlösa motorn.