Arduino学习笔记:基本直流电机驱动

1 让电机跑起来

#define pwm 6
#define dir 2

void setup() {
 pinMode(dir, OUTPUT);
 pinMode(pwm, OUTPUT); 
}

void loop() {
   digitalWrite(pwm, HIGH);
}

使用arduino uno设备,这里有pwm的引脚有5和6。(标有~符号代表pwm)。通电即可使电机旋转。注意Arduino自带的电压不够驱动电机,需要外接一个9V电源

2 控制电机速度

#define pwm 6
#define dir 2

void setup() {
 pinMode(dir, OUTPUT);
 pinMode(pwm, OUTPUT); 
 Serial.begin(9600);
}

void loop() {
  if (Serial.available()){
    int speed = Serial.parseInt();
    if (speed >= 0 && speed <= 255) {
      analogWrite(pwm, speed);
    }
  }
}

这里通过串口输入速度(值的范围在0和255之间)。使用analogWrite把模拟电压写入pwm即可控制速度。0为静止,255为最大速度

3 控制电机方向

#define pwm 6
#define dir 2

void setup() {
 pinMode(dir, OUTPUT);
 pinMode(pwm, OUTPUT); 
 Serial.begin(9600);
}

void loop() {
  if (Serial.available()){
    int speed = Serial.parseInt();
    if (speed >= 0 && speed <= 255) {
      analogWrite(pwm, speed);
      digitalWrite(dir, LOW);
    }
  }
}

我这里引脚2可以用于控制方向(uno上还有引脚4可用)。使用digitalWrite控制该方向引脚。高低压和低电压分别对应不同方向。

你可能感兴趣的:(实习记录,学习,单片机,嵌入式硬件,c++)