Innehållsförteckning:

Arduino -baserat binärt väckarklocka: 13 steg (med bilder)
Arduino -baserat binärt väckarklocka: 13 steg (med bilder)

Video: Arduino -baserat binärt väckarklocka: 13 steg (med bilder)

Video: Arduino -baserat binärt väckarklocka: 13 steg (med bilder)
Video: #Распаковка на моём канале. Arduino Mega2560, TFTLcd Shield часы настольные ... 2024, Juli
Anonim
Image
Image

Av Basement EngineeringFölj mer av författaren:

DIY Laser People Counter
DIY Laser People Counter
Bygga en självkörande båt (ArduPilot Rover)
Bygga en självkörande båt (ArduPilot Rover)
Bygga en självkörande båt (ArduPilot Rover)
Bygga en självkörande båt (ArduPilot Rover)
Den perfekta sänglampan och telefonbryggan
Den perfekta sänglampan och telefonbryggan
Den perfekta sänglampan och telefonbryggan
Den perfekta sänglampan och telefonbryggan

Om: Hej, jag heter Jan och är tillverkare, jag älskar att bygga och skapa saker och jag är också ganska bra på att reparera saker. Eftersom jag kan tro att jag alltid har älskat att skapa nya saker och det är vad jag fortsätter att göra tills … Mer om Basement Engineering »

Hallå, idag skulle jag vilja visa dig hur du bygger ett av mina senaste projekt, min binära väckarklocka.

Det finns massor av olika binära klockor på internet, men det här kan faktiskt vara den första, gjord av en rad färgglada adresserbara lysdioder, som också har en larmfunktion och tryckknappar, för att ställa in saker som tid och färg.

Låt inte det komplicerade utseendet skrämma bort dig. Med en liten förklaring är det faktiskt inte så svårt att läsa binärt som det verkar. Och om du är villig att lära dig något nytt, skulle jag vilja hjälpa dig att göra det senare.

Låt mig berätta lite om historien bakom detta projekt:

Jag planerade ursprungligen att bygga en "normal" klocka som använder lysdioder som sina händer, men jag hade inte tillräckligt med lysdioder till hands.

Sååå, vad gör du när du vill visa tiden med så få lysdioder som möjligt?

Du går binärt, och det är precis vad jag gjorde här.

Denna klocka är den tredje versionen av sitt slag. Jag byggde en mycket enkel prototyp direkt efter att projektidén slog mig och tog den till Maker Faire i Hannover för att se vad folk tycker om den. Medan jag var där fick jag mycket positiv och intressant feedback samt förbättringsidéer.

Resultatet av alla dessa idéer och timmar av tänkande, pyssel och programmering är den här ganska intressanta lilla väckarklockan, som har många fler funktioner än version 1.0 och idag ska vi gå igenom varje steg i byggprocessen, så att du kan enkelt bygga en själv.

Det finns också en mycket detaljerad video på Youtube, om du inte vill läsa allt.

Steg 1: Skaffa dina saker

Skaffa dina saker
Skaffa dina saker
Skaffa dina saker
Skaffa dina saker
Skaffa dina saker
Skaffa dina saker

Här är en liten lista över alla komponenter och verktyg som du kommer att behöva för att bygga din egen binära klocka.

Elektronik:

  • 18 adresserbara Ws2811 lysdioder (t.ex. Neopixels) på en remsa med 60 lysdioder per m (ebay)
  • Arduino Nano (med ATMega328 -processor) (ebay)
  • 1307 RTC -modul (ebay)
  • 4X kapacitiva touchknappar (ebay)
  • bs18b20 digital temperaturgivare (ebay)
  • LDR (ebay)
  • bärbar dator/smartphone -högtalare eller piezo -summer
  • 2222A NPN -transistor (eller något liknande)
  • manliga rubriker
  • vinklade kvinnliga rubriker (ebay)
  • 1kOhm motstånd
  • 4, 7kOhm motstånd
  • 10kOhm motstånd
  • Trådar
  • 7x5cm prototyper PCB 24x18 hål (ebay)
  • silvertråd (smyckestråd) (ebay)
  • 90 ° mini usb -adapter (ebay)

