Arduino循迹小车教程三----测试小车篇
文章目錄
- 前言
- 一、初始化引腳(放在setup函數里)
- 1.電機引腳初始化
- 2.循跡模塊D0引腳初始化
 
- 三、循跡模塊(放在loop函數)
- 1.讀取循跡模塊的高低電平
- 2.打印循跡模塊的高低電平
 
- 四、控制電機轉速(重點!!!)
- 四、簡單的循跡代碼
- 總結
前言
組裝好小車并且接完線后,就可以開始寫代碼讓小車動起來啦~
 硬件完成了,循跡小車你就完成了一半了,剩下的軟件部分就開始寫代碼,調試代碼了。
一、初始化引腳(放在setup函數里)
1.電機引腳初始化
因為Arduino要輸出控制信號給L298N電機驅動模塊,所以將電機引腳設置為輸出模式
pinMode(3, OUTPUT);pinMode(5, OUTPUT);pinMode(6, OUTPUT);pinMode(9, OUTPUT);2.循跡模塊D0引腳初始化
因為Arduino是要接收循跡模塊的高低電平信號,所以將循跡模塊的引腳設置為輸入模式
pinMode(10, INPUT);pinMode(11, INPUT);pinMode(12, INPUT);pinMode(13, INPUT);三、循跡模塊(放在loop函數)
1.讀取循跡模塊的高低電平
檢測到黑線為高電平(1),白線為低電平(0)
Sensor [0] = digitalRead(10); Sensor [1] = digitalRead(11);Sensor [2] = digitalRead(12);Sensor [3] = digitalRead(13;2.打印循跡模塊的高低電平
在Arduino的右上角有個小按鍵,可以打開串口,電腦連接Arduino就可以看到串口的值了
Serial.print(Sensor [0]);Serial.print("---");Serial.print(Sensor [1]);Serial.print("---");Serial.print(Sensor [2]);Serial.print("---");Serial.println(Sensor [3]);四、控制電機轉速(重點!!!)
analogWrite()函數 用來控制電機的速度,不過要注意不同的車型,代碼執行效果不同!所以換一輛車,代碼就要重新調,最重要的是積累經驗!
analogWrite(3, 100);analogWrite(5, 0);analogWrite(6, 100);analogWrite(9, 0);上面這個代碼是讓小車直走的,燒錄進去后,發現小車轉動的方向不對,把電機驅動模塊和Arduino的線反過來就可以啦。比如說:左輪向后走,那么就把Arduino上的引腳3和引腳5的線換一下就可以往前走了。
四、簡單的循跡代碼
最簡單的就是用 if 語句來判斷,如果第2個循跡模塊檢測到黑線,要讓小車左轉,把它擺正回來。if 語句如下,代碼的具體數值要根據地圖的實際情況來調,所以就算你copy別人的代碼,也沒用!最重要的是積累經驗!
if (Sensor [0] == 0 && Sensor [1] == 1 && Sensor [2] == 0 && Sensor [3] == 0)analogWrite(3, 50);analogWrite(5, 0);analogWrite(6, 100); //右輪速度比左輪快,小車就會左轉analogWrite(9, 0);如果是第3個循跡模塊檢測到黑線,要讓小車右轉。if 語句如下
if (Sensor [0] == 0 && Sensor [1] == 0 && Sensor [2] == 1 && Sensor [3] == 0)analogWrite(3, 100); //左輪速度比右輪快,小車就會右轉analogWrite(5, 0);analogWrite(6, 50);analogWrite(9, 0);還有其他的循跡情況,你們可以自己探索或者看我下一篇的代碼詳解。(調試電機的速度,特別考驗抗壓能力,這個過程會很痛苦~~>_<~~,不過堅持調個一周多也差不多了)
總結
總結
以上是生活随笔為你收集整理的Arduino循迹小车教程三----测试小车篇的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 《华为数字化转型之道》-名不副实所以更值
- 下一篇: python+selenium 处理al
