Becky老師又來啦!這次玩Arduino
文章 概述
本文引用地址:http://cafeforensic.com/article/202408/462425.htm本期視頻介紹了 Arduino的概念 、 功能 及其在電子設(shè)計中的 應(yīng)用 。視頻通過構(gòu)建簡單的電路,展示了如何使用Arduino進(jìn)行編程和實現(xiàn)LED控制。文章還提供了詳細(xì)的步驟和代碼示例,幫助初學(xué)者入門,并鼓勵讀者加入Arduino全球社區(qū),分享經(jīng)驗和解決問題。
從事電子行業(yè)或者是電子設(shè)計愛好者,一定有聽過Arduino。但你所理解的Arduino是什么呢? 是一款開發(fā)板? 還是一家公司?不管怎樣,Arduino都是電子設(shè)計不可或缺的重要資源,在編程上提供極大的幫助。以下視頻將利用Arduino建構(gòu)簡單的電路,讓你了解其功能,加強(qiáng)你的設(shè)計能力??禳c開視頻跟隨Becky老師一起學(xué)習(xí)吧!
Arduino簡介
Arduino 讓科技創(chuàng)新變得簡單。它是一系列微控制器板,讓您感知周圍的環(huán)境并控制電子設(shè)備。 Arduino 一詞指的是電路原型設(shè)計過程的幾個層面。 其中一個是指硬件,包括官方的 Arduino 板和成千上萬種兼容Arduino的衍生產(chǎn)品。與硬件進(jìn)行通信的軟件被稱為集成開發(fā)環(huán)境,名為 Arduino IDE 。而且,你使用的編程語言也叫做Arduino,它是基于C++。Arduino還可以是指 Arduino公司 的商標(biāo),他們制造官方的開發(fā)板并維護(hù)開源文檔,有助于使整個生態(tài)系統(tǒng)免費(fèi)且便于共享。
Arduino 是一個龐大的全球社區(qū),這意味著你可以在網(wǎng)上找到幾乎數(shù)不盡的靈感、代碼范例和關(guān)于你的問題的答案。
跟著本系列視頻進(jìn)行操作,你將逐漸掌握用電控制元器件和Arduino語言編程的關(guān)鍵概念。
開始Arduino原型設(shè)計
以下是推薦用于開始 Arduino 硬件原型設(shè)計的材料:
Arduino Uno 或其他兼容板和USB 電纜
無焊面包板
跳線 或 實心連接線
3V 通孔 LED
100-1000 歐姆的通孔電阻
您還可以使用 Tinkercad Circuits 或 Fritzing 等電路模擬器開始,無需任何硬件。
連接與配置
建議從 Arduino Uno 開始,或使用兼容板,例如 Adafruit Metro 、 Sparkfun Redboard 或 Seeeduino 。 這些專為初學(xué)者使用的開發(fā)板有較大的標(biāo)簽,幫助你清楚地看到你插入邊緣引腳上的連接器,而這些連接器連接到微控制器芯片本身的各種引腳。微控制器芯片是一個微型計算機(jī),運(yùn)行我們從常規(guī)計算機(jī)上上傳的程序。在開發(fā)板上,你還會看到一個復(fù)位按鈕、一個電源指示燈、一些用于指示開發(fā)板何時發(fā)送和接收數(shù)據(jù)的LED,還有一個連接到引腳13的LED,用于在不插入其他元器件的情況下進(jìn)行測試。其他元器件支持微控制器,并使電路的布線和編程變得簡單,讓不會電氣工程的人也可以做到。請確保使用正確的USB連接線將開發(fā)板連接到電腦上,這里需要的是 支持?jǐn)?shù)據(jù)傳輸?shù)臄?shù)據(jù)線 ,而不是外表相似的那種僅能用于充電的線。區(qū)分它們的方法是,使用數(shù)據(jù)線時 Arduino 開發(fā)板會出現(xiàn)在軟件的端口菜單中,而充電線則不會。確保這一點的最佳方法是購買注明是 數(shù)據(jù)線 的線。您還需要一塊 無焊面包板 ,它的內(nèi)部有金屬條和許多孔,可以讓你快速、輕松地連接元器件。我習(xí)慣用固定板將面包板和 Arduino 板連接起來,這樣電路就可以更好地結(jié)合在一起。你需要一些導(dǎo)線來連接Arduino,無論是 面包板專用的導(dǎo)線 或者 實心銅芯導(dǎo)線 都可以。構(gòu)建基礎(chǔ)電路
在進(jìn)入軟件部分之前,我們可以先建立一個簡單的電路。使用出廠默認(rèn)程序讓一個連接到引腳13的LED閃爍,引腳13連接到LED較長的正極,而 LED 較短的負(fù)極通過電阻接地,以幫助限制電流,防止LED燒壞。 對于這個電路,需要一個功率為1/4 瓦的電阻,阻值從100歐到1000歐都可以。 如果你想了解更多,可以觀看我們系列前期的 “【與美女創(chuàng)客入門電子世界】在做LED開發(fā)?這個視頻很實用!” 。用導(dǎo)線將Arduino上標(biāo)有標(biāo)簽的5伏電壓和地線引腳連接到無焊面包板上的母線,這些母線沿著無焊面包板的兩側(cè)延伸,方便大家輕松地接入電源和地線。對于這個電路來說,沒有嚴(yán)格要求使用地線母線作為連接面包板地線的中間接口,但 在原型設(shè)計時連接母線是最佳做法 。當(dāng)在斷開電源的情況下完成了電路,接著就可以將開發(fā)板連接到電腦。新電路中的LED應(yīng)該會與開發(fā)板上的迷你貼片式LED一起閃爍,如果沒有閃爍,請再次檢查你的線路是否都連接好,并確保你的LED沒有插反。開發(fā)板的連接孔非常小,所以很容易把導(dǎo)線插入錯誤的行中。編程基礎(chǔ)當(dāng)LED閃爍,就可以深入研究控制它的程序?;镜拈W爍范例可在Arduino軟件中下載,并需要將其安裝到電腦上。打開軟件,找到文件 > 范例 > 01.基礎(chǔ),最后點擊閃爍。所有這些額外的符號都是Arduino語法的一部分,但不用感到害怕,從零開始學(xué)習(xí)并編寫合適的代碼需要時間,這里會向你一一解釋,當(dāng)你的水平有所提升,可以隨時參考這些例子。第一部分是代碼塊注釋 ,接著是代碼的設(shè)置部分,用于設(shè)置程序后續(xù)所需的內(nèi)容,它在程序啟動時就會運(yùn)行。這里的閃爍程序?qū)⒁_13設(shè)置為輸出,這樣可以使開發(fā)板發(fā)送信號,而不僅是接收信號。程序的主體部分在循環(huán)內(nèi),只要開發(fā)板通電,這部分代碼將重復(fù)執(zhí)行。雙斜杠后面的灰色文字是注釋,使你更容易理解程序。這里使用的輸出命令稱為digitalWrite(),它是一個函數(shù),用于將一個引腳設(shè)置為HIGH或LOW,即打開或關(guān)閉狀態(tài)。這里會使用函數(shù)delay()來暫停程序,它會暫停指定的毫秒數(shù),一秒等于1000毫秒??偟膩碚f,該程序以一秒的間隔打開和關(guān)閉一個LED。這個時間間隔可以改變,只需要改變delay的數(shù)值,就可以自定義這段代碼,比如500毫秒或2000毫秒。要將程序上傳到 Arduino 開發(fā)板上,請確保USB連接線插好,并從工具菜單中選擇對應(yīng)的開發(fā)板和端口。 如果你的端口沒出現(xiàn)或找不到對應(yīng)的端口,請嘗試拔掉開發(fā)板,檢查端口菜單,然后重新插上開發(fā)板,再次查看端口菜單,看看有沒有出現(xiàn),然后點擊上傳按鈕,以將閃爍范例代碼傳輸?shù)紸rduino開發(fā)板上。標(biāo)有TX和RX的LED指示燈會閃爍,顯示軟件正在與開發(fā)板進(jìn)行通信,并會顯示“上傳完成”的通知。片刻后,設(shè)置的閃爍效果就會出現(xiàn)。如果要上傳到一個兼容Arduino,而非Arduino公司的開發(fā)板上,可能需要安裝額外的驅(qū)動程序,才能在端口菜單中看到該開發(fā)板。參考產(chǎn)品文檔便可了解所需操作。
控制LED亮度
現(xiàn)在已經(jīng)成功運(yùn)行了一個數(shù)字示例,下一步是要更深入地了解Arduino的功能。當(dāng)然,閃爍是不錯的功能,也可以讓LED處于半亮半滅的狀態(tài)。方法是編程漸變效果,但在Arduino上只有幾個引腳能夠進(jìn)行類似模擬輸出的操作,這些引腳在你的開發(fā)板上會用一個小波浪線(~)或其他標(biāo)記來標(biāo)明。
在進(jìn)行任何修改之前,請先拔掉連接線,然后將連接到引腳13的導(dǎo)線插入標(biāo)有PWM標(biāo)記的引腳9。在Arduino軟件中點擊文件 > 范例 > 01.基礎(chǔ) > 漸變,然后將開發(fā)板連接上電腦,上傳該代碼到Arduino板上,就可以看到LED的漸亮和漸滅效果。Arduino板只能生成數(shù)字信號,即HIGH和LOW,但analogWrite() 通過脈沖寬度調(diào)制(PWM),來模擬在開和關(guān)之間的亮度變化,從而實現(xiàn)看起來像是亮度調(diào)節(jié)的效果。LED快速地開和關(guān),便會覺得是看到光線變暗。LED點亮和熄滅的時間比例決定了LED的亮度。看看代碼,便可以了解這種漸變效果是如何實現(xiàn)的??梢栽?Arduino 首選項中啟用行號,以便更好地引用代碼的不同部分。第16行到18行說明了程序中使用的三個變量;第23行的設(shè)置部分將引腳9配置為輸出;在第29行,analogWrite()函數(shù)根據(jù)作為變量的亮度值來設(shè)置引腳9的輸出;在第32行,亮度通過數(shù)值為5的fadeAmount遞增。第35行使用if語句通過比較運(yùn)算符檢查亮度,如果亮度小于或等于零,或者大于或等于255,則執(zhí)行內(nèi)部代碼,否則,跳過該部分。因此,代碼會增加亮度,直到達(dá)到或超過255。然后,將fadeAmount設(shè)置為-5,并遞減亮度直到達(dá)到零或小于零。最后的delay()函數(shù)是防止代碼運(yùn)行過快,以至于你無法看到效果。PWM的快速閃爍也是為什么有時在相機(jī)或手機(jī)上,錄制LED燈時會出現(xiàn)閃爍。這取決于快門速度。PWM也用于在RGB LED中實現(xiàn)顏色混合,每種顏色的LED被設(shè)置為不同的亮度級別,當(dāng)它們在同一個封裝中混合時,可以形成任何顏色的光。進(jìn)階編程技巧在這個Arduino基礎(chǔ)入門教程中,最后一個要介紹的概念是for()循環(huán),也稱為計數(shù)循環(huán)。它從一個初始值計數(shù)到一個上限值,在這個程序中,我們以5為增量從0計數(shù)到255。就像之前的LED漸變程序一樣,這表明有不止一種編寫相同程序的方法。你也可連接更多的LED,并使用for()循環(huán)來為它們添加動態(tài)效果,在for()循環(huán)完成計數(shù)后,主循環(huán)的剩余部分會執(zhí)行,然后重新開始。剛開始接觸Arduino可能會讓人感到壓力,但別忘了當(dāng)你遇到問題時,可以在網(wǎng)上查找相關(guān)資料。 Arduino 官網(wǎng)有一個很實用的參考部分,可以在那里找到代碼每個部分的解析和示例,還有一個社區(qū)論壇,可以在其中找到與你的項目相關(guān)的協(xié)助。對于電子設(shè)計或電子愛好者來說,Arduino是非常實用的工具,它可以幫助你完成一些設(shè)計,而且還有豐富的資源為你解決疑難。掌握好使用Arduino的技巧,相信會是一大助力,成就出更多你的創(chuàng)意作品。
關(guān)于本系列視頻
電子設(shè)計博大精深,對于初學(xué)者來說,有一定的難度。本系列視頻旨在介紹一些入門級的技術(shù)和技巧,包括電路設(shè)計基礎(chǔ)知識、簡單編程等,讓初學(xué)者從基礎(chǔ)開始,再一步步向更進(jìn)階出發(fā),在電子設(shè)計的世界里,發(fā)掘更多樂趣,同時也可以讓電子設(shè)計愛好者溫故知新。
關(guān)于Becky Stern
Becky Stern 是一名創(chuàng)客,擁有多年設(shè)計電子項目的經(jīng)驗,創(chuàng)作和分享是她兩大愛好。在獨(dú)立創(chuàng)業(yè)之前,她曾擔(dān)任 Instructables (Autodesk) 的產(chǎn)品經(jīng)理、Adafruit 的可穿戴電子產(chǎn)品總監(jiān)等。她的作品曾被 BBC、CNN、Business Insider、Forbes 和 Science Friday 等知名媒體報道過。她創(chuàng)建了數(shù)百個關(guān)于技術(shù)和手工制作的在線DIY教程和視頻,旨在分享她的知識,幫助同是電子設(shè)計愛好者的同路人學(xué)習(xí),相互交流。
評論