Andra material

  • Vinylfolie
  • 4X 45 mm m4 flänsskruvar (ebay)
  • 32X m4 brickor av metall
  • 4X m4 låsmutter
  • 28X m4 mutter
  • 4X 10mm m3 PCB -avstånd i mässing (ebay)
  • 8X 8 mm m3 skruv (ebay)
  • aluminiumplåt
  • 2 mm ark mjölkaktig akryl
  • 2 mm ark av klar akryl
  • 3 mm ark MDF
  • dubbelsidig tejp

Verktyg

  • mini USB -kabel
  • dator som kör Arduino IDE
  • 3, 5 mm borr
  • 4, 5 mm borr
  • borrmaskin
  • skärkniv
  • hanteringssåg
  • lödjon
  • skärningssax i metall
  • fil
  • sandpapper

Mallar (nu med mått)

  • PDF
  • Libre Office Draw

Koda

  • Skisser
  • Knappbibliotek
  • Timerbibliotek
  • Jukebox -bibliotek
  • Modifierad RTClib
  • Adafruit Neopixel bibliotek
  • Arduino-temperaturkontroll-bibliotek

Steg 2: Klipp fram- och bakpanelen

Klipp fram- och bakpanelen
Klipp fram- och bakpanelen
Klipp fram- och bakpanelen
Klipp fram- och bakpanelen
Klipp fram- och bakpanelen
Klipp fram- och bakpanelen
Klipp fram- och bakpanelen
Klipp fram- och bakpanelen

Det första stycket vi ska göra är akrylfrontpanelen. Vi markerar var vi vill att våra snitt ska gå, med tanke på att vi vill ha lite tolerans för slipning. Sedan skrapar vi helt enkelt akrylen med vår skärkniv. Efter att vi har gjort det i 10 till 20 gånger har vi ett spår. Vi kan sedan placera den där lunden på kanten av ett bord och böja akrylen tills den går sönder.

Efter att frontpanelen har klippts till i storlek skär vi bakpanelen ur en bit MDF. Vi kan använda vår hanteringssåg för detta men en skärkniv fungerar också. Vi måste bara klämma fast MDF på ett träskrot och skrapa det med vår skärkniv tills bladet går igenom och vi har två enskilda bitar.

Nu smörjer vi ihop de två panelerna och slipar varje sida så att de passar perfekt.

När detta är gjort skär vi ut den första mallen och lägger den på de två panelerna med lite tejp och börjar borra de markerade hålen.

Först borrar vi ett 4, 5 mm hål i vart och ett av de 4 hörnen. Eftersom akrylen är mycket spröd och vi inte vill att den ska gå sönder, börjar vi med en liten borr och jobbar oss upp tills vi når önskad håldiameter. Sedan använder vi mallen för att slipa hörnen till rätt form.

Steg 3: Avsluta den bakre panelen

Avsluta den bakre panelen
Avsluta den bakre panelen
Avsluta den bakre panelen
Avsluta den bakre panelen
Avsluta den bakre panelen
Avsluta den bakre panelen
Avsluta den bakre panelen
Avsluta den bakre panelen

För tillfället kan vi lägga frontpanelen åt sidan och fästa den andra mallen på bakpanelen, där vi måste använda en 3, 5 mm borr för att borra hålen för våra 4 PCB -distanser samt 4 hål som markerar kanterna för det lilla bakrutan.

Vi använder sedan vår hanteringssåg för att klippa ut fönstret och släta ut kanterna, med en fil. Du vill inte heller glömma att borra hålet för mini -USB -kabeln (jag hörde talas om en inte så fokuserad tillverkare som tenderar att göra sådana saker: D).

Eftersom vi nu är färdiga med att klippa den bakre panelen kan vi fortsätta att linda den i vinylfolie. Vi skär helt enkelt två bitar till rätt storlek och applicerar den första på ena sidan. Sedan skär vi bort fälgarna och frigör fönstret. En hårtork kan hjälpa till att göra alla hål synliga igen, så vi kan också klippa ut dem. Efter att ha gjort samma sak för andra sidan använder vi vår nästa mall och vår skrapa- och rastteknik för att göra det lilla akrylfönstret för vår bakpanel.

