我正在尝试像风扇一样使用 3 种不同的速度为玩具电机供电
I'm trying to power up a toy motor using 3 different velocities like a fan would
我正在尝试启动其中一个微型玩具马达 like this one。我试图让它使用 3 种不同的速度。我在 app inventor 中制作了一个应用程序,并试图通过连接到它的风扇来控制电机的速度。我正在使用蓝牙 HC-05,我已经配置了蓝牙并用它来转动 on/off 3 个 LED 和其中 1 个微型电机,它工作得很好。蓝牙连接正确,一切正常。但是现在在一个星期没有使用我的 arduino 之后,我尝试控制 3 种不同的速度,并且无论我按下较低速度还是较高速度按钮,电机都以最大速度打开,当我按下时它甚至不会关闭离开。
我不明白发生了什么。上次它工作正常。当我连接到蓝牙设备时,它具有相同的名称。我没有使用电阻器,因为它上次没有电阻器就醒了,它只是一个玩具马达。
这是我的arduino代码:
#include <SoftwareSerial.h>
SoftwareSerial myBT(10,11);
char DATA = 0;
int FAN = 4;
int FAN2 = 7;
int LED = 8;
void setup() {
myBT.begin(38400);
pinMode(FAN,OUTPUT);
pinMode(FAN2,OUTPUT);
pinMode(LED,OUTPUT);
}
void loop() {
if(myBT.available()){
DATA = myBT.read();
if(DATA == '1')
digitalWrite(FAN,30);
if(DATA == '2')
digitalWrite(FAN,120);
if(DATA == '3')
digitalWrite(FAN,254);
if(DATA == '9')
digitalWrite(FAN,LOW);
if(DATA == '4')
digitalWrite(FAN2,80);
if(DATA == '5')
digitalWrite(FAN2,160);
if(DATA == '6')
digitalWrite(FAN2,254);
if(DATA == '9')
digitalWrite(FAN2,LOW);
if(DATA == '7')
digitalWrite(LED,HIGH);
if(DATA == '8')
digitalWrite(LED,LOW);
}
}
这是我的 designer
和我的 blocks
。
您认为代码有什么问题吗?还是我连接有误?
digitalWrite(FAN,30);
digitalWrite 需要 HIGH 或 LOW。任何非零值都只会将引脚设置为高电平。您是想在这里使用 analogWrite 吗?
你没有提到你有什么类型的 Arduino,但如果它是普通的 UNO,那么引脚 4 和 7 不支持 PWM,因此 analogWrite 将无法在它们上工作。您必须使用支持 PWM 的引脚。他们在黑板上的旁边有 ~ 。
我正在尝试启动其中一个微型玩具马达 like this one。我试图让它使用 3 种不同的速度。我在 app inventor 中制作了一个应用程序,并试图通过连接到它的风扇来控制电机的速度。我正在使用蓝牙 HC-05,我已经配置了蓝牙并用它来转动 on/off 3 个 LED 和其中 1 个微型电机,它工作得很好。蓝牙连接正确,一切正常。但是现在在一个星期没有使用我的 arduino 之后,我尝试控制 3 种不同的速度,并且无论我按下较低速度还是较高速度按钮,电机都以最大速度打开,当我按下时它甚至不会关闭离开。
我不明白发生了什么。上次它工作正常。当我连接到蓝牙设备时,它具有相同的名称。我没有使用电阻器,因为它上次没有电阻器就醒了,它只是一个玩具马达。
这是我的arduino代码:
#include <SoftwareSerial.h>
SoftwareSerial myBT(10,11);
char DATA = 0;
int FAN = 4;
int FAN2 = 7;
int LED = 8;
void setup() {
myBT.begin(38400);
pinMode(FAN,OUTPUT);
pinMode(FAN2,OUTPUT);
pinMode(LED,OUTPUT);
}
void loop() {
if(myBT.available()){
DATA = myBT.read();
if(DATA == '1')
digitalWrite(FAN,30);
if(DATA == '2')
digitalWrite(FAN,120);
if(DATA == '3')
digitalWrite(FAN,254);
if(DATA == '9')
digitalWrite(FAN,LOW);
if(DATA == '4')
digitalWrite(FAN2,80);
if(DATA == '5')
digitalWrite(FAN2,160);
if(DATA == '6')
digitalWrite(FAN2,254);
if(DATA == '9')
digitalWrite(FAN2,LOW);
if(DATA == '7')
digitalWrite(LED,HIGH);
if(DATA == '8')
digitalWrite(LED,LOW);
}
}
这是我的 designer
您认为代码有什么问题吗?还是我连接有误?
digitalWrite(FAN,30);
digitalWrite 需要 HIGH 或 LOW。任何非零值都只会将引脚设置为高电平。您是想在这里使用 analogWrite 吗?
你没有提到你有什么类型的 Arduino,但如果它是普通的 UNO,那么引脚 4 和 7 不支持 PWM,因此 analogWrite 将无法在它们上工作。您必须使用支持 PWM 的引脚。他们在黑板上的旁边有 ~ 。