Indholdsfortegnelse:

Arduino -baseret binær vækkeur: 13 trin (med billeder)
Arduino -baseret binær vækkeur: 13 trin (med billeder)

Video: Arduino -baseret binær vækkeur: 13 trin (med billeder)

Video: Arduino -baseret binær vækkeur: 13 trin (med billeder)
Video: Nixie Clock IN-18 in Granite Case, GPS Sync. Temperature, Slot Machine, Anti poisoningl GRA & AFCH 2024, Juli
Anonim
Image
Image

Af Basement EngineeringFølg mere af forfatteren:

DIY Laser People Counter
DIY Laser People Counter
Bygger en selvkørende båd (ArduPilot Rover)
Bygger en selvkørende båd (ArduPilot Rover)
Bygger en selvkørende båd (ArduPilot Rover)
Bygger en selvkørende båd (ArduPilot Rover)
Den perfekte sengelampe og telefon dock
Den perfekte sengelampe og telefon dock
Den perfekte sengelampe og telefon dock
Den perfekte sengelampe og telefon dock

Om: Hej, jeg hedder Jan og er skaber, jeg elsker at bygge og skabe ting, og jeg er også ret god til at reparere ting. Da jeg kan tro, jeg altid har elsket at skabe nye ting, og det er det, jeg bliver ved med at gøre indtil … Mere om Basement Engineering »

Hej, i dag vil jeg gerne vise dig, hvordan du bygger et af mine seneste projekter, mit binære vækkeur.

Der er masser af forskellige binære ure på internettet, men dette kan faktisk være det første, lavet af en stribe farverige adresserbare LED'er, der også har en alarmfunktion og berøringsknapper, til at indstille ting som tid og farve.

Lad ikke det komplicerede udseende skræmme dig væk. Med en lille forklaring er det faktisk ikke så svært at læse binært som det ser ud til. Og hvis du er villig til at lære noget nyt, vil jeg gerne hjælpe dig med at gøre det senere.

Lad mig fortælle dig lidt om historien bag dette projekt:

Jeg planlagde oprindeligt at bygge et "normalt" ur, der bruger LED'er som sine hænder, men jeg havde ikke nok LED'er ved hånden.

Sååå, hvad gør du, når du vil vise tiden med så få LED'er som muligt?

Du går binært, og det er præcis, hvad jeg gjorde her.

Dette ur er den tredje version af sin slags. Jeg byggede en meget enkel prototype lige efter, at projektidéen ramte mig og tog den med til Maker Faire i Hannover, for at se, hvad folk synes om den. Mens jeg var der, modtog jeg en masse meget positiv og interessant feedback samt forbedringsideer.

Resultatet af alle disse ideer og timer med at tænke, pille og programmere, er dette temmelig interessante udseende lille vækkeur, der har mange flere funktioner end version 1.0, og i dag skal vi gennemgå hvert trin i byggeprocessen, så du kan nemt bygge en selv.

Der er også en meget detaljeret video på Youtube, hvis du ikke vil læse alt.

Trin 1: Få dine ting

Få dine ting
Få dine ting
Få dine ting
Få dine ting
Få dine ting
Få dine ting

Her er en lille liste over alle de komponenter og værktøjer, du skal bruge til at bygge dit eget binære ur.

Elektronik:

  • 18 adresserbare Ws2811 LED'er (f.eks. Neopixels) på en strimmel med 60 LED'er pr. M (ebay)
  • Arduino Nano (med ATMega328 -processor) (ebay)
  • 1307 RTC -modul (ebay)
  • 4X kapacitive berøringsknapper (ebay)
  • bs18b20 digital temperatursensor (ebay)
  • LDR (ebay)
  • bærbar/smartphone -højttaler eller piezo -summer
  • 2222A NPN transistor (eller noget lignende)
  • mandlige overskrifter
  • vinklede kvindelige overskrifter (ebay)
  • 1kOhm modstand
  • 4, 7kOhm modstand
  • 10kOhm modstand
  • Ledninger
  • 7x5cm prototype PCB 24x18 huller (ebay)
  • sølvtråd (smykketråd) (ebay)
  • 90 ° mini usb -adapter (ebay)

