YFROBOT创客社区
标题: Arduino入门教程—拓展实验篇三 电位器实验 [打印本页]
作者: AllBlue 时间: 2013-6-16 14:30
标题: Arduino入门教程—拓展实验篇三 电位器实验
本帖最后由 AllBlue 于 2016-1-15 08:19 编辑
电位器实验 第四课中我们介绍了使用软件来调节LED 灯的亮度,今天我们要使用硬件来调节灯亮度。
生活中,当人睡觉时,我们当然希望台灯是关闭或者是处于比较暗的状态,所以很多台灯都是具有调光的功能的,其原理很简单:调节RP 的阻值,可改变电容C 充电达到UG 值得时间,即调整晶闸管的导通角,使晶闸管早一点或迟一点触发导通,从而调节晶闸管的输出电压,使灯两端电压能0~220V 间变化。电压高,灯发光亮;电压低,灯发光暗。
下面我们来用电位器做一个简单的调光实验,实验中,我们要使用的元器件:
UNO 实验套装(UNO兼容板一块、USB数据线一根、优质面包板一块、彩色面包板线若干)
LED 一个
电阻220欧 一个
线绕电位器 一个
按钮开关 一个
其中电位器是线绕电位器,型号为WXD3-13-2W,如图:
[attach]378[/attach]
它是利用康铜丝或镍铬合金电阻丝绕在一个环状骨架上制成的。这种电位器额定功率大(几瓦或数十瓦)、耐温高、耐磨性能好、噪声低,阻值可以调得很精确而且稳定性好。线绕电位器的阻值,范围比较小,一般为几卜欧姆至几千欧姆之间,阻值允许偏差±5%和±10%。这种电位器通常用于电源调节或大电流分压电路中。由于它是电阻丝绕制而成(相当于线圈),其电感量较大,故线绕电位器很少用于高频电路。
下面看下电路(将LED正极接数字9端口,负极通过220限流电阻接地;按钮一端接数字8端口,一端接地;电位器3个引脚分别连接5V,GND,模拟口A0):
[attach]395[/attach]
下面是程序:
- /*
- 电位器实验(台灯功能模拟)
- 按钮控制LED开光,电位器控制LED亮度
- BY TSRobot
- */
- #define LED 9 //定义LED引脚为9
- #define BUTTON 8 //定义按钮开关引脚为8
- int Button_val = 0; //变量Button_val用来储存按钮状态
- int Button_old_val = 0; //暂存Button_val变量的上一个时间单位
- int RP_val ; //RP_val存储电位器状态
- int state = 0; //0表示LED关闭,1表示打开
- void setup(){
- pinMode(LED, OUTPUT); //设定LED引脚为输出状态
- pinMode (BUTTON,INPUT_PULLUP); //设定按钮引脚为输入状态
- }
- void loop(){
- Button_val = digitalRead(BUTTON); //读取按钮状态并储存
- RP_val = analogRead(A0); //读取A0口的数值(0-5V 对应 0-1204取值)
- //检查按钮的变化情况
- if((Button_val == HIGH)&&(Button_old_val == LOW)){
- state =1-state;
- delay(40); //延时简单抗抖动
- }
- Button_old_val = Button_val; //Button_val下载已经是旧的了,让我们暂存一下
- if (state == 1){
- digitalWrite(LED,HIGH); //开启LED
- analogWrite(LED,RP_val/4); //调节LED亮度
- }else{
- digitalWrite(LED,LOW); //关闭LED
- }
- }
复制代码将程序烧写到控制板中,按动按钮控制LED开关,旋动电位器调节LED亮度;实验完成~~~
作者: wxl802 时间: 2016-1-11 14:13
这里有一点问题,后面的同学要注意一下。
#define LED 9 //定义LED引脚为8
#define BUTTON 8 //定义按钮开关引脚为4
RP_val = analogRead(A0); //读取A0口的数值(0-5V 对应 0-1204取值)
作者: xfsss 时间: 2019-10-2 21:58
谢谢分享!
欢迎光临 YFROBOT创客社区 (http://yfrobot.com.cn/) |
Powered by Discuz! X3.1 |