具有290个16位字的程序的三命令远程控制



ATtiny13设备由一个用汇编器编写的290个16位字的程序控制,可以记住遥控器上六个按钮的代码并打开/关闭三个负载。 方案:



标准的TSOP1740红外接收器使用逆逻辑,程序中考虑了这一点。 接收到的信号导致INT0中断。 在固件上载期间,需要使用电阻器将IR接收器从微控制器上断开。

教授设备按钮代码的步骤如下。 按下PB3输入上的按钮打开电源(然后您可以松开它)。 第一个负载将立即短暂打开和关闭。 我们按下遥控器上的按钮,我们想用它打开第一个负载。 一旦遥控器两次发送相同的代码(如果按住按钮至少几秒钟,就会发生这种情况),第一个负载将打开五秒钟,然后关闭。 第二个将短暂打开,也立即关闭。 我们为设备训练第二个负载启用按钮的代码。 然后第三。 现在,我们将按顺序执行与按钮代码相同的操作,以断开负载。 该程序会将代码写入EEPROM,现在您需要关闭电源,然后再打开,但不要按PB3输入上的按钮。 设备将进入操作模式,您可以在其中管理负载。

检查负载时,LED通过电阻连接。 确保一切正常后,我们将控制继电器的键连接到输出。 从三个键中的任何一个的电路可以看出,为了方便起见,带有电阻的指示灯LED留在原地:



实际上,应该有NPN晶体管通过发射极连接到公共线上,但是作者是这样工作的。 例如,负载可以是色温为2700、4000和6400 K的LED灯。您可以根据昼夜节律手动切换它们,而无需依赖自动化。

汇编代码: 不带和不带HTML格式

确认可以满足290个16位字:

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/zh-CN455006/


All Articles