Fernbedienung mit drei Befehlen und einem Programm von 290 16-Bit-Wörtern



Das ATtiny13-Gerät, das von einem Programm aus 290 16-Bit-Wörtern gesteuert wird, die in Assembler geschrieben sind, speichert die Codes der sechs Tasten auf der Fernbedienung und schaltet die drei Lasten ein / aus. Schema:



Der Standard-IR-Empfänger TSOP1740 verwendet eine inverse Logik, die im Programm berücksichtigt wird. Empfangene Signale verursachen einen INT0-Interrupt. Der Widerstand wird benötigt, um den IR-Empfänger während des Firmware-Uploads vom Mikrocontroller zu lösen.

Das Verfahren zum Einlernen der Geräteknopfcodes ist wie folgt. Schalten Sie die Stromversorgung ein, indem Sie die Taste am PB3-Eingang drücken (dann können Sie sie loslassen). Die erste Ladung wird sofort kurz ein- und ausgeschaltet. Wir drücken die Taste auf der Fernbedienung, mit der wir die erste Ladung einschalten wollen. Sobald die Fernbedienung denselben Code zweimal sendet (dies geschieht, wenn Sie die Taste mindestens einige Sekunden lang gedrückt halten), wird die erste Ladung fünf Sekunden lang eingeschaltet und ausgeschaltet. Und die zweite schaltet sich kurz ein und auch sofort aus. Wir trainieren das Gerät für den Code der Taste zum Einschalten der zweiten Last. Dann der dritte. Jetzt machen wir dasselbe nacheinander mit den Tastencodes, mit denen wir die Lasten trennen wollen. Das Programm schreibt die Codes in das EEPROM. Jetzt müssen Sie das Gerät aus- und wieder einschalten, aber nicht die Taste am PB3-Eingang drücken. Das Gerät wechselt in den Betriebsmodus, in dem Sie Lasten verwalten können.

Bei der Überprüfung der Lasten werden die LEDs über Widerstände angeschlossen. Nachdem wir sichergestellt haben, dass alles funktioniert, verbinden wir die Schlüssel, die das Relais steuern, mit den Ausgängen. Wie aus der Schaltung einer der drei Tasten ersichtlich ist, bleiben Anzeige-LEDs mit Widerständen zur Vereinfachung an Ort und Stelle:



Eigentlich sollte es NPN-Transistoren geben, die durch Emitter mit dem gemeinsamen Draht verbunden sind, aber der Autor arbeitet so. Lasten können beispielsweise LED-Lampen mit Farbtemperaturen von 2700, 4000 und 6400 K sein. Sie können sie manuell nach zirkadianen Rhythmen umschalten, ohne auf Automatisierung angewiesen zu sein.

Assembler-Code: ohne und ohne HTML-Formatierung .

Bestätigung, dass 290 16-Bit-Wörter erfüllt werden konnten:

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/de455006/


All Articles