INHOUDSOPGAWE:

Arduino -gebaseerde binêre wekker: 13 stappe (met foto's)
Arduino -gebaseerde binêre wekker: 13 stappe (met foto's)

Video: Arduino -gebaseerde binêre wekker: 13 stappe (met foto's)

Video: Arduino -gebaseerde binêre wekker: 13 stappe (met foto's)
Video: It Became Unliveable! ~ Abandoned Home Of The Spenser's In The USA 2024, Julie
Anonim
Image
Image

Deur Basement Engineering Volg meer deur die skrywer:

DIY Laser People Counter
DIY Laser People Counter
Bou van 'n selfryende boot (ArduPilot Rover)
Bou van 'n selfryende boot (ArduPilot Rover)
Bou van 'n selfryende boot (ArduPilot Rover)
Bou van 'n selfryende boot (ArduPilot Rover)
Die perfekte bedlamp en telefoonstasie
Die perfekte bedlamp en telefoonstasie
Die perfekte bedlamp en telefoonstasie
Die perfekte bedlamp en telefoonstasie

Ongeveer: Hallo, my naam is Jan en ek is 'n vervaardiger, ek is lief daarvoor om dinge te bou en te skep, en ek is ook baie goed in die herstel van goed. Aangesien ek kan dink, het ek nog altyd daarvan gehou om nuwe dinge te skep, en dit is wat ek aanhou doen tot … Meer oor kelderingenieurswese »

Haai, vandag wil ek jou wys hoe om een van my nuutste projekte, my binêre wekker, te bou.

Daar is baie verskillende binêre horlosies op die internet, maar dit kan eintlik die eerste een wees, gemaak van 'n strook kleurvolle adresbare LED's, wat ook 'n alarmfunksie en aanraakknoppies het om dinge soos die tyd en die kleur in te stel.

Moenie dat die ingewikkelde voorkoms daarvan u afskrik nie. Met 'n bietjie verduideliking, is die lees van binêre eintlik nie so moeilik soos dit lyk nie. En as u bereid is om iets nuuts te leer, wil ek u later help.

Laat ek u 'n bietjie vertel van die verhaal agter hierdie projek:

Ek was oorspronklik van plan om 'n 'normale' horlosie te bou wat LED's soos sy hande gebruik, maar ek het nie genoeg LED's byderhand nie.

Sooo, wat doen u as u die tyd met so min as moontlik LED's wil vertoon?

Jy gaan binêre, en dit is presies wat ek hier gedoen het.

Hierdie horlosie is die derde weergawe van sy soort. Ek het 'n baie eenvoudige prototipe gebou net nadat die projekidee my tref en dit na die Maker Faire in Hannover geneem het om te sien wat mense daaroor dink. Terwyl ek daar was, het ek baie baie positiewe en interessante terugvoer gekry, sowel as verbeteringsidees.

Die gevolg van al die idees en ure se dink, knoeiery en programmering, is 'n nogal interessante wekker met baie meer funksies as weergawe 1.0 en vandag gaan ons deur elke stap van die bouproses, sodat u kan bou maklik self een.

Daar is ook 'n baie gedetailleerde video op Youtube, as u nie alles wil lees nie.

Stap 1: Kry u goed

Kry jou goed
Kry jou goed
Kry jou goed
Kry jou goed
Kry jou goed
Kry jou goed

Hier is 'n klein lysie van al die komponente en gereedskap wat u nodig het om u eie binêre klok te bou.

Elektronika:

  • 18 aanspreekbare Ws2811 LED's (bv. Neopixels) op 'n strook met 60 LED's per m (ebay)
  • Arduino Nano (met ATMega328 -verwerker) (ebay)
  • 1307 RTC -module (ebay)
  • 4X kapasitiewe aanraakknoppies (ebay)
  • BS18B20 digitale temperatuur sensor (eBay)
  • LDR (ebay)
  • skootrekenaar/slimfoon luidspreker of piëzo gonser
  • 2222A NPN -transistor (of iets soortgelyks)
  • manlike opskrifte
  • skuins vroulike opskrifte (ebay)
  • 1 kOhm weerstand
  • 4, 7kOhm weerstand
  • Weerstand van 10 kOhm
  • Drade
  • 7x5cm prototipe PCB 24x18 gate (eBay)
  • silwer draad (juweliersdraad) (ebay)
  • 90 ° mini usb -adapter (ebay)

Ander materiale

  • Vinyl wrap
  • 4X 45 mm m4 flenskopskroewe (eBay)
  • 32X m4 metaalwassers
  • 4X m4 slotmoer
  • 28X m4 moer
  • 4X 10mm m3 koper PCB standoff (ebay)
  • 8X 8mm m3 skroef (eBay)
  • aluminiumplaat
  • 2 mm vel melkerige akriel
  • 2 mm vel akriel
  • 3 mm vel MDF
  • dubbelzijdige band

Gereedskap

  • mini USB kabel
  • rekenaar met die Arduino IDE
  • 3, 5 mm boorpunt
  • 4, 5 mm boorpunt
  • kragboor
  • mes sny
  • hantering saag
  • soldeer ioon
  • metaal snyskêr
  • lêer
  • sandpapier

Sjablone (nou met afmetings)

  • PDF
  • Libre Office Draw

Kode

  • Sketse
  • Knoppie biblioteek
  • Timer biblioteek
  • Jukebox biblioteek
  • Gewysigde RTClib
  • Adafruit Neopixel biblioteek
  • Arduino-temperatuurbeheer-biblioteek

Stap 2: Sny die voor- en agterpaneel

Sny die voor- en agterpaneel
Sny die voor- en agterpaneel
Sny die voor- en agterpaneel
Sny die voor- en agterpaneel
Sny die voor- en agterpaneel
Sny die voor- en agterpaneel
Sny die voor- en agterpaneel
Sny die voor- en agterpaneel

Die eerste stuk wat ons gaan maak, is die akriel voorpaneel. Ons merk waar ons wil hê dat ons snitte moet gaan, terwyl ons in gedagte hou dat ons 'n bietjie verdraagsaamheid vir skuur wil hê. Dan skraap ons eenvoudig die akriel met ons snymes. Nadat ons dit 10 tot 20 keer gedoen het, het ons 'n groef. Ons kan dan die bos op die rand van 'n tafel plaas en die akriel buig totdat dit breek.

Nadat die voorpaneel op maat gesny is, sny ons die agterpaneel uit 'n stuk MDF. Hiervoor kan ons ons saag gebruik, maar 'n snymes werk ook. Ons moet die MDF net op 'n stuk hout vasmaak en dit met ons mes sny totdat die lem deur is en ons twee afsonderlike stukke het.

Nou breek ons die twee panele saam en skuur elke kant om perfek te pas.

Nadat dit klaar is, sny ons die eerste sjabloon uit en plak dit met 'n band op die twee panele en begin met die boor van die gemerkte gate.

Eers boor ons 'n gat van 4,5 mm in elk van die vier hoeke. Aangesien die akriel baie bros is en ons nie wil hê dit moet breek nie, begin ons met 'n klein boorpunt en werk tot ons die gewenste gatdiameter bereik. Dan gebruik ons die sjabloon om die hoeke in die regte vorm te skuur.

Stap 3: Voltooi die agterpaneel

Maak die agterpaneel klaar
Maak die agterpaneel klaar
Maak die agterpaneel klaar
Maak die agterpaneel klaar
Maak die agterpaneel klaar
Maak die agterpaneel klaar
Maak die agterpaneel klaar
Maak die agterpaneel klaar

Vir eers kan ons die voorpaneel eenkant sit en die tweede sjabloon op die agterpaneel plak, waar ons 'n 3, 5 mm boorpunt moet gebruik om die gate vir ons 4 pcb standoffs te boor, asook 4 gate wat die rande merk vir die klein agterruit.

Ons gebruik dan ons hanteringsaag om die venster uit te sny en die rande glad te maak met 'n lêer. U wil ook nie vergeet om die gat vir die mini -USB -kabel te boor nie (ek het gehoor van 'n nie -gefokusde vervaardiger wat die neiging het om sulke dinge te doen: D).

Aangesien ons die agterpaneel klaar gesny het, kan ons dit in vinylomhulsel toedraai. Ons sny eenvoudig twee stukke in die regte grootte en pas die eerste eenkant toe. Dan sny ons die velde weg en maak die venster los. 'N Haardroër kan help om al die gate weer sigbaar te maak, sodat ons dit ook kan uitsny. Nadat ons dieselfde aan die ander kant gedoen het, gebruik ons ons volgende sjabloon en ons skraap- en breektegniek om die klein akrielvenster vir ons agterpaneel te maak.

Stap 4: Maak die LED -paneel

Maak die LED -paneel
Maak die LED -paneel
Maak die LED -paneel
Maak die LED -paneel
Maak die LED -paneel
Maak die LED -paneel

Nou kom ons tot die hoogtepunt van hierdie projek, in die letterlikste sin. Die LED -paneel.

Ons gebruik ons metaalskêr om 'n stuk van 12, 2 cm by 8 cm uit 'n metaalplaat te sny. Wees versigtig terwyl u dit doen, want die skêr skep baie skerp rande. Ons maak dit glad met ons lêer en 'n bietjie skuurpapier. Dan voeg ons ons volgende sjabloon by om gate vir die skroewe en die drade te boor.

Tyd om die werklike LED's voor te berei.

Eerstens sny ons dit in drie stroke van elk 6 LED's. Sommige van die LED -stroke het 'n baie dun kleeflaag of glad nie kleefmiddel nie, so ons gaan ons stroke op 'n stuk dubbelzijdige band plak en dit met 'n mes op maat sny. Dit sal dit aan die metaalplaat laat vassit, en alhoewel dit nie 'n professionele oplossing is nie, isoleer die koperblokkies van die metaaloppervlak daaronder.

Voordat ons die stroke op die paneel plak, maak ons dit skoon met alkohol. Terwyl ons die LED's aanheg, moet ons seker maak dat ons dit op die regte plek sowel as in die regte rigting neersit. Die klein pyltjies op die LED -strook dui die rigting aan waarin data deur die strook beweeg.

Soos u in die vyfde prentjie kan sien, kom ons datalyn uit die linker boonste hoek van die paneel, gaan deur die eerste strook tot regs, as terug na die begin van die volgende strook aan die linkerkant, ens.. Al ons pyle moet dus na die regte kant wys.

Kom ons verhit ons soldeer -ioon en sit 'n bietjie blik op die koperblokkies, sowel as op ons draad. Die gegewenslyne word verbind soos ek pas beskryf het, terwyl ons die plus en minus pads van die strook parallel aan mekaar haak.

Nadat die stroke vasgemaak is, gebruik ons ons mes om die punte van elke strook versigtig op te lig terwyl ons die LED's ingedruk hou sodat hulle steeds na bo wys. Dan sit ons 'n bietjie warm gom onder om ons soldeerverbindings te isoleer.

Nadat dit klaar is, voeg ons 'n paar koppenne by die drade wat na die PCB gaan. Die drade moet ongeveer 16 cm lank wees. Om meer seker te wees dat die metaalpaneel niks kortkom nie, gebruik ons 'n multimeter om die weerstand tussen al die penne te meet. As dit iets bo 1kOhm toon, is alles in orde.

Nou kan ons dit aan 'n Arduino koppel, 'n strandtoets uitvoer en die kleure geniet.

Stap 5: Maak 'n liggids

Maak 'n liggids
Maak 'n liggids
Maak 'n liggids
Maak 'n liggids
Maak 'n liggids
Maak 'n liggids
Maak 'n liggids
Maak 'n liggids

As ons ons LED -paneel reg agter die melkerige akriel sit, kan dit moeilik wees om individuele LED's van mekaar te onderskei. Dit sal ons horlosie nog moeiliker maak om te lees as wat dit reeds is.

Om hierdie probleem op te los, gaan ons 'n klein liggids maak. Hiervoor sny ons nog 'n stuk MDF, wat dieselfde grootte as die voorpaneel het, uit. Dan voeg ons nog 'n sjabloon daarby en boor agtien 3, 5 mm gate vir die LED's, asook vier 4, 5 mm gate vir die skroewe daarin. Ons kan dit dan aan die voorpaneel vasdruk en 'n bietjie skuurpapier gebruik om die twee in lyn te bring.

Soos u op die laaste foto kan sien, lyk die lig nou baie meer gefokus.

Stap 6: Maak die knoppie raam

Maak die knoppie raam
Maak die knoppie raam
Maak die knoppie raam
Maak die knoppie raam
Maak die knoppie raam
Maak die knoppie raam

Die laaste omhulselkomponent wat ons gaan maak, is die knoppie -raam.

Ons sny weer 'n stuk MDF in die regte grootte en voeg 'n sjabloon by, dan boor ons al die nodige gate en gebruik ons omhulsel om die middelste gedeelte uit te sny.

Ons raam is veronderstel om die 4 aanraakknoppies, die ligsensor en ons klein luidspreker op hul plek te hou. Voordat ons dit aan die raam kan heg, sny ons 'n paar kleiner dekstukke uit MDF. Ons plak dan ons komponente op die omhulsels en voeg drade daarby.

Die kragblokkies van die aanraakknoppie word parallel aangesluit, terwyl elke uitsetlyn 'n individuele draad kry. Dit is ook 'n goeie oomblik om te toets of hulle almal werk. Aangesien die ligsensor 5 volt aan die een kant benodig, kan ons dit eenvoudig aan die alarmknoppies VCC -pad koppel en 'n draad aan die ander been soldeer.

Nadat die panele voorberei is, sny ons aan die kante van die raam om plek vir hulle en hul drade te maak.

Dan verwyder ons die houtstof uit al die stukke met 'n stofsuier en bedek dit met vinylfolie.

Ons gebruik die presisie mes om stukke van die viniel te verwyder, direk bokant die sensitiewe dele van ons aanraakmodules. Met 'n dubbelzijdige band kan ons ons eie knoppies aan die MDF heg. Ek het my knope gemaak van rubberskuim, wat 'n mooi, sagte tekstuur gee, maar jy kan enige nie-metaal materiaal gebruik wat jy wil.

Op die raam gebruik ons ons mes om weer 'n bietjie van die MDF los te maak, wat ons 'n grys oppervlak gee vir die warmgom. Dan kan ons die komponente uiteindelik aan die kante van ons raam plak.

Stap 7: Soldeer die hoof -PCB

Soldeer die hoof PCB
Soldeer die hoof PCB
Soldeer die hoof PCB
Soldeer die hoof PCB
Soldeer die hoof PCB
Soldeer die hoof PCB

Laat ons die raam verlaat soos dit nou is en gaan oor na die PCB. U kan die uitleg van die PCB in die eerste prentjie sien.

Ons begin deur die komponente met die laagste profiel op die printplaat te plaas. Die kleinste komponente is die draadbrue, wat ek 'n bietjie te laat onthou het, so ek het met die weerstande begin. Ons soldeer ons komponente op hul plek en gaan oor na die volgende hoër stel komponente.

Vervolgens het ons ons vroulike koppenne. Om ruimte te bespaar en ons elektronika van die kant af aan te sluit, monteer ons die in 'n hoek van 90 grade.

Transistors pas nie regtig by die 2, 54mm -gatafstand van ons PCB nie, so ons gebruik ons tang om hul bene versigtig te buig na die vorm, soos in die tweede prentjie getoon. Ons soldeer eers een van hul bene op hul plek en draai die PCB om. Ons verhit dan die soldeergewrig en gebruik ons vinger of 'n tang om die komponent behoorlik te plaas. Nou kan ons die ander twee bene op hul plek soldeer.

Na al die klein komponente soldeer ons ons Arduino en ons real -time klokmodule op hul plek. Die RTC -module pas ook nie so goed by die gatafstand nie, so ons gaan slegs die sy met 7 soldeerboute met koppenne toerus. Ons plaas ook 'n band daaronder om kortsluitings te voorkom.

Aangesien al ons komponente op hul plek gesoldeer is, is dit nou tyd om die verbindings aan die ander kant van die bord te maak. Hiervoor gaan ons ons nie -geïsoleerde draad uithaal. 'N Tang kan gebruik word om dit reg te maak. Dan sny ons die draad in kleiner stukkies en soldeer dit aan die printplaat.

Om 'n verbinding te maak, verhit ons 'n soldeerbout en plaas die draad. Ons hou dan die soldeerion daarop totdat dit die regte temperatuur bereik en die soldeer dit omhul en ons kry 'n las wat lyk soos die een op die foto. As ons nie die draad verhit nie, kan ons 'n koue gewrig kry, wat soortgelyk aan die ander voorbeeld lyk en nie baie goed optree nie. Ons kan ons draadsnyer gebruik om die draad af te druk terwyl ons soldeer en seker maak dat dit plat op die printplaat lê. Op langer verbindingspaaie soldeer ons dit elke 5 tot 6 gate aan 'n enkele pad totdat ons 'n hoek of die volgende komponent bereik.

In 'n hoek sny ons die draad bo die eerste helfte van 'n soldeerplaat en soldeer die punt daarvan. Ons neem dan 'n nuwe stuk draad en gaan van daar af in 'n regte hoek.

Dit is nogal moeilik om hierdie leë draadverbindings te maak en dit verg 'n bietjie vaardigheid, so as u dit vir die eerste keer doen, is dit beslis nie 'n slegte idee om dit op 'n afvalplak te oefen voordat u dit op die regte manier probeer doen nie.

Nadat ons klaar is met soldeer, kontroleer ons weer die verbindings en sorg dat ons geen kortsluitings veroorsaak nie. Dan kan ons die printplaat binne die knoppie raam sit en dit as verwysing gebruik vir die nodige raamdraadlengtes. Ons sny die drade dan op die regte lengte en voeg die manlike koppenne daarby.

Al die 5V- en grondaansluitings van die aanraakknoppies kom saam in 'n 2 -pins -aansluiting. Die 4 uitvoerdrade kry 'n 4 -pins -aansluiting en die ligsensorlyn, sowel as die twee luidsprekerdrade wat saamgesmelt is in 'n driepen -aansluiting. Moenie vergeet om die een kant van elke aansluiting en aansluiting met 'n skerp of band vas te maak nie, sodat u dit nie per ongeluk op die verkeerde manier kan aansluit nie.

Stap 8: Monteer die horlosie

Monteer die klok
Monteer die klok
Monteer die klok
Monteer die klok
Monteer die klok
Monteer die klok
Monteer die klok
Monteer die klok

Daarna het ek teruggegaan na die voorpaneel en 'n plakker, gemaak van deursigtige laserprinterfoelie, as 'n laaste aanraking aangebring.

Alhoewel ek dit baie sorgvuldig toegepas het, kon ek nie 'n borrelvrye resultaat kry nie, wat ongelukkig by nadere ondersoek duidelik sigbaar is. Die foelie hou ook nie baie goed by die hoeke nie, so ek kan hierdie oplossing nie regtig aanbeveel nie.

Dit kan waarskynlik met 'n beter plakker gedoen word, of as u goed kan teken, kan u die syfers met 'n skerp punt byvoeg.

Nou het ons al die komponente en kan ons ons horlosie saamstel.

Ons begin deur die liggids en die voorpaneel aanmekaar te sit. Nadat al 4 boute vas is, pas ons die twee panele in lyn en trek dit dan vas. 'N Paar neute kom later op die ligpaneel, waar ons na die rigting moet kyk. Die kabel moet aan die bokant wees.

Die derde stuk, is die knoppie raam. Hou in gedagte dat die luidspreker aan die regterkant van die horlosie aan die voorkant moet kyk. Trek die kabel van u led -paneel deur die middel van die raam voordat u dit vasmaak.

Nou sit ons die voorkant saam en gaan na die agterpaneel. Op die foto kan u ook my pragtige selfgemaakte mini -USB -adapter van 90 grade sien. Ek het u 'n behoorlike adapter gekoppel, sodat u nie hierdie soort gemors hoef te hanteer nie. U kan u adapter eenvoudig aansluit en die kabel deur 'n gat in die agterpaneel lei.

Ons neem ons M3 -skroewe en ons PCB -afstandhouers om die venstertjie reg te maak. Dit is belangrik om die skroewe versigtig vas te trek, aangesien ons nie ons akriel wil beskadig nie. Dan neem ons ons PCB, steek ons adapter in en skroef dit op die afstandhouers. Die komponentkant moet na die venster kyk, terwyl die USB -poort van die Arduino na die onderkant van die horlosie kyk.

Dan steek ons al die verbindings van die voorkant in, terwyl ons die polariteit in gedagte hou en al die drade versigtig in die horlosie druk. Ons kan dit dan met die agterpaneel toemaak en die 4 oorblywende slotmoere vasdraai.

Uiteindelik wil u 'n wasser aan elke kant van elke paneel hê, terwyl die liggids direk agter die voorpaneel geplaas word. Ons het een moer tussen die liggids en die geleide paneel en nog twee, wat dit van die knoppiesraam skei. U kan dit ook op die laaste prentjie sien.

Aangesien ek kort boute met 'n lengte van 40 mm gebruik het, het ek slegs 3 moere wat die agterpaneel en die raam uitmekaar hou. Met die regte boute van 45 mm voeg u nog 'n moer hier by, asook een of twee ekstra ringe. Aan die einde van die vergadering het ons ons slotmoer, sodat alles op sy plek bly.

Stap 9: Laai die kode op en kalibreer die ligsensor

Laai die kode op en kalibreer die ligsensor
Laai die kode op en kalibreer die ligsensor
Laai die kode op en kalibreer die ligsensor
Laai die kode op en kalibreer die ligsensor
Laai die kode op en kalibreer die ligsensor
Laai die kode op en kalibreer die ligsensor

Tyd om ons kode op te laai.

Eerstens laai ons al die nodige lêers af en pak dit uit. Ons maak dan ons gids Arduino biblioteke oop en gooi al die nuwe biblioteke daarin.

Nou maak ons die kalibrasie -skets van die sensorsensor oop, wat ons die helder en donker waardes vir die outomatiese dimmerfunksie van die klok sal gee. Ons laai dit op, maak die seriële monitor oop en volg die instruksies op die skerm.

Nadat dit klaar is, maak ons die werklike kode van die binêre horlosies oop en vervang ons die twee waardes met die waardes wat ons pas gemeet het.

Ons maak alle ander vensters toe, laai die kode op ons horlosie en ons is klaar.

Tyd om rond te speel met ons nuwe gadget.

Stap 10: 'n vinnige inleiding tot die binêre stelsel

'N Vinnige inleiding tot die binêre stelsel
'N Vinnige inleiding tot die binêre stelsel
'N Vinnige inleiding tot die binêre stelsel
'N Vinnige inleiding tot die binêre stelsel
'N Vinnige inleiding tot die binêre stelsel
'N Vinnige inleiding tot die binêre stelsel
'N Vinnige inleiding tot die binêre stelsel
'N Vinnige inleiding tot die binêre stelsel

Voordat ons aangaan, wil ek die een vraag beantwoord wat waarskynlik al deur u gedagtes gegaan het, "Hoe in die wêreld lees jy hierdie horlosie?"

Hiervoor wil ek u 'n kort inleiding tot die binêre stelsel gee.

Ons is almal bekend met die desimale stelsel, waar elke syfer 10 verskillende state kan hê, wat wissel van 0 tot 9. In binêre kan elke syfer slegs twee state hê, óf 1 óf 0, daarom kan u iets so eenvoudig as wat gelei word, gebruik. vertoon 'n binêre getal.

Om getalle wat rasper as 9 in desimale is, te vertoon, voeg ons meer syfers by. Elke syfer het 'n sekere vermenigvuldiger. Die eerste syfer van regs kom met 'n vermenigvuldiger van 1, die volgende een is 10 en die volgende een is 100. Met elke nuwe syfer is die vermenigvuldiger tien keer so groot as die van die syfer voor. Ons weet dus dat die getal twee 'n syfer na links geplaas het, die getal 20. verteenwoordig, terwyl twee syfers na links, dit 200 verteenwoordig.

In die binêre stelsel kom elke syfer ook met 'n vermenigvuldiger. Aangesien elke syfer egter slegs twee verskillende toestande kan hê, is elke nuwe vermenigvuldiger twee keer so groot as die vorige. En terloops, binêre syfers word Bits genoem. Kom ons kyk na ons eerste voorbeeld: as ons 'n 1 op die laagste posisie plaas, is dit 'n eenvoudige 1, maar as ons dit op die volgende hoër posisie plaas, waar ons vermenigvuldiger 2 is, verteenwoordig dit die getal 2 in binêre.

Wat van die effens moeiliker voorbeeld onderaan die prent. Die derde en die eerste stukkies is aan. Om die desimale getal wat hier voorgestel word te kry, voeg ons eenvoudig die waardes van die twee bisse by. Dus gee 4 * 1 + 1 * 1 of 4 + 1 ons die getal 5.

Daar word na 8 biste verwys as 'n byte, dus laat ons kyk watter getal ons kry as ons 'n hele byte met een vul.1+2+4+8+16+32+64+128 dit is 255, wat die hoogste waarde is wat 'n enkele greep kan hê.

Terloops, terwyl die syfer met die hoogste vermenigvuldiger altyd eerste in die desimale stelsel kom, het u twee maniere om 'n getal in binêre neer te skryf. Die twee metodes word die minste betekenisvolle byte eerste (LSB) en die belangrikste byte eerste (MSB) genoem. As u 'n binêre getal wil lees, moet u weet watter van die twee formate gebruik word. Aangesien dit nader aan die desimale stelsel is, gebruik ons binêre klok die MSB -variant.

Laat ons terugkeer na ons voorbeeld van die werklike wêreld. Soos aangedui in die sesde prentjie, het ons klok 4 bisse om die uur te wys. Dan het ons 6 bisse vir die minuut en ook 6 bisse vir die tweede. Verder het ons 'n enkele am/pm -bietjie.

Goed, vertel my hoe laat dit op die sesde prentjie is, as om na die laaste een te gaan.. ….

in die uurafdeling het ons 2+1 wat 3 is en die pm -bietjie is aan, so dit is aand. Volgende, die minuut 32+8, dit is 40. Vir die sekondes het ons 8+4+2, wat 14. Dit is dus 15:40:14 of 15:40:14.

Baie geluk, jy het pas geleer om 'n binêre klok te lees. Dit verg natuurlik 'n rukkie om gewoond te raak, en in die begin moet u die getalle bymekaar tel, elke keer as u wil weet hoe laat dit is, maar net soos 'n analoog horlosie sonder 'n draaiknop, word u gewoond aan die LED -patrone. tyd.

En dit is deel van die doel van hierdie projek: om iets so abstraks as die binêre stelsel na die werklike wêreld te neem en dit beter te leer ken.

Stap 11: Gebruik die binêre wekker

Gebruik die binêre wekker
Gebruik die binêre wekker
Gebruik die binêre wekker
Gebruik die binêre wekker
Gebruik die binêre wekker
Gebruik die binêre wekker

Nou wil ons uiteindelik met die klok rondspeel, so laat ons vinnig na die kontroles kyk.

Die sagteware kan onderskei tussen 'n enkele tik, 'n dubbel tik en 'n lang tik. Elke knoppie kan dus vir verskeie aksies gebruik word.

'N Dubbeltik op die op- of afknoppie verander die kleurmodus van die LED. U kan kies tussen verskillende statiese en vervaagde kleurmodusse, sowel as 'n temperatuurmodus. As u in een van die statiese kleurmodusse is, verander die kleur deur die op- of afknoppie ingedruk te hou. In 'n vervaagmodus verander 'n enkele tik die animasiesnelheid.

Om die dimmermodus in te stel, tik u dubbel op die ok -knoppie. Die LED -paneel dui die ingestelde modus aan deur verskeie kere te knip.

  • Een keer beteken geen dimmer nie.
  • Twee keer beteken dat die helderheid deur die ligsensor beheer word.
  • Drie keer skakel die LED's outomaties uit na 10 sekondes onaktiwiteit.
  • Vier keer en albei dowwer modi word gekombineer.

Deur lank op die ok -knoppie te druk, sal u na die tydinstellingsmodus kom, waar u die pyltjies op en af kan gebruik om die nommer te verander. Met 'n enkele tik op die ok -knoppie kan u van die ure tot die minute gaan, nog 'n tik en u kan die sekondes instel. Daarna spaar 'n laaste tik die nuwe tyd. As u die tydsinstellingsmodus betree, kan u net 10 sekondes wag en die horlosie sal dit outomaties verlaat.

Soos met die ok -knoppie, kan u die alarm instel deur die alarmknoppie lank in te druk. Deur twee keer op die alarmknoppie te tik, word die alarm geaktiveer of gedeaktiveer.

As die horlosie lui, tik u net op die alarmknoppie om dit vir 5 minute in die slaap te stuur of te hou om die alarm uit te skakel.

Dit was al die funksies wat die klok tot dusver gehad het. Ek sal moontlik in die toekoms meer byvoeg wat u kan kry as u die nuutste firmware -weergawe aflaai.

Stap 12: Begrip van die kode (opsioneel)

Begrip van die kode (opsioneel)
Begrip van die kode (opsioneel)

Ek weet dat baie mense nie baie hou van programmeer nie. Gelukkig vir hierdie mense is byna geen kennis van programmering nodig om hierdie binêre klok te bou en te gebruik nie. As u nie omgee vir die programmeringskant nie, kan u hierdie stap eenvoudig oorslaan.

As u egter belangstel in die koderingsdeel, wil ek u 'n algemene oorsig van die program gee.

Om elke klein detail van die horlosiekode te verduidelik, is 'n instruksie op sy eie, so ek sal dit eenvoudig hou deur die program op 'n objekgeoriënteerde manier te verduidelik.

As u nie weet wat dit beteken nie, is objekgeoriënteerde programmering (OOP) 'n konsep van die meeste moderne programmeertale soos C ++. Dit stel u in staat om verskillende funksies en veranderlikes in sogenaamde klasse te organiseer. 'N Klas is 'n sjabloon waaruit u een of meer voorwerpe kan skep. Elkeen van hierdie voorwerpe kry 'n naam en 'n eie stel veranderlikes.

Die kode van die klok gebruik byvoorbeeld 'n paar MultiTouchButton -voorwerpe, soos die alarmButton. Dit is voorwerpe uit die klas MultiTouchButton, wat deel uitmaak van my Button -biblioteek. Die aangename ding met die voorwerpe is dat u daarmee kan koppel, soortgelyk aan voorwerpe uit die regte wêreld. Ons kan byvoorbeeld kyk of die alarmknoppie twee keer ingedruk is deur alarmButton.wasDoubleTapped () te bel. Boonop is die implementering van hierdie funksie mooi versteek in 'n ander lêer en hoef ons ons nie te bekommer oor die breek daarvan deur iets anders in ons kode te verander nie. Op die Adafruit -webwerf kan u 'n vinnige toegang tot die wêreld van objekgeoriënteerde programmering vind.

Soos u in die grafiek hierbo kan sien, bevat die horlosieprogram 'n klomp verskillende voorwerpe.

Ons het pas gepraat oor die knoppie -voorwerpe, wat insetsignale kan interpreteer as 'n tik, 'n dubbel tik of 'n lang druk.

Soos die naam aandui, kan die jukebox raas. Dit het verskeie melodieë wat deur 'n klein luidspreker gespeel kan word.

Die binaryClock -voorwerp bestuur tyd en alarminstellings, sowel as alarmkyk. Dit kry ook die tyd van die rtc -module en omskep dit in 'n binêre inligtingsbuffer vir die ledPanel.

Die colorController bevat al die kleureffekfunksies en bied die colorBuffer vir die ledPanel. Dit bespaar ook sy toestand in die Arduinos EEProm.

Die dimmer sorg vir die helderheid van die horlosies. Dit het verskillende maniere waarop die gebruiker kan fietsry. Die huidige modus word ook in die EEProm gestoor.

Die ledPanel bestuur verskillende buffers vir die kleurwaarde, helderheidswaarde en binêre toestand van elke LED. Elke keer as die pushToStrip () -funksie genoem word, lê dit die lêers oor en stuur dit na die ledstrook.

Alle voorwerpe word "verbind" via die hoof (die lêer met die opstel- en lusfunksies), wat slegs 'n paar funksies bevat om drie noodsaaklike take uit te voer.

  1. Interpretasie van gebruikersinvoer - Dit kry die insette van die vier knoppie -voorwerpe en plaas dit deur 'n logika. Hierdie logika kontroleer die huidige toestand van die horlosie om vas te stel of die klok in die normale, tydsinstelling of lui -modus is, en roep dienooreenkomstig verskillende funksies van die ander voorwerpe op.
  2. Die bestuur van kommunikasie tussen voorwerpe - Dit vra voortdurend die binaryClock -voorwerp, of daar nuwe inligting beskikbaar is of die alarm lui (). As dit nuwe inligting het, kry dit die informationBuffer van die binaryClock en stuur dit na die ledPanel -voorwerp. As die horlosie lui, begin die jukebox.
  3. Voorwerpe opdateer - Elke voorwerp van die program het 'n opdateringsprosedure, wat gebruik word vir die kontrole van insette of die verandering van die kleure van die LED. Hulle moet herhaaldelik in die lusfunksie gebel word sodat die klok behoorlik kan werk.

Dit moet u 'n algemene idee gee van hoe die individuele stukke kode saamwerk. As u meer spesifieke vrae het, kan u my dit eenvoudig vra.

Aangesien my kode beslis nie perfek is nie, sal ek dit in die toekoms verder verbeter, sodat 'n paar funksies kan verander. Die aangename van OOP is dat dit steeds op 'n baie soortgelyke manier sal werk, en dat u die grafika steeds kan gebruik om dit te verstaan.

Stap 13: Finale woorde

Laaste Woorde
Laaste Woorde

Ek is bly dat u tot hier gelees het. Dit beteken dat my projek nie te vervelig was nie:).

Ek het baie werk in hierdie klein horlosie gesit en nog meer werk in al die dokumentasie en die video, om dit vir u makliker te maak, om u eie binêre wekker te bou. Ek hoop dat my moeite die moeite werd was, en ek kan u 'n goeie idee gee vir u volgende naweekprojek, of u kan ten minste inspirasie gee.

Ek sal graag wil hoor wat u van die horlosie dink in die kommentaar hieronder:).

Alhoewel ek probeer het om elke detail te dek, het ek dalk iets of twee gemis. Vra dus gerus as daar nog vrae is.

Soos altyd, baie dankie vir die lees en die lekker maak.

LED -kompetisie 2017
LED -kompetisie 2017
LED -kompetisie 2017
LED -kompetisie 2017

Naaswenner in die LED -kompetisie 2017

Aanbeveel: