arduino 舵机接线图_求用5个电位器分别控制舵机的arduino的原码和连线图
按照上圖連線,按照如下代碼燒程序。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#define?Sin_1?A0????//設置變阻器1路電壓采集端口為A0#define?Sin_2?A1????//設置變阻器2路電壓采集端口為A1#define?Sin_3?A2????//設置變阻器3路電壓采集端口為A2#define?Sin_4?A3????//設置變阻器4路電壓采集端口為A3#define?Pout_1?2????//設置舵機PWM信號1路輸出端口為D2#define?Pout_2?3????//設置舵機PWM信號2路輸出端口為D3#define?Pout_3?4????//設置舵機PWM信號3路輸出端口為D4#define?Pout_4?5????//設置舵機PWM信號4路輸出端口為D5int?v1,?v2,?v3,?v4;?//定義采集模擬電壓的存儲變量int?p1,?p2,?p3,?p4;?//定義PWM輸出的脈寬變量unsigned?long?T_Start;void?setup(){??pinMode(Pout_1,?OUTPUT);???//設置舵機接口為輸出模式??pinMode(Pout_2,?OUTPUT);???//設置舵機接口為輸出模式??pinMode(Pout_3,?OUTPUT);???//設置舵機接口為輸出模式??pinMode(Pout_4,?OUTPUT);???//設置舵機接口為輸出模式??p1?=?1500;?p2?=?1500;?p3?=?1500;?p4?=?1500;????//設置初始舵機輸出的位置為中立位置}void?loop(){??T_Start?=?micros();????????????????????//每次循環運行前,先采集當前的時間標志值??PWM_OUT();?????????????????????????????//輸出舵機的控制信號??Get_Input();???????????????????????????//采集模擬電壓信號并轉換為舵機角度對應的脈寬值??while((micros()?-?T_Start)?<=?20000);????//控制時間,保證每個循環占用20ms,滿足驅動舵機的信號周期要求}void?PWM_OUT(){??//由于絕大多數Arduino都不具備使用Servo庫同時驅動4個舵機的功能??//所以,本函數采用高低電平延時方式,產生驅動4路舵機的功能??digitalWrite(Pout_1,?HIGH);??delayMicroseconds(p1);??digitalWrite(Pout_1,?LOW);?????digitalWrite(Pout_2,?HIGH);??delayMicroseconds(p2);??digitalWrite(Pout_2,?LOW);?????digitalWrite(Pout_3,?HIGH);??delayMicroseconds(p3);??digitalWrite(Pout_3,?LOW);?????digitalWrite(Pout_4,?HIGH);??delayMicroseconds(p4);??digitalWrite(Pout_4,?LOW);}void?Get_Input(){??v1?=?analogRead(Sin_1);???//采集變阻器模擬電壓??p1?=?map(v1,0,1023,500,2500);??//使用map函數,將采集的10位精度的電壓的值域(0-1023),轉換為舵機的脈寬數值(500-2500)?????v2?=?analogRead(Sin_2);???//采集變阻器模擬電壓??p2?=?map(v2,0,1023,500,2500);??????v3?=?analogRead(Sin_3);???//采集變阻器模擬電壓??p3?=?map(v3,0,1023,500,2500);??????v4?=?analogRead(Sin_4);???//采集變阻器模擬電壓??p4?=?map(v4,0,1023,500,2500);?}
追問 : 為什么舵機 出來不是5V,而是6V
追答 : 因為舵機最好用6V供電,其實5V也可以。
但不建議把Arduino和舵機用一個電源供電,當舵機負載較大時,會拉低電壓導致重啟。
總結
以上是生活随笔為你收集整理的arduino 舵机接线图_求用5个电位器分别控制舵机的arduino的原码和连线图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ansys怎么删除线段_科学网—ansy
- 下一篇: *p++和*(p++)的区别_同是华为顶