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

評論