【Arduino31】LED与步进电机实验

硬件准备

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

你可能感兴趣的:(单片机,嵌入式硬件)