Steg 4: Gör LED -panelen

Gör LED -panelen
Gör LED -panelen
Gör LED -panelen
Gör LED -panelen
Gör LED -panelen
Gör LED -panelen

Nu kommer vi höjdpunkten i detta projekt, i bokstavlig mening. LED -panelen.

Vi använder vår metallskärsax för att klippa en bit på 12, 2 cm x 8 cm ur ett plåt. Var försiktig när du gör detta, eftersom saxen skapar mycket skarpa kanter. Vi ska släta ut dem med vår fil och lite sandpapper. Sedan lägger vi till vår nästa mall för att borra hål för skruvarna och trådarna.

Dags att förbereda de faktiska lysdioderna.

Först skär vi dem i tre remsor med 6 lysdioder vardera. Några av LED -remsorna har ett mycket tunt limskikt eller inget lim alls, så vi ska fästa våra remsor på en bit dubbelsidig tejp och skära den i storlek med en kniv. Detta kommer att få det att hålla fast vid metallplattan och, även om detta inte är en professionell lösning, kommer det att isolera kopparkuddarna från metallytan under.

Innan vi faktiskt klistrar remsorna på panelen rengör vi den med alkohol. Medan vi fäster lysdioderna måste vi se till att vi lägger ner dem på rätt plats såväl som i rätt riktning. De små pilarna på LED -remsan indikerar i vilken riktning data går genom remsan.

Som du kan se på den femte bilden kommer vår datalinje från panelens övre vänstra hörn, går genom den första remsan hela vägen till höger sida, än tillbaka till början av följande remsa till vänster och så vidare. Så alla våra pilar måste peka på höger sida.

Låt oss värma upp vår lödjon och lägga lite tenn på kopparkuddarna, liksom på vår tråd. Datalinjerna är anslutna som jag just beskrev, medan vi helt enkelt kopplar ihop plus- och minusplattorna på remsan parallellt.

Efter att remsorna är anslutna använder vi vår kniv för att försiktigt lyfta ändarna på varje remsa medan LED -lamporna hålls nere, så att de fortfarande pekar uppåt. Sedan lägger vi lite varmt lim under för att isolera våra lödfogar.

När detta är gjort och lägger vi till några rubrikstift till trådarna som går till kretskortet. Dessa trådar bör vara cirka 16 cm långa. För att vara extra säker på att metallpanelen inte kortar något använder vi en multimeter för att mäta motståndet mellan alla stiften. Om det visar något över 1kOhm är allt bra.

Nu kan vi ansluta den till en Arduino, köra ett strandtest och njuta av färgerna.

Steg 5: Gör en ljusguide

Gör en ljusguide
Gör en ljusguide
Gör en ljusguide
Gör en ljusguide
Gör en ljusguide
Gör en ljusguide
Gör en ljusguide
Gör en ljusguide

Om vi lägger vår LED -panel precis bakom den mjölkiga akrylen kan det bli ganska knepigt att skilja isär enskilda lysdioder. Detta skulle göra vår klocka ännu svårare att läsa än vad den redan är.

För att lösa detta problem kommer vi att göra oss en liten ljusguide. För detta skär vi helt enkelt ut ytterligare en bit MDF, som har samma storlek som frontpanelen. Sedan lägger vi till ännu en mall till den och borrar arton 3, 5 mm hål för lysdioderna, samt fyra 4, 5 mm hål för skruvarna i den. Vi kan sedan klämma fast den på frontpanelen och använda lite sandpapper för att rikta in de två.

Som du kan se på den sista bilden verkar ljuset mycket mer fokuserat nu.

Steg 6: Gör knappramen

Gör knappramen
Gör knappramen
Gör knappramen
Gör knappramen
Gör knappramen
Gör knappramen

Den sista kapslingskomponenten, som vi ska göra, är knappramen.

