只需一步,快速开始
签到天数: 867 天
[LV.10]以坛为家III
第四课中我们介绍了使用软件来调节LED 灯的亮度,今天我们要使用硬件来调节灯亮度。
生活中,当人睡觉时,我们当然希望台灯是关闭或者是处于比较暗的状态,所以很多台灯都是具有调光的功能的,其原理很简单:调节RP 的阻值,可改变电容C 充电达到UG 值得时间,即调整晶闸管的导通角,使晶闸管早一点或迟一点触发导通,从而调节晶闸管的输出电压,使灯两端电压能0~220V 间变化。电压高,灯发光亮;电压低,灯发光暗。
下面我们来用电位器做一个简单的调光实验,实验中,我们要使用的元器件:
UNO 实验套装(UNO兼容板一块、USB数据线一根、优质面包板一块、彩色面包板线若干)
LED 一个
电阻220欧 一个
线绕电位器 一个
按钮开关 一个
其中电位器是线绕电位器,型号为WXD3-13-2W,如图: 登录/注册后可看大图 电位器.jpg (173.81 KB, 下载次数: 102) 下载附件 2013-6-13 20:49 上传 它是利用康铜丝或镍铬合金电阻丝绕在一个环状骨架上制成的。这种电位器额定功率大(几瓦或数十瓦)、耐温高、耐磨性能好、噪声低,阻值可以调得很精确而且稳定性好。线绕电位器的阻值,范围比较小,一般为几卜欧姆至几千欧姆之间,阻值允许偏差±5%和±10%。这种电位器通常用于电源调节或大电流分压电路中。由于它是电阻丝绕制而成(相当于线圈),其电感量较大,故线绕电位器很少用于高频电路。下面看下电路(将LED正极接数字9端口,负极通过220限流电阻接地;按钮一端接数字8端口,一端接地;电位器3个引脚分别连接5V,GND,模拟口A0): 登录/注册后可看大图 电位器电路图.jpg (81.93 KB, 下载次数: 95) 下载附件 2013-6-16 14:27 上传 下面是程序:/* 电位器实验(台灯功能模拟) 按钮控制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亮度;实验完成~~~
电位器.jpg (173.81 KB, 下载次数: 102)
下载附件
2013-6-13 20:49 上传
它是利用康铜丝或镍铬合金电阻丝绕在一个环状骨架上制成的。这种电位器额定功率大(几瓦或数十瓦)、耐温高、耐磨性能好、噪声低,阻值可以调得很精确而且稳定性好。线绕电位器的阻值,范围比较小,一般为几卜欧姆至几千欧姆之间,阻值允许偏差±5%和±10%。这种电位器通常用于电源调节或大电流分压电路中。由于它是电阻丝绕制而成(相当于线圈),其电感量较大,故线绕电位器很少用于高频电路。
下面看下电路(将LED正极接数字9端口,负极通过220限流电阻接地;按钮一端接数字8端口,一端接地;电位器3个引脚分别连接5V,GND,模拟口A0): 登录/注册后可看大图 电位器电路图.jpg (81.93 KB, 下载次数: 95) 下载附件 2013-6-16 14:27 上传 下面是程序:/* 电位器实验(台灯功能模拟) 按钮控制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亮度;实验完成~~~
电位器电路图.jpg (81.93 KB, 下载次数: 95)
2013-6-16 14:27 上传
下面是程序:
将程序烧写到控制板中,按动按钮控制LED开关,旋动电位器调节LED亮度;实验完成~~~
使用道具 举报
签到天数: 1 天
[LV.1]初来乍到
签到天数: 13 天
[LV.3]偶尔看看II
本版积分规则 发表回复 回帖后跳转到最后一页
|小黑屋|联系我们|YFROBOT ( 苏ICP备20009901号-2 )
GMT+8, 2024-11-13 14:30 , Processed in 0.139463 second(s), 28 queries .
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.