| 
 | 
 
 本帖最後由 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 這顆。 |   
 
 
 
 |