Étape 2: Circuit Design
J’utilise CadSoft EAGLE 6.2 pour dessiner le schéma de circuit et étalez la conception de circuits imprimés.
Partant, le plus simple consiste à faire cela avec un microcontrôleur de quelque sorte, il va inquiéter celui qui bientôt.
Le défi se trouve dans le numéro 132. Une option consiste à sélectionner un microcontrôleur avec 132 broches, simples, droite ? Mais le microcontrôleur sera gigantesque, et la conception sera mal paraître.
La solution doit regrouper les LEDs donc je peux les multiplex. Ma conception organise la LED dans un 30 anodes par 5 cathodes (je peux voir comme des « anneaux ») « matrix ». Cela signifie que j’ai besoin de 35 broches de conduire 132 LED.
(cliquez sur l’image de matrice de LED ci-dessus, c’est une animation qui vous montre comment fonctionne ma matrice de LED)
J’ai aussi besoin de 5 résistances (R1, R2, R3, R4, R5) afin de limiter le courant pour les LEDs, afin qu’ils respectent leurs notes et ne pas brûlent. Il est important de remarquer que la couleur différente LEDs ont chutes de tension différente et ont différentes caractéristiques actuelles sécurités maximales, et aussi la tension de la batterie peut varier au fil du temps (supérieure à sa tension nominale pendant et immédiatement après la recharge). J’ai choisi une résistance de 330 ohms commune pour ce travail. Prendre le pire des cas, qui est la chute de tension 0 à travers la LED et d’une batterie à 4, 2V, Loi d’Ohm dit que le courant sera 12.7mA. C’est sans danger pour presque toutes les petites LEDs et sans danger pour le GPIO du microcontrôleur.
J’ai besoin d’au moins 2 boutons, ce qui signifie que deux broches plus sont requises sur le microcontrôleur. Il sera idéal si ces pions sont pris en charge une forme quelconque d’interruption pour détecter que le bouton appuie même en mode "veille". Il sera également idéal si ces goupilles en vedette les résistances de pull-up interne, donc des résistances de pull-up externes ne sont pas tenus.
Donc, mon exigence minimale broche dès maintenant est 37. J’ai fait quelques recherches pour un microcontrôleur qui satisfont à cette exigence et a décidé sur un ATmega645P (ou quelque chose de similaire avec moins de mémoire, mémoire requise pour ce projet est en réalité très faible).
Il dispose de 54 broches libres. Vient dans un boîtier TQFP, donc je peux le souder sans avoir besoin d’air chaud (je peux faire QFN mais j’éviterais plutôt, surtout pour un projet de Instructables où les compétences du peuple varient). Il opère à 1.8V donc c’easiy à utiliser avec une pile bouton. Il dispose d’un matériel CCF que je peux utiliser pour suivre les temps, même en mode "veille". La version picoPower indique qu’elle a quelques utilisation incroyablement faible puissance, ce qui aide à la vie de la batterie. En prime, je suis un fan de la famille AVR.
Afin de connaître la tension de fonctionnement du microcontrôleur est entre 1, 8V et 5,5 v, je sais que je peux en toute sécurité d’alimentation du circuit à l’aide d’une pile rechargeable au lithium ion pièce (tension nominale est de 3, 7V, maximum est de 4, 2V) sans utiliser un régulateur de tension du tout.
Le circuit de charge est extrêmement simple à concevoir, la puce du chargeur est un MCP73831 et la feuille de données comporte des circuits d’application exemple, dont j’ai adapté. Sauf indication contraire par la fabrication, il est prudent de supposer que la batterie peut être rechargée à raison de 1C, ce qui signifie 1 multipliée par sa capacité (en AH ou mAH). Étant donné que ma batterie a une capacité de 150mAH, je peux en toute sécurité recharger la batterie à 150mA. En utilisant les calculs de la feuille de données, cela signifie que je dois utiliser une résistance de 15 kilo Ohms pour définir la charge actuelle.
Le matériel CCF (minuterie 2 en mode asynchrone) dans le microcontrôleur nécessite un cristal de 32,768 KHz pour suivre les temps. Le cristal doit charger capcitors sur chaque broche, ou encore le cristal montrera l’instabilité de la grande fréquence et le temps ne sera pas précis.
Le microcontrôleur met en oeuvre à l’aide de son oscillateur interne RC de 8 MHz (économise l’espace et l’argent en évitant un autre cristal), et que la fréquence sera divisée en interne par 8 pour économiser l’énergie.
Le microcontrôleur a besoin d’un condensateur de découplage pour chaque broche VCC , il s’agit d’un règle du pouce général que j’ai adapté, l’application est de filtrer les bruits fines provenant du bus de puissance.
Le ATmega645P dispose des résistances de pull-up interne (je l’ai déjà mentionné que ça va être sympa d’avoir ces), alors que les boutons ne nécessitent pas de résistances de polarisation alimentation externe.
Le micro-contrôleur AVR a besoin d’une connexion ISP (programmation série en circuit) donc je peux programmer son firmware, cela signifie reliant le reset et goupilles de bus SPI, plus offrant une connexion au sol et de puissance.
La détection de pile faible est un détecteur de tension simple (la TC54, configuré pour 2, 7V) qui pilotera une épingle faible lorsque la batterie est inférieure à 2, 7V.
En fin de compte, il y avait l’espace et des épingles gratuits survolant alors j’ai ajouté un buzzer et un moteur de vibration. Le moteur est entraîné par un MOSFET. Le MOSFET a une résistance de pull-down (R8) sur la porte donc il ne va pas fou lorsque le microcontrôleur n’est pas tout contrôler. Il y a une résistance (R9) jusqu'à porte du MOSFET pour protéger la cheville de microcontrôleur d’un bref pic actuel au cours de la commutation. La diode est là pour protéger le circuit des EMF en arrière du moteur (cette diode est connue comme une diode flyback).