Table des matières:

LED programmable : 6 étapes (avec photos)
LED programmable : 6 étapes (avec photos)

Vidéo: LED programmable : 6 étapes (avec photos)

Vidéo: LED programmable : 6 étapes (avec photos)
Vidéo: как сделать Propeller LED Pendulum Clock, используя Arduino NANO, JLCPCB 2024, Novembre
Anonim
LED programmable
LED programmable

Inspiré par divers LED Throwies, LED clignotantes et instructables similaires, je voulais faire ma version d'une LED contrôlée par un microcontrôleur. L'idée est de rendre la séquence de clignotement de LED reprogrammable. Cette reprogrammation peut être effectuée avec la lumière et l'ombre, par ex. vous pouvez utiliser votre lampe de poche. Il s'agit de mon premier instructable, tous les commentaires ou corrections sont les bienvenus. Mise à jour 2008-08-12: Il existe maintenant un kit disponible au Tinker Store. Désolé pour la qualité.

Étape 1: Comment ça marche

Une LED est utilisée comme sortie. En entrée, j'ai utilisé un LDR, une résistance dépendante de la lumière. Ce LDR change de résistance au fur et à mesure qu'il reçoit plus ou moins de lumière. La résistance sert alors d'entrée analogique aux microprocesseurs ADC (convertisseur analogique numérique).

Le contrôleur dispose de deux modes de fonctionnement, l'un pour enregistrer une séquence, l'autre pour reproduire la séquence enregistrée. Une fois que le contrôleur remarque deux changements de luminosité en une demi-seconde (sombre, clair, sombre ou inversement), il passe en mode enregistrement. En mode d'enregistrement, l'entrée du LDR est mesurée plusieurs fois par seconde et stockée sur la puce. Si la mémoire est épuisée, le contrôleur revient en mode lecture et commence à lire la séquence enregistrée. Comme la mémoire de ce minuscule contrôleur est très limitée, 64 octets (oui, des octets !), le contrôleur est capable d'enregistrer 400 bits. C'est assez d'espace pour 10 secondes avec 40 échantillons par seconde.

Étape 2: Matériaux et outils

Matériaux et outils
Matériaux et outils
Matériaux et outils
Matériaux et outils

Matériaux - 2 x résistance 1K - 1 x LDR (Light Dependent Resistor), par ex. M9960- 1 x LED à faible courant, 1.7V, 2ma- 1 x Atmel ATtiny13v, 1 Ko de RAM flash, 64 octets de RAM, 64 octets d'EEPROM, [email protected] 1 x CR2032, 3V, 220mAhOutils- fer à souder - fil à souder- planche à pain- programmateur AVR- alimentation 5V- multimètreLogiciel- Eclipse- plugin CDT- WinAVRLes coûts globaux devraient être inférieurs à 5 $ sans les outils. J'ai utilisé l'ATtiny13v car cette version de cette famille de contrôleurs est capable de fonctionner à 1,8 V. Cela permet de faire fonctionner le circuit avec une très petite batterie. Pour le faire fonctionner très longtemps, j'ai décidé d'utiliser une LED à faible courant qui atteint déjà la pleine luminosité à 2ma.

Étape 3: Schémas

Schémas
Schémas

