步驟1:了解Arduino IDE
安裝Arduino之后,請打開它并參考上面的照片,因為我向您展示了IDE(集成開發環境)的幾個關鍵部分。
1。標有1的圓圈環繞著上傳按鈕。將Arduino插入計算機后,單擊此按鈕將代碼上傳到Arduino。
2。 void setup是您的代碼部分,將僅運行一次。當Arduino通電或重新啟動時,它將運行您在void設置部分放置的所有代碼
3。 void循環是您的代碼部分,將一遍又一遍。運行void設置后,您將在void循環中運行所有代碼。所不同的是,您在void循環中的所有代碼都運行完后,Arduino將返回到您的void循環部分的開頭,然后再次運行它。這一次又一次地重復,因此稱為循環。
4。串行監視器按鈕。此按鈕打開串行監視器。串行監視器允許您向Arduino發送命令并從Arduino接收消息。有關以后如何執行操作的更多信息
5。這是Arduino控制臺。如果Arduino在上傳到開發板上或編譯代碼時遇到問題,將在此處打印錯誤消息。
6。在頂部的“工具”菜單中,可以選擇一個“板”選項。使用它來選擇正確的電路板類型。通常,Arduino開發板的類型寫在設備上的某個地方。
7。這是選擇哪個com端口將Arduino連接到計算機的選項。如果您無法解決問題。拔下Arduino,查看列表,重新插入Arduino。新的com端口是用于Arduino的端口。
步驟2:基本串行通信簡介
請打開您從GitHub下載的“ BasicSerial”示例https://github.com/kyesh/ArduinoTutorial
這是我將要解釋的代碼。與此空白代碼編輯器和空代碼編輯器僅有幾處區別。
以雙斜杠“//”開頭的行是注釋。編譯/運行代碼時,Arduino將忽略它們。這使程序員可以提供有關其程序如何工作的信息,以幫助自己或其他程序員弄清楚代碼的工作原理。
下一步,我想請您閱讀Arduino頁面上的以下鏈接。如果您不熟悉編程,請不要對他們毫無用處。我將用更簡單的術語重新解釋它們。隨著編程技巧的發展,您將需要習慣于閱讀和理解文檔。
http://www.arduino.cc/en/reference/serial
http://www.arduino.cc/en/Serial/Begin
http://www.arduino.cc/en/Serial/Println
1。 Serial.println()稱為函數。編程中的大多數事情都涉及使用函數。在本教程的后面,您將學習如何編寫自己的函數! Serial.println()是將在Arduino的串行線上打印的函數。連接到計算機后,您可以通過單擊串行監視器查看打印的內容。
2。 “我打印一次”是Serial.println()函數的參數。參數是您對該函數的輸入,在這種情況下,該參數告訴函數要打印的內容。嘗試將其更改為“ I love hotdogs”之類的名稱,然后再次運行代碼。確保用引號(“”)括住您的單詞。
3。如果您查看串行監視器上顯示的第一行,它會顯示“我打印一次”。我有時您會在打印第一行之前得到一個或兩個有趣的角色。不用擔心這個。另請注意,此操作僅打印一次,因為它發生在代碼的空白設置部分。注意:要查看第一行,您必須取消選中標有“自動滾動”的框,然后滾動回到頂部(或者眼睛很快)。
4。請注意,“我一次又一次地打印”如何繼續一遍又一遍地打印。這是因為它在代碼的空循環部分中。該代碼將一遍又一遍,直到宇宙的盡頭!或者直到您斷開/重新編程Arduino。
5。此框可讓您通過串行將命令發送到Arduino。例如,如果您有一個機器人發送直線驅動命令,請右轉,然后左轉。我們不會對此進行處理,但是您將來可以探索這很酷的東西。
步驟3:接線LED
現在讓我們控制一些電力!為了展示我們強大的功能,我們將使LED(指示燈)閃爍。
讓我們通過打開LED來簡單地開始。
要做這將需要1個LED,1 220歐姆電阻,1個面包板和一些電線。
1。 LED是發光二極管。二極管是一種設備,電流只能以一種方式通過它們。 LED的短邊是負極。您將把它插入面包板的負極。
2。我們將使用Arduino作為LED的電源。這意味著您需要將其插入計算機才能正常工作。每個Arduino的布置都不同,但引腳應標明。我已經在板上標出了5伏和GND(0伏)的位置。
2-1。 5V,這是Arduino上的5伏電源。這需要連接到面包板上的正極導軌。
2-2。 GND就是做完工作(也稱為0伏)后電力返回的地方。這需要連接到面包板的負極。
3。這是一塊面包板。
3-1。這對于電路的布線和原型制作非常有幫助。負軌-這是一個帶有減號的軌道,旁邊是藍色條紋。通常用作接地導軌。連接到導軌上一個點的所有內容都連接到導軌上的每個點。如圖所示,面包板上有兩個負極。一個在板子的左側,一個在板子的右側。
3-2。正極導軌-這是帶有加號并在其旁邊帶有紅色條紋的導軌。這通常用作正電壓軌,在我們的情況下為5伏。連接到導軌上一個點的所有內容都連接到導軌上的每個點。如圖所示,面包板上有兩個陽軌。一個在板子的左側,一個在板子的右側。
3-3,行,就像微型導軌。它們全線連接。例如,第1行將1a到1e連接在一起。板上的大間隙表示1f到1j連接在一起,但沒有連接到1a到1e。
將所有這些布線在一起
1)將5V連接到面包板的正極導軌
2)將GND連接到面包板的負極軌上
3)將LED的短端連接到面包板的負極軌上
4)將LED的長端連接到1a
5)將電阻從1c連接到正極軌上
6)欣賞LED的細微發光(如果嘗試翻轉時LED不發光)
現在,讓它閃爍,將電阻從正電源軌移至負電源軌,然后每秒移回正電源軌。我敢肯定,當您很快意識到這非常繁瑣時,您寧愿不必手動移動電阻器。好吧,您真幸運!下一步,我們將向您展示如何讓Arduino為您完成所有這些辛苦工作!
步驟4:使Arduino閃爍
下一步,我們將讓Arduino為我們閃爍。
首先,您必須將電阻從導軌上移開并將其連接到Arduino的13針上。
通常,我強烈建議您先嘗試閱讀和理解所使用功能的文檔,然后再進行簡化說明。
http://www.arduino.cc/en/Reference/PinMode
http://www.arduino.cc/en/Reference/DigitalWrite
HTTP://www.arduino.cc/en/Reference/Delay
請打開眨眼示例
1。 pinMode()是一個函數,它說明您要使用的引腳。第一個參數是您正在談論的引腳。在這種情況下,引腳13。第二個參數是OUTPUT,這表示您希望能夠在程序中將引腳13設置在0伏和5伏之間。
2。 digitalWrite()是將指定引腳設置為LOW(0伏)或HIGH(5伏)的函數。第一個參數是13我們要控制的引腳。第二個參數是HIGH或LOW。將其設置為高電平就像將電阻器連接到正電源軌時一樣。將其設置為LOW就像將其連接到負極軌一樣。
3。 delay()是一個函數,用于在一定時間內停止Arduino。可以想象這是當您在切換導軌之間等待一秒鐘時。這將等待以毫秒或1/1000秒為單位的指定時間量
挑戰:嘗試使照明燈保持開啟狀態2秒鐘,關閉狀態持續0.5秒
5:輸入,變量和開關
電路接線。
看一下壓線圖進行接線。
使用的電阻是10k電阻。之所以稱為下拉電阻,是因為當開關斷開(未按下)時,它將電壓下拉回零伏。當開關閉合(按下)時,電阻太大,對電壓幾乎沒有影響,所以只有5伏。
用arduino打開名為LimitSwitch的文件。
像往常一樣,請先閱讀文檔,然后再進行簡化說明。
http://www.arduino.cc/en/Reference/DigitalRead
1。此命令創建一個名為pin12Value的新變量。藍色“ int”部分指定變量的類型。 int是整數的縮寫。 Arduino需要知道正在使用什么類型的變量,以將它們有效地存儲在內存中,并對它們進行操作,例如加,減,乘和除。第二部分是變量的名稱以及稍后在代碼中如何引用它。
2。 digitalRead()此函數返回1(高)或0(低),具體取決于它正在讀取的引腳上施加5伏還是施加到正在讀取的引腳上施加0伏。
3。下一部分稱為作業。我們將pin12Value設置為1還是0,具體取決于是否按下了限位開關且12針為高電平。結果4。現在,我們使用Serial.println(pin12Value)來打印pin12Value的值。如果您在按下限位開關時觀察到串行監視器,您會注意到它從0變為1。因此,如果打印了HIGH和LOW而不是1s和0s,這看起來會更好而且更容易理解。我們可以使用if語句來完成此操作!
在解釋之前,請嘗試通讀并理解以下if語句的文檔。
http://www.arduino.cc/zh_CN/Reference/If
在Arduino中打開LimitSwitchIf并運行
1。這是一個if語句。如果條件為true,則大括號內的代碼將運行。如果條件不成立,則將跳過大括號中的代碼。
2。這是if語句的條件。這是一個問題,pin12Value是否等于1?如果答案為是,則表達式的計算結果為true。小心并意識到==與=符號不同。 ==在問一個問題。他們平等嗎? =是一個命令,用于將左側的內容設置為等于右側的內容。
3。這是該語句為true時花括號中的代碼。
挑戰:使用您學過的知識,可以在按下開關時打開LED并在釋放時關閉LED
要查看如何完成挑戰,請打開LimitSwitchLED
挑戰2:使用您學到的知識,通過不同的開關分別打開2個LED。
查看如何完成挑戰打開LimitSwitchLED2
步驟6:為H橋和驅動電機接線
因此,接下來部分將使用H橋。盡管我不希望您理解它,但我希望您查看H橋的文檔,以便了解電子元器件的規格表。如果您遇到不熟悉的組件,則應該能夠使用其上刻有編號的Google為其搜索規格表。
http://www.ti.com/lit/ds/symlink/sn754410.pdf
SN7544 H橋具有16個引腳,并且在表示該芯片的盒子內的引腳標記為1到16。該芯片能夠為兩個電動機供電。一個連接到芯片的左半部,另一個連接到芯片的右半部。現在我將描述每個引腳的作用。
1。)這是電動機1的使能線。當該電壓為HIGH時,為5伏。可以驅動馬達。當它為低時,0伏電動機將無法運行。可以將其與PWM信號一起使用(我們將在后面介紹),通過非常快地打開和關閉它來控制電動機的速度。
2。)這是電動機1的控制線。您可以將其與引腳7一起使用,以控制電動機1旋轉的方向。如果引腳2設置為高電平,而引腳6設置為低電平。電機將單向旋轉。如果將它們翻轉,則引腳6為高電平而引腳2為低電平,則電動機將改變方向。在所有其他狀態下,電動機都不旋轉。
3。)此引腳連接到電動機1的一側。電動機1的另一端連接到引腳6
4 。)轉到您的地線,0伏。
5。)與4
6相同。)此引腳連接到電動機1的另一側。
7。)這是電動機1的另一條控制線。
8。)此引腳需要5伏的電壓才能使芯片正常工作。這將為芯片供電
9。)這是電動機2的啟用線。
10。)這是電動機2的控制線。
11 。)連接到電動機2的一側。電動機2的另一側連接到引腳14
12。)與4
13相同。)與4相同。
14。)這連接到電動機2的另一側。
15。)這是電動機2的另一條控制線。
16。 )這是電動機1和電動機2的電源。在此示例中,我建議使用9伏電池。
現在可以將其接線!
看一下摩擦圖。需要注意的幾個關鍵事項。確保將Arduino的GND(0伏)與電池的-(0伏)連接。并且請勿將Arduino的5V與電池的+(9伏)連接。這會傷害您的Arduino。
接線后,打開_1Motor并運行它。
挑戰:用開關為電機接線,使其在按下時旋轉一個方向,然后松開解決方案:_1MotorWithSwitch
挑戰:做到這一點,以便一個開關使電動機沿一個方向旋轉。另一個開關使其反向旋轉。提示:您可能需要了解if語句的“和”運算符。
解決方案:_1MotorTwoSwitches
挑戰:掛上第二個馬達并對其進行一些有趣的操作。
注意:如果您要開始四處行駛,可以從這里購買一些車輪https://solarbotics.com/product/
第7步:模擬輸入
現在,我們將向您展示如何讀取模擬輸入。那里有許多模擬傳感器,您可以將其用作機器人的傳感器。
以下示例:
電位器(本演示將使用什么電位計)
Range Finders https://www.pololu.com/product/2474
溫度傳感器http://www.adafruit.com/products/165
還有更多(只需使用Google模擬量,無論您想要哪種類型的傳感器)
電位計是您可以使用的最簡單的模擬量輸入之一。您可以轉動旋鈕來更改該值。
按照裝飾圖進行接線。
請務必查看文檔
http://www。 arduino.cc/zh-CN/Reference/AnalogRead
打開程序PrintAnalogValue并連接電位計嘗試一下。
如果您注意到這與限位開關示例非常相似,除了我們正在使用“ analogRead()”函數和標記為A0至A5的引腳。 A代表模擬,在嘗試獲取模擬輸入時必須使用這些引腳。轉動電位計時,您還將獲得0到1023之間的值。這就是使其成為模擬輸入的原因。 LOW不會得到0,HIGH不會得到1。取而代之的是,Low為0,HIGH為1023。介于兩者之間的所有電壓都由數字1到1022表示。
挑戰:
看看您是否可以找出POT_ChangeTheSpeed,POT_MoveTheLight和POT_RaisingTheBar的工作原理并將其連接! p》
步驟8:PWM信號和控制電動機速度
現在,我們將使用電位計來控制電動機的速度
正如我之前所說,H橋上的使能線可用于控制電動機速度。
有關接線,請參見弗里辛格圖。
唯一的與上次的主要區別是H橋上的引腳1現在連接到Arduino的引腳5而不是5伏電源線。
PWM信號是打開和關閉非常快的信號。通常,它們的取值范圍是0到255。其中0表示它們從不開啟,而255表示它們一直處于開啟狀態。介于兩者之間的值表示它們僅在一部分時間內處于打開狀態。 Arduino表示支持PWM的引腳位于引腳編號旁的?。
打開
第9步:編寫函數
輸入本節我們將繼續編寫您自己的函數。
提示:避免命名變量和函數相同。
正如我之前所說,編程中的所有內容都基于某種形式的函數。現在,您將學習如何編寫自己的代碼。函數背后的想法是執行一項復雜的任務并將其隱藏起來,以使您的代碼更易于使用和理解。正如我確定的那樣,您已經開始意識到要使電動機運轉,就需要您跟蹤多種情況,您要使其運行的速度,您要其運行的方向以及哪些引腳需要處于高電平和LOW可使所有功能正常工作。
在名為MotorFunctions的文件中,您可以在下面看到我們為您編寫的一些示例函數及其說明。
1。)函數的這一部分聲明是返回類型。我們選擇void是因為此函數將不會返回任何內容。例如,如果您想返回一個數字,則可以使用int。如果您有一個將兩個數字加起來并返回它們的和的函數,這可能會派上用場。
2。)函數的這一部分是函數名稱。這是您稍后在代碼中用來調用函數的名稱。
3。)這些是函數的參數。在這里,您可以指定要使用的參數數量以及將要調用的參數。對于這個,我們有一個參數motorSpeed,它是一個數字,因此我們使用了int類型。指定參數就像聲明變量一樣,因為它們本質上是與您的函數從所謂的函數共享的變量。
4。)這是函數運行的代碼。
5.)Return語句,因為我們不返回任何內容,所以我們只需放置此語句。如果我們要退貨。我們會將其放置在return語句之后。
責任編輯:wv
-
Arduino
+關注
關注
188文章
6478瀏覽量
188217
發布評論請先 登錄
相關推薦
芯盾時代入選ISC.AI 2024創新能力百強
如何使用Arduino實現CAN總線通信呢
Arduino Nano Matter開發板正式上市
HAL庫在Arduino平臺上的使用
基于Arduino的串口通信項目
stm32與Arduino的比較
如何使用Arduino實現CAN總線通信
樹莓派與Arduino的區別是什么
idf-arduino component組件怎么設置 ?
求助,在esp-idf中使用arduino作為組件后怎樣使用arduino的庫?
如何用Arduino開發STM32G070?
聯合光電將攜物聯網視覺產品參展2024 ISC West
如何制作自己的Arduino電容計

評論