Arduino片内ADC与LED线性可调光控制方案

发布时间:2013-12-30 阅读量:3054 来源: 发布人:

【导读】Arduino作为一款开源硬件的平台,深受开发者的亲睐。随着开源硬件和创客们的联系越来越密切,大批的开发者投入到了诸如Arduino、树莓派这样的平台上做开发,接下来我们分享一个Arduino开发者关于ADC线性调光的方案,实用,但不复杂。

开发平台简介

该方案的硬件平台是Arduino开发板,Arduino UNO是Arduino USB接口系列的最新版本,作为Arduino平台的参考标准模板。UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。UNO已经发布到第三版,与前两版相比有以下新的特点:

1.在AREF处增加了两个管脚SDA和SCL,支持I2C接口;增加IOREF和一个预留管脚,将来扩展板将能兼容5V和3.3V核心板。

2.改进了复位电路设计。

3.USB接口芯片由ATmega16U2替代了ATmega8U2 。

Arduino开发板

硬件参数

——处理器 ATmega328
——工作电压 5V
——输入电压(推荐) 7-12V
——输入电压(范围) 6-20V
——数字IO脚 14 (其中6路作为PWM输出)
——模拟输入脚 6
——IO脚直流电流 40 mA
——3.3V脚直流电流 50 mA
——Flash Memory 32 KB (ATmega328,其中0.5 KB 用于 bootloader)
——SRAM 2 KB (ATmega328)
——EEPROM 1 KB (ATmega328)
——工作时钟 16 MHz

电源

Arduino UNO可以通过3种方式供电,而且能自动选择供电方式

*外部直流电源通过电源插座供电。
*电池连接电源连接器的GND和VIN引脚。
*USB接口直接供电。

通信接口

*串口:ATmega328内置的UART可以通过数字口0(RX)和1(TX)与外部实现串口通信;ATmega16U2可以访问数字口实现USB上的虚拟串口。
*TWI(兼容I2C)接口:
*SPI 接口:

注意要点

(1)Arduino UNO上USB口附近有一个可重置的保险丝,对电路起到保护作用。当电流超过500mA是会断开USB连接。
(2)Arduino UNO提供了自动复位设计,可以通过主机复位。这样通过Arduino软件下在程序到UNO中软件可以自动复位,不需要在复位按钮。在印制板上丝印"RESET EN"处可以使能和禁止该功能。

ADC原理

该方案是要线性调节LED亮度,现在基本上大多采用PWM(脉宽调制)来实现对LED亮度的控制,在这基础上也有了呼吸灯,这次我们要能对LED灯亮度实现线性的调节,就像平时用的可调亮度的台灯一样。

要想对LED灯亮度实现线性调节,除了使用PWM来控制LED灯亮度,还需要使用ADC来读取我们设定的亮度值。我们先来学习一下ADC。

ADC是Analog-to-Digital Converter的缩写,即模拟/数字转换器,可以实现将模拟量转换为数字量的电子器件。

什么是模拟量?模拟量就是具有多个连续状态的量值,比如温度,有0℃,50℃,100℃等任意值,比如电压值,有1mV,1V,1kV等任意值。

什么事数字量?数字量就是只有两种状态的量值,比如灯的开关,只有打开和关闭两种状态。

ADC是模拟量与数字量的桥梁,因为计算机等只能处理数字量,而我们接触的模拟量有很多,当需要模拟量时必须转换为数字量才能被处理与存储。

Arduino ADC控制

这里使用到Arduino UNO的ADC,就有必要先了解一下Arduino UNO的ADC的情况。Arduino UNO拥有6路模拟输入:标号A0至A5,每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整输入上限。AREF:模拟输入信号的参考电压。

实用Proteus在元器件搜索栏中输入"POT-HG",在原来的Arduino UNO实验板上添加"POT-HG",并将中间接线端接至A0口,修改后的原理图如下图所示。

proteus界面
添加"POT-HG“界面

更改的原理图
更改过的Arduino原理图

打开Arduino IDE自带的AnalogInput例程,如下图

Arduino自带IDE

在AnalogIput例程的基础上进行修改,修改之后的Arduino软件设计如下所示:

代码

由于Arduino的ADC为10位,数字量的变化范围为0至1023,而Arduino的PWM的输出变化范围为0至255,所以需要将获得ADC除以4,从而转换至PWM输出,由于如上面红色标注。

下面我们开始仿真,并调节电位器,电阻较小时,LED灯较暗,如图4所示;电阻较大时,LED灯较亮,如下图:

仿真
电阻较小时,LED较暗

仿真2
电阻较大时,LED变亮

演示视频


 

总的来说,原理和代码不是很复杂,实现的功能也比较单一,对于初学者来说是很好的例子。同时Arduino是一个很开放的平台,能找到的资料也很多,网友们也有很多创意的diy作品,只要愿意动手去创造,总是能有惊喜。
 

相关资讯
SEMI-e 2025深圳半导体展9月启幕!全产业链覆盖,超千家龙头集结

SEMI-e深圳国际半导体展暨2025集成电路产业创新展将于2025年9月10日至12日在深圳国际会展中心(宝安新馆)隆重开幕。本届展会由CIOE中国光博会与集成电路创新联盟联合主办,中新材会展与爱集微共同承办,以“IC设计与应用”、“IC制造与供应链”及“化合物半导体”为核心主题,系统覆盖集成电路全产业链环节。

超11万人次观展,5723名海外买家到场!IOTE 2025深圳物联网展圆满落幕​

​在AIoT技术加速赋能全球数字化转型、中国持续引领物联网产业创新的大背景下,IOTE 2025第24届国际物联网展·深圳站于8月29日在深圳会展中心(宝安新馆)圆满落幕。本届展会以“生态智能·物联全球”为主题,联合AGIC人工智能展与ISVE智慧商显展,汇聚1001家产业链企业,覆盖8万平方米展区,三日内吸引观众超11万人次,其中海外专业买家达5723人,来自30多个国家和地区,充分彰显了展会的国际影响力与行业凝聚力。

IOTE 2025物联网展开启AIoT生态新纪元:千家展商齐聚,首日超5万观众!

​8月27日,IOTE 2025·第24届国际物联网展于深圳国际会展中心(宝安新馆)隆重开幕。本届展会以“生态智能·物联全球”为主题,联合AGIC人工智能展与ISVE智慧商显展,在8万平方米的展区内汇聚超1000家全球展商,涵盖人形机器人、边缘计算、高精度定位、无源物联网、电子纸等前沿领域。开展首日即吸引超5万名专业观众到场,展现出AIoT融合背景下物联网产业的蓬勃活力与无限潜力!

第106届中国电子展11月在沪开幕,聚焦“创新强基”助推产业协同生态

在创新驱动与供给侧改革的持续深化下,2024年中国电子元器件行业迎来强劲复苏与高质量发展,整体销售收入突破2.2万亿元人民币,进出口贸易额稳步增长,展现出显著的发展韧性。行业在移动终端、汽车电子、新能源等关键下游市场的驱动下,不仅产业配套能力实现跃升,一批骨干企业的全球竞争力也持续增强。在此蓬勃发展的产业背景中,第106届中国电子展将于2025年11月5-7日在上海新国际博览中心举行,以“创新强基 智造升级”为主题,搭建全产业链协同创新的重要平台。

寒武纪登顶A股“股王”!单日暴涨15.73%,市值破6600亿,公司紧急提示:股价已严重脱离基本面

寒武纪发布《股票交易风险提示公告》明确指出:当前股价已严重脱离基本面,存在较大投资风险,提醒投资者理性决策,谨慎参与交易。