Inhoudsopgave:
- Stap 1: Materiaal & Gereedschap
- Stap 2: LED-matrix
- Stap 3: Andere HW
- Stap 4: Mechanische onderdelen
- Stap 5: Arduino-onderdeel
- Stap 6: Alarm voltooien
Video: LED-matrixwekker (met mp3-speler) - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Deze op Arduino gebaseerde wekker heeft alles wat je van je alarm mag verwachten - mogelijkheid om je wakker te maken met elk nummer dat je leuk vindt, snooze-knop en het is eenvoudig te bedienen via drie knoppen. Er zijn drie hoofdblokken - LED-matrix, RTC-module en MP3-schild met luidspreker.
Stap 1: Materiaal & Gereedschap
- LED-matrix
- Arduino Uno
- MP3-schild DHF-speler Mini
- RTC-module DS1307
- Elke spreker
- 3 knoppen (met pullup/pulldown weerstanden 10k)
- Draden
- Plexi (of welk materiaal dan ook waarvan je je doos wilt hebben)
- 3D-printer (voor het printen van matrixboxen)
- DC-voedingsconnector
- USB B vrouwelijke connector.
Ik geloof dat je deze materiaallijst kunt aanpassen op basis van je mogelijkheden (je kunt zeker verschillende MP3 Shields, verschillende RTC-modules gebruiken en alles zou prima moeten werken:)
Stap 2: LED-matrix
Als inspiratie gebruikte ik deze instructables om LED-matrix te bouwen, ik besloot alleen geen prototyping-bord te gebruiken en mijn eigen PCB te ontwerpen. Je kunt mijn project in circuitmaker hier vinden. Je kunt ook schema's gebruiken en als je gerber-gegevens wilt verzenden (in plaats van het zelf te genereren uit een circuitmaker-project), laat het me weten, ik zal het je bezorgen:). Enkele tips - eerst gebruikte ik zeer goedkope LED, maar nadat ik alle diodes had gesoldeerd en de arduino-code had uitgevoerd, bleek de variantie van de LED-diodekleur niet acceptabel, dus moest ik verschillende bestellen en een andere LED-matrix maken. Ik zal het werkingsprincipe uitleggen in Part arduino. Hoe dan ook, om erachter te komen of je het goed hebt gedaan en het display werkt, vervang je gewoon de constanten in de DisplayChar-functie in de hoofd arduino-lus (bijvoorbeeld in plaats van DisplayChar (1, letA); gebruik DisplayChar (0, 9); die nummer 9 zal schrijven beginnend bij de 1e kolom), hoeft u verder niets op te merken.
Stap 3: Andere HW
De andere HW-componenten om een wekker te bouwen zijn: RTC-module, MP3-schild, knoppen en arduino UNO.
Voor de RTC-module heb ik module DS1307 en bibliotheek MD_DS1307.h gebruikt, het is vrij eenvoudig, alles werkt soepel, maar ik zou waarschijnlijk aanraden om een nauwkeurigere RTC-module zoals 3231 of iets anders te gebruiken - als ik het een paar dagen zonder stroom liet, begon het enkele seconden te verliezen.
MP3-schild DHF-speler Mini - Dit MP3-schild is heel eenvoudig, je kunt wat mp3 uploaden naar een SD-kaart, elke luidspreker aansluiten die je vindt en dan kan het op twee manieren worden bediend, hetzij via seriële communicatie, of via I/O-pinnen. Om eerlijk te zijn was ik om de een of andere reden niet succesvol in seriële communicatie (het werkte niet samen met SPI- en I2C-communicatie die voor andere componenten wordt gebruikt), maar ik was best oké om alleen IO-pinnen te gebruiken (ik gebruikte ADKEY1 aangesloten op arduino Digital-uitgang als een trigger om een nummer af te spelen en dan USB+ vastzetten om de muziek te stoppen).
Zoals je op de foto kunt zien, heb ik drie eenvoudige knoppen op een prototypebord gebruikt die zijn aangesloten op de digitale ingangen van Arduino met pull-down-weerstanden van 10kOhm.
De bedrading voor Arduino is duidelijk te zien in Arduino-code:)
Stap 4: Mechanische onderdelen
Om een mooi, regelmatig display te krijgen, moet u een raster gebruiken om de exacte vorm voor elke LED te definiëren. Ik heb een eenvoudig 3D-geprint raster gebruikt dat prima werkt - het is gemaakt uit twee delen, links en rechts, je kunt de STL-gegevens in bijlage vinden.
De doos is gefreesd op een CNC-machine van melkplexi. Het is helemaal aan jou van welk materiaal je maakt, slechts één aanbeveling, als je hetzelfde materiaal wilt gebruiken als ik, plaats dan een semi-permeabele laag op het onderdeel dat direct op LED's zit om te voorkomen dat LED's zichtbaar zijn als een puntbron van licht. Je kunt zien dat er in de zijwand ruimte is voor een DC-voedingsconnector en USB om betere code-ideeën te uploaden:) Ik gebruikte standaardlijm voor kunststoffen om plexi-onderdelen aan elkaar te lijmen. In bijlage zijn er STL-bestanden voor alle onderdelen (Bedankt mijn vriend Peshi voor het ontwerpen van deze super coole box:))
Stap 5: Arduino-onderdeel
Gedeeltelijk gerelateerd aan Arduino zou ik graag kort het hoofdlus-algoritme willen beschrijven en dan enkele woorden om de Shift-registers te besturen via SPI en Alarminstellingen.
In de hoofdlus controleer je gewoon of er op een knop is gedrukt, controleer je of de RTC je nieuw bijgewerkte waarden van minuten stuurt en of het tijd is om een roze floyd-nummer af te spelen:) en zo niet, dan zet je gewoon periodiek de LED's aan en uit met nummers instellen.
De LED-matrix besturen - Voor een beter begrip is het goed om de instructies voor de LED-matrix te volgen die ik aan het begin noemde, maar kort - het is belangrijk om te begrijpen dat om cijfers of letters in deze matrix te tonen, u periodiek moet kiezen welke LED uit de set rij moet worden ingeschakeld en draai vervolgens alle LED's van rij enige tijd aan. In de volgende stap zet je deze rij uit en bereid je de tweede rij voor en dit steeds opnieuw. Wat betekent dit? - gebruik geen vertragingen! - anders worden er geen cijfers weergegeven, maar knippert het gewoon:)
Ik gebruik een heel andere en ik zou zeggen een gemakkelijkere manier om shift-registers te bedienen (met dank aan mijn vriend Krystof die deze soepele functie heeft geschreven). Dus de eerste stap (het voorbereiden van de gegevens voor het schuifregister gebeurt in de functie DisplayChar, waar je gewoon het gewenste symbool uit de reeks constanten vindt en gegevens voor registers voorbereidt. En wanneer de functie UpdateDisplay wordt aangeroepen, worden de gegevens verschoven naar uitgangen (voor meer info zie scherm van arduino IDE)
Alarm instellen. Er zijn drie knoppen, links, midden en rechts. Als je rechts en midden dubbel drukt, kom je in het alarmmenu. In het alarmmenu zijn de volgende functies beschikbaar: linkerknop (alarm instellen voor uren) middelste knop (alarm instellen voor minuten) Rechterknop lang indrukken (alarm bevestigen), middelste en rechterknop lang indrukken (bestaand alarm wissen).
Wanneer het alarm is ingesteld (je kunt dit herkennen aan het feit dat de alarm-LED rechtsonder inschakelt) en de klok je favoriete ochtendlied begint af te spelen:) zijn er de volgende functies beschikbaar - linkerknop (snooze voor nog eens 5 minuten), middelste knop (alarm annuleren).
Stap 6: Alarm voltooien
Op het einde lijm ik alles binnenin aan elkaar:) en sluit de lijm het achterste deel van alarm. In de bijgevoegde video kunt u het bedieningsmechanisme van dit alarm zien. Let op de video, in de video lijkt het alsof het knippert, het wordt veroorzaakt door het principe van het in- en uitschakelen van LED's en de framesnelheid van de camera-ondertiteling - in werkelijkheid zien je ogen dit als ingeschakeld zonder te knipperen:)
Voor de toekomst zou ik graag ander materiaal willen proberen - idealiter wat zwart:) en wat meer functies toevoegen, zoals het tonen van de datum, misschien temperatuur, enz:)
Ik hoop dat je het leuk zult vinden om je eigen wekker te bouwen en kijk uit naar je ideeën:)
Tweede prijs in de klokkenwedstrijd
Aanbevolen:
Digitale klok met netwerktijd met behulp van de ESP8266: 4 stappen (met afbeeldingen)
Digitale netwerkklok met de ESP8266: we leren hoe we een schattige kleine digitale klok kunnen bouwen die communiceert met NTP-servers en de netwerk- of internettijd weergeeft. We gebruiken de WeMos D1 mini om verbinding te maken met een wifi-netwerk, de NTP-tijd te verkrijgen en deze weer te geven op een OLED-module. De video hierboven
DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen)
DIY Slimme Weegschaal Met Wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In mijn vorige project ontwikkelde ik een slimme weegschaal met Wi-Fi. Het kan het gewicht van de gebruiker meten, het lokaal weergeven en naar de cloud sturen. U kunt hier meer informatie over krijgen op onderstaande link: https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Pratende Arduino - Een MP3 afspelen met Arduino zonder enige module - Mp3-bestand afspelen vanaf Arduino met PCM: 6 stappen
Pratende Arduino | Een MP3 afspelen met Arduino zonder enige module | Mp3-bestand van Arduino afspelen met PCM: in deze instructie leren we hoe we een mp3-bestand met arduino kunnen spelen zonder een audiomodule te gebruiken, hier gaan we de PCM-bibliotheek voor Arduino gebruiken die 16 bit PCM van 8 kHz-frequentie speelt, dus laten we dit doen
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Start uw diavoorstelling met vakantiefoto's met een vleugje magie! 9 stappen (met afbeeldingen)
Lanceer uw diavoorstelling met vakantiefoto's met een vleugje magie!: In de loop der jaren heb ik de gewoonte ontwikkeld om een klein beeldje mee te nemen op reis: ik koop vaak een kleine, lege artoy (zoals die op de foto) en verf het past bij de vlag en het thema van het land dat ik bezoek (in dit geval Sicilië). T