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]

下面是程序:

  1. /*
  2. 电位器实验(台灯功能模拟)
  3. 按钮控制LED开光,电位器控制LED亮度
  4. BY TSRobot
  5. */

  6. #define LED 9 //定义LED引脚为9
  7. #define BUTTON 8 //定义按钮开关引脚为8
  8. int Button_val = 0; //变量Button_val用来储存按钮状态
  9. int Button_old_val = 0; //暂存Button_val变量的上一个时间单位
  10. int RP_val ; //RP_val存储电位器状态
  11. int state = 0; //0表示LED关闭,1表示打开

  12. void setup(){
  13. pinMode(LED, OUTPUT); //设定LED引脚为输出状态
  14. pinMode (BUTTON,INPUT_PULLUP); //设定按钮引脚为输入状态
  15. }

  16. void loop(){
  17. Button_val = digitalRead(BUTTON); //读取按钮状态并储存
  18. RP_val = analogRead(A0); //读取A0口的数值(0-5V 对应 0-1204取值)
  19. //检查按钮的变化情况
  20. if((Button_val == HIGH)&&(Button_old_val == LOW)){
  21. state =1-state;
  22. delay(40); //延时简单抗抖动
  23. }
  24. Button_old_val = Button_val; //Button_val下载已经是旧的了,让我们暂存一下

  25. if (state == 1){
  26. digitalWrite(LED,HIGH); //开启LED
  27. analogWrite(LED,RP_val/4); //调节LED亮度
  28. }else{
  29. digitalWrite(LED,LOW); //关闭LED
  30. }
  31. }
复制代码

将程序烧写到控制板中,按动按钮控制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