Vi, en igen, skär en bit MDF till rätt storlek och lägger till en mall till den, sedan borrar vi alla nödvändiga hål och använder vår hanteringssåg för att skära ut mittdelen.

Vår ram är tänkt att hålla de 4 peksknapparna, ljussensorn och vår lilla högtalare på plats. Innan vi kan fästa dem på ramen skär vi ett par mindre täckbitar ur MDF. Vi limmar sedan våra komponenter på dessa lock och lägger till ledningar till dem.

Peksknappens strömkuddar är anslutna parallellt, medan varje utgångslinje får en individuell kabel. Detta är också ett bra tillfälle att testa om de alla fungerar. Eftersom ljussensorn behöver 5 volt på ena sidan kan vi helt enkelt koppla den till larmknapparna VCC -plattan och löd en kabel till det andra benet.

Efter att panelerna har förberetts skär vi i ramens sidor för att få plats med dem och deras trådar.

Sedan tar vi bort trästammet från alla bitar med en dammsugare och täcker dem i vinylfolie.

Vi använder precisionskniven för att ta bort bitar av vinylen, direkt ovanför de känsliga områdena i våra beröringsmoduler. Med lite dubbelsidig tejp kan vi fästa våra egna knappar på MDF. Jag gjorde mina knappar av gummiskum, vilket ger dem en fin, mjuk konsistens, men du kan använda valfritt icke-metalliskt material.

På ramen använder vi vår kniv för att frigöra lite av MDF igen, vilket ger oss en gripig yta för limet. Sedan kan vi äntligen limma komponenterna på sidorna av vår ram.

Steg 7: Löd huvudkortet

Löd huvudkretskortet
Löd huvudkretskortet
Löd huvudkretskortet
Löd huvudkretskortet
Löd huvudkretskortet
Löd huvudkretskortet

Låt oss lämna ramen som den är just nu och gå vidare till kretskortet. Du kan se PCB -layouten på den första bilden.

Vi börjar med att placera komponenterna med den lägsta profilen på kretskortet. De minsta komponenterna är trådbroarna, som jag kom ihåg lite för sent, så jag började med motstånden. Vi lödar våra komponenter på plats och går vidare till nästa högre uppsättning komponenter.

Därefter har vi våra kvinnliga huvudstiften. För att spara lite utrymme och för att kunna koppla in vår elektronik från sidan monterar vi dem i en 90 graders vinkel.

Transistorer passar inte riktigt till 2, 54 mm hålavstånd på vårt kretskort, så vi använder vår tång för att försiktigt böja benen till formen, som visas på den andra bilden. Vi löder först ett av deras ben på plats och vänder på kretskortet. Vi värmer sedan upp lödfogen och använder vårt finger eller en tång för att korrekt placera komponenten. Nu kan vi löda de andra två benen på plats.

Efter alla de små komponenterna lödde vi vår Arduino och vår realtidsklocka på plats. RTC -modulen passar inte heller så bra på hålavståndet, så vi kommer bara att utrusta sidan, som har 7 lödkuddar med huvudstift. Vi lägger dessutom lite tejp under den för att förhindra kortslutning.

Eftersom alla våra komponenter är lödda på plats är det nu dags att göra anslutningarna på andra sidan av brädet. För detta kommer vi att ta ut vår oisolerade tråd. En tång kan användas för att räta ut den. Sedan skär vi tråden i mindre bitar och lödder den till kretskortet.

För att göra en anslutning värmer vi upp en lödfog och sätter in tråden. Vi behåller sedan lödjonen på den tills den når rätt temperatur och lödet omsluter den och vi får en fog som ser ut som den på bilden. Om vi inte värmer upp tråden kan vi sluta med en kall led, som skulle likna det andra exemplet och inte fungerar särskilt bra. Vi kan använda vår trådskärare för att trycka ner tråden under lödningen och se till att den ligger platt på kretskortet. På längre anslutningsvägar lödder vi den till en enda platta var 5: e till 6: e hål tills vi når ett hörn eller nästa komponent.

