Inhoudsopgave:
- Stap 1: Hoe het te lezen?
- Stap 2: Wat heb je nodig?
- Stap 3: Elektronische componenten - Achtergrond
- Stap 4: Elektronica - Voeding
- Stap 5: Elektronica - Solderen
- Stap 6: Software - Achtergrond
- Stap 7: Software - Code
- Stap 8: Maak de klok
- Stap 9: Teken in het bos
- Stap 10: monteren
- Stap 11: Upgrade - Fotoresistor
- Stap 12: Geniet
Video: LEDura - Analoge LED-klok - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Tinkercad-projecten »
Na een lange tijd van het maken van verschillende projecten, besloot ik zelf een instructable te maken. Voor de eerste zal ik je begeleiden bij het maken van je eigen analoge klok gemaakt met een geweldige adresseerbare LED-ring. De binnenste ring toont de uren, buitenste ring toont minuten en seconden.
Naast de tijd kan de klok ook de kamertemperatuur weergeven en het kan een hele mooie decoratie zijn in de kamer. Elke 15 minuten maakt de klok ook enkele speciale effecten - video laat ze allemaal zien, zorg ervoor dat je het bekijkt. Met behulp van 2 knoppen en potentiometer kan de gebruiker kiezen tussen verschillende modi en kleuren naar eigen wens wijzigen. Ik heb het ook geüpgraded om de LED's automatisch te dimmen als de kamer donker wordt, zodat de gebruiker 's nachts niet gestoord wordt.
De klok kan op het bureau, bedtafel worden geplaatst of aan de muur worden opgehangen.
Let op: Foto's zijn vanwege de hoge helderheid niet zo goed als het uitzicht in de werkelijkheid.
Stap 1: Hoe het te lezen?
Klok heeft 2 ringen - een kleinere voor het weergeven van uren en een grotere voor het weergeven van minuten en seconden. Sommige LED's branden de hele tijd - een zogenaamd kompas dat de belangrijkste klokposities aangeeft. Op de urenring staat het voor 3, 6, 9 en 12 uur, op de minutenring voor 15, 30, 45 en 0 minuten.
Stap 2: Wat heb je nodig?
Materialen:
- 1x Arduino Nano (je kunt ook elke andere Arduino gebruiken)
- 1x DS3231 RealTimeClock-module
- 1x Adresseerbare led-ring - 60 leds
- 1x Adresseerbare led-ring - 24 LED's
- 2x Knoppen (NEE - normaal open)
- 1x 100kOhm potentiometer
- 1x 5V voeding (kan 1 Amp leveren)
- 1x Voedingsaansluiting
- Sommige draden
- 1x 10kOhm weerstand
-
1x fotoweerstand
- Prefboard (optioneel)
- Klemmenblok draadconnectoren (optioneel)
- 25mm dik hout, afmeting minimaal 22cmx22cm
- 1mm dunne mat PVC kunststof maat 20cmx20xm
Gereedschap:
- Basisgereedschappen voor het bouwen van elektronica (soldeerbout, tang, schroevendraaier, …)
- Boor
- Heet lijmpistool
- Schuurpapier en wat houtvernis
- CNC-machine (misschien heeft een vriend het)
Stap 3: Elektronische componenten - Achtergrond
DS3231
We konden de tijd bepalen met behulp van Arduino's ingebouwde oscillator en een timer, maar ik besloot een speciale Real Time Clock (RTC) -module te gebruiken, die de tijd kan bijhouden, zelfs als we de klok loskoppelen van de stroombron. DS3231-kaart heeft een batterij, die stroom levert wanneer de module niet is aangesloten op de voeding. Het is ook nauwkeuriger over langere tijdsperioden dan de klokbron van Arduino.
DS3231 RTC gebruikt de I2C-interface om te communiceren met de microcontroller - zeer eenvoudig te gebruiken en we hebben slechts 2 draden nodig om ermee te communiceren. Module biedt ook temperatuursensor, die in dit project zal worden gebruikt.
Belangrijk: Als u van plan bent een niet-oplaadbare batterij voor de RTC-module te gebruiken, moet u de 200 ohm-weerstand of 1N4148-diode lossolderen. Anders kan uw batterij ontploffen. Meer informatie vind je op deze link.
WS2812 LED-ring
Ik besloot om de 60 LED-ring te gebruiken om de minuten bij te houden en de 24 LED-ring voor uren. Je kunt ze vinden op Adafruit (neoPixel ring) of sommige goedkope versies op eBay, Aliexpress of andere webshops. Er is een grote diversiteit aan adresseerbare ledstrips en als het de eerste keer is dat je ermee speelt, raad ik je aan om enkele gebruiksbeschrijvingen door te lezen - hier zijn enkele handige links:
https://www.tweaking4all.com/hardware/arduino/adr…
https://randomnerdtutorials.com/guide-for-ws2812b…
Adresseerbare ledstrip heeft 3 connectoren: 5V, GND en DI/DO. De eerste twee zijn voor het voeden van de LED's, de laatste is voor de gegevens. Wees voorzichtig bij het aansluiten van de ring op Arduino - uw datalijn moet zijn aangesloten op de DI (data IN) pin.
Arduino
Ik gebruik Arduino Nano omdat het klein en voldoende genoeg is voor dit project. Je kunt bijna elke andere Arduino gebruiken, maar dan moet je voorzichtig zijn als je alles erop aansluit. De knoppen en LED-ringen kunnen op dezelfde pinnen zitten, maar I2C-connectoren (voor RTC-module) kunnen van platform tot platform verschillen - bekijk hun datasheet.
Stap 4: Elektronica - Voeding
Arduino en LED strip moeten beide worden geleverd met 5V stroombron zodat we weten welke spanning nodig is. Omdat de LED-ringen behoorlijk wat versterkers trekken, kunnen we hem niet rechtstreeks van stroom voorzien met Arduino, die maximaal 20 mA kan weerstaan op zijn digitale uitgang. Door mijn metingen kunnen LED-ringen samen tot 500 mA trekken. Daarom heb ik een adapter gekocht die tot 1A kan leveren.
Met dezelfde voeding willen we Arduino en LED's van stroom voorzien - hier moet je voorzichtig mee zijn.
Waarschuwing! Wees extra voorzichtig wanneer u de LED-strip test - de voedingsadapter mag NIET worden aangesloten op Arduino, wanneer Arduino ook is aangesloten op een pc met een USB-connector (u kunt de USB-poort van uw computer beschadigen).
Opmerking: in het onderstaande schema heb ik de normale schakelaar gebruikt om te selecteren of Arduino wordt gevoed via een voeding of via een USB-connector. Maar op het perfboard kun je zien dat ik een pin-header heb toegevoegd om te selecteren uit welke stroombron Arduino wordt gevoed.
Stap 5: Elektronica - Solderen
Als je alle onderdelen hebt verzameld, is het tijd om ze aan elkaar te solderen.
Omdat ik de bedrading netjes wilde maken, heb ik perfboard en een aansluitblokconnector voor draden gebruikt, zodat ik ze kan loskoppelen in geval van wijzigingen. Dit is optioneel - u kunt de draden ook rechtstreeks op de Arduino solderen.
Een tip: het is makkelijker als je het schema uitprint zodat je het tijdens het solderen voor je hebt. En controleer alles nogmaals voordat u verbinding maakt met de voeding.
Stap 6: Software - Achtergrond
Arduino IDE
We gaan Arduino programmeren met zijn speciale software: Arduino IDE. Als je voor het eerst met Arduino speelt, raad ik je aan om enkele instructables te raadplegen over hoe je dit moet doen. Er zijn al genoeg tutorials op internet, dus ik zal niet ingaan op details.
Bibliotheek
Ik besloot om de FastLED-bibliotheek te gebruiken in plaats van de populaire Adafruit. Het heeft een aantal handige wiskundige functies waarmee je geweldige effecten kunt doen (Duimen omhoog voor de ontwikkelaars!). Je kunt de bibliotheek vinden in hun GitHub-repository, maar ik heb het.zip-bestand van de versie toegevoegd die ik in mijn code gebruik.
Als je je afvraagt, hoe je een externe bibliotheek aan Arduino IDE kunt toevoegen, kun je enkele reeds gemaakte instructies bekijken
Voor de klokmodule heb ik de Arduino-bibliotheek gebruikt voor de DS3231 real-time klok (RTC) (link), die je eenvoudig in Arduino IDE kunt installeren. Wanneer u in IDE bent, klikt u op Sketch → Bibliotheek opnemen → Bibliotheken beheren … en filtert u uw zoekopdracht met de bovenstaande naam.
Opmerking: om de een of andere reden kan ik momenteel geen.zip-bestanden toevoegen. Je kunt de bibliotheek vinden op mijn GitHub-repository.
Stap 7: Software - Code
Structuur
De applicatie is opgebouwd met 4 bestanden:
- LEDclokc.ino Dit is de belangrijkste Arduino-toepassing, waar u functies kunt vinden voor het besturen van de hele klok - ze beginnen met het voorvoegsel CLOCK_.
- LEDclokc.h hier zijn pin-verbindingsdefinities en enkele klokconfiguraties.
- ring.cpp en ring.h hier is mijn code voor het bedienen van de LED-ringen.
LEDclock.h
Hier vindt u alle klokdefinities. In het begin zijn er definities voor bedrading. Zorg ervoor dat ze hetzelfde zijn als uw verbindingen. Dan zijn er klokconfiguraties - hier vindt u de macro voor het aantal modi dat de klok heeft.
LEDclock.ino
Op het diagram wordt de hoofdlus weergegeven. Code controleert eerst of er op een knop wordt gedrukt. Vanwege de aard van switches moeten we de debbouncing-methode gebruiken om hun waarden te lezen (u kunt hier meer over lezen op de link).
Wanneer knop 1 wordt ingedrukt, wordt de variabele modus met 1 verhoogd. Als knop 2 wordt ingedrukt, wordt het variabele type verhoogd. We gebruiken deze variabelen om te bepalen welke klokmodus we willen zien. Als beide knoppen tegelijkertijd worden ingedrukt, wordt de functie CLOCK_setTime() aangeroepen, zodat u de tijd van de klok kunt wijzigen.
Latere code leest de waarde van de potentiometer en slaat deze op in een variabele - waarbij deze variabele gebruiker de kleuren van de klok, helderheid enz.
Dan is er een switch-case statement. Hier bepalen we in welke modus de klok zich momenteel bevindt, en door die modus wordt de bijbehorende functie aangeroepen, die de kleuren van de LED's instelt. U kunt uw eigen klokmodi toevoegen en de functies herschrijven of wijzigen.
Zoals beschreven in de FastLED-bibliotheek, moet je de functie FastLED.show() aan het einde aanroepen, waardoor de LED's de kleur krijgen die we eerder hadden ingesteld.
U kunt veel gedetailleerdere beschrijvingen vinden tussen de coderegels
De hele code is hieronder bijgevoegd in de onderstaande bestanden.
TIP: je kunt het hele project vinden in mijn GitHub-repository. Hier wordt de code ook bijgewerkt als ik er wijzigingen in aanbreng.
Stap 8: Maak de klok
klok frame
Ik bouwde het klokframe met behulp van een CNC-machine en 25 mm dik hout. U vindt de schets getekend in ProgeCAD hieronder. De sleuven voor de LED-ring zijn iets groter, omdat fabrikanten alleen de afmetingen van de buitendiameter geven - de binnendiameter kan behoorlijk variëren … Achterin de klok is er veel ruimte voor elektronica en draden.
PVC-ringen
Omdat LED's behoorlijk fel zijn, is het goed om ze op de een of andere manier te diffunderen. Eerst probeerde ik met transparante siliconen, die het werk van diffunderen doet, maar het is nogal rommelig en het is moeilijk om het er glad op te krijgen. Daarom bestelde ik een stuk "melk" PVC-kunststof van 20x20 cm en sneed er twee ringen in met een CNC-machine. U kunt schuurpapier gebruiken om de randen zachter te maken, zodat de ringen in de sleuven glijden.
Zijgaten
Dan is het tijd om de gaten voor knoppen, potmeter en voedingsconnector te boren. Teken eerst elke positie met een potlood en boor vervolgens het gat in. Hier hangt het af van wat voor soort knoppen je hebt - ik ging voor drukknoppen met een licht gebogen kop. Ze hebben een diameter van 16 mm, dus ik heb een houtboor van dat formaat gebruikt. Hetzelfde geldt voor potentiometer en voedingsconnector. Vergeet niet alle potloodtekeningen achteraf te wissen.
Stap 9: Teken in het bos
Ik besloot enkele klokkenwijzers in het hout te tekenen - hier kun je je fantasie gebruiken en je eigen ontwerpen. Ik verbrandde het hout met behulp van soldeerbout, verwarmd tot maximale temperatuur.
Om de cirkels mooi rond te krijgen, heb ik een stuk aluminium gebruikt, er een gat in geboord en de randen van het gat gevolgd met een soldeerbout (zie de afbeelding). Zorg ervoor dat je aluminium stevig vasthoudt, zodat het niet wegglijdt tijdens het tekenen. En wees voorzichtig tijdens het doen om blessures te voorkomen.
Als je tekeningen aan het maken bent en je wilt dat ze mooi uitgelijnd zijn met de klokpixels, dan kun je de “Onderhoudsmodus” gebruiken die je laat zien waar de pixels komen te staan (ga naar hoofdstuk Assembleren).
Bescherm het hout
Als je tevreden bent met de klok is het tijd om hem te schuren en te beschermen met houtvernis. Ik gebruikte heel zacht schuurpapier (waarde van 500) om de randen te verzachten. Ik raad je aan om transparante houtvernis te gebruiken, zodat de kleur van het hout niet verandert. Breng een kleine hoeveelheid vernis aan op de borstel en trek deze in de richting van de eenjarigen in het hout. Herhaal dit minimaal 2 keer.
Stap 10: monteren
Sparren zet de knoppen en potentiometer op hun positie - als je gaten te groot zijn, kun je wat hete lijm gebruiken om ze op hun plaats te bevestigen. Plaats vervolgens de ringstrip in de sleuven en sluit de draden aan op de Arduino. Voordat u de LED-ring op zijn plaats lijmt, is het goed om er zeker van te zijn dat de LED-pixels op de juiste plaats zitten - gecentreerd en uitgelijnd met de tekening. Voor dat doel heb ik de zogenaamde Onderhoudsmodus toegevoegd die alle belangrijke pixels zal weergeven (0, 5, 10, 15, … op minutenring en 3, 6, 9 en 12 op urenring). U kunt naar deze modus gaan door beide knoppen ingedrukt te houden voordat u de voeding in de connector steekt. U kunt deze modus verlaten door op een willekeurige knop te drukken.
Wanneer je je LED-ringen hebt uitgelijnd, breng dan wat hete lijm aan en houd ze vast terwijl de lijm stevig wordt. Neem vervolgens je PVC-ringen en opnieuw: breng wat hete lijm aan op de LED's, plaats ze snel en houd ze een paar seconden vast. Uiteindelijk, als je zeker weet dat alles werkt, kun je het per board (of Arduino) op het hout lijmen. Tip: breng niet te veel lijm aan. Slechts een kleine hoeveelheid, zodat het op één plaats blijft, maar u kunt het gemakkelijk verwijderen als u later iets wilt wijzigen.
Plaats helemaal aan het einde de knoopcelbatterij in de houder.
Stap 11: Upgrade - Fotoresistor
De klokeffecten zijn vooral leuk in het donker. Maar dit kan de gebruiker 's nachts storen, terwijl hij of zij slaapt. Daarom heb ik besloten om de klok te upgraden met de functie van automatische helderheidscorrectie - wanneer de kamer donker wordt; de klok schakelt zijn LED's uit.
Voor dat doel gebruikte ik de lichtsensor - fotoweerstand. De weerstand zal aanzienlijk toenemen; tot een paar mega ohm als het donker is en hij zal maar een paar honderd ohm hebben als er licht op schijnt. Samen met een normale weerstand vormen ze de spanningsdeler. Dus als de weerstand van de lichtsensor verandert, verandert ook de spanning op de Arduino analoge pin (die we kunnen meten).
Voordat u een schakeling gaat solderen en monteren, is het verstandig om deze eerst te simuleren, zodat u het gedrag kunt zien en correcties kunt aanbrengen. Met de hulp van Autocad Tinkercad kunt u precies dat doen! Met slechts een paar klikken heb ik de componenten toegevoegd, aangesloten en de code geschreven. In de simulatie kunt u zien hoe de helderheid van de LED's wordt gewijzigd volgens de waarde van de fotoweerstand. Het is heel eenvoudig en duidelijk - je bent van harte welkom om met het circuit te spelen.
Na simulatie was het tijd om de functie aan de klok toe te voegen. Ik heb een gat in het midden van de klok geboord, de fotoweerstand gelijmd, aangesloten zoals te zien op het circuit en enkele regels code toegevoegd. In het bestand LEDclock.h moet u deze functie inschakelen door USE_PHOTO_RESISTOR als 1 te declareren. U kunt ook wijzigen bij welke kamerhelderheid de klok de LED's zal dimmen door de CLOCK_PHOTO_TRESHOLD-waarde te wijzigen.
Stap 12: Geniet
Wanneer u hem voor de eerste keer van stroom voorziet, zal de klok een willekeurige tijd weergeven. U kunt het instellen door beide knoppen tegelijkertijd in te drukken. Draai aan de knop om de juiste tijd te selecteren en bevestig deze met een druk op een willekeurige knop.
Ik vond inspiratie in een heel mooi project op internet. Als je besluit om de klok zelf te bouwen, bekijk ze dan ook! (NeoClock, Wol Clock, Arduino Colourful Clock) Als je ooit besluit om instructables te volgen, hoop ik dat je het net zo leuk vindt als ik.
Als je problemen tegenkomt tijdens het maken ervan, stel me dan gerust een vraag in de opmerkingen - ik zal graag proberen het te beantwoorden!
Aanbevolen:
Hoe maak je een LED-kubus - LED-kubus 4x4x4: 3 stappen
Hoe maak je een LED-kubus | LED Cube 4x4x4: Een LED Cube kan worden gezien als een LED-scherm, waarin eenvoudige 5 mm LED's de rol van digitale pixels spelen. Met een LED-kubus kunnen we afbeeldingen en patronen creëren door gebruik te maken van het concept van een optisch fenomeen dat bekend staat als persistentie van het gezichtsvermogen (POV). Dus
DIY SCHIJNWERPER W/AC LED's (+EFFICIENCY VS DC LED's): 21 stappen (met afbeeldingen)
DIY FLOODLIGHT W/AC LED's (+EFFICIENCY VS DC LED's): In deze instructable/video maak ik een schijnwerper met extreem goedkope driverless AC LED-chips. Zijn ze goed? Of zijn het complete rommel? Om dat te beantwoorden, zal ik een volledige vergelijking maken met al mijn gemaakte DIY-lampen. Zoals gewoonlijk, voor goedkope
Eenvoudige LED-striplampen (upgrade van uw LED-strips): 4 stappen (met afbeeldingen)
Eenvoudige LED-striplampen (upgrade uw LED-strips): ik gebruik al een tijdje LED-strips en heb altijd genoten van de eenvoud ervan. Je knipt gewoon een stukje van een rol af, soldeert er wat draden aan, sluit een voeding aan en je hebt een lichtbron. Door de jaren heen heb ik een c
Muziek Reactieve Multicolor LED Verlichting - Arduino-geluidsdetectiesensor - RGB LED-strip: 4 stappen
Muziek Reactieve Multicolor LED Verlichting | Arduino-geluidsdetectiesensor | RGB LED Strip: Muziek-reactief meerkleurig LED-lichtproject. In dit project werden een eenvoudige 5050 RGB LED-strip (niet de adresseerbare LED WS2812), Arduino-geluidsdetectiesensor en 12V-adapter gebruikt
LED-onderzetter/LED-onderzetter: 7 stappen (met afbeeldingen)
LED-coaster/LED-onderzetter: Voor een project op school glas wij een lichtarmatuur ontwerpen waarin geplooid plexi wordt gebruikt.In het begin wordt gedacht om een onderzetter te maken die oplicht als het glas leeg of bijna leeg is, zo kan in een restaurant , café,… de o