日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

树莓派外设开发——舵机控制

發布時間:2024/1/1 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树莓派外设开发——舵机控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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; }

總結

以上是生活随笔為你收集整理的树莓派外设开发——舵机控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。