wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

arduino+L298N直流電機調速程序(注釋很詳細)

  [復制鏈接]
跳轉到指定樓層
樓主
ID:489436 發表于 2019-3-12 19:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. //定義變量程序段
  2. //把小車左輪電機編碼器碼盤的OUTA信號連接到Arduino控制器的數字端口2,
  3. //數字端口2是Arduino的外部中斷0的端口。
  4. #define PinA_left 2 //外部中斷0
  5. #define PinB_left 8 //小車左車輪電機編碼器碼盤的OUTB信號連接到數字端口8
  6. //把小車右車輪電機編碼器碼盤的OUTA信號連接到Arduino控制器的數字端口3,
  7. //數字端口3是Arduino的外部中斷1的端口。
  8. #define PinA_right 3 //外部中斷1
  9. #define PinB_right 9 //小車右車輪電機編碼器碼盤的OUTB信號連接到數字端口9
  10. int E_left =5; //L298P直流電機驅動板的左輪電機使能端口連接到數字接口5
  11. int M_left =4; //L298P直流電機驅動板的左輪電機轉向端口連接到數字接口4
  12. int E_right =6; //連接小車右輪電機的使能端口到數字接口6
  13. int M_right =7; //連接小車右輪電機的轉向端口到數字接口7
  14. int val_right; //小車右輪電機的PWM功率值
  15. int val_start;//上位機控制字節,用于控制電機是否啟動;
  16. int val_FB;   //上位機控制字節,用于控制電機是正轉還是反轉;
  17. int val_left;//上位機控制字節,用于提供給左輪電機PWM功率值。
  18. int count1 = 0;  //左輪編碼器碼盤脈沖計數值
  19. int count2= 0; //右輪編碼器碼盤脈沖計數值
  20. int rpm1 = 0;  //左輪電機每分鐘(min)轉速(r/min)
  21. int rpm2 = 0;  //右輪電機每分鐘(min)轉速(r/min)
  22. int rpm1_HIGH = 0;//左輪電機轉速分解成高、低兩個字節數據,以方便上傳給PC機
  23. int rpm1_LOW = 0;
  24. int rpm2_HIGH = 0;//右輪電機轉速分解成高、低兩個字節數據
  25. int rpm2_LOW = 0;
  26. int flag;//設置小車行車狀態,是前進、后退還是停止
  27. unsigned long time = 0, old_time = 0; // 時間標記
  28. unsigned long time1 = 0, time2 = 0; // 時間標記


  29. //初始化程序段
  30. void setup()
  31. {
  32.   Serial.begin(9600);    // 啟動串口通信,波特率為9600b/s
  33.   pinMode(M_left, OUTPUT);   //L298P直流電機驅動板的控制端口設置為輸出模式
  34.   pinMode(E_left, OUTPUT);
  35.   pinMode(M_right, OUTPUT);
  36.   pinMode(E_right, OUTPUT);
  37.   pinMode(PinA_left,INPUT); //伺服電機編碼器的OUTA和OUTB信號端設置為輸入模式
  38.   pinMode(PinB_left,INPUT);
  39.   pinMode(PinA_right,INPUT);
  40.   pinMode(PinB_right,INPUT);
  41.   //定義外部中斷0和1的中斷子程序Code(),中斷觸發為下跳沿觸發
  42.   //當編碼器碼盤的OUTA脈沖信號發生下跳沿中斷時,
  43.   //將自動調用執行中斷子程序Code()。
  44.   attachInterrupt(0, Code1, FALLING);//小車左車輪電機的編碼器脈沖中斷函數
  45.   attachInterrupt(1, Code2, FALLING);//小車右車輪電機的編碼器脈沖中斷函數
  46. }


  47. //子程序程序段
  48. void advance()//小車前進
  49. {
  50.      digitalWrite(M_left,HIGH);
  51.      analogWrite(E_left,val_left);
  52.      digitalWrite(M_right,LOW);
  53.      analogWrite(E_right,val_right);
  54. }
  55. void back()//小車后退
  56. {
  57.      digitalWrite(M_left,LOW);
  58.      analogWrite(E_left,val_left);
  59.      digitalWrite(M_right,HIGH);
  60.      analogWrite(E_right,val_right);
  61. }
  62. void Stop()//小車停止
  63. {
  64.      digitalWrite(E_right, LOW);
  65.      digitalWrite(E_left, LOW);
  66. }
  67.   
  68. //主程序段
  69. void loop()
  70. {
  71.   if (Serial.available()>0) //如果Arduino控制器讀緩沖區中存在上位機下達的字節
  72.   {
  73.       val_start= Serial.read(); //從讀緩沖區中讀取上位機的三個控制字節
  74.       delay(5);
  75.       val_FB = Serial.read();
  76.       delay(5);  
  77.       val_left= Serial.read();
  78.       delay(5);      
  79.      if(val_start==0x11)     //如果讀出的第一個字節為小車啟動標志字節0x11
  80.      {
  81.        if(val_FB ==0xAA)   //如果讀出的第二個字節為小車前進標志字節0xAA
  82.        {
  83.          //讀出的第三個字節為小車左車輪電機的PWM功率值,把它賦值給右車輪電機功率變量
  84.          val_right=val_left;
  85.          advance(); //小車前進
  86.          flag='a';   //設置小車前進標志字符     
  87.          count1 = 0; //恢復到編碼器測速的初始狀態
  88.          count2 = 0;
  89.          old_time=  millis();   
  90.        }
  91.        else if(val_FB ==0xBB) //如果讀出的第二個字節為小車后退標志字節0xBB   
  92.        {
  93.          val_right=val_left;
  94.          back();  //小車后退
  95.          flag='b'; //設置小車后退標志字符      
  96.          count1 = 0; //恢復到編碼器測速的初始狀態
  97.          count2 = 0;
  98.          old_time=  millis();        
  99.        }
  100.      }
  101.       else if(val_start==0x22) //如果讀出的第一個字節為小車停止標志字節0x22
  102.       {
  103.          Stop(); //小車停止
  104.          flag='s'; //設置小車停止標志字符         
  105.       }
  106.   }


  107.   
  108.   time = millis();//以毫秒為單位,計算當前時間
  109.   //計算出每一秒鐘編碼器碼盤計得的脈沖數,
  110.   if(abs(time - old_time) >= 1000) // 如果計時時間已達1秒
  111.   {
  112.     detachInterrupt(0); // 關閉外部中斷0
  113.     detachInterrupt(1); // 關閉外部中斷1   
  114.      //把每一秒鐘編碼器碼盤計得的脈沖數,換算為當前轉速值
  115.      //轉速單位是每分鐘多少轉,即r/min。這個編碼器碼盤為12個齒。
  116.     rpm1 =(float)count1*60/12;//小車左車輪電機轉速
  117.     rpm2 =(float)count2*60/12; //小車右車輪電機轉速
  118.     rpm1_HIGH=rpm1/256;//把轉速值分解為高字節和低字節
  119.     rpm1_LOW=rpm1%256;
  120.     rpm2_HIGH=rpm2/256;
  121.     rpm2_LOW=rpm2%256;
  122.    //根據左右車輪轉速差rpm1-rpm2,乘以比例因子0.4,獲得比例調節后的右車輪電機PWM功率值
  123.     val_right=(float)val_right+(rpm1-rpm2)*0.4;
  124.     Serial.print(rpm1_HIGH,BYTE);//向上位計算機上傳左車輪電機當前轉速的高、低字節
  125.     Serial.print(rpm1_LOW,BYTE);
  126.     Serial.print(rpm2_HIGH,BYTE);//向上位計算機上傳右車輪電機當前轉速的高、低字節
  127.     Serial.print(rpm2_LOW,BYTE);
  128.     Serial.print(val_right,BYTE);// 向上位計算機上傳PID調節后的右輪電機PWM功率值   
  129.     if(flag=='a') //根據剛剛調節后的小車電機PWM功率值,及時修正小車前進或者后退狀態
  130.     advance();
  131.     if(flag=='b')
  132.     back();   
  133.    //恢復到編碼器測速的初始狀態
  134.     count1 = 0;   //把脈沖計數值清零,以便計算下一秒的脈沖計數
  135.     count2 = 0;
  136.     old_time=  millis();     // 記錄每秒測速時的時間節點   
  137.     attachInterrupt(0, Code1,FALLING); // 重新開放外部中斷0
  138.     attachInterrupt(1, Code2,FALLING); // 重新開放外部中斷1
  139.   }
  140. }


  141. // 左側車輪電機的編碼器碼盤計數中斷子程序
  142. void Code1()//算編碼器脈沖


  143. {  
  144.   //為了不計入噪音干擾脈沖,
  145.    //當2次中斷之間的時間大于5ms時,計一次有效計數
  146.   if((millis()-time1)>5)
  147.   //當編碼器碼盤的OUTA脈沖信號下跳沿每中斷一次,
  148.   count1 += 1; // 編碼器碼盤計數加一  
  149.   time1==millis();
  150. }
  151. // 右側車輪電機的編碼器碼盤計數中斷子程序
  152. void Code2()
  153. {  
  154.   if((millis()-time2)>5)
  155.   //當編碼器碼盤的OUTA脈沖信號下跳沿每中斷一次,
  156.   count2 += 1; // 編碼器碼盤計數加一
  157.   time2==millis();  
  158. }

