• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于环境光传感器的自动调光系统设计Verilog代码Quartus 正点原子新起点开发板

09/17 11:35
277
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-241022193406125.doc

共1个文件

名称:基于环境光传感器的自动调光系统设计Verilog代码Quartus? 正点原子新起点开发板

软件:Quartus

语言:Verilog

代码功能:

基于环境光传感器的自动调光系统设计

要求

采用FPGA作为控制中心,采用环境光传感器采集当前光亮度,并将亮度数据显示在数码管,同时根据亮度控制led灯的亮度,环境越暗,led灯亮度越大,反之亦然。

FPGA采用EP4CE10F17C8,环境光传感器采用AP3216C。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在正点原子新起点开发板验证,正点原子新起点开发板如下,其他开发板可以修改管脚适配:

正点原子新起点开发板.png

演示视频:

设计文档:

1. 设计思路:采用FPGA作为控制中心,采用环境光传感器采集当前光亮度,并将亮度数据显示在数码管,同时根据亮度控制led灯的亮度,环境越暗,led灯亮度越大,反之亦然。

FPGA采用EP4CE10F17C8,环境光传感器采用AP3216C。

系统框图如下:

FPGA内部模块图如下:

2. 工程文件

3. 顶层电路图

4. 程序模块

5. 程序编译

6. 管脚分配

部分代码展示:

//测量环境光照强度和距离值
module?ap3216c(
????//system?clock
????input?????????????????clk????????,????//?时钟信号
????input?????????????????rst_n??????,????//?复位信号
????//i2c?interface
????output???reg??????????i2c_rh_wl??,????//?I2C读写控制信号
????output???reg??????????i2c_exec???,????//?I2C触发执行信号
????output???reg??[15:0]??i2c_addr???,????//?I2C器件内地址
????output???reg??[?7:0]??i2c_data_w?,????//?I2C要写的数据
????input?????????[?7:0]??i2c_data_r?,????//?I2C读出的数据
????input?????????????????i2c_done???,????//?I2C一次操作完成
????//user?interface
????output???reg??[15:0]??als_data???,????//?ALS的数据
????output???reg??[?9:0]??ps_data?????????//?PS的数据
);
//parameter?define
parameter??????TIME_PS???=?14'd12_500??;??//?PS转换时间为12.5ms(clk?=?1MHz)
parameter??????TIME_ALS??=?17'd100_000?;??//?ALS转换时间为100ms(clk?=?1MHz)
parameter??????TIME_REST?=??8'd2???????;??//?停止后重新开始的时间间隔控制
//reg?define
reg???[?3:0]???flow_cnt???;???????????????//?状态流控制
reg???[18:0]???wait_cnt???;???????????????//?计数等待
reg???[15:0]???als_data_t?;???????????????//?ALS的临时数据
reg????????????als_done???;???????????????//?环境光照强度值采集完成信号
reg???[?9:0]???ps_data_t??;???????????????//?PS的临时数据
reg????????????ir_of??????;???????????????//?溢出标志(判断ps_data是否有效)
reg????????????obj????????;???????????????//?物体状态标志(0远离1靠近)
//*****************************************************
//**????????????????????main?code
//*****************************************************
//配置AP3216C并读取数据
always?@(posedge?clk?or?negedge?rst_n)?begin
????if(!rst_n)?begin
????????i2c_exec???<=??1'b0;
????????i2c_addr???<=??8'd0;
????????i2c_rh_wl??<=??1'b0;
????????i2c_data_w?<=??8'h0;
????????flow_cnt???<=??4'd0;
????????wait_cnt???<=?18'd0;
????????ps_data????<=?10'd0;
????????ps_data_t??<=?10'd0;
????????ir_of??????<=??1'b0;
????????obj????????<=??1'b0;
????????als_done???<=??1'b0;
????????als_data_t?<=?16'd0;
????end

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1241

  • 2-241022193406125.doc
    下载

相关推荐