Arduino改装蓝牙控制风力仿生兽
作者:互联网
文章目录
成品展示
准备材料
arduino nano/UNO | 1 |
---|---|
L298N驱动 | 1 |
蓝牙模块 | 1 |
风力仿生兽 | 1 |
3D打印支架(可用其他材料代替) | 1 |
杜邦线 | 若干 |
小黄电机 | 2 |
电源 | 1 |
胶枪 | 1 |
制作
原理
说到原理,其实就是一个变相的蓝牙控制小车
3D打印支架
stl文件
有条件的可以打印一个,没有的话可以用洞洞板之类的代替。
蓝牙配置
进入AT模式,主要是将蓝牙改为从机模式,其他根据自身实际情况设置。
接线
跟具有pwm的蓝牙小车相同,这里不过多介绍。
程序
void motor(char pin,char pin1,char pwmpin,char state,int val)
{
pinMode(pin, OUTPUT);
pinMode(pwmpin,OUTPUT);
pinMode(pin1,OUTPUT);
if(state==1)
{
analogWrite(pwmpin,val);
digitalWrite(pin,1);
digitalWrite(pin1,0);
}
else if(state==2)
{
analogWrite(pwmpin,val);
digitalWrite(pin,0);
digitalWrite(pin1,1);
}
else if(state==0)
{
analogWrite(pwmpin,0);
digitalWrite(pin,0);
digitalWrite(pin1,0);
}
}
void runfoward(int i)
{
motor(4,12,5,2,i);//左电机一段接4口 一端接12口 5为pwm口 state为2 正转 为1反转
motor(7,13,6,2,i);
}
void runback(int j)
{
motor(4,12,5,1,j);
motor(7,13,6,1,j);
}
void turnL(int m)
{
motor(4,12,5,1,m);
motor(7,13,6,2,m);
}
void turnR(int n)
{
motor(4,12,5,2,n);
motor(7,13,6,1,n);
}
void stop()
{
motor(4,12,5,0,0);
motor(7,13,6,0,0);
}
void setup()
{
Serial.begin(9600);
}
void loop()
{
while (Serial.available() > 0) {
char inChar = Serial.read();
// inChar=inChar-0x30;
if(inChar == 'A') //foward
{
runfoward(250);
delay(100);
stop();
}
else if(inChar == 'E') //back
{
runback(250);
delay(100);
stop();
}
else if(inChar == 'G') //L
{
turnL(250);
delay(100);
stop();
}
else if(inChar == 'C') //R
{
turnR(250);
delay(100);
stop();
}
else if(inChar == 0)
{
stop();
}
// inChar=0;
}
}
标签:仿生,Arduino,digitalWrite,void,inChar,蓝牙,stop,motor 来源: https://blog.csdn.net/qq_42860728/article/details/88177047