I ett hörn skär vi tråden ovanför den första halvan av en lödkudde och lödar änden på den. Vi tar sedan en ny tråd och går därifrån i en rätt vinkel.

Att göra dessa tomma trådanslutningar är ganska knepigt och kräver lite skicklighet, så om du gör det här för första gången är det definitivt inte en dålig idé att träna det på ett skrotkort innan du försöker göra det på riktigt.

När vi är färdiga med lödningen kontrollerar vi anslutningarna igen och ser till att vi inte producerade några kortslutningar. Sedan kan vi sätta in kretskortet inuti knappramen och använda det som referens för de nödvändiga ramtrådslängderna. Vi skär sedan dessa trådar till rätt längd och lägger till manliga huvudstiften till dem.

Alla 5V- och jordanslutningar på peksknapparna går ihop till en 2 -polig kontakt. De 4 utgångskablarna får en 4 -polig kontakt och ljussensorlinjen samt de två högtalarkablarna samman till en trepolig kontakt. Glöm inte att markera ena sidan av varje uttag och kontakt med en skärpa eller tejp, så att du inte råkar ansluta dem på fel sätt.

Steg 8: Montera klockan

Montera klockan
Montera klockan
Montera klockan
Montera klockan
Montera klockan
Montera klockan
Montera klockan
Montera klockan

Efter detta gick jag tillbaka till frontpanelen och applicerade försiktigt en klistermärke, gjord av transparent laserskrivarfolie, som en sista touch.

Även om jag applicerade det mycket noggrant kunde jag inte få ett bubbelfritt resultat, vilket tyvärr är tydligt synligt vid närmare inspektion. Folien fastnar inte särskilt bra i hörnen, så jag kan inte riktigt rekommendera den här lösningen.

Det kan förmodligen göras med ett bättre klistermärke, eller om du är bra på att rita kan du lägga till siffrorna med en skärpa.

Nu har vi alla komponenter och kan montera vår klocka.

Vi börjar med att sätta ihop ljusledaren och frontpanelen. När alla fyra bultarna sitter i justerar vi de två panelerna och drar åt dem. Ett par muttrar senare kommer ljuspanelen, där vi måste titta på riktningen. Kabeln ska vara överst.

Det tredje stycket är knappramen. Tänk på att högtalaren ska vara på höger sida av klockan när du tittar från framsidan. Dra kabeln på din LED -panel genom mitten av ramen innan du fixar den på plats.

Nu lägger vi framsidan och går vidare till bakpanelen. På bilden kan du också se min vackra självgjorda 90 graders mini -USB -adapter. Jag länkade till dig en riktig adapter, så du slipper behöva hantera den här typen av röra. Du kan helt enkelt ansluta din adapter och dra kabeln genom ett hål på bakpanelen.

Vi tar våra M3 -skruvar och våra PCB -distanser för att fixa det lilla fönstret. Det är viktigt att dra åt skruvarna noggrant, eftersom vi inte vill skada vår akryl. Sedan tar vi vårt kretskort, kopplar in vår adapter och skruvar fast det på distanserna. Komponentsidan ska vara vänd mot fönstret, medan Arduinos USB -port vetter mot klockans botten.

Sedan kopplar vi in alla kontakter från frontenheten, samtidigt som vi håller polariteten i åtanke och klämmer försiktigt in alla ledningar i klockan. Vi kan sedan stänga den med bakpanelen och dra åt de fyra återstående låsmuttrarna.

I slutändan vill du ha en bricka på varje sida av varje panel, medan ljusledaren är placerad direkt bakom frontpanelen. Vi har en mutter mellan ljusstyrningen och ledpanelen och två till, som skiljer den från knappramen. Det kan du också se på den sista bilden.

Eftersom jag använde korta bultar med en längd på 40 mm har jag bara tre muttrar som håller bakpanelen och ramen isär. Med rätt 45 mm bultar skulle du lägga till ytterligare en mutter här, liksom en eller två extra brickor. På slutet av monteringen har vi vår låsmutter, så att allt stannar på plats.

Steg 9: Ladda upp koden och kalibrera ljussensorn