Andre materialer

  • Vinylfolie
  • 4X 45 mm m4 flangehovedskruer (ebay)
  • 32X m4 metalskiver
  • 4X m4 låsemøtrik
  • 28X m4 møtrik
  • 4X 10 mm m3 PCB -standby i messing (ebay)
  • 8X 8 mm m3 skrue (ebay)
  • plade af aluminium
  • 2 mm ark mælkeagtig akryl
  • 2 mm ark klart akryl
  • 3 mm ark MDF
  • dobbeltsidet tape

Værktøjer

  • mini USB kabel
  • computer, der kører Arduino IDE
  • 3, 5 mm bor
  • 4, 5 mm bor
  • motorboremaskine
  • skærekniv
  • håndteringssav
  • lodning ion
  • skæresaks i metal
  • fil
  • sandpapir

Skabeloner (nu med dimensioner)

  • PDF
  • Libre Office Draw

Kode

  • Skitser
  • Knap bibliotek
  • Timer bibliotek
  • Jukebox bibliotek
  • Ændret RTClib
  • Adafruit Neopixel bibliotek
  • Arduino-temperaturkontrol-bibliotek

Trin 2: Skær front- og bagpanelet

Skær front- og bagpanelet
Skær front- og bagpanelet
Skær front- og bagpanelet
Skær front- og bagpanelet
Skær front- og bagpanelet
Skær front- og bagpanelet
Skær front- og bagpanelet
Skær front- og bagpanelet

Det første stykke, vi skal lave, er frontpanelet i akryl. Vi markerer, hvor vi vil have vores nedskæringer, mens vi husker på, at vi ønsker en lille smule tolerance over for slibning. Så skraber vi simpelthen akrylen med vores skærekniv. Efter at vi har gjort det i 10 til 20 gange har vi en rille. Vi kan derefter placere den lund på kanten af et bord og bøje akrylen, indtil den går i stykker.

Efter at frontpanelet er skåret i størrelse, skærer vi bagpanelet ud af et stykke MDF. Vi kan bruge vores bearbejdningssav til dette, men en skærekniv virker også. Vi skal bare spænde MDF'en fast på et stykke træ og skrabe det med vores skærekniv, indtil bladet går igennem, og vi har to individuelle stykker.

Nu sandwicher vi de to paneler sammen og sliber hver side for at passe perfekt.

Når dette er gjort, skærer vi den første skabelon ud og sætter den på de to paneler ved hjælp af lidt tape og begynder at bore de markerede huller.

Først borer vi et hul på 4, 5 mm i hvert af de 4 hjørner. Da akrylen er meget sprød, og vi ikke vil have den til at gå i stykker, starter vi med et lille bor og arbejder os op, indtil vi når den ønskede huldiameter. Derefter bruger vi skabelonen til at slibe hjørnerne til den rigtige form.

Trin 3: Afslut bagpanelet

Afslut bagpanelet
Afslut bagpanelet
Afslut bagpanelet
Afslut bagpanelet
Afslut bagpanelet
Afslut bagpanelet
Afslut bagpanelet
Afslut bagpanelet

For nu kan vi lægge frontpanelet til side og stikke den anden skabelon på bagpanelet, hvor vi skal bruge et 3, 5 mm bor til at bore hullerne til vores 4 pcb standoffs, samt 4 huller, der markerer kanterne til det lille bagrude.

Vi bruger derefter vores copingsav til at skære vinduet ud og glatte kanterne med en fil. Du vil heller ikke glemme at bore hullet til mini USB -kablet (jeg hørte om en ikke så fokuseret maker, der har tendens til at gøre sådanne ting: D).

Da vi nu er færdige med at skære bagpanelet, kan vi fortsætte med at pakke det ind i vinylfolie. Vi skærer ganske enkelt to stykker til den rigtige størrelse og anvender det første på den ene side. Derefter skærer vi fælgene væk og frigør vinduet. En hårtørrer kan hjælpe med at gøre alle hullerne synlige igen, så vi også kan skære dem ud. Efter at have gjort det samme for den anden side bruger vi vores næste skabelon og vores skrabe- og brudteknik til at lave det lille akrylvindue til vores bagpanel.

