|
本帖最後由 max840719 於 2016-10-27 18:27 編輯
想請問一下要如何控制伺服馬達從0~90度後再從90回來0度? 我寫的程式他都沒有動作
但如果在setup那加上myservo.write(0); ,他會一直轉圈圈轉不停。
加上myservo.write(90); 就完全不會動。
#include <Servo.h>
Servo myservo;
char inData;
const byte speed = 100; // 馬達的PWM輸出值
const byte ENA = 5; // 馬達A的致能接腳
const byte ENB = 6; // 馬達B的致能接腳
const byte IN1 = 13; // 馬達A的正反轉接腳
const byte IN2 = 12; // 馬達B的正反轉接腳
const byte IN3 = 7; // 馬達A的正反轉接腳
const byte IN4 = 11; // 馬達B的正反轉接腳
void setup()
{
Serial.begin(9600);
pinMode(IN1, OUTPUT); // 馬達控制板的接腳全都設定成「輸出」
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
digitalWrite(ENA,HIGH);
digitalWrite(ENB,HIGH);
myservo.attach(9);
}
void loop()
{
if(Serial.available() > 0)
{
inData = Serial.read();
if(inData=='e') //發射
{
analogWrite(ENA, speed);
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENB, speed);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(1500);
myservo.write(90);
delay(1000);
myservo.write(0);
}
}
}
請教各位大大了,我用的是MG995 這顆。 |
|