Ladda upp koden och kalibrera ljussensorn
Ladda upp koden och kalibrera ljussensorn
Ladda upp koden och kalibrera ljussensorn
Ladda upp koden och kalibrera ljussensorn
Ladda upp koden och kalibrera ljussensorn
Ladda upp koden och kalibrera ljussensorn

Dags att ladda upp vår kod.

Först laddar vi ner alla nödvändiga filer och packar upp dem. Vi öppnar sedan vår Arduino biblioteksmapp och släpper in alla nya bibliotek i den.

Nu öppnar vi ljussensorkalibreringsskissen, som ger oss de ljusa och mörka värdena för klockans automatiska dimmerfunktion. Vi laddar upp den, öppnar den seriella bildskärmen och följer instruktionerna på skärmen.

När det är klart öppnar vi den faktiska koden för binära klockor och ersätter de två värdena med de vi just mätte.

Vi stänger alla andra fönster, laddar upp koden till vår klocka och vi är klara.

Dags att leka med vår nya pryl.

Steg 10: En snabb introduktion till det binära systemet

En snabb introduktion till det binära systemet
En snabb introduktion till det binära systemet
En snabb introduktion till det binära systemet
En snabb introduktion till det binära systemet
En snabb introduktion till det binära systemet
En snabb introduktion till det binära systemet
En snabb introduktion till det binära systemet
En snabb introduktion till det binära systemet

Innan vi går vidare skulle jag vilja svara på den ena frågan som förmodligen redan har gått igenom dina tankar, "Hur i helvete läser du den här klockan?"

Tja, för detta skulle jag vilja ge dig en kort introduktion till det binära systemet.

Vi är alla bekanta med decimalsystemet, där varje siffra kan ha 10 olika tillstånd, allt från 0 till 9. I binär varje siffra kan bara ha två tillstånd, antingen 1 eller 0, det är därför du kan använda något så enkelt som ett led till visa ett binärt tal.

För att visa siffror som är större än 9 i decimal, lägger vi till fler siffror. Varje siffra kommer med en viss multiplikator. Den första siffran från höger kommer med en multiplikator på 1 nästa är 10 och nästa är 100. Med varje ny siffra är multiplikatorn tio gånger så stor som den i siffran tidigare. Så vi vet att siffran två placerade en siffra till vänster, representerar siffran 20. Medan två siffror till vänster representerar den 200.

I det binära systemet kommer varje siffra också med en multiplikator. Eftersom varje siffra bara kan ha två olika tillstånd är varje ny multiplikator två gånger så stor som den föregående. Åh och förresten, binära siffror kallas bitar. Så låt oss ta en titt på vårt första exempel, om vi placerar ett 1 på den lägsta positionen är det ett enkelt 1, men om vi placerar det på nästa högre position, där vår multiplikator är 2, representerar den siffran 2 i binär.

Vad sägs om det lite mer kluriga exemplet längst ner på bilden. Den tredje och den första biten är på. För att få decimaltalet som representeras här lägger vi helt enkelt till värdena för de två bitarna. Så 4 * 1 + 1 * 1 eller 4 + 1 ger oss siffran 5.

8 bitar kallas en byte, så låt oss se vilket nummer vi får om vi fyller en hel byte med en.1+2+4+8+16+32+64+128 som är 255 vilket är det högsta värdet en enda byte kan ha.

Förresten, medan siffran med den högsta multiplikatorn alltid kommer först i decimalsystemet, har du två sätt att skriva ner en siffra i binär. Dessa två metoder kallas minst signifikant byte först (LSB) och mest signifikant byte först (MSB). Om du vill läsa ett binärt tal måste du veta vilket av de två formaten som används. Eftersom det är närmare decimalsystemet använder vår binära klocka MSB -varianten.

Låt oss återgå till vårt verkliga exempel. Som markeras i den sjätte bilden har vår klocka 4 bitar för att visa timmen. Än så har vi 6 bitar för minuten och även 6 bitar för den andra. Vidare har vi en enda am/pm -bit.

Okej, berätta vad klockan är på den sjätte bilden, än att hoppa till den sista.. ….

i timavsnittet har vi 2+1 som är 3 och pm -biten är på så det är kväll. Nästa minut 32+8, det vill säga 40. För sekunderna har vi 8+4+2 som är 14. Så klockan är 15:40:14 eller 15:40:14.

Grattis, du har precis lärt dig att läsa en binär klocka. Naturligtvis tar det lite tid att vänja sig och i början måste du lägga ihop siffrorna, varje gång du vill veta vad klockan är, men i likhet med en analog klocka utan en urtavla vänjer du dig vid LED: s mönster över tid.

Och det är en del av vad det här projektet handlar om, att ta något så abstrakt som det binära systemet till den verkliga världen och lära känna det bättre.

Steg 11: Använda den binära väckarklockan

Använda den binära väckarklockan
Använda den binära väckarklockan
Använda den binära väckarklockan
Använda den binära väckarklockan
Använda den binära väckarklockan
Använda den binära väckarklockan

Nu vill vi äntligen leka med klockan, så låt oss ta en snabb titt på kontrollerna.

Programvaran kan skilja mellan en knapptryckning, en dubbelknapp och en lång tryckning. Så varje knapp kan användas för flera åtgärder.

Ett dubbelklick på upp- eller nedknappen ändrar lysdiodens färgläge. Du kan välja mellan olika statiska och blekande färglägen samt ett temperaturläge. Om du befinner dig i ett av de statiska färglägena ändras färgen genom att hålla upp- eller nedknappen intryckt. I ett blekningsläge ändrar en enda kran animationshastigheten.

För att ställa in dimmerläget, dubbelklickar du på ok -knappen. LED -panelen indikerar inställningsläget genom att blinka flera gånger.

  • En gång betyder ingen dimmer.
  • Två gånger betyder att ljusstyrkan styrs av ljussensorn.
  • Tre gånger och lysdioderna slocknar automatiskt efter 10 sekunders inaktivitet.
  • Fyra gånger och båda dimmerlägena kombineras.

Om du trycker länge på ok -knappen kommer du till tidsinställningsläget, där du kan använda upp- och nedpilarna för att ändra numret. Ett enda tryck på ok -knappen tar dig från timmarna till minuterna, en tryckning till och du kan ställa in sekunderna. Därefter sparar en sista kran den nya tiden. Om du accedentialy går in i tidsinställningsläget kan du helt enkelt vänta i 10 sekunder och klockan kommer automatiskt att lämna den.

Precis som med ok -knappen kan du ställa in alarmet genom att trycka länge på alarmknappen. Dubbelklicka på larmknappen aktiverar eller inaktiverar larmet.

Om klockan ringer trycker du bara på larmknappen, för att skicka den till viloläge i 5 minuter eller hålla den intryckt för att inaktivera avaktivera larmet.

Detta var alla funktioner som klockan har hittills. Jag kan lägga till mer i framtiden som du kan få om du laddar ner den senaste firmwareversionen.

Steg 12: Förstå koden (valfritt)

Förstå koden (valfritt)
Förstå koden (valfritt)

Jag vet att många inte gillar programmering särskilt mycket. Lyckligtvis för dessa människor krävs nästan ingen programmeringskunskap för att bygga och använda denna binära klocka. Så om du inte bryr dig om programmeringssidan kan du helt enkelt hoppa över det här steget.

Men om du är intresserad av kodningsdelen vill jag ge dig en allmän översikt över programmet.

Att förklara varje liten detalj i klockkoden skulle vara en instruerbar på egen hand, så jag kommer att hålla det enkelt genom att förklara programmet på ett objektorienterat sätt.

Om du inte vet vad det betyder är objektorienterad programmering (OOP) ett koncept för de flesta moderna programmeringsspråk som C ++. Det låter dig organisera olika funktioner och variabler i så kallade klasser. En klass är en mall från vilken du kan skapa ett eller flera objekt. Var och en av dessa objekt får ett namn och en egen uppsättning variabler.