Trin 4: Lav LED -panelet

Lav LED -panelet
Lav LED -panelet
Lav LED -panelet
Lav LED -panelet
Lav LED -panelet
Lav LED -panelet

Nu kommer vi til højdepunktet i dette projekt, i den mest bogstavelige forstand. LED -panelet.

Vi bruger vores metalsaks til at klippe et stykke på 12, 2 cm x 8 cm ud af et metalplade. Vær forsigtig, mens du gør dette, da saksen skaber meget skarpe kanter. Vi vil udjævne dem med vores fil og noget sandpapir. Derefter tilføjer vi vores næste skabelon til at bore huller til skruerne og ledningerne.

Tid til at forberede de faktiske LED'er.

Først skærer vi dem i tre strimler med hver 6 LED'er. Nogle af LED -strimlerne leveres med et meget tyndt klæbende lag eller slet ikke klæbemiddel, så vi kommer til at klæbe vores strimler på et stykke dobbeltklæbende tape og skære det i størrelse med en kniv. Dette får det til at klæbe til metalpladen og, selvom dette ikke er en professionel løsning, vil det isolere kobberpuderne fra metaloverfladen nedenunder.

Inden vi rent faktisk sætter strimlerne på panelet, renser vi det med alkohol. Mens vi fastgør LED'erne, skal vi sikre os, at vi lægger dem ned på det rigtige sted såvel som i den rigtige retning. De små pile på LED -strimlen angiver retningen, i hvilken data bevæger sig gennem strimlen.

Som du kan se på det femte billede, kommer vores datalinje fra panelets øverste venstre hjørne, går gennem den første strimmel helt til højre side, end tilbage til begyndelsen af den følgende strimmel til venstre og så videre. Så alle vores pile skal pege til højre side.

Lad os varme vores loddeion op og sætte noget tin på kobberpuderne samt på vores ledning. Datalinjerne er forbundet som jeg lige har beskrevet, mens vi simpelthen tilslutter plus- og minuspuderne på strimlen parallelt.

Når strimlerne er kablet op, bruger vi vores kniv til forsigtigt at løfte enderne af hver strimmel, mens vi holder LED'erne nede, så de stadig peger opad. Derefter lagde vi lidt varm lim under for at isolere vores lodninger.

Når dette er gjort, og tilføjer vi et par header pins til de ledninger, der går til printkortet. Disse ledninger skal være omkring 16 cm lange. For at være ekstra sikker på, at metalpanelet ikke kortslutter noget, bruger vi et multimeter til at måle modstanden mellem alle stifterne. Hvis det viser noget over 1kOhm, er alt fint.

Nu kan vi tilslutte den til en Arduino, køre en strandtest og nyde farverne.

Trin 5: Lav en lysguide

Lav en lysguide
Lav en lysguide
Lav en lysguide
Lav en lysguide
Lav en lysguide
Lav en lysguide
Lav en lysguide
Lav en lysguide

Hvis vi placerer vores LED -panel lige bag den mælkeagtige akryl, kan det blive ret vanskeligt at skelne mellem individuelle LED'er. Dette ville gøre vores ur endnu sværere at læse, end det allerede er.

For at løse dette problem vil vi lave os selv til en lille lysguide. Til dette skærer vi simpelthen et andet stykke MDF ud, der har samme størrelse som frontpanelet. Derefter tilføjer vi endnu en skabelon til den og borer atten 3, 5 mm huller til LED'erne samt fire 4, 5 mm huller til skruerne i den. Vi kan derefter klemme det ned på frontpanelet og bruge noget sandpapir til at justere de to.

Som du kan se på det sidste billede, ser lyset meget mere fokuseret ud nu.

Trin 6: Lav knaprammen

Lav knaprammen
Lav knaprammen
Lav knaprammen
Lav knaprammen
Lav knaprammen
Lav knaprammen

Den sidste kabinetkomponent, som vi skal lave, er knaprammen.

Vi, igen, skærer vi et stykke MDF til den rigtige størrelse og tilføjer en skabelon til det, så borer vi alle de nødvendige huller og bruger vores copingsav til at skære den midterste sektion ud.