Quelques commentaires sur le schéma. L'entrée reset n'est pas connectée. Ce n'est pas la meilleure pratique. Le mieux serait d'utiliser une résistance de 10K comme pull up. Mais cela fonctionne bien pour moi sans et cela économise une résistance. Pour garder le circuit aussi simple que possible, j'ai utilisé l'oscillateur interne. Cela signifie que nous économisons un cristal et deux petits condensateurs. L'oscillateur interne permet au contrôleur de fonctionner à 1,2 MHz, ce qui est plus que suffisant pour notre objectif. Si vous décidez d'utiliser une autre alimentation que 5 V ou d'utiliser une autre LED, vous devez calculer la résistance R1. La formule est: R = (Alimentation V - LED V) / 0,002A = 1650 Ohm (Alimentation = 5V, LED V = 1,7V). En utilisant deux LED à faible courant au lieu d'une, la formule ressemble à ceci: R = (Alimentation V - 2 * LED V) / 0,002A = 800 Ohm. Attention, vous devez ajuster le calcul si vous choisissez un autre type de LED. La valeur de la résistance R2 dépend du LDR utilisé. 1KOhm fonctionne pour moi. Vous pouvez utiliser un potentiomètre pour trouver la meilleure valeur. Le circuit doit être capable de détecter les changements de lumière à la lumière du jour normale. Pour économiser de l'énergie, PB3 n'est réglé sur haut que si une mesure est effectuée. Mise à jour: le schéma était trompeur. Vous trouverez ci-dessous une version correcte. Merci, dave_chat.

Étape 4: Assembler sur une planche prototype

Assembler sur une carte prototype
Assembler sur une carte prototype
Assembler sur une carte prototype
Assembler sur une carte prototype

Si vous aimez tester votre circuit, une maquette est très pratique. Vous pouvez assembler toutes les pièces sans avoir à souder quoi que ce soit.

Étape 5: programmer le circuit

Programmer le circuit
Programmer le circuit
Programmer le circuit
Programmer le circuit

Le contrôleur peut être programmé dans différentes langues. Les plus utilisés sont Assembler, Basic et C. J'ai utilisé C car il correspond le mieux à mes besoins. J'étais habitué au C il y a dix ans et j'ai pu faire revivre une partie des connaissances (enfin, seulement certaines…). Pour écrire votre programme, je vous recommande Eclipse avec le plugin CDT. Obtenez eclipse ici https://www.eclipse.org/ et le plugin ici https://www.eclipse.org/cdt/. Pour compiler le langage C sur des microcontrôleurs AVR, vous aurez besoin d'un compilateur croisé. Heureusement que nous sommes, il existe un port du célèbre GCC. Il s'appelle WinAVR et peut être trouvé ici https://winavr.sourceforge.net/. Un très bon tutoriel sur la façon de programmer des contrôleurs AVR avec WinAVR est ici https://www.mikrocontroller.net/articles/AVR-GCC- Didacticiel. Désolé, c'est en allemand mais vous pouvez trouver des milliers de pages de tutoriel sur ce sujet dans votre langue, si vous les recherchez. Après avoir compilé votre source, vous devez transférer le fichier hexadécimal au contrôleur. Cela peut être fait en connectant votre PC au circuit en utilisant ISP (dans le programmeur système) ou en utilisant des programmeurs dédiés. J'ai utilisé un programmeur dédié car il facilite légèrement le circuit en économisant quelques fils et une prise. L'inconvénient est que vous devez échanger le contrôleur entre le circuit et le programmeur chaque fois que vous souhaitez mettre à jour votre logiciel. Mon programmeur vient de https://www.myavr.de/ et utilise l'USB pour se connecter à mon ordinateur portable. Il y en a beaucoup d'autres et vous pouvez même le construire vous-même. Pour le transfert lui-même, j'ai utilisé un programme nommé avrdude qui fait partie de la distribution WinAVR. Un exemple de ligne de commande peut ressembler à ceci:

avrdude -F -p t13 -c avr910 -P com4 -U flash:w:flickled.hex:iEn pièce jointe, vous pouvez obtenir la source et le fichier hexadécimal compilé.

Étape 6: Souder

Soudure
Soudure

Si votre circuit fonctionne sur la maquette, vous pouvez le souder.

Cela peut se faire sur un PCB (printed circuit board), sur un prototype de carte ou même sans carte. J'ai décidé de m'en passer car le circuit ne se compose que de quelques composants. Si vous n'êtes pas familier avec la soudure, je vous recommande de rechercher d'abord un tutoriel de soudure. Mes compétences en soudure sont un peu rouillées mais je pense que vous voyez l'idée. J'espère que vous avez aimé. Alexis

Conseillé: