硬件准备
旋钮开关:1个
步进电机:1个
LED灯:1个
声音传感器:1个
220欧电阻:1个
50K欧电阻:1个
面包板:1个
杜邦线:若干
硬件连线
1、将旋钮开关、步进电机、LED灯和声音传感器插入面包板
2、旋钮开关的中间引脚接到 A0 引脚
3、步进电机的 IN A~D 分别接 8~11 号引脚
4、LED灯正极接 3 号引脚
5、声音传感器与50K欧电阻相连的一端接到 A5 引脚
6、50K欧电阻的另一端接到电源
软件程序
#include <Stepper.h>
//定义引脚
const int ledPin = 3; //LED引脚
const int knobPin = A0; //旋钮开关引脚
const int soundPin = A5; //声音传感器引脚
//定义变量
//定义步进电机的参数
const int stepsPerRevolution = 200; //步进电机每一圈的步数
Stepper stepper(stepsPerRevolution, 8, 9, 10, 11); //步进电机的每圈步数以及引脚连接
//函数声明
void LED(int soundVal);
void STEPPER(int knobVal);
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
stepper.setSpeed(60); //设置步进电机的转速
}
void loop() {
int knobVal = analogRead(knobPin); //获取旋钮开关模拟值
int soundVal = analogRead(soundPin); //获取声音传感器模拟值
LED(soundVal); //声音传感器控制LED亮灭
STEPPER(knobVal); //旋钮开关控制步进电机旋转
}
void LED(int soundVal) {
//Serial.println(soundVal);
//delay(1000);
if (soundVal > 50) {
digitalWrite(ledPin, HIGH);
delay(5000);
} else {
digitalWrite(ledPin, LOW);
}
}
void STEPPER(int knobVal) {
int revolutionVal = map(knobVal, 0, 1023, 0, 360);
//Serial.print("当前转动角度: ");
//Serial.println(revolutionVal);
stepper.step(revolutionVal);
delay(500);
}
产品展示视频
说话则LED灯亮,转动旋钮开关则控制步进电机的转动角度
【Arduino30】LED与步进电机实验
应用场景
通过声音传感器、灯、旋钮开关与步进电机的联合使用,我们可以完成声控灯与窗帘等家具的功能。比如声音控制开关灯、窗帘的自动控制等。
总结
通过本次实验,我学会了如何使用步进电机以及声音传感器,了解了 Stepper 库的使用并复习了旋钮电位器的使用。