Vores ramme skal holde de 4 berøringsknapper, lyssensoren og vores lille højttaler på plads. Inden vi kan fastgøre dem til rammen, skærer vi et par mindre dækstykker ud af MDF. Vi limer derefter vores komponenter på disse dæksler og tilføjer ledninger til dem.

Berøringsknappens strømpuder er tilsluttet parallelt, mens hver udgangslinje får en individuel ledning. Dette er også et godt tidspunkt at teste, om de alle arbejder. Da lyssensoren har brug for 5 volt på den ene side, kan vi simpelthen tilslutte den til alarmknapperne VCC -pude og lodde en ledning til det andet ben.

Efter at panelerne er forberedt, skærer vi ind i siderne af rammen for at give plads til dem og deres ledninger.

Derefter fjerner vi træstøv fra alle stykker med en støvsuger og dækker dem i vinylfolie.

Vi bruger præcisionskniven til at fjerne stykker af vinylen, direkte over de følsomme områder af vores berøringsmoduler. Med noget dobbeltsidet tape kan vi end vedhæfte vores egne knapper til MDF. Jeg lavede mine knapper af gummiskum, hvilket giver dem en flot, blød tekstur, men du kan bruge ethvert ikke-metallisk materiale, du ønsker.

På rammen bruger vi vores kniv til at frigøre en lille smule MDF igen, hvilket giver os en grebagtig overflade til hotlim. Så kan vi endelig lime komponenterne til siderne af vores stel.

Trin 7: Lodd hovedprintet

Lod den vigtigste PCB
Lod den vigtigste PCB
Lod den vigtigste PCB
Lod den vigtigste PCB
Lod den vigtigste PCB
Lod den vigtigste PCB

Lad os forlade rammen, som den er lige nu, og gå videre til printkortet. Du kan se PCB -layoutet på det første billede.

Vi starter med at placere komponenterne med den laveste profil på printkortet. De mindste komponenter er trådbroerne, som jeg huskede lidt for sent, så jeg startede med modstandene. Vi lodder vores komponenter på plads og går videre til det næste højere sæt komponenter.

Dernæst har vi vores kvindelige header pins. For at spare plads og for at kunne tilslutte vores elektronik fra siden monterer vi dem i en 90 graders vinkel.

Transistorer passer ikke rigtig til 2, 54 mm hulafstand på vores printkort, så vi bruger vores tang til forsigtigt at bøje benene til den form, der er vist på det andet billede. Vi lodder først et af deres ben på plads og vender printet rundt. Vi genopvarmer derefter loddetappen og bruger vores finger eller en tang til at placere komponenten korrekt. Nu kan vi lodde de to andre ben på plads.

Efter alle de små komponenter lodder vi vores Arduino og vores ur -modul i realtid på plads. RTC -modulet passer heller ikke så godt til hulafstanden, så vi vil kun udstyre den side, der har 7 loddepuder med hovedstifter. Vi lægger desuden noget tape under det for at forhindre kortslutninger.

Da alle vores komponenter er loddet på plads, er det nu tid til at foretage forbindelserne på den anden side af brættet. Til dette tager vi vores uisolerede ledning ud. En tang kan bruges til at rette den op. Derefter skærer vi tråden i mindre stykker og lodder den til printkortet.

For at oprette en forbindelse opvarmer vi en loddeforbindelse og indsætter tråden. Vi beholder derefter loddeionen på den, indtil den når den rigtige temperatur, og loddetin omslutter den, og vi får en samling, der ligner den på billedet. Hvis vi ikke opvarmer tråden, kan vi ende med en kold samling, der ligner det andet eksempel og ikke fungerer særlig godt. Vi kan bruge vores trådskærer til at skubbe tråden ned under lodning og sikre, at den ligger fladt på printet. På længere forbindelsesstier loddes den til en enkelt pude hvert 5. til 6. hul, indtil vi når et hjørne eller den næste komponent.

I et hjørne klipper vi tråden over den første halvdel af en loddepude og lodder enden til den. Vi tager derefter et nyt stykke ledning og fortsætter derfra i en ret vinkel.

