Selon le KDPV, il est clair que l'auteur n'est pas indifférent aux équipements audio vintage de Sony. Ici et MD Walkman, et l'acquisition récente - un centre de musique compact avec un CD vertical "transport". Il a été vendu sans télécommande, à l'analogue artisanal dont l'auteur a fait la demande: le même faible courant de repos que celui des télécommandes finies sur microcircuits spécialisés.
Au début, l'auteur voulait écrire le firmware à partir de zéro, car auparavant il avait déjà implémenté le protocole logiciel utilisé dans les télécommandes Sony. Mais j'ai alors décidé d'utiliser la
bibliothèque existante . Il prend en charge divers protocoles, périphériques et en a également d'autres. fonctionnalités qui facilitent le développement et le débogage.
Avec cette bibliothèque, connectez simplement la diode IR au pied du microcontrôleur et commencez à rechercher les codes de télécommande Sony. Ils ont réussi à gagner une télécommande maison très rapidement. Mais à quoi ça sert si la batterie s’épuise en un à deux jours, même si vous ne l’utilisez pas du tout?
En général, la tâche consistait à mettre l'ATmega328P en mode veille afin qu'il ne consomme pratiquement pas de courant jusqu'à ce qu'une touche soit enfoncée. Des bibliothèques pour le contrôle de l'hibernation existent également, mais l'auteur a décidé que, puisqu'il avait pris une bibliothèque prête à l'emploi pour envoyer des commandes, laissez au moins cette partie du firmware être écrite indépendamment. Selon la fiche technique, mettre le microcontrôleur en mode veille était un processus en plusieurs étapes.
Par conséquent, tout a été commenté de manière suffisamment détaillée dans l'esquisse pour que, tout en lisant le code et l'ensemble de données en même temps, vous puissiez comprendre ce qui se passe lorsque chaque ligne est exécutée. Le microcontrôleur "dort" presque tout le temps, et lorsque l'état de l'une des entrées change, il "se réveille", détermine le bouton sur lequel on appuie, envoie une commande et "s'endort" à nouveau.
Avec du quartz à 16 MHz, le microcontrôleur, lorsqu'il ne «dort», consommera plus de courant que lors de l'utilisation de l'horloge intégrée à 8 MHz. Pour reconfigurer les «fusibles» correspondants, j'ai dû utiliser le programmateur en circuit. Le mode veille est sélectionné pour que tout soit désactivé sauf les interruptions. L'auteur n'a pas immédiatement compris qu'il était nécessaire d'éteindre l'ADC, pour lequel il n'a pas pu trouver la raison pour laquelle le microcontrôleur consommait près d'un milliampère en mode veille. La minuterie du chien de garde a également dû être désactivée, et voici le résultat: environ 2 μA en mode veille et 3,5 mA lors de la transmission d'une commande.
Cette calculatrice a montré que dans des conditions idéales, si vous appuyez sur les boutons 5 fois par heure, l'élément dans ce mode durera 4,82 ans. Même un ou deux ans, c'est déjà bien, et encore plus.
L'auteur a développé le circuit imprimé à Eagle. Fichiers à répéter:
croquis ,
diagramme ,
gerbera ,
carte source .


Vidéo, où montré mesure de courant:
Le processus d'amélioration de la conception se poursuit, tout d'abord, il est nécessaire de créer quelques boutons pour lesquels les codes trouvés sur le réseau se sont révélés incorrects. De plus, l'auteur donne un analogue simplifié de CC-BY à partir d'une phrase: "Si vous voulez, utilisez le code et le tableau dans d'autres produits faits maison, n'oubliez pas d'indiquer qui a développé tout cela pour vous." Puisque la bibliothèque source n'est pas sous GPL, mais sous LGPL, vous pouvez le faire.