步骤1:入门
对于我们的项目,请获取以下组件:
1 Basys™3 Artix-7 FPGA板(https://www.digilentinc.com/basys3)
1面包板
1个带遥控器的红外设备(我们使用了Insignia 40英寸液晶电视)
1〜300欧姆电阻器
5条面包板电线(带引脚的侧面)
1个红外LED和传感器(我们使用了这些LED:http://www.amazon.com/gp/product/B00EFOQEUM)
您还将需要Vivado设计套件(((http://www.xilinx.com/cn/products/design-tools/vivado 。..,以使用IP读取系统中的IR信号。其他VHDL工具也可以在ircontrol模块中进行一些修改。
步骤2:电路设置
使用附图来设置IR LED和传感器电路。
您的输入设备IR Sensor将寻找小的变化。在红外灯中看到并改变电压以反映这些变化。 ircontrol模块中的模数转换器会将电压变化转换为数字信号,可以保存以备后用。我们使用的传感器以及许多类似的传感器是专门针对此类信号设计的,因此它在检测信号方面非常准确。
您的输出设备IR LED会根据发送的信号闪烁
第3步:VHDL设置
该项目具有几个不同的模块,可以一起使用使其正常工作:
ircontrol::使用状态机在适当的时间记录和播放信号。在此模块内部是一块ram块,它由一个地址和写选项控制。状态机控制这两个信号以记录/从内存读取。
sseg_dec:该模块由Bryan Mealy创建,并用作7段显示的解码器。该文件可以采用二进制或BCD格式,并将其转换为适当的7段值,并包含一个时钟分频器,以在7段显示屏上适当显示数字。
clk_div:也由Bryan Mealy创建,在我们的整个项目中可以多次找到。时钟分频器能够降低板载时钟的频率,Basys 3板的频率为100Mhz。此时钟分频器用于显示阳极,红外传感器和LED以及计时器时钟。
计时器:计时器首先要求用户设置小时和分钟数它将首先显示在Basys3的七段显示器上,随后将被递减计数。左右按钮选择增加总时间的量,以秒为单位; 60分钟,600数十分钟,3600小时,36000小时。向上和向下按钮将总时间增加左右按钮选择的任何值。然后,该总时间从秒转换为小时,分钟和秒,然后发送到显示驱动器,该显示驱动器将时间转换为七段显示。当按下中间按钮(设置)时,用户不再可以使用clk_div模块将时间和总时间减少一秒。当总时间变为零时,计时器将输出一个“完成”信号,告诉ir控件重放先前记录的ir信号。
上面附有一个黑匣子图,它是高级表示方式。该电路有效。
第4步:使用说明
首先,您需要连接并打开Basys3板上的电源。
当通过闪存驱动器上的比特流文件对电路板完成编程后,即可开始记录远程信号。按下遥控器上的任意按钮,系统会记录下来。
接下来,您需要在板上设置计时器。时间范围从99小时59分钟到0秒。时间到后,决定将关闭。
要设置计时器,您将需要使用Basys3板上的按钮。左右按钮将选择要增加的阳极,向上和向下按钮将增加选定的阳极。中间的按钮将设置时间并启动计时器。
现在,坐下来,放松并入睡。计时器结束后,信号将播放并执行所需的功能。
步骤5:可能的改进
在其中选择了哪个阳极可以使计时器的设置部分在不显示任何段和从显示驱动器显示这些段之间进行振荡。这将使用户界面更加直观,因为用户将能够轻松识别选择了哪个阳极。
实际电路可能需要进行一些调整。制作此项目时,我们烧掉了几个LED和一个按钮。红外LED非常灵敏,额定电流仅为几毫安。快速开关晶体管运行电路可能更可行。
-
FPGA
+关注
关注
1629文章
21736浏览量
603289 -
遥控器
+关注
关注
18文章
837浏览量
66110
发布评论请先 登录
相关推荐
评论