At lave disse tomme ledningsforbindelser er ret vanskelig og kræver nogle færdigheder, så hvis du gør dette for første gang, er det bestemt ikke en dårlig idé at øve det på et skrotprint, før du forsøger at gøre det på den rigtige.

Når vi er færdige med lodning, kontrollerer vi forbindelserne igen og sørger for, at vi ikke producerede nogen kortslutninger. Derefter kan vi lægge printkortet inde i knaprammen og bruge det som en reference til de nødvendige rammeledningslængder. Vi skærer derefter disse ledninger i den rigtige længde og tilføjer hanstik til ham.

Alle 5V- og jordforbindelser på berøringsknapperne samles til et 2 -polet stik, De 4 udgangstråde får et 4pin -stik og lyssensorlinjen samt de to højttalerkabler fusioneret til et trepolet stik. Glem ikke at markere den ene side af hver stikkontakt og stik med en skærm eller noget tape, så du ikke ved et uheld sætter dem i den forkerte måde.

Trin 8: Saml uret

Saml uret
Saml uret
Saml uret
Saml uret
Saml uret
Saml uret
Saml uret
Saml uret

Herefter gik jeg tilbage til frontpanelet og lagde omhyggeligt et klistermærke, lavet af gennemsigtig laserprinterfolie, som en sidste berøring.

Selvom jeg påførte det meget omhyggeligt, kunne jeg ikke få et boblefrit resultat, som desværre er tydeligt synligt ved nærmere eftersyn. Folien klæber heller ikke særlig godt til hjørnerne, så jeg kan ikke rigtig anbefale denne løsning.

Det kunne sandsynligvis gøres med et bedre klistermærke, eller hvis du er god til at tegne, kan du tilføje tallene med en skarp.

Nu har vi alle komponenterne og kan samle vores ur.

Vi starter med at sætte lyslederen og frontpanelet sammen. Når alle 4 bolte er sat i, justerer vi de to paneler og strammer dem derefter. Et par nødder senere kommer lyspanelet, hvor vi skal se på retningen. Kablet skal være øverst.

Det tredje stykke er knaprammen. Husk, at når du ser fra forsiden, skal højttaleren være på højre side af uret. Træk kablet på dit LED -panel gennem midten af rammen, før du fastgør det på plads.

Nu sætter vi forsiden sammen og går videre til bagpanelet. På billedet kan du også se min smukke, selvfremstillede 90 graders mini USB -adapter. Jeg knyttede dig en ordentlig adapter, så du behøver ikke at håndtere denne slags rod. Du kan simpelthen tilslutte din adapter og føre kablet gennem et hul i bagpanelet.

Vi tager vores M3 -skruer og vores PCB -afstandsstykker for at reparere det lille vindue. Det er vigtigt at stramme skruerne omhyggeligt, da vi ikke ønsker at beskadige vores akryl. Derefter tager vi vores printkort, tilslutter vores adapter og skruer det på afstandsstykkerne. Komponentsiden skal vende mod vinduet, mens Arduino USB -port vender mod bunden af uret.

Derefter tilslutter vi alle konnektorer fra frontenheden, mens vi holder polariteten i tankerne og klemmer forsigtigt alle ledninger ind i uret. Vi kan derefter lukke det op med bagpanelet og stramme de 4 resterende låsemøtrikker.

Til sidst vil du have en vaskemaskine på hver side af hvert panel, mens lysføreren er placeret direkte bag frontpanelet. Vi har en møtrik mellem lyslederen og LED -panelet og to mere, der adskiller den fra knaprammen. Det kan du også se på det sidste billede.

Da jeg brugte korte bolte med en længde på 40 mm, har jeg kun 3 møtrikker, der holder bagpanelet og rammen fra hinanden. Med de rigtige 45 mm bolte vil du tilføje en anden møtrik her, samt en eller to ekstra skiver. I slutningen af samlingen har vi vores låsemøtrik, så alt forbliver på plads.

Trin 9: Upload koden, og kalibrer lyssensoren

