Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Rappel d'anniversaire Arduino : solution fiable sur 50 ans

Composants et fournitures

Arduino Nano R3 (clones chinois avec ATmega168P-AU) × 1
RTC Intersil ISL1208 × 1
Pile bouton Renata CR2450N × 1
Module USB-série CP2102 × 1
Programmeur USBasp × 1
Quartz 32,768 kHz × 1
Interrupteur SPST × 1
LEDs CMS × 1
Dôme LED transparent × 1
Boîtier interrupteur 4" x 4" (ou boîtier imprimé 3D) × 1
Plaque d'essai (perfboard) × 1
Connecteurs Berg (M et F) × 1
Résistance 4,75 kΩ × 3
Résistance 10 kΩ × 2

Outils et machines nécessaires

Applications et services en ligne

À propos du projet

Avez-vous déjà oublié votre anniversaire, au point d'avoir besoin de quelqu'un pour vous le rappeler ? Et si vous pouviez offrir à un être cher un appareil qui lui souhaite son anniversaire pendant 50 ans ? Ce n'est pas une blague : ce réveil d'anniversaire alimenté par Arduino fonctionne sur une seule pile bouton CR2450 et peut souhaiter un joyeux anniversaire pendant 50 ans avant que la pile ne s'épuise.

Ce projet a été réalisé dans le cadre du Hackaday Coin Cell Challenge. L'ATmega168P est utilisé comme microcontrôleur (un Arduino Nano modifié en retirant le régulateur de tension, le pont USB, etc.) et l'IDE Arduino pour le firmware. L'heure et la date d'anniversaire sont programmables via le moniteur série USB. Une fois réglés, le MCU passe en mode sommeil. Chaque année, quand l'heure RTC correspond à l'anniversaire, la LED clignote pendant une minute et un message s'affiche sur le moniteur série. La consommation moyenne est d'environ 1,2 µAh (auto-décharge incluse), permettant plus de 50 ans sur une pile CR2450 (540 mAh).

Caractéristiques

Étape 1 : Modification de l'Arduino Nano

Utiliser un Arduino Nano ou Mini clone bon marché. Le faire fonctionner à l'oscillateur interne (1 MHz) et sur toute la plage 1,8–5 V. La CR2450 fournit 3 V nominal, donc pas besoin de régulateur. Sur un Nano avec CH340G, retirer :

Ne pas retirer le quartz du MCU avant d'avoir changé les fusibles pour l'oscillateur interne, sinon la programmation ISP devient impossible. Court-circuiter les pads du régulateur après retrait.

Étape 2 : Modification des fusibles de l'ATmega168P

Les puces Arduino ont le bootloader et les fusibles par défaut. Il faut :

Utiliser un programmateur ISP (USBasp) et le logiciel ProgISP. La signature de l'ATmega168P-AU est 1E940B. Configurer les fusibles comme indiqué dans la documentation (Low: 0x62, High: 0xDF, Extended: 0xF9). Après cela, seul l'ISP peut flasher le MCU.

Étape 3 : Compilation et téléversement

Ajouter une définition de carte personnalisée dans boards.txt (Arduino/hardware/arduino/avr/boards.txt) pour "Arduino Pro Mini (3.3V, 1 MHz) w/ ATmega168". Redémarrer l'IDE, sélectionner cette carte, compiler avec Ctrl+Alt+S (Export compiled binary) pour générer le fichier .hex sans bootloader, puis flasher avec USBasp/ProgISP.

Étape 4 : RTC Intersil ISL1208 I2C

RTC basse consommation avec interface I2C, quartz externe 32,768 kHz. Registres d'alarme mois-date-heure-minute-seconde. Consommation ~400 nA en mode VBAT, max 1,2 µA en VDD. Tension 1,8–5,5 V. L'alarme génère une impulsion LOW de 250 ms sur la broche d'interruption pour réveiller le MCU du sommeil. Fonctionnalités : horloge/calendrier complet, 15 fréquences de sortie sélectionnables, alarme unique (seconde, minute, heure, jour de la semaine, jour, mois), modes événement unique ou impulsion, basculement automatique sur batterie/condensateur, détection de coupure de courant, compensation d'oscillateur intégrée, 2 octets SRAM sauvegardés par batterie, I2C 400 kHz.

Étape 5 : Pile bouton CR2450N

Spécifications : Li/MnO2, 3 V nominal, 540 mAh, courant de décharge standard 0,8 mA, max continu 3 mA, poids 5,9 g, température -40 à +85 °C, auto-décharge <1%/an, durée de vie en stock jusqu'à 10 ans.

