1.1 介绍:
实验功能说明:功能(1)按一下按键小风扇开启,再按一下关闭。
功能(2)按一下按键小风扇一档风速,再按一下二挡,依次三挡…关闭。
按键模块说明:按下S输出低电平
电机驱动一体模块说明:VG引脚供电,AB是信号控制引脚,PWM可以调速
正转控制:B低电平,A高电平 反转控制:B高电平,A低电平
1.2 相关资料:
链接:https://sourl.cn/7FXAif
1.3 实验组件:
1.4模块接线图:
1.5 实验代码:
程序1:
/*
实验:自制手持小风扇
功能:按一下按键小风扇开,再按一下关
https://sourl.cn/7FXAif
*/
#define INB 9 //定义电机B端口
#define INA 8 //定义电机A端口
#define key 3 //定义按键D3端口
unsigned char val = 0;
unsigned char i = 0;
unsigned char key_val = 0;
void setup() {
Serial.begin(9600);
pinMode(INB, OUTPUT);
pinMode(INA, OUTPUT);
pinMode(key, INPUT);
}
void loop() {
Serial.print(digitalRead(key));
val = digitalRead(key);//获取按键状态
if (!val) //按键有抖动,销抖处理
{
delay(25);
if (!val)
{
key_val++; //按一下key_val加1
if(key_val>=2)
key_val=0; //再按一下清零
}
}
switch(key_val)
{
case 0:
analogWrite(INB, 0); //停止
analogWrite(INA, 0);break;
case 1:
analogWrite(INB, 0); //转动
analogWrite(INA, 255);break;
}
}
程序2:
/*
实验:自制手持小风扇
功能:按一下按键小风扇一档风速,再按一下二挡,依次三挡....关闭。
https://sourl.cn/7FXAif
*/
#define INB 9 //定义电机B端口
#define INA 8 //定义电机A端口
#define key 3 //定义按键D3端口
unsigned char val = 0;
unsigned char i = 0;
unsigned char key_val = 0;
void setup() {
Serial.begin(9600);
pinMode(INB, OUTPUT);
pinMode(INA, OUTPUT);
pinMode(key, INPUT);
}
void loop() {
Serial.print(digitalRead(key));
val = digitalRead(key);//获取按键状态
if (!val) //按键有抖动,销抖处理
{
delay(25);
if (!val)
{
key_val++; //按一下key_val加1
if (key_val >= 4)
key_val = 0; //再按一下清零
}
}
switch (key_val)
{
case 0:
analogWrite(INB, 0); //停止
analogWrite(INA, 0); break;
case 1:
analogWrite(INB, 0); //一档
analogWrite(INA, 100); break;
case 2:
analogWrite(INB, 0); //二挡
analogWrite(INA, 180); break;
case 3:
analogWrite(INB, 0); //三挡
analogWrite(INA, 255); break;
}
}
1.6实验结果:
件连接好线之后,将上述程序上传到 Arduino UNO 开发板之后
功能(程序1)按一下按键小风扇开启,再按一下关闭。
功能(程序2)按一下按键小风扇一档风速,再按一下二挡,依次三挡…关闭。