Upload koden og kalibrer lyssensoren
Upload koden og kalibrer lyssensoren
Upload koden og kalibrer lyssensoren
Upload koden og kalibrer lyssensoren
Upload koden og kalibrer lyssensoren
Upload koden og kalibrer lyssensoren

Tid til at uploade vores kode.

Først downloader vi alle de nødvendige filer og pakker dem ud. Vi åbner derefter vores Arduino biblioteksmappe og dropper alle de nye biblioteker i den.

Nu åbner vi lyssensorkalibreringsskitsen, som får os de lyse og mørke værdier for urets automatiske dæmperfunktion. Vi uploader det, åbner den serielle skærm og følger instruktionerne på skærmen.

Når det er gjort, åbner vi den faktiske kode for binære ure og erstatter de to værdier med dem, vi lige har målt.

Vi lukker alle andre vinduer, uploader koden til vores ur, og vi er færdige.

Tid til at lege med vores nye gadget.

Trin 10: En hurtig introduktion til det binære system

En hurtig introduktion til det binære system
En hurtig introduktion til det binære system
En hurtig introduktion til det binære system
En hurtig introduktion til det binære system
En hurtig introduktion til det binære system
En hurtig introduktion til det binære system
En hurtig introduktion til det binære system
En hurtig introduktion til det binære system

Inden vi går videre vil jeg gerne besvare det ene spørgsmål, der sandsynligvis allerede er gået gennem dit sind, "Hvordan i alverden læser du dette ur?"

Nå, for dette vil jeg gerne give dig en kort introduktion til det binære system.

Vi kender alle decimalsystemet, hvor hvert ciffer kan have 10 forskellige tilstande, der spænder fra 0 til 9. I binært kan hvert ciffer kun have to tilstande, enten 1 eller 0, derfor kan du bruge noget så simpelt som et led til vise et binært tal.

For at vise tal, der er rive end 9 i decimal, tilføjer vi flere cifre. Hvert ciffer kommer med en bestemt multiplikator. Det første ciffer fra højre kommer med en multiplikator på 1 den næste er 10 og den næste er 100. Med hvert nyt ciffer er multiplikatoren ti gange så stor som den i cifret før. Så vi ved, at tallet to placerede et ciffer til venstre, repræsenterer tallet 20. Mens to cifre til venstre repræsenterer det 200.

I det binære system kommer hvert ciffer også med en multiplikator. Men da hvert ciffer kun kan have to forskellige tilstande, er hver ny multiplikator to gange så stor som den forrige. Åh og i øvrigt kaldes binære cifre Bits. Så lad os se på vores første eksempel, hvis vi placerer et 1 på den laveste position, er det et simpelt 1, men hvis vi placerer det på den næste højere position, hvor vores multiplikator er 2, repræsenterer det tallet 2 i binært.

Hvad med det lidt mere vanskelige eksempel i bunden af billedet. Den tredje og den første bit er tændt. For at få det decimaltal, der er repræsenteret her, tilføjer vi ganske enkelt værdierne for de to bits. Så 4 * 1 + 1 * 1 eller 4 + 1 giver os tallet 5.

8 bits kaldes en byte, så lad os se, hvilket tal vi får, hvis vi fylder en hel byte med dem.1+2+4+8+16+32+64+128, der er 255, hvilket er den højeste værdi, en enkelt byte kan have.

Forresten, mens cifret med den højeste multiplikator altid kommer først i decimalsystemet, har du to måder at skrive et tal ned i binært. Disse to metoder kaldes mindst signifikant byte først (LSB) og mest signifikant byte først (MSB). Hvis du vil læse et binært tal, skal du vide, hvilket af de to formater der bruges. Da det er tættere på decimalsystemet, bruger vores binære ur MSB -varianten.

Lad os vende tilbage til vores virkelige eksempel. Som fremhævet på det sjette billede har vores ur 4 bits til at vise timen. End vi har 6 bit for minuttet og også 6 bit for det andet. Yderligere har vi en enkelt am/pm bit.

Okay, fortæl mig hvad klokken er på det 6. billede, end spring til det sidste.. ….

i timeafsnittet har vi 2+1 som er 3 og pm -bit er tændt, så det er aften. Dernæst i minuttet 32+8, det vil sige 40. I sekunderne har vi 8+4+2, som er 14. Så det er 15:40:14 eller 15:40:14.

