树莓派外设开发——舵机控制
生活随笔
收集整理的這篇文章主要介紹了
树莓派外设开发——舵机控制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.綜述
普通舵機的角度控制需要用到PWM實現,這里用到Linux定時器產生PWM波形,關于Linux定時器,這篇文章有一個簡單的介紹
Linux定時器
舵機控制原理大致如下:
2.代碼
#include <stdio.h> #include <time.h> #include <sys/time.h> #include <stdlib.h> #include <signal.h> #include <wiringPi.h> #define sg90 7int angle = 0; void signal_handler() {static int i;if(i<=angle){digitalWrite(sg90,HIGH);}else{digitalWrite(sg90,LOW);}//當計滿40個0.5ms ,即20ms為一個周期if(i == 40){i = 0;}i++;}void sg90_init() {wiringPiSetup();pinMode(sg90,OUTPUT);}int main(int argc, char const *argv[]) {sg90_init();angle = 1;struct itimerval itv;//設值定時時間itv.it_interval.tv_sec = 0;itv.it_interval.tv_usec = 500; //0.5ms//設置定時開始前,啟動定時器的時間itv.it_value.tv_sec = 1;itv.it_value.tv_usec = 0;//設定定時方式setitimer(ITIMER_REAL,&itv,NULL);//信號處理signal(SIGALRM,signal_handler);while(1){printf("輸入角度:1-0°,2-45°,3-90°,4-135°,5-180°\n");scanf("%d",&angle);}return 0; }總結
以上是生活随笔為你收集整理的树莓派外设开发——舵机控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [渝粤教育] 西南科技大学 电气控制与P
- 下一篇: EasyExcel 自定义标题样式