我正在尝试像风扇一样使用 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 的引脚。他们在黑板上的旁边有 ~ 。