Tillykke, du har lige lært at læse et binært ur. Selvfølgelig tager det lidt tilvænning, og i begyndelsen bliver du nødt til at lægge tallene sammen, hver gang du vil vide, hvad klokken er, men ligner et analogt ur uden en urskive, vænner du dig til LED'ens mønstre over tid.

Og det er en del af det, dette projekt handler om, at tage noget så abstrakt som det binære system ud i den virkelige verden og lære det bedre at kende.

Trin 11: Brug af det binære vækkeur

Brug af det binære vækkeur
Brug af det binære vækkeur
Brug af det binære vækkeur
Brug af det binære vækkeur
Brug af det binære vækkeur
Brug af det binære vækkeur

Nu vil vi endelig lege med uret, så lad os tage et hurtigt kig på kontrollerne.

Softwaren kan skelne mellem et enkelt knap, et dobbelt tryk og et langt tryk. Så hver knap kan bruges til flere handlinger.

Et dobbelt tryk på op eller ned -knappen ændrer LED'ens farvetilstand. Du kan vælge mellem forskellige statiske og falmende farvetilstande samt en temperaturtilstand. Hvis du er i en af de statiske farvetilstande, ændres farven ved at holde op- eller ned -knappen nede. I en fading -tilstand ændrer et enkelt tryk animationshastigheden.

For at indstille dæmpertilstand skal du dobbelttrykke på knappen ok. LED -panelet angiver den indstillede tilstand ved at blinke flere gange.

  • Én gang betyder ingen dæmper.
  • To gange betyder, at lysstyrken styres af lyssensoren.
  • Tre gange, og lysdioderne slukkes automatisk efter 10 sekunders inaktivitet.
  • Fire gange og begge dimmer -tilstande kombineres.

Langt tryk på ok -knappen bringer dig ind i tidsindstillingstilstanden, hvor du kan bruge pil op og ned til at ændre nummeret. Et enkelt tryk på ok -knappen bringer dig fra timerne til minutterne, et tryk mere, og du kan indstille sekunderne. Derefter sparer et sidste tryk den nye tid. Hvis du accedentialy går ind i tidsindstillingstilstanden, kan du blot vente i 10 sekunder, og uret forlader det automatisk.

Som med ok -knappen kan du indstille alarmen ved at trykke længe på alarmknappen. Dobbelttryk på alarmknappen aktiverer eller deaktiverer alarmen.

Hvis uret ringer, trykker du enkelt på alarmknappen, for at sende det i dvale i 5 minutter eller holde det nede for at deaktivere frakobling af alarmen.

Disse var alle de funktioner, uret har indtil videre. Jeg tilføjer måske mere i fremtiden, som du kan få, hvis du downloader den nyeste firmwareversion.

Trin 12: Forståelse af koden (valgfrit)

Forståelse af koden (valgfrit)
Forståelse af koden (valgfrit)

Jeg ved, at mange mennesker ikke kan lide at programmere særlig meget. Heldigvis for disse mennesker kræves der næsten ingen programmeringskendskab for at bygge og bruge dette binære ur. Så hvis du er ligeglad med programmeringssiden, kan du simpelthen springe dette trin over.

Men hvis du er interesseret i kodningsdelen, vil jeg gerne give dig et generelt overblik over programmet.

At forklare hver lille detalje i urkoden ville være en instruerbar på egen hånd, så jeg vil holde det enkelt ved at forklare programmet på en objektorienteret måde.

Hvis du ikke ved, hvad det betyder, er objektorienteret programmering (OOP) et koncept for de fleste moderne programmeringssprog som C ++. Det giver dig mulighed for at organisere forskellige funktioner og variabler i såkaldte klasser. En klasse er en skabelon, hvorfra du kan oprette et eller flere objekter. Hvert af disse objekter får et navn, og det har sit eget sæt variabler.

