当前位置:首页 > ARDUINO入门及其简单实验(7例) - 图文
if (HIGH == value) {
digitalWrite(ledPin, LOW); //熄灭LED } else {
digitalWrite(ledPin, HIGH); //点亮LED } }
4.4【实作项目四】利用PWM控制直流电机转速 ★实作项目简述:
在本实作中,利用Arduino的一个模拟输出端子,连接功率驱动电路,然后驱动一只直流电机。通过改变施加到电机上的模拟电压,来控制电机的转速,自动按周期性三角波规律变化:从慢到快,从快到慢,从慢到快,从快到慢,…… ★实验电路原理图:
本实作的实验电路原理图如图14所示。
将Arduino的9号模拟端子连接驱动电路。驱动电路由一只小功率三极管组成,基极串联一只限流电阻,集电极串联一只微型直流电机到5V,与电机并联的二极管用来实现续流作用,避免感性负载上的感应电压击穿三极管。
图14 电路原理图
17
★电路实物连接图:
本实作的电路实物连接图如图15所示。
图15 实验实物图
★实验程序清单:
int ledPin = 9; //设定9号端子接电机
void setup() {
}
void loop() {
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=10)
{
//从0逐渐增加到255
18
analogWrite(ledPin, fadeValue); delay(30); //每步延时30ms
}
for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=10) { analogWrite(ledPin, fadeValue); delay(30); //每步延时30ms } }
4.5【实作项目五】利用电位器手控LED亮度 ★实作项目简述:
在本制作中,我们将利用一只电位器来手动旋转,通过改变电位器的值来控制发光二极管的亮度。
通过旋转电位器的轴,就能改变电位器中头同地之间的电阻值,从而也就能改变从模拟输入端子上所读取的模拟量的电压值。在我们的实验中,读出的模拟量被用来确定发光二极管的亮度,以反映模拟量的变化。 ★实验电路原理图:
本实作的实验电路原理图如图16所示。
电位器上一共有三个管脚,两端分别连接到Arduino的5V电源和地之间,中头连接模拟输入的0号端子上。发光二极管则串联一只限流电阻之后,接到数字I/O的9号端子上。
19
图16 电路原理图
★电路实物连接图:
本实作的电路实物连接图如图17所示。
图17 实验实物图
★软件算法说明:
当电位器完全旋转到一头时,输入到模拟输入端子上的电压为0V,用analogRead()函数读出的值为0;当电位器完全旋转到另一头时,输入到模拟 端子上的电压为5V,此时用 analogRead()函数读出的值为1023(即为一个10位数值,210 = 1024);当电位器旋转到中间的某个位置时,输入到模拟输入端子上的电压是0V到5V之间的某个值,而用analogRead()函数读出的则是介于0到1023之间的某个对应值。
驱动和改变LED的亮度,需要利用的函数为analogWrite(),而该函数所需参数为一个8位数值(28 = 256),这就需要对从电位器读出的、10位宽的值进行转换,变换成8位数值。具体思路是,直接舍弃10位数值的低端2位即可;具体方法也简单,利用算式直接除以2即可。
20
共分享92篇相关文档