天天看點

arduino控制多個舵機,舵機庫(Servo)的使用

舵機3條線,紅色接5V,黃色接GND,橙色是資料,插入接口。。

網上教程說用了servo庫後,Arduino開發闆9.10接口不能用analogWrite()語句。是以最好舵機接到這個接口上,免得浪費。

這裡有個教程源碼,一個直接轉角度,一個控制PWM轉角度(這個更加精準的,範圍大500-2500)

============直接轉角度=============

#include <Servo.h>                // 聲明調用Servo.h庫

Servo myservo;               //建立一個舵機,命名為myservo

Servo myservo2;               //建立一個舵機,命名為myservo2

                                         //還有舵機,繼續建立,指令為Servo 名字

#define  SERVO_PIN  D7            //宏定義舵機控制引腳,指令為#define  舵機名字_PIN  端口 ;

#define  SERVO2_PIN  D6            //宏定義舵機控制引腳

 //上邊的D7 D6是我的wemos D1開發闆(挺便宜的)接口,一般adruino是數字                                                        

void setup(){ 

myservo.attach(SERVO_PIN);    // 将D6引腳與聲明的舵機對象連接配接起來

 myservo2.attach(SERVO2_PIN);    // 将D7引腳與聲明的舵機對象連接配接起來

}  

void loop(){ 

myservo.write(10);   //角度10。舵機轉動指令為:舵機名.write(角度);

delay(1000);         //延時1秒

 myservo2.write(140);  //角度140

delay(1000);   

===========PWM==========

#include <Servo.h>                // 聲明調用Servo.h庫

Servo myservo;               //建立一個舵機,命名為myservo

Servo myservo2;               //建立一個舵機,命名為myservo2

                                         //還有舵機,繼續建立,指令為Servo 名字

#define  SERVO_PIN  D7            //宏定義舵機控制引腳,指令為#define  舵機名字_PIN  端口 ;

#define  SERVO2_PIN  D6            //宏定義舵機控制引腳

 //上邊的D7 D6是我的wemos.cc接口,一般adruino是數字                                                        

unsigned int PWM = 0;             //變量pwm用來存儲舵機角度位置,PWM的500對應0度,2500對應舵機的最大角度

                                              //(180度舵機2500對應180度,270度舵機2500對應270度)

void setup(){ 

myservo.attach(SERVO_PIN);    // 将D6引腳與聲明的舵機對象連接配接起來

 myservo2.attach(SERVO2_PIN);    // 将D7引腳與聲明的舵機對象連接配接起來

}  

void loop(){ 

myservo.writeMicroseconds( 500);   //寫入PWM,最小值500,最大值2500.。每個值的角度都不同。

                                                     //PWM轉舵機角度指令:舵機名.writeMicroseconds(數值);

delay(1000);         //延時1秒

myservo2.writeMicroseconds( 500);

delay(1000);   

======舵機庫(Servo)的函數==================

attach  連接配接舵機

write   角度控制

writeMicroseconds()   更精準的角度控制

read()  讀上一次舵機轉動角度

attached()  檢查舵機及是否連接配接控制闆上

detach()   斷開舵機連接配接