F.eks. Bruger urets kode et par MultiTouchButton -objekter, f.eks. AlarmButton. Det er objekter fra klassen MultiTouchButton, som er en del af mit Button -bibliotek. Det fede ved disse objekter er, at du kan interagere med dem, der ligner objekter i den virkelige verden. For eksempel kan vi kontrollere, om alarmknappen blev dobbeltklikket ved at kalde alarmButton.wasDoubleTapped (). Desuden er implementeringen af denne funktion pænt skjult i en anden fil, og vi behøver ikke bekymre os om at bryde den ved at ændre noget andet i vores kode. En hurtig adgang til verden af objektorienteret programmering findes på Adafruit -webstedet.

Som du kan se i grafikken ovenfor, har urprogrammet en masse forskellige objekter.

Vi har lige talt om knapobjekterne, som kan tolke indgangssignaler som et tryk, et dobbelt tryk eller et langt tryk.

Jukeboxen kan, som navnet antyder, larme. Det har flere melodier, der kan afspilles gennem en lille højttaler.

BinaryClock -objektet administrerer tid og alarmindstilling samt alarmovervågning. Det får desuden tiden fra rtc -modulet og konverterer det til en binær informationsbuffer for ledPanel.

ColorController indkapsler alle farveeffektfunktionerne og leverer colorBuffer til ledPanel. Det sparer også dens tilstand i Arduinos EEProm.

Dæmperen tager sig af urets lysstyrke. Det har forskellige tilstande, som brugeren kan cykle igennem. Den aktuelle tilstand gemmes også i EEProm.

LedPanel administrerer forskellige buffere for farveværdi, lysstyrkeværdi og binær tilstand for hver LED. Når pushToStrip () -funktionen kaldes, overlejrer den dem og sender dem til ledstrimlen.

Alle objekterne er "forbundet" via main (filen med opsætnings- og loop -funktionerne), der kun indeholder et par funktioner til at udføre 3 væsentlige opgaver.

  1. Fortolkning af brugerinput - Det henter input fra de 4 knapobjekter og sætter dem igennem en logik. Denne logik kontrollerer urets aktuelle tilstand for at afgøre, om uret er i normal, tidsindstilling eller ringetilstand og kalder forskellige funktioner fra de andre objekter i overensstemmelse hermed.
  2. Håndtering af kommunikation mellem objekter - Det spørger konstant om det binære urobjekt, om det har nye oplysninger til rådighed, eller om alarmen ringer (). Hvis den har ny information, henter den informationBuffer fra binaryClock og sender den til ledPanel -objektet. Hvis uret ringer, starter det jukeboksen.
  3. Opdatering af objekter - Hvert af programmets objekter har en opdateringsprocedure, der bruges til ting som at kontrollere input eller ændre lysdiodernes farver. Disse skal kaldes gentagne gange i loop -funktionen, for at uret kan fungere korrekt.

Det skulle give dig en generel forståelse af, hvordan de enkelte stykke kode fungerer sammen. Hvis du har mere specifikke spørgsmål, kan du bare stille mig.

Da min kode absolut ikke er perfekt, vil jeg forbedre den yderligere i fremtiden, så et par funktioner kan ændre sig. Det fede ved OOP er, at det stadig vil fungere på en meget lignende måde, og du kan stadig bruge grafikken til at forstå det.

Trin 13: Afsluttende ord

Endelige ord
Endelige ord

Jeg er glad for, at du blev ved med at læse til dette punkt. Det betyder, at mit projekt ikke var for kedeligt:).

Jeg lagde masser af arbejde i dette lille ur og endnu mere arbejde i al dokumentation og video for at gøre det let for dig at bygge dit eget binære vækkeur. Jeg håber, min indsats var det værd, og jeg kunne tilslutte dig en god idé til dit næste weekendprojekt eller i det mindste give dig lidt inspiration.

Jeg ville elske at høre, hvad du synes om uret i kommentarerne herunder:).

Selvom jeg forsøgte at dække alle detaljer, kunne jeg have savnet en ting eller to. Så spørg endelig, hvis der er spørgsmål tilbage.

Som altid, mange tak for læsning og glad for at lave.

LED konkurrence 2017
LED konkurrence 2017
LED konkurrence 2017
LED konkurrence 2017

Runner Up i LED -konkurrencen 2017

Anbefalede: