Innehållsförteckning:
- Steg 1: Definiera visningsområdet
- Steg 2: RTC (Real Time Clock)
- Steg 3: Kodning av klockan
- Steg 4: Drift
- Steg 5: Box It
- Steg 6: Blockkoddesign
- Steg 7: 3D -utskrift
- Steg 8: Fyll på
- Steg 9: Montering
- Steg 10: Slutligen
Video: Mikro binär klocka: 10 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:35
Tinkercad -projekt »
Efter att tidigare ha skapat en instruerbar (binär DVM), som använder det begränsade visningsområdet med binärt.
Det var bara ett litet steg som tidigare skapat huvudkodsmodulen för decimal till binär konvertering till att skapa en binär klocka men det enda som saknades var en RTC (Real Time Clock).
Mikrobit har dock ingen inbyggd RTC.
RTC möjliggör realisering av klockprojekt med batteribackup.
Som sådant använder följande projekt en Microbit och en Kitronik RTC för att skapa en 24 -timmars klocka med en binär display och har dessutom ett larmalternativ.
Projektprogramvaran som ska köras på mikrobiten kommer att skapas i Makecode -block.
Tillbehör:
MicroBit V1 eller V2
MicroBit skyddshölje (tillval)
Gör kod
Kitronik RTC
CR2032
Kodblock
Cura
3d skrivare
1 * SPDT (på - på) omkopplare
1 * SPDT (på - av - på) omkopplare
2 * SPST (normalt öppen), momentan omkopplare
4 * M3 (10+6 mm), M/F -avstånd med M3 -muttrar
4 * M3 (8 mm), skruvar
Bygelkabel M/F-kontakt, 100 mm, 28AWG färdigtillverkad med stickpropp och uttag.
1 * Piezo -summer (ingen enhet)
Dessa förnödenheter finns tillgängliga från ett antal butiker och du kan ha en egen föredragen leverantör.
Steg 1: Definiera visningsområdet
Även om visningsområdet är begränsat i mängden data som kan visas vid varje tillfälle, lämpar det sig idealiskt för visning av bitdata.
Som sådan finns det tillräckligt med yta för att visa 4 x 4 bitars binära ord för att representera tid med aviseringar och urvalslägen.
Displayen är uppdelad i 3 huvudområden; Tid, urval och lägen.
Tid
Sexton lysdioder tilldelas tid, varje kolumn med fyra lysdioder tilldelas ett tidsintervall, intervallerna är i formen H, H, M & M.
Varje bit av det binära ordet har en viktning av 1, 2, 4 & 8 med LSB på rad 4 och MSB på rad 1
Varje binärt 4 -bitars ord tillåter en räkning från 0 till 15, vilket är mer än tillräckligt för 24 -timmarsformatet, vilket kräver ett maximalt antal per kolumn på 2, 9, 5 och 9.
Urval
En rad med 4 lysdioder i rad 0 används för att identifiera den tidskolumn som valts när du anger tid.
Lägen
En kolumn med 5 lysdioder i kolumn 4 används för att identifiera lägen, funktioner och drift.
Kryss - LED 4, 0 blinkande på och av används för att indikera sekunder och drift.
Tid - LED 4, 1 indikerar tidsläget när det är på. (Standardläge vid påslagning)
Larm - LED 4, 2 indikerar larmläge när det är på.
Larmmeddelande - LED 4, 3 & LED 4, 4 blinkar när larmet utlöses.
Steg 2: RTC (Real Time Clock)
RTC är applikationens bankande hjärta, vilket gör det möjligt att ställa in och hålla exakt tid.
Ytterligare detaljer om RTC finns på Kitronik.
RTC tillhandahåller en reglerad strömförsörjning som negerar behovet av att driva Microbit med sin egen USB- eller JST -kontakt och batteribackup tillhandahålls för att behålla tiden vid strömavbrott.
Innan du använder RTC måste du ladda tilläggspaketet.
Använd Makecode från ikonen Inställningar, välj Tillägg och skriv Kitronik RTC i sökningen.
Välj paketet för att installera det och det läggs till i de andra tilläggen.
Det finns ett antal kodblock att läsa från och skriva till RTC.
Vi behöver bara 4 av dessa kodblock för binärklockan.
Dessa kommer att användas för att skriva den inställda tiden till RTC och för att läsa tiden tillbaka för att uppdatera klockdisplayen.
Steg 3: Kodning av klockan
Den första delen av koden är programinitialisering av variabler, matriser och informativ text.
I det
Bclk - Binär klocka
<Sel - En knapp väljer den kolumn som ska justeras för tidsinställning.
Inc - B -knappen ökar tiden.
Om du trycker på båda A & B -knapparna samtidigt ändras läget mellan tid och alarm.
Strval - är strängvärdet som innehåller tiden i formen "HH: MM: SS" som returneras från RTC
Endast HH & MM används för att visa eller ställa in tiden.
Läge - behåller lägesvärdet för Time = 1 och Alarm = 2 valda med A+B -knappkombinationen.
Period - är värdet för tidskolumnen, vald med A -knappen.
0 = kolumn 0 (H), 1 = kolumn 1 (H), 2 = kolumn 2 (M), 3 = kolumn 3 (M)
Tick_en - Aktiverar = 1 eller Inaktiverar = 0 bocken (sekunder), indikator.
Inc - Mellanlagring av värdet för inkrementell tidsinställning.
Tm_list - lagrar värdet för varje tidskolumn under inställningen.
Larm - Aktiverar eller inaktiverar larmindikatorn.
Den för alltid kallar fästfunktionen.
Bock
Kryssfunktionen som normalt är aktiverad visar en alternerande på/av -LED i det övre högra hörnet för att indikera drift och sekunder.
Dessutom kallar den showtm -funktionen som läser RTC och bearbetar detta för att visas i binär, medan det också ringer alarm_mode, om detta är aktiverat visar larmmeddelande -lysdioderna i nedre högra hörnet.
Showtm
Funktionen showtm, anrop rdtime och värdet som används från detta är strval som innehåller tidssträngen.
En loop skapas som ökar genom att strval extraherar varje enskilt nummer och ignorerar separatorn ":"
Varje enskilt tal konverteras sedan till dess binära ekvivalent med funktionen dec2bin och tilldelas till rätt kolumn.
Rdtid
Funktion rdtime, läser de första 5 tecknen i strängen som returneras från RTC (ignorerar sekondelen) och skickar den till strval.
Om larmet var inställt (Läge = 2) jämförs larminställningsvärdena med de värden som returneras av RTC, om det finns en matchning då larm = 1 om det inte finns något matchlarm = 0.
Alarm_mode när aktiverat visar två på/av alternerande lysdioder i det nedre högra hörnet av kolumn 4.
Dec2bin
Funktion dec2bin konverterar ett decimaltal till binärt och visar det i rätt kolumn.
Numret som ska konverteras skickas in via värde och displaykolumnen skickas in via kol.
List2 är matrisen i vilken det 4-bitars binära ordet från den binära omvandlingsprocessen lagras.
En slinga initieras som fortsätter att dividera värdet med 2 resten är lagrat i arrayelementet heltalets värde divideras med 2, detta upprepas tills heltalet är <= 1 och detta sista värde placeras i arrayen.
Det största decimalvärdet på en siffra är 9 och i binärt är detta 1001 som ett 4-bitars ord.
Arrayen måste sedan bearbetas i omvänd ordning för att få rätt resultat.
En slinga initieras sedan för att slå på rätt LED i lämplig kolumn, detta uppnås för varje förekomst av ett i det 4-bitars binära ordet.
Det mänskliga gränssnittet uppnås med knappar.
A -knappen
Detta väljer den kolumn som tidsvärdet ska matas in och visar en upplyst lysdiod över den valda kolumnen på rad 4.
När alla tidskolumner har uppdaterats, uppdateras tidsvariabeln genom att markera till den femte kolumnen.
Om läge = 1 uppdateras RTC annars larmtiden uppdateras.
B -knappen
Detta är inkrementknappen och ökar den valda tidskolumnen.
För att minska fel och spara tid för att komma till rätt värde begränsas det maximala värdet som kan anges per kolumn baserat på tidsvärdet för ett 24-timmars tidssystem.
Dessa maxvärden lagras i tm_max , en per tidskolumn och väljs automatiskt baserat på tidskolumnen.
De maximala värdena är H = 2, H = 9, M = 5, M = 9
Inkrementvärdet konverteras till binärt i dec2bin och displayen uppdateras.
Knapp A+B Lägesval
Genom att trycka båda knapparna samtidigt kan du välja mellan tidsläget eller alarmläget, vilket läge visas på displayen.
Beroende på vilket läge som väljs uppdateras displayen för att visa antingen tiden eller larminställningstiden.
Steg 4: Drift
Ladda ner Hex -filen till Microbit, sätt in ett CR2032 -batteri i RTC.
Anslut Microbit till RTC och strömförsörj RTC -kortet via USB eller skruvplintarna.
Tick -lysdioden börjar blinka och strax efter detta visas tiden.
Om detta är första gången du använder den är det mycket troligt att den visade tiden är fel och måste ställas in på rätt tid.
Lägesval
Genom att trycka på Selection (A) & Increment (B) -knapparna tillsammans kan du växla mellan lägesalternativen mellan Time & Alarm.
Ställa in tiden
Tidsinställningen är i 24H -läge.
Använd markeringsknappen (A) för att flytta lysdioden över den översta raden, detta indikerar kolumnen där tiden kan ändras. Urvalskolumnerna motsvarar H, H, M & M.
Där H = timmar och M = minuter.
Efter att ha valt en kolumn trycker du på knappen Ökning (b) flera gånger för att öka räkningen med en för varje tryckning. Räkningarna anges i binär, trots allt är det en binär klocka.
Ökningsknappen ökar bara räkningen och när maxvärdet har återställts till noll kommer ytterligare tryckningar att öka räkningen igen.
När den första kolumntiden är inställd, tryck på knappen Selection för nästa kolumn och använd sedan knappen Increment för att ställa in kolumntiden.
Obs: *** När du ställer in tid eller larm måste du ange en tid i den valda kolumnen även om tiden i kolumnen ska förbli oförändrad när du hoppar över en kolumn sätter den kolumntiden till noll ****
Upprepa processen tills tiden har ställts in med alla fyra kolumnerna.
Tryck på markeringsknappen för femte gången för att flytta den till den femte kolumnen och tiden är inställd.
Ställa in larm
Ställa in alarmtiden sker på exakt samma sätt som för tiden.
För att larmet ska utlösas under den önskade tiden, lämna läget inställt på larm.
För att stänga av larmet ställer du in läget på Tid.
För att visa inställd alarmtid, växla mellan läget mellan tid och larm och alarmtiden kommer att visas under en kort tid innan du återgår till att visa aktuell tid.
Larmtiden lagras inte i RTC, så om strömmen tas bort krävs återställning.
Steg 5: Box It
Projektet kommer att sitta i lämplig vinkel för att se klockan men en låda ger en känsla av beständighet.
Du kan köpa en låda av lämplig storlek och klippa och borra ut lämpliga områden så att Microbit får plats i uttaget.
Dock; Dessutom ville jag kopiera Microbit -knapparna tillsammans med andra kontroller och indikatorer.
Normalt måste legender tillämpas på rutan för att identifiera knappar.
Dessa kan appliceras för hand; målade, graverade eller applicerade etiketter.
En metod för att inse alla dessa alternativ skulle vara att 3D -skriva ut rutan men först skulle vi behöva skapa en CAD -fil för att skapa skrivarfilen.
Alternativ för att skapa filer är handritade eller ritade med kod.
Jag valde "ritad med kod" med hjälp av Tinkercad CodeBlocks
Filerna för Box Lock och Box Base finns på Tinkercad CodeBlocks
Steg 6: Blockkoddesign
Lådan är en tvådelad design som består av en bas och ett lock.
Fyra hörnskruvhål kommer att användas för att säkra locket med en utskärning på vänster sida så att USB-kontakten kan komma in.
Locket kommer att ha en utskärning för Microbit-kontakten och de nödvändiga omkopplarna, dessutom kommer all text att skrivas ut direkt på locket och skruvhål kommer att anpassas till baspelarna.
RTC -kortet fästs på lockets undersida med 4 pelare och 4 skruvar.
Lådans storlek plus lock är 70 x 105 x 31 mm
Koden för locket och basen finns i TinkerCad CodeBlocks.
Steg 7: 3D -utskrift
Ladda in filerna i Cura och tillämpa dina önskade skivinställningar.
Tillämpade inställningar.
Kvalitet: 0,15 mm
Fyllning: 80%, Tri-Hexagon
Bas: Bräda
Spara dina filer och skriv ut.
Med Cura kan du ladda båda filerna tillsammans på samma utskriftsområde och skriva ut på en gång.
Steg 8: Fyll på
Lådans lock är tryckt med infälld text som fylls med färgat 2 -deligt epoxiharts.
Hartset blandas med ett förhållande av 2 delar harts till 1 del härdare och sedan blandas ett ogenomskinligt färgpigment in.
Färgen som valdes var gul för att kontrastera mot bakgrunden. Vitt hade varit ett annat val.
Efter blandning droppas hartset i urtaget med hjälp av en cocktailpinne för att överföra små klossar harts som används för att gradvis fylla urtaget i bokstäverna.
Motstå att du lägger i för mycket harts på en gång eftersom du sannolikt kommer att få luftbubblor och att skapa för mycket överflöde till den omgivande ytan, vilket betyder att du kommer att ha mer att ta bort rengöring och slipning när det härdat.
Så fyll långsamt så att botten av brevet är täckt och bygg upp det efterbehandling med en lätt upphöjd yta.
När hartset har härdat krävs lite lätt slipning för att jämna ut ytan. Börja med att P240 -kvalitén går vidare till finare kvalitet efter behov för att få en jämn finish som slutligen avslutas med en polering.
Applicera inte för mycket tryck och för hög hastighet, annars överhettas PLA och hartset som resulterar i en tråkig yta på grund av att det tas upp grus, lite vatten som appliceras under slipningsprocessen fungerar som ett smörjmedel och kylmedel.
Steg 9: Montering
Mikrobiten kommer att passa in i uttaget i två riktningar, vända mot huvuddelen av RTC för att vända bort.
Om du vetter mot huvuddelen av RTC kan inte länkanslutningarna användas, men om mikrobiten är vänd bort från huvuddelen av kortet kan vi använda dessa anslutningar.
Monteringen börjar med att lödda en rätvinklig SIL -stifthuvud på RTC, detta för att möjliggöra anslutningar med push -fit -kontakter.
RTC monteras med 4 * M3 (10+6 mm), M/F -avstånd med M3 -muttrar som fästs på locket med 4 * M3 (8 mm), skruvar i de prefabricerade hålen.
Strömställarna sitter i de prefabricerade hålen i locket.
Anslutningarna som krävs är:
GND, 3V, P1 (set), P2 (alert), P5 (sel) & P11 (inc)
Notera *** Resistorer (1R), på diagrammet för P5 & P11 är helt enkelt referensanslutningspunkter eftersom direkt anslutning till dessa stift på Microbit i kodblock inte är tillgänglig just nu. ***
P5 är den externa anslutningen för knapp A som är ansluten med en SPST momentary switch. Den ena anslutningen till P5 och den andra stiftet är ansluten till GND den här knappen är för kolumnval under tidsinställning.
P11 är den externa anslutningen för knapp B som är ansluten med en SPST momentary switch. En anslutning till P11 och den andra stiftet är ansluten till GND, hans knapp är för nummerökning under tidsinställning.
P1 är en SPDT (on-on) switch som används för att aktivera eller inaktivera inställningsalternativen. Mittstiftet går till P1 medan en stift är ansluten till GND och den andra till 3V via ett 10k motstånd. Detta gör att en H (3V) och L (0V) kan appliceras på denna stift. När P1 är ansluten till 3V aktiverar detta tidsinställningsalternativen och när 0V inaktiverar tidsinställningen. Därmed styr om A & B -knapparna har någon effekt.
P2 är en SPDT-omkopplare (på-av-på) som används för att aktivera eller inaktivera varningslarmet och externa externa lampor.
Varningssignalen är en Piezo Buzzer (helt enkelt fäst med en klibbig dubbelkudde), som kräver en pulsenhet som tillhandahålls av Microbit.
Steg 10: Slutligen
Du har monterat elementen i lådan, programmerat mikrobiten och monterat den i uttaget på lådan.
Anslut sedan strömmen och ställ in tiden.
Njut av.
Tvåa i Block Code Contest
Rekommenderad:
5 $ PCB -KALENDER MED BINÄR KLOCKA: 7 steg (med bilder)
5 $ PCB -KALENDER MED BINÄR KLOCKA: Hej! Jag gjorde denna PCB -kalender och binära klocka med Eagle CAD. Jag använde ATMEGA328P MCU (från Arduino) och 9x9 LED -matris. Mått för mitt bräde är 8 cm x 10 cm (3,14 tum x 3,34 tum). Det är lite för litet men först: gratisversionen av Eagle CAD tillåter 80 cm^2
Skrivbordsförstärkare med ljudvisualisering, binär klocka och FM -mottagare: 8 steg (med bilder)
Skrivbordsförstärkare med ljudvisualisering, binär klocka och FM -mottagare: Jag gillar förstärkare och idag delar jag med mig min effektförstärkare som jag gjorde nyligen. Förstärkaren jag designade har några intressanta funktioner. Den har en integrerad binär klocka och kan ge tid och datum och den kan visualisera ljud som ofta kallas ljud
Arduino binär klocka - 3D -tryckt: 5 steg (med bilder)
Arduino binärklocka - 3D -tryckt: Jag har tittat på binära klockor en tid för mitt kontorsbord, men de är ganska dyra och / eller har inte en enorm mängd funktioner. Så jag bestämde mig för att jag skulle göra en istället. En punkt att tänka på när du gör en klocka, Arduino / Atmega328
Digital och binär klocka i 8 siffror X 7 segment LED -display: 4 steg (med bilder)
Digital och binär klocka i 8 siffror X 7 segment LED -display: Detta är min uppgraderade version av en digital & Binärklocka med en 8 -siffrig x 7 -segmentig LED -display. Jag gillar att ge nya funktioner för vanliga enheter, speciellt klockor, och i detta fall är användningen av 7 Seg -skärm för binärklocka okonventionell och det
LED binär klocka: 6 steg (med bilder)
LED -binärklocka: Detta är den andra översynen av min PIC -baserade LED -binära klocka. Den ursprungliga versionen var det första PIC -projektet jag försökte, den använde en PIC16F84A för att göra både tidtagning och styra bildskärmsmatrisen, tyvärr höll den inte tillräckligt med tid