Étape 6 : Schéma

Deux résistances 4,7 kΩ pour les pull-ups I2C (valeurs 3,3 kΩ à 5,6 kΩ acceptables). R2 et R3 sont des pull-ups pour les broches d'interruption. Broche numérique 2 (INT0) pour l'alarme RTC, broche 3 (INT1) pour le réveil mise à jour heure. Module CP2102 USB-série connecté aux broches RX/TX du Nano. Ne pas connecter le +5V de l'USB au VCC principal.

Étape 7 : Fonctionnement

Algorithme principal :

  1. Régler l'heure courante sur le RTC via moniteur série.
  2. Régler la date et l'heure d'alarme sur le RTC.
  3. Le MCU passe en mode sommeil après avoir désactivé les périphériques internes (timers, ADC).
  4. Quand l'heure courante correspond à la date/heure d'alarme, le RTC génère une interruption qui réveille le MCU.
  5. Au réveil, le MCU réactive les périphériques, affiche "Joyeux anniversaire" sur le moniteur série et fait clignoter la LED dans le dôme selon un motif.
  6. Après le souhait, le MCU retourne en sommeil jusqu'à l'anniversaire suivant.
  7. On peut voir et mettre à jour l'heure à tout moment en activant l'interrupteur de mise à jour.

Commandes série :

Une fois tout réglé, désactiver l'interrupteur de mise à jour (broche 3 HIGH via pull-up 10k). Le système s'endort en 6 s.

Étape 8 : Code

Projet open source sous licence MIT sur GitHub : github.com/vishnumaiea/Birthday-Alarm. 13 fonctions principales : setup(), loop(), sleepNow() (désactive périphériques, attache interruptions, sommeil profond), alarmInterrupt() (ISR INT0 broche 2), timeUpdateInterrupt() (ISR INT1 broche 3), fetchTime(), blinkLED(), establishSerial(), endSerial(), bcdToDec(), decToBcd(), printTime(), printAlarmTime().

Étape 9 : Tests et consommation

Prototypage sur breadboard, tests avec batterie Li-Ion 3,6V et multimètre Fluke 87 (précision 0,1 µA). Mode sommeil SLEEP_MODE_PWR_DOWN : consommation MCU ~0,2 µA @ 3,6V. RTC ISL1208 max 1,2 µA. Total ~1,4–1,6 µA mesuré.

Optimisation : Déconnecter VDD du RTC de VBAT (jumper sur breakout). Désactiver le bit LPMOD. Ainsi le RTC consomme 400 nA (datasheet) au lieu de 1,2 µA. Réduire à une seule LED (3 mA au lieu de 6 mA). Temps actif réduit à 85 s/an (60 s réglage + 19 s anniversaire + 6 s avant sommeil).

Nouvelle consommation sommeil : 0,4 µA (RTC) + 0,2 µA (MCU) = 0,6 µA. Durée théorique : 101 ans (608 nA moyenne). En ajoutant l'auto-décharge 1%/an (5,4 mAh/an = 616 nA), consommation moyenne totale ~1,22 µA → 50 ans et 131 jours réels sur CR2450N.

Tableau des durées réelles selon type de pile (avec auto-décharge 1%/an).

Étape 10 : Construction

Soudure sur perfboard selon schéma, connecteurs Berg pour pile, interrupteur, LED. Boîtier : boîtier interrupteur 4"x4" avec trous pour interrupteur et USB, dôme LED récupéré, peinture argentée. Décoration libre.

Étape 11 : Améliorations possibles

Code

Code source complet sur GitHub : Birthday-Alarm

Schémas

Schéma du clone Arduino.

Processus de fabrication

  1. Industrie 4.0 et IoT : Tendances clés du marché pour les deux prochaines années
  2. 10 facteurs clés pour choisir le commutateur parfait pour votre application
  3. NVIDIA Jetson Nano : ordinateur IA 5 W, 472 GFLOPS pour makers et entreprises
  4. Kontron lance CP6940 : Commutateur 40 GbE robuste pour environnements extrêmes
  5. Comment le COVID-19 continue d'alimenter la cybercriminalité : travail à distance, chaînes d'approvisionnement vaccinales et espionnage
  6. 7 indicateurs clés qu'il est temps de mettre à niveau votre générateur
  7. Trois signaux d'alarme indiquant que votre moteur a besoin d'un rebobinage
  8. Maîtriser un assemblage PCB sans faille : pratiques clés
  9. Des usines aux laboratoires : la puissance polyvalente des robots industriels