久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4574|回復: 1
打印 上一主題 下一主題
收起左側

arduino驅動舵機,不調用庫函數

[復制鏈接]
跳轉到指定樓層
樓主
ID:113472 發表于 2016-4-11 16:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1.     int sp1=10;//定義舵機接口數字接口7
  2.     int pulsewidth;//定義脈寬變量
  3.     int val;
  4.     int val1;
  5.     int myangle1;
  6.     //下面是servopulse函數部分(此函數意思:也就是說每次都是0.5ms高電平 1.98ms低電平 然後再0.52ms低電平 17ms延時也是低電平)
  7.      
  8.     void servopulse(int sp1,int val1)//定義一個脈沖函數
  9.     {
  10.       myangle1=map(val1,0,180,500,2480);
  11.       digitalWrite(sp1,HIGH);//將舵機接口電平至高
  12.       delayMicroseconds(myangle1);//延時脈寬值的微秒數
  13.       digitalWrite(sp1,LOW);//將舵機接口電平至低
  14.       delay(20-val1/1000);
  15.     }
  16.     //servopulse函數部分到此結束
  17.     void setup()
  18.     {
  19.       pinMode(sp1,OUTPUT);//設定舵機接口為輸出接口
  20.       //設置兩組串口波特率
  21.       Serial.begin(9600);
  22.       delay(500);
  23.       Serial.println("servu=o_seral_simple ready" ) ;
  24.     }
  25.      
  26.     void loop()//將0到9的數轉化為0到180角度,并讓LED閃爍相應數的次數
  27.     {
  28.       val=Serial.read();//讀取串行端口的值
  29.      
  30.       if(val>'0'&&val<='9')
  31.       {
  32.         val1=val-'0';//將特征量轉化為數值變量
  33.         val1=map(val1,0,9,0,180);//將角度轉化為500-2480的脈寬值
  34.         Serial.print("moving servo to ");
  35.         Serial.print(val1,DEC);
  36.         Serial.println();
  37.         for(int i=0;i<=50;i++)//給予舵機足夠的時間讓它轉到指定角度
  38.         {
  39.           servopulse(sp1,val1);//引用脈沖函數
  40.         }
  41.       }
  42.      
  43.     }
復制代碼
Togke兄加油,我覺得你非常非常厲害的啊。
這個就是一個簡單的arduino不調用庫函數驅動舵機的程序,輸入0-9不同數字,舵機轉動到相應的角度并返回pwm值。
Ansifa寫的PWM介紹的帖子非常不錯哦。

現在開始接觸新的控制方法了,希望一切順利能在兩個月內做出個簡易的版本再慢慢升級更新吧 。用arm做了個舵機控制器后覺得其實PWM控制真的不是很喜歡,雖然用arm寫確實比較麻煩。。熬了一周才寫出來,完善通信又是一周時間。這次的485通信,基于cortex-m3和stm8的舵機控制器相對PWM的小土坡來說估計算是堵墻了,翻過去有一片不同的天了。希望能學到更多東西。大家一起加油吧。

等著這個月收雕刻機了 嘻嘻
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:684256 發表于 2020-4-13 12:45 | 只看該作者
您好,剛開始學習Arduino.希望獲得指教。
程序1中
val=Serial.read();//讀取串行端口的值
if(val>’0’&&val<='9')
{
val=val-'0';//將特征量轉化為數值變量

是因為串口一次只能讀取一位,所以需要將數字 0~9與角度相對應。

那么能否通過程序編寫,串口直接輸入三位的角度數值,使得舵機轉動相應的角度?

即串口的數據輸入,能否是多位的?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区亚洲二区 | 91精品国产91久久综合桃花 | 欧美精品成人一区二区三区四区 | 丁香久久 | 国产成年人小视频 | 观看av| 草草影院ccyy | 九九精品在线 | 国产精品久久在线观看 | 99热播精品 | 国产精品美女久久久久aⅴ国产馆 | 中文字幕第一页在线 | 国产精品资源在线观看 | 欧美午夜精品理论片a级按摩 | 自拍偷拍亚洲视频 | 成人中文字幕在线 | 午夜精品一区二区三区在线视 | 老司机免费视频 | 日韩毛片 | 午夜小电影 | 亚洲国产一区二区三区 | 午夜精品影院 | 日本一区精品 | 亚洲视频一区二区三区四区 | 日本三级全黄三级三级三级口周 | 综合色导航 | 免费观看日韩av | 97精品超碰一区二区三区 | 99热国产在线播放 | 日韩精品在线免费观看 | 91文字幕巨乱亚洲香蕉 | 精品在线观看入口 | 精品欧美一区二区精品久久 | 亚洲精品一区二区三区 | 免费视频一区二区三区在线观看 | 久久这里只有精品首页 | 日韩视频在线免费观看 | 国产高清在线精品一区二区三区 | 免费精品在线视频 | 91精品国产综合久久精品 | 男人视频网站 |