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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

為什么加了和尋跡相關的單片機代碼之后,小車的速度變慢了

[復制鏈接]
跳轉到指定樓層
樓主
ID:1008389 發表于 2022-6-5 10:20 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
為什么加了和尋跡相關的代碼之后,小車的速度變慢了?有什么解決的方法嗎?
  1. int GraysensorRPin = 18;
  2. int GraysensorLPin = 14;
  3. int motor_01 = 10;
  4. int motor_02 = 6;
  5. int motor_03 = 5;
  6. int motor_04 = 9;
  7. int start_stop_flag = 0;
  8. int stop_num = 0;
  9. int stop_clear_num = 0;
  10. void right();
  11. void left();
  12. void forwards();
  13. void stop();

  14. void setup() {
  15.   pinMode(GraysensorRPin,INPUT);
  16.   pinMode(GraysensorLPin,INPUT);
  17.   pinMode(motor_01,OUTPUT);
  18.   pinMode(motor_02,OUTPUT);
  19.   pinMode(motor_03,OUTPUT);
  20.   pinMode(motor_04,OUTPUT);
  21. }

  22. void loop() {
  23.   if(!(digitalRead(GraysensorRPin)) &&digitalRead(GraysensorLPin))
  24.   {
  25.     right();
  26.   }
  27.     if(digitalRead(GraysensorRPin) && !(digitalRead(GraysensorLPin)))
  28.   {
  29.     left();
  30.   }
  31.     if( (!digitalRead(GraysensorRPin))&& (!digitalRead(GraysensorLPin)))
  32.   {
  33.     forwards();
  34.   }
  35.     if(digitalRead(GraysensorRPin) &&digitalRead(GraysensorLPin))
  36.   {
  37.     stop();
  38.   }
  39.   if(stop_clear_num == 2)
  40.   {
  41.     start_stop_flag = 1;
  42.   }
  43.   
  44. }
  45. void stop()
  46. {
  47.    if(start_stop_flag)
  48.   {
  49.     analogWrite(motor_03, 0);
  50.     analogWrite(motor_02, 0);
  51.     analogWrite(motor_04, 0);
  52.     analogWrite(motor_01, 0);
  53.     start_stop_flag = 0;
  54.     forwards();
  55.   }else
  56.   {
  57.     stop_num++;
  58.   }
  59. }

  60. void right()
  61. {
  62.   analogWrite(motor_03, 175);
  63.   analogWrite(motor_02, 0);
  64.   analogWrite(motor_04, 0);
  65.   analogWrite(motor_01, 175);
  66. }

  67. void forwards()
  68. {
  69.   analogWrite(motor_03, 175);
  70.   analogWrite(motor_02, 0);
  71.   analogWrite(motor_04, 175);
  72.   analogWrite(motor_01, 0);
  73.    if(stop_num > 10)
  74.   {
  75.     stop_num = 0;
  76.     stop_clear_num++;
  77.   }
  78. }

  79. void left()
  80. {
  81.   analogWrite(motor_03, 0);
  82.   analogWrite(motor_02, 175);
  83.   analogWrite(motor_04, 175);
  84.   analogWrite(motor_01, 0);
  85. }
復制代碼




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

使用道具 舉報

7#
ID:844772 發表于 2022-6-7 09:09 | 只看該作者
新人小白 發表于 2022-6-6 14:44
尋跡是能正常尋跡的,只是加了尋跡的代碼之后,小車變得比之前的慢

僅僅想速度快點,就把analogWrite(motor_02, 175);中的175調大,距離255還有好大的調節空間。由于循跡時用的是差動法,導致動能損失大,必然會降低速度的。如果轉向時,用一邊轉一邊不轉方式,這樣轉向不那么靈敏,但動能損失小點。
回復

使用道具 舉報

6#
ID:1004455 發表于 2022-6-6 20:27 | 只看該作者
調pwm
回復

使用道具 舉報

5#
ID:1032698 發表于 2022-6-6 20:20 | 只看該作者
可以兩個電機正轉,兩個電機反轉,這樣甚至能實現原地轉圈,速度和轉向能力也會提高不少。還有就是可如樓上說的調高電壓,選用5V電壓可能也能解決一部分問題。
回復

使用道具 舉報

地板
ID:1032698 發表于 2022-6-6 20:17 | 只看該作者
看樣子你這是四個電機,在沒加尋跡之前你是四個電機都動,加了尋跡后只有兩個電機工作,其實轉彎時可以讓四個電機都工作的,兩個正轉,兩個反轉。
回復

使用道具 舉報

板凳
ID:1008389 發表于 2022-6-6 14:44 | 只看該作者
尋跡是能正常尋跡的,只是加了尋跡的代碼之后,小車變得比之前的慢
回復

使用道具 舉報

沙發
ID:844772 發表于 2022-6-6 08:51 | 只看該作者
我覺得你程序判斷上有問題,因該沒法循跡。至于循跡時車速慢很正常,你可以加強動力,就是analogwrite那的值大一點唄,它的范圍是255以內。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品免费在线 | 黄色网址大全在线观看 | 成人在线电影在线观看 | 久久艹免费视频 | 一区二区三区国产好 | 日韩三级| 亚洲成人午夜在线 | 欧美一区2区三区4区公司二百 | 韩日在线| 羞羞视频网站免费观看 | 国产成人精品网站 | 午夜免费网站 | 欧美日韩在线一区二区 | 水蜜桃亚洲一二三四在线 | 国精久久 | 色婷婷精品| 免费视频一区二区 | 国产不卡一区 | 黄色在线观看网址 | 国产精品久久国产精品 | 久久中文字幕一区 | 中文字幕在线观看第一页 | 久久久视频在线 | 天天躁人人躁人人躁狂躁 | 国产精品久久久久久久久久久久久 | 99re在线播放 | 日韩a视频 | 国产成人免费视频网站视频社区 | 国产精品 欧美精品 | 国产精品一二三区 | 欧美成人精品二区三区99精品 | 美女天天操 | 久久久久一区二区 | 你懂的国产 | 国产成人高清在线观看 | 日韩精品一区二区三区免费视频 | 成人欧美一区二区三区在线观看 | 日本免费视频在线观看 | 国产一区二区免费电影 | 欧美视频免费在线 | 亚州精品成人 |