Télécommande à trois commandes avec un programme de 290 mots de 16 bits



L'appareil ATtiny13, contrôlé par un programme de 290 mots 16 bits écrits en assembleur, se souvient des codes des six boutons de la télécommande et allume / éteint les trois charges. Schéma:



Le récepteur IR standard TSOP1740 utilise une logique inverse, et cela est pris en compte dans le programme. Les signaux reçus provoquent une interruption INT0. La résistance est nécessaire pour détacher le récepteur IR du microcontrôleur pendant le téléchargement du firmware.

La procédure d'apprentissage des codes de bouton d'appareil est la suivante. Mettez sous tension avec le bouton enfoncé sur l'entrée PB3 (vous pouvez ensuite le relâcher). La première charge s'allumera et s'éteindra brièvement immédiatement. Nous appuyons sur le bouton de la télécommande, avec lequel nous voulons allumer la première charge. Dès que la télécommande envoie deux fois le même code (cela se produit si vous maintenez le bouton enfoncé pendant au moins quelques secondes), la première charge s'allumera pendant cinq secondes et s'éteindra. Et le second s'allumera brièvement et s'éteindra également immédiatement. Nous formons l'appareil pour le code du bouton pour allumer la deuxième charge. Puis le troisième. Maintenant, nous faisons la même chose séquentiellement avec les codes de bouton, avec lesquels nous voulons déconnecter les charges. Le programme va écrire les codes dans l'EEPROM, vous devez maintenant éteindre et rallumer l'appareil, mais n'appuyez pas sur le bouton de l'entrée PB3. L'appareil passe en mode de fonctionnement, dans lequel vous pouvez gérer les charges.

Lors de la vérification des charges, les LED sont connectées via des résistances. Après avoir vérifié que tout fonctionne, nous connectons aux sorties les touches qui contrôlent le relais. Comme on peut le voir sur le circuit de l'une des trois touches, les voyants LED avec résistances pour plus de commodité sont laissés en place:



En fait, il devrait y avoir des transistors NPN connectés par des émetteurs au fil commun, mais l'auteur fonctionne comme ça. Les charges peuvent être, par exemple, des lampes LED avec des températures de couleur de 2700, 4000 et 6400 K. Vous pouvez les commuter manuellement selon les rythmes circadiens, sans compter sur l'automatisation.

Code assembleur: sans et sans mise en forme HTML .

Confirmation qu'il était possible de rencontrer 290 mots de 16 bits:

gavrasm Gerd's AVR assembler version 3.5 (C)2015 by DG4FAC ---------------------------------------------------------- Source file: 12_IR-Rx_Switch.asm Hex file: 12_IR-Rx_Switch.hex Eeprom file: 12_IR-Rx_Switch.eep Compiled: 23.11.2016, 23:23:05 Pass: 2 1: ; 2: ; *************************************** 3: ; * IR-Switch 3-Channel with ATtiny13 * 4: ; * (C)2016 by www.avr-asm-tutorial.net * 5: ; *************************************** ... Program : 290 words. Constants : 0 words. Total program memory: 290 words. Eeprom space : 13 bytes. Data segment : 29 bytes. Compilation completed, no errors. Compilation ended 23.11.2016, 23:23:05 

Source: https://habr.com/ru/post/fr455006/


All Articles