旋钮开关: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
-
- //定义引脚
- 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 库的使用并复习了旋钮电位器的使用。