復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏9 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2019-3-13 02:48 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

板凳
ID:98249 發表于 2019-3-22 13:23 | 只看該作者
有用,正要做相關的應用,參考參考.感謝樓主
回復

使用道具 舉報

地板
ID:688391 發表于 2021-2-6 20:45 | 只看該作者
非常有用
回復

使用道具 舉報

5#
ID:932910 發表于 2021-11-12 22:06 | 只看該作者
    Serial.write(rpm1_HIGH);
    Serial.write(rpm1_LOW);
    Serial.write(rpm2_HIGH);
    Serial.write(rpm2_LOW);
    Serial.write(val_right);
1.0版本后沒有BYTE這個關鍵字     130行到134行用這段替換可通過編譯
回復

使用道具 舉報

6#
ID:985357 發表于 2021-11-27 18:43 | 只看該作者
謝謝大佬指點
回復

使用道具 舉報

7#
ID:1055770 發表于 2022-12-5 14:12 | 只看該作者
這不是L298P的代碼嗎?請問有無L298N的代碼
回復

使用道具 舉報

8#
ID:138707 發表于 2023-7-29 17:51 | 只看該作者
謝謝大佬指點
回復

使用道具 舉報

9#
ID:71977 發表于 2025-9-2 15:50 | 只看該作者
感謝樓主分享 好東西 ,L298N 控制電機,比較常見
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
特级西西444www高清大视频| 天堂а√在线8种子蜜桃视频 | 国产精品呻吟久久| 污污免费在线观看| 亚洲精品一区二区三区四区五区| 性欧美长视频免费观看不卡| 欧美专区亚洲专区| 91丨九色丨黑人外教| 婷婷久久综合| 亚洲综合资源| 国产区在线观看| 成人18网站| 四虎在线看片| 波多野结衣视频免费观看| 亚洲综合自拍网| 日韩在线综合网| 国产自产精品| 777777777亚洲妇女| 亚洲精品videossex少妇| 亚洲第一主播视频| 五月天国产在线| 国产精品影视| 精品一区二区三区在线观看l| 中日韩av在线| 青娱乐av在线| 插我舔内射18免费视频| 久久久久免费精品| 男人天堂成人网| 精品一区二区三区自拍图片区| 欧美亚洲第一页| 色av吧综合网| 精品欧美久久久| 色婷婷综合久久久中文字幕| 亚洲图片激情小说| 成人aaaa免费全部观看| 日韩不卡一二三区| 国产精品第十页| 精品久久久久久久| 黑色丝袜福利片av久久| 欧美成人黄色| 欧美人体一区二区三区| av毛片在线看| www.亚洲.com| 丝袜视频国产在线播放| 国产美女被遭强高潮免费网站| 天堂网www在线网| 精品全国在线一区二区| 香蕉视频免费在线看| 在线中文字幕网站| 欧美一级片免费在线观看| 亚洲怡红院在线观看| 日本激情小视频| 国产二级一片内射视频播放| 苍井空张开腿实干12次| 日本三级黄色网址| 亚洲三级视频网站| av无码精品一区二区三区| 91.com在线| 久久这里只有精品18| 自拍另类欧美| 好吊色这里只有精品| 色中文字幕在线观看| 亚洲不卡中文字幕| 日韩欧美国产二区| 神马影院一区二区| 日韩电影免费观看高清完整| 久久综合九色综合网站| 久久日韩精品| 日本一区二区免费看| 日本午夜精品一区二区三区| 日韩精品一线二线三线| 91久久久免费一区二区| 五月婷婷久久丁香| 日韩欧美在线第一页| 欧美性猛交xxx| 欧美中文字幕亚洲一区二区va在线| 在线观看视频91| 欧美精品一卡二卡| 欧美一区二区黄色| 亚洲加勒比久久88色综合| 日韩精品免费视频| 在线电影av不卡网址| 久久久精品亚洲| 久久国产精品电影| 性色av一区二区咪爱| 日本视频久久久| 91亚洲精品久久久| 免费观看成人在线| 亚洲综合欧美日韩| 国产精品又粗又长| 三上悠亚在线一区二区| fc2成人免费视频| 中国1级黄色片| 久久久精品免费看| 国产日韩欧美中文字幕| 男人看的污网站| 午夜一级毛片| 制服黑丝国产在线| 天天在线视频色| 96av在线| 9l视频自拍九色9l视频成人| 欧美激情成人| 日韩精品欧美精品| 91色porny蝌蚪| 亚洲午夜视频在线| 日韩一区二区精品葵司在线| 国产亚洲欧美aaaa| 欧美激情精品在线| 91超碰在线电影| 亚洲高清资源综合久久精品| 亚洲不卡中文字幕无码| 久久人人爽人人片| 国产精品一区二区亚洲| 国产精品第5页| 天天干天天插天天操| 91视频网址免费观看| 日本一二区视频| 爆操欧美美女| 成人激情久久| 欧美成免费一区二区视频| 日韩国产在线一| 久久免费美女视频| 色综合久久88色综合天天| 亚洲高清色综合| 一区二区中文字幕在线| 亚洲一区av在线| 精品国产伦一区二区三区免费| 美女久久久久久久| 国产日产精品一区二区三区四区| 91网站在线观看免费| 91精品人妻一区二区三区蜜桃2| 国产精品久久久久久久精| 国产免费一区二区三区最新不卡| 在线播放黄色网址| xxxxx日韩| 久久99精品国产自在现线| 在线综合欧美| 中文字幕不卡在线播放| 7777精品伊人久久久大香线蕉经典版下载| 精品国产欧美一区二区五十路 | 欧美狂野另类xxxxoooo| xxav国产精品美女主播| 97夜夜澡人人双人人人喊| 日本大片免费看| xxxx日本黄色| 亚洲爱情岛论坛永久| 羞羞视频立即看| 超碰97国产精品人人cao| 国产欧美久久一区二区三区| 国产久卡久卡久卡久卡视频精品| 欧美丝袜一区二区三区| xx视频.9999.com| 日本一区二区三区四区高清视频| 一本之道在线视频| 伊人久久国产精品| 羞羞小视频视频| 欧美国产大片| 免费日韩一区二区| 一区二区三区精密机械公司| 亚洲男人天堂久| 成人欧美视频在线| 色18美女社区| 日本中文字幕在线观看视频| sesexxxx| 老司机2019福利精品视频导航| 欧美激情91| 亚洲视频中文字幕| 日韩中文字幕国产| 欧美一区亚洲二区| 国产男女猛烈无遮挡a片漫画| 国产成人久久精品77777综合 | 一区二区三区免费视频网站 | 久久久一二三| 婷婷丁香久久五月婷婷| 久久久av免费| 亚洲区成人777777精品| 黄色激情小视频| 中文资源在线官网| 三级视频在线观看| 2020天天操| 亚洲图片小说区| 国精产品一区一区三区mba视频| 色狠狠av一区二区三区| 欧洲日本亚洲国产区| 国产精品视频一区二区三区四区五区 | 久久五月天小说| 欧美激情一区二区三区在线| 国产一区二区三区免费视频| 亚洲春色在线视频| 亚洲女人久久久| 免费日本黄色| 欧美男男gaygay1069| 国产真实乱偷精品视频免| 日韩精品一区二区三区在线| 久久国产精品亚洲va麻豆| 蜜桃av免费看| 色啪免费观看视频| **日韩最新| 91在线云播放| 中文国产亚洲喷潮| 国产一区二区片| 一级片在线观看免费| 在线观看国产麻豆| 四季av一区二区凹凸精品| 亚洲狼人国产精品| 日韩av观看网址| 能看毛片的网站| 中文字幕色视频| 依依综合在线| 成人晚上爱看视频| 精品国产欧美一区二区三区成人| www.夜夜爱| 国产又粗又长视频| 国产91在线视频蝌蚪| 久久久蜜桃一区二区人| 日韩欧美在线观看一区二区三区| 国产在线精品一区| 三级黄色在线观看| 国产美女玉足交| 图片区亚洲欧美小说区| 在线中文字幕一区二区| 久草精品电影| 国产一级aa大片毛片| 免费观看羞羞视频网站| 久久久综合色| 欧美日韩亚洲高清一区二区| 久久国产精品免费一区| 日韩一区二区视频在线| 玖玖综合伊人| 日韩有码一区二区三区| 亚洲日韩中文字幕| 十八禁视频网站在线观看| 五月天婷婷激情网| 欧美大陆国产| 日韩毛片精品高清免费| 91精品视频免费| 成人在线观看小视频| 在线成人动漫| 免费看黄裸体一级大秀欧美| 亚洲人成电影网| 国产日韩一区二区在线| 亚洲精品国自产拍在线观看| 国产精品视频首页| 亚洲一区二区三区视频在线播放| 亚洲444eee在线观看| 国产专区一区二区三区| 欧美brazzers| heyzo在线欧美播放| 91亚洲精品久久久蜜桃网站| 国产aaa精品| 99久久99久久精品免费| 美女网站在线观看| 一本久道综合久久精品| 精品成人佐山爱一区二区| 成熟丰满熟妇高潮xxxxx视频| 男女啪啪无遮挡网站| 伊人久久噜噜噜躁狠狠躁| 午夜精品久久一牛影视| 深田咏美在线x99av| 亚洲产国偷v产偷v自拍涩爱| 香蕉久久一区| 午夜国产精品一区| 亚洲精品高清视频| 污视频网站在线播放| 国产亚洲字幕| 黑人精品xxx一区一二区| 色吧亚洲视频| 高清国产mv在线观看| 3d动漫一区二区三区在线观看| 午夜视频一区二区| 99re99热| 亚洲精品国自产拍在线观看| 欧美理论视频| 亚洲精品国产福利| 久草免费资源站| 在线免费视频你懂得| 久久精品国产网站| 68精品久久久久久欧美| 五月天婷婷色综合| 波多野结衣久久| 亚洲人成网站在线| 伊人婷婷久久| 欧美性xxxx巨大黑人猛| 99成人在线视频| 一区二区三区国产在线观看| v天堂中文在线| 免费在线一级视频| 久久婷婷久久一区二区三区| 国产精品视频在线免费观看| av高清一区二区| 牛牛视频精品一区二区不卡| 欧美一区二区在线观看| 手机在线看福利| 国精产品999国精产品官网| 久久国产麻豆精品| 国产美女搞久久| 最新国产中文字幕| 日韩中文字幕无砖| 精品国产91洋老外米糕| 亚洲久久久久久| 国产精品麻豆一区二区三区| 国产视频一区二区在线观看| 欧洲av一区| 国产一卡2卡3卡四卡网站| 亚洲日本免费| 国产成人精品网站| 91精品视频免费在线观看| 美国十次av导航亚洲入口| 日韩电影网在线| 成人免费视频入口| 日韩伦理精品| 欧美乱熟臀69xxxxxx| 免费看三级黄色片| 亚洲乱亚洲乱妇| 亚洲成a人v欧美综合天堂| 日韩在线观看免费| 香蕉视频一区二区| 永久免费精品视频| 亚洲欧美精品一区二区| 亚洲女人毛茸茸高潮| 欧美电影h版| 亚洲第一国产精品| 国产黄a三级三级| 在线成人视屏| 亚洲第一精品夜夜躁人人爽| 三年中国中文观看免费播放| 黑森林国产精品av| 在线91免费看| 97伦伦午夜电影理伦片| 三级在线观看视频| 欧美一区二区精品在线| 欧美日韩中文字幕视频| 欧美日韩在线精品一区二区三区激情综合 | 国产精品国产三级国产普通话对白| 欧美美女在线直播| 久久激情视频久久| 亚洲不卡在线视频| 欧美美女啪啪| 久久久久亚洲精品成人网小说| 中文字幕免费高清在线观看| 日本在线电影一区二区三区| 2024亚洲男人天堂| 少妇高潮一区二区三区69| 狠狠综合久久| 91精品国产99久久久久久红楼 | 视频在线一区| 日韩中文字幕在线观看| 精产国品一区二区| 久久亚洲精品中文字幕蜜潮电影| 日本高清视频精品| xxxx69hd| 激情小说亚洲一区| av电影一区二区三区| 992tv成人国产福利在线| 亚洲日本欧美天堂| 亚洲第一成肉网| 波多一区二区| 亚洲精选中文字幕| www.com亚洲| 欧美成人一品| 国外成人免费视频| jizzjizzjizz亚洲女| 亚洲人成在线播放网站岛国| 亚洲精品在线网址| 伊人久久综合一区二区| 在线观看国产精品日韩av| 中文字幕+乱码+中文| 激情六月综合| 久久国产精品 国产精品| 成人三级av| 亚洲主播在线观看| 日本黄色网址大全| av一级亚洲| 国产成人综合亚洲| 国产成人羞羞电影网站在线观看| 91看片淫黄大片一级在线观看| 亚洲精品高清无码视频| 欧美xxxhd| 久久精品欧美视频| 亚洲人高潮女人毛茸茸| 国产欧美欧美| 日韩激情综合| 欧美久久精品午夜青青大伊人| www.日本在线观看| 日本v片在线高清不卡在线观看| 一区二区三区偷拍| 国产区在线视频| 日韩欧美国产一区二区三区| 高清乱码免费看污| 婷婷在线视频| 亚洲精品v天堂中文字幕| 色老头在线视频| 欧美亚洲三区| 成人高清dvd| 99热国产在线| 亚洲一级一级97网| 男人天堂av网| 久久久国产精品午夜一区ai换脸| 杨幂一区二区国产精品| 日韩视频一区二区三区四区|