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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Arduino紅外傳感器控制機械臂程序 程序有錯誤請大家來討論一下

[復制鏈接]
跳轉到指定樓層
樓主
用紅外避障傳感器控制機械臂抓取物體。
當紅外避障傳感器檢測到物體時,輸入低電平。然后調用函數機械臂抓取物體。
但是程序有錯誤,找了半天也沒找出來。請大家來討論一下。

Arduino源程序如下
  1. #include <Servo.h>                //使用servo庫

  2. const int Aarm = 0;
  3. const int Barm = 1;
  4. const int Carm = 2;
  5. const int Darm = 3;
  6. const int Earm = 4;
  7. const int Farm = 5;

  8. const int maxServos = 6;
  9. Servo servos[maxServos];

  10. int DSD = 15; //Default Servo Delay (默認電機運動延遲時間)
  11.               //此變量用于控制電機運行速度.增大此變量數值將
  12.               //降低電機運行速度從而控制機械臂動作速度。
  13. int val_left=0;
  14. int val_centre=0;
  15. int val_Right=0;

  16. void setup(){
  17.   pinMode(A0,INPUT);
  18.   pinMode(A1,INPUT);
  19.   pinMode(A2,INPUT);

  20.   for(int i=0;i<=5;i++){
  21.     servos[i].attach(i);
  22.     servos[i].write(90);
  23.     delay(10);
  24.   }
  25. }


  26. void loop(){
  27.   val_left = digitalRead(A0);
  28.   val_centre= digitalRead(A0);
  29.   val_Right = digitalRead(A0);

  30.   if (val_left == LOW) {       //例如:b67三個字節
  31.     servos[0].write();   //底盤向左旋轉
  32.     Servo_Stretch();    //舵機抓取物體
  33.     servos[0].write();   //舵機轉回中位
  34.     armIniPos();      //舵機收縮
  35.   }
  36.   else if(val_centre == LOW){
  37.      Servo_Stretch();     //舵機抓取物體
  38.      armIniPos();      //舵機收縮
  39.     }
  40.   else if(val_Right == LOW){
  41.      servos[0].write();   //底盤向左旋轉
  42.      Servo_Stretch();    //舵機抓取物體
  43.      servos[0].write();   //舵機轉回中位
  44.      armIniPos();      //舵機收縮
  45.       }
  46. }

  47. void armIniPos(){     //舵機收縮回起始位置
  48.   int robotIniPos[5][3] = {    //每個舵機角度不同,需要修改
  49.     {Barm, 90, DSD},
  50.     {Carm, 90, DSD},
  51.     {Darm, 90, DSD},
  52.     {Earm, 90, DSD},
  53.     {Farm, 90, DSD}
  54.   };   
  55.    for (int i = 0; i < 5; i++){
  56.     servoCmd(robotIniPos[i][0], robotIniPos[i][1], robotIniPos[i][2]);   //舵機編號,目標角度,延遲.此函數控制舵機的速度

  57.   }
  58. }

  59. void servoCmd(int j,int toPos, int servoDelay){   //舵機編號,目標角度,延遲.此函數控制舵機的速度

  60.   int fromPos;
  61.   fromPos = servos(j).read();
  62.     if (fromPos <= toPos){  //如果“起始角度值”小于“目標角度值”
  63.     for (int i=fromPos; i<=toPos; i++){
  64.       servos(j).write(i);
  65.       delay (servoDelay);
  66.     }
  67.   }  else { //否則“起始角度值”大于“目標角度值”
  68.     for (int i=fromPos; i>=toPos; i--){
  69.       servos(j).write(i);
  70.       delay (servoDelay);
  71.     }
  72.     }
  73.   }

  74. void Servo_Stretch(){
  75.   int diceMove1[5][3] = {
  76.     {Barm, 30, DSD},
  77.     {Carm, 90, DSD},
  78.     {Darm, 43, DSD},
  79.     {Earm, 126, DSD},
  80.     {Farm, 90, DSD}   
  81.   };
  82.   for (int i = 0; i < 5; i++){
  83.     servoCmd(diceMove1[i][0], diceMove1[i][1], diceMove1[i][2]);
  84.     delay(200);
  85.   }   
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:309562 發表于 2018-4-16 20:45 | 只看該作者
C:\Users\Administrator\Desktop
紅框中的分號“;”應該去掉,大括號后不需要“;”
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 伊人在线 | 亚洲网一区 | 在线视频一区二区三区 | 中文字幕亚洲精品 | 国产高清一区二区 | 伊人性伊人情综合网 | 国产精品久久久久一区二区三区 | 欧美日韩国产一区二区 | 日本成人综合 | 国产丝袜一区二区三区免费视频 | 午夜精品久久久久久久99黑人 | 国产日韩精品视频 | 国产精品1区 | 国产成人区| 欧美国产日韩成人 | 午夜视频免费 | 成人在线视频免费播放 | 在线观看国产视频 | 欧美xxxx性| 国产 欧美 日韩 一区 | 国产一区二区三区在线看 | 国产亚洲一区在线 | 黄免费看 | 欧美日韩在线观看视频网站 | 国产成人免费视频 | 欧美精产国品一二三区 | 国产成人精品久久 | 国产亚洲网站 | 久久一本 | 精品国产一级 | 亚洲精品视频三区 | 国产传媒在线观看 | 成人在线观看免费 | 国产午夜精品视频 | 日批日韩在线观看 | 一级片毛片 | 成人在线精品视频 | 国产成人av一区二区三区 | 午夜精品一区二区三区在线观看 | 97国产精品视频人人做人人爱 | 国产精品美女久久久久久久网站 |