Till exempel använder klockans kod ett par MultiTouchButton -objekt som alarmButton. Det är objekt från klassen MultiTouchButton, som är en del av mitt Button -bibliotek. Det coola med dessa objekt är att du kan interagera med dem som liknar verkliga objekt. Till exempel kan vi kontrollera om alarmknappen dubbelknackades genom att ringa alarmButton.wasDoubleTapped (). Dessutom är implementeringen av denna funktion snyggt gömd i en annan fil och vi behöver inte oroa oss för att bryta den genom att ändra något annat i vår kod. Ett snabbt inträde i världen av objektorienterad programmering finns på Adafruit -webbplatsen.

Som du kan se i grafiken ovan har klockprogrammet ett gäng olika objekt.

Vi har just pratat om knappobjekten, som kan tolka insignaler som ett tryck, ett dubbel tryck eller ett långt tryck.

Jukeboxen, som namnet antyder, kan göra buller. Den har flera melodier som kan spelas via en liten högtalare.

BinaryClock -objektet hanterar tid och larminställningar samt larmövervakning. Det får dessutom tid från rtc -modulen och omvandlar den till en binär informationsbuffert för ledPanel.

ColorController inkapslar alla färgeffektfunktioner och tillhandahåller colorBuffer för ledPanel. Det sparar också dess tillstånd i Arduinos EEProm.

Dimmaren tar hand om klockornas ljusstyrka. Den har olika lägen som användaren kan cykla igenom. Det aktuella läget sparas också i EEProm.

LedPanel hanterar olika buffertar för färgvärde, ljusstyrka och binärt tillstånd för varje LED. När pushToStrip () -funktionen anropas, överlagras den och skickas till ledremsan.

Alla objekt är "anslutna" via huvudfilen (filen med inställnings- och loopfunktionerna), som bara innehåller ett par funktioner för att utföra tre viktiga uppgifter.

  1. Tolkning av användarinmatning - Den får input från de fyra knappobjekten och sätter dem genom en logik. Denna logik kontrollerar klockans nuvarande tillstånd för att avgöra, om klockan är i normalt, tidsinställning eller ringsignal och anropar olika funktioner från de andra objekten i enlighet därmed.
  2. Hantera kommunikation mellan objekt - Det frågar ständigt binärklockobjektet, om det har ny information tillgänglig eller om larmet ringer (). Om den har ny information hämtar den informationBuffer från binaryClock och skickar den till ledPanel -objektet. Om klockan ringer startar jukeboxen.
  3. Uppdatera objekt - Var och en av programmets objekt har en uppdateringsprocedur, som används för saker som att kontrollera ingångar eller ändra lysdiodens färger. Dessa måste upprepas i loop -funktionen för att klockan ska fungera korrekt.

Det borde ge dig en allmän förståelse för hur de enskilda kodbitarna fungerar tillsammans. Om du har mer specifika frågor kan du helt enkelt fråga mig.

Eftersom min kod definitivt är långt ifrån perfekt, kommer jag att förbättra den ytterligare i framtiden, så några funktioner kan ändras. Det coola med OOP är att det fortfarande kommer att fungera på ett mycket liknande sätt och du kan fortfarande använda grafiken för att förstå det.

Steg 13: Slutord

Slutliga ord
Slutliga ord

Jag är glad att du fortsatte läsa till denna punkt. Det betyder att mitt projekt inte var för tråkigt:).

Jag lägger massor av arbete i den här lilla klockan och ännu mer arbete i all dokumentation och video, för att göra det enkelt för dig, att bygga din egen binära väckarklocka. Jag hoppas att min ansträngning var värd det och jag kunde ansluta dig till en bra idé för ditt nästa helgprojekt eller åtminstone ge dig lite inspiration.

Jag skulle gärna höra vad du tycker om klockan i kommentarerna nedan:).

Även om jag försökte täcka varje detalj, kanske jag har missat en sak eller två. Så fråga gärna om det finns några frågor kvar.

Som alltid, tack så mycket för att du läste och lyckades göra.

LED -tävling 2017
LED -tävling 2017
LED -tävling 2017
LED -tävling 2017

Tvåa i LED -tävlingen 2017

Rekommenderad: