实验目的
读取电位器输出到arduino模拟IO的数值,并将读取的模拟IO值作为PWM控制的占空比对马达进行调速;
硬件
arduino uno、10k电位器、130马达、L9110电机控制器;
电位器简介

本次实验用到的电位器阻值为10k,即PIN1和PIN3两个引脚之间电压值为10k,PIN2与任意两个引脚之间的电阻通过调节电位器旋钮改变。
arduino中需要用到的相关函数
analogRead(pin);
//从指定的模拟引脚读取数值;
//pin:用于读取数值的引脚,arduino uno 的模拟引脚为A0、A1、A2、A3、A4、A5、
//输出:0~1023;将0至5伏特之间的输入电压映射到0至1023之间的整数值。读数之间的关系:5伏特/ 1024单位,或0.0049伏特(4.9 mV)每单位。
analogWrite(pin,value);
//向指定的数字引脚写入数值;
//pin:Arduino UNO 控制器上有6个PWM接口,分别是数字接口3、5、6、9、10、11
//value:占空比(0~255之间,0完全关闭,255完全打开)
map(value, fromLow, fromHigh, toLow, toHigh);
//将analogRead(pin)输出的数值从(0`1023)的范围映射至analogWrite(pin,value)函数中value数值规定的(0~255)的范围;
//value:需要映射的值
//fromLow:当前范围值的下限
//fromHigh:当前范围值的上限
//toLow:目标范围值的下限
//toHigh:目标范围值的上限
接线图

示例代码
int potentiometerPin = A0;
int PWM_Pin = 3;
void setup()
{
pinMode (potentiometerPin, INPUT);
pinMode (PWM_Pin,OUTPUT);
}
void loop()
{
int value = analogRead(potentiometerPin);
map(value, 0, 1023, 0, 255);
analogWrite(PWM_Pin, value);
}
实验效果
视频加载中...