Arduino-gebaseerde Verjaardagherinnering: 50 Jaar Betrouwbaarheid
Onderdelen en benodigdheden
| Onderdeel | Aantal | Opmerking |
|---|---|---|
| Arduino Nano R3 | 1 | Chinese clones met ATmega168P-AU |
| Intersil ISL1208 RTC | 1 | |
| Renata CR2450N Muntcel | 1 | |
| CP2102 USB-naar-Serieel Module | 1 | |
| USBasp Programmeerder | 1 | |
| 32.768 kHz Kristal | 1 | |
| SPST Schakelaar | 1 | |
| SMD LEDs | 1 | |
| Duidelijke LED-koepel | 1 | |
| 4" x 4" Schakelaarsdoos | 1 | Of 3D-print een behuizing |
| Perfboard | 1 | |
| Berg Connectors (M & V) | 1 | |
| Weerstand 4.75k ohm | 3 | |
| Weerstand 10k ohm | 2 |
Benodigde tools en machines
- Dremel
- Solderbout (generiek)
Apps en online diensten
- ProgISP (voor fuse-bits en flash)
- Arduino IDE
Over dit project
Deze Arduino-aangedreven verjaardagsalarm draait op een enkele CR2450 muntcel en kan 50 jaar lang elk jaar op de verjaardag een felicitatie tonen (knipperende LED + seriële boodschap). Gemiddelde stroomverbruik: ~1,22 µAh (inclusief zelfontlading), wat neerkomt op >50 jaar op een CR2450N (540 mAh).
Kenmerken
- ~1,22 µAh gemiddeld (608 nA zonder zelfontlading)
- Levensduur: >29 jaar (CR2023), >50 jaar (CR2450N), >64 jaar (CR2477N)
- Verjaardag instelbaar via seriële monitor (USB)
- Speciale tijd-instelschakelaar voor tijd instellen/wijzigen
- Open source: alle ontwerpbestanden en code op GitHub
Stap 1: Arduino Nano aanpassen
Verwijder van een Nano-clone (CH340G): USB-serieel IC, Schottky-diode, twee 1k weerstanden (TX/RX), RX/TX/PWR LEDs, AMS1117 5V regelaar. Kortsluit de regelaar-pads. Houd de kristal tijdelijk voor fuse-bits.
Stap 2: Fuse-bits ATmega168P wijzigen
Met USBasp en ProgISP: interne 8MHz oscillator met divide-by-8 → 1MHz, BOD uitschakelen, WDT uitschakelen. Alleen de 'P'-versie (picoPower) ondersteunt deze modi. Let op: ATmega328P verbruikte meer stroom in tests.
Stap 3: Compileren en uploaden
Voeg een custom board definitie toe aan boards.txt voor "Arduino Pro Mini (3.3V, 1 MHz) w/ ATmega168". Compileer, exporteer gecompileerde binary (Ctrl+Alt+S), flash de hex-zonder-bootloader via USBasp/ProgISP.
Stap 4: Intersil ISL1208 I2C RTC
Zeer lage stroom RTC (400 nA op VBAT). Heeft maand-dag alarmregisters – essentieel voor jaarlijkse verjaardag. Interrupt-pin (250 ms laag) wekt MCU uit slaap. Breakout-board gemaakt voor SMD-versie.
Stap 5: CR2450N Muntcel
3V, 540 mAh, <1% zelfontlading/jaar, werkt -40 tot +85°C.
Stap 6: Schema
I2C pull-ups (4.7k) op SDA/SCL. Pull-ups (10k) op interrupt-pinnen D2 (alarm) en D3 (tijd-instel). CP2102 RX/TX op Arduino RX/TX. Belangrijk: niet de +5V van USB verbinden met hoofd-VCC.
Stap 7: Hoe het werkt
- Tijd instellen via seriële monitor (schakelaar AAN → pin 3 laag).
- Commando's:
t(tijd tonen),a(alarm tonen),c(annuleren). - Tijd formaat:
TYYMMDDhhmmssp#(bijv.T1801050835120#voor 5 jan 2018 08:35:12 AM). - Alarm formaat:
AMMDDhhmmssp#(geen jaar). - Na instellen schakelaar UIT → MCU slaapt na 6 sec.
- Op verjaardag: RTC interrupt wekt MCU → LED knippert 19 sec, seriële boodschap, weer slapen.
- Tijd controleren/wijzigen: schakelaar AAN → MCU wakt, seriële prompt.
Stap 8: Code
Volledige, goed gecommentarieerde code op GitHub: Birthday-Alarm (MIT licentie). Belangrijke functies: setup(), loop(), sleepNow() (diepe slaap met SLEEP_MODE_PWR_DOWN), interrupt handlers, BCD↔decimaal conversie, seriële communicatie beheer.
Stap 9: Testen en stroommeting
Gemeten met Fluke 87 (0,1 µA precisie). Slaapstroom ATmega168P @1MHz: ~0,2 µA. ISL1208 op VBAT (VDD losgekoppeld, LPMOD=0): 400 nA. Totaal slaapstroom: 0,6 µA. Actieve stroom (1 LED): 3 mA. Gemiddeld: 608 nA (zonder zelfontlading) → theoretisch >100 jaar. Met 1% zelfontlading: ~1,22 µAh → ~50 jaar werkelijke levensduur.
Stap 10: Bouwen
Alles op perfboard gesoldeerd met Berg connectors. Behuizing: 4"x4" schakelaarsdoos, gaten voor schakelaar en USB, LED-koepel van goedgekochte lamp, geverfd met zilver spray.
Stap 11: Verbeterideeën
- Nokia 5110 LCD (laag stroom) voor tekstuele felicitatie.
- PC-software (Processing) voor automatische tijdsync.
- Leeftijdsindicatie via knipperpatroon.
- Eigen PCB-ontwerp (Eagle).
- Optokoppler voor AC-alarm/muziek/licht.
Code
GitHub repository: Birthday-Alarm
Schema's
Schema van de Arduino-clone.
Productieproces
- Koud monteren van uw lagers: Expert tips voor veilige, nauwkeurige installatie
- Industry 4.0 & IoT: Belangrijkste markttrends de komende twee jaar
- Hoe COVID-19 cybercriminaliteit blijft aansteken: thuiswerken, vaccin-toeleveringsketens en spionage
- 7 Belangrijke Indicatoren Dat Het Tijd Is Om Uw Generator Te Upgraden
- Drie Rode Vlaggen Die Signaliseren Dat Uw Motor Herwinding Nodig Heeft
- Foutloze PCB-Montage Beheersen: Sleutelpraktijken
- Van Fabrieken Naar Labs: De Vielzijdige Kracht van Industriële Robots
- NVIDIA Jetson Nano: een 5-W, 472 GFLOPS AI-computer die makers en enterprises empowert
- Kontron lanceert CP6940: Robuuste 40 GbE Switch voor Extreme Omgevingen
- 10 cruciale factoren voor het selecteren van de perfecte schakelaar voor uw toepassing
- Ultra-dunne Nano Coatings: Precieze Kleurcontrole Via Sub-20 nm Lagen