在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣用Arduino編程

454398 ? 來源:工程師吳畏 ? 2019-07-26 08:35 ? 次閱讀

您是否擁有產品或項目請注意,您可能會發現自己需要使用PC以外的硬件或本地硬件商店中可以找到的某些組件。適合初學者的一件硬件,Arduino,可能只是你的胡同。但是您可以從這樣的設備中得到什么,它是否適合您的需求?

一個獨特的硬件控制器

PC,平板電腦手機是大多數人都可以訪問的常用平臺。正因為如此,許多個人和公司已經利用了對軟件的需求并生產了應用程序,該行業每年的收入超過770億美元。但是這些設備面臨的一個主要問題是它們有限的I/O能力,控制像繼電器這樣簡單的事情可能是一項艱巨的任務。這是需要不同計算設備的地方,對于大多數新手來說,我想到了兩個主要設備:Raspberry Pi和Arduino。 Raspberry Pi是一款非常強大的單板計算機,具有多個IO連接,包括允許連接電路的通用I/O(GPIO)連接器。但Raspberry Pi也有一些缺點。首先,它需要大量的電力才能運行(2A @ 5V),其次,它不是最簡單的工作和程序。這就是Arduino的用武之地!

與Raspberry Pi不同,Arduino是一個小得多的計算設備,強調硬件而不是軟件。因此,雖然Raspberry Pi有4個64位內核和1GB內存,但Arduino有一個運行在16MHz的單核,2KB的RAM和32KB的存儲。但與Pi不同,Arduino有許多IO引腳,可以比Raspberry Pi做更多的工作,包括模擬 - 數字轉換和PWM(脈沖寬度調制)。 Arduino也專注于用戶的程序,并且是唯一運行的,與Pi不同,它需要操作系統來運行用戶程序(這意味著在程序運行時,許多其他進程也是如此)。

Arduino是如何編程的?

Arduino是圍繞微控制器系列構建的使用Atmega328P將Arduino Uno板稱為ATMega。這些微控制器與市場上數百萬的微控制器非常相似,包括微控制器生產的PIC器件。這些設備的問題在于它們通常需要專用的編程器設備來將用戶程序放入其閃存(例如PICKIT 3)中。這使得它們使用起來很復雜,特別是那些沒有微控制器經驗的人。但這就是Arduino的不同之處! Arduino的設計人員意識到專用編程器存在問題,因此他們在Arduino中設計了一個引導加載程序,允許USB端口加載用戶程序。因此,當您將Arduino連接到USB端口時,它將被識別為通用串行端口,并且連接的PC甚至可能將其識別為Arduino。

將Arduino連接到USB端口,我們距離我們的第一個項目更近了一步。但是我們使用什么語言以及我們需要下載什么應用來制作Arduino程序?嗯,Arduino的設計人員不僅可以輕松地將Arduino連接到PC,而且他們還決定制作一個免費的IDE(集成開發環境),它可以讓你在安裝后不到五分鐘的時間內閃爍LED。可以通過以下鏈接從Arduino網站下載IDE:

Arduino IDE下載頁面

下載后,安裝IDE。完成后,通過啟動Arduino程序運行IDE。在Windows 10中,您可以打開開始菜單并鍵入“Arduino”(這應該會啟動IDE)。

如果沒有,請查看桌面上的Arduino圖標。

如果一切都去了計劃,你應該看到Arduino IDE加載一個空白程序,如下所示。

您的第一個程序

Arduino IDE用于制作Arduino程序的語言是C ++,它是一種面向對象的語言。 C ++本身不會深入討論或教授,因為本教程的目的是演示使用Arduino是多么容易。

在你的空白項目中,你應該看到兩個不同的功能:setup()和環()。當Arduino首次打開并開始運行時,它將執行setup中的代碼。此功能用于配置硬件和變量,以便您的程序以已知狀態運行,并且所有需要的硬件都已正確配置供您使用(例如打開ADC端口)。在setup()之后執行的下一個main函數是loop(),它無限運行并用于運行程序(在執行循環中找到的最后一條指令后,Arduino將跳轉到循環中找到的第一條指令)。在我們的項目中,我們將使用Arduino Uno,我們的目標是制作板載LED閃光燈。

值得慶幸的是,IDE的設計者已經包含了許多示例,我們將加載閃爍示例,這可以通過單擊文件》示例》 01.Basics》 Blink來完成。如果一切順利,你應該看到以下代碼(你上面可能有一些灰色的注釋,但這沒關系):

在我們繼續前進之前,我們必須告訴我們的IDE是我們正在使用的Arduino板。在我的情況下,我有一個Arduino Uno,所以我需要通過工具》 Board》 Arduino Uno/Genuino Uno來選擇它。

現在我們打開了blink示例并選擇了正確的板,現在是時候使用這段代碼對Arduino進行編程了。執行此操作的第一項任務是編譯代碼,單擊驗證圖標(如下所示):

編譯代碼后,您應該會在底部控制臺窗口中看到以下消息:

最后一步是將程序加載到Arduino中。第一項任務是確保IDE知道要使用哪個串口,因此,為此,我們導航到工具》端口,然后選擇串口。值得慶幸的是,大多數現代設備沒有串行端口,因此應該有兩種選擇之一:COM1和其他一些COM。 COM1通常不是可訪問的串行端口,并且由OS內部使用,因此請選擇備用COM端口。例如,我的是COM8。被警告!計算機可能決定在將來更改COM端口,因此如果IDE在連接時找不到Arduino,請轉到端口列表并查找備用端口。例如,我的Arduino曾經是COM7,但由于某種原因改為COM8。

現在可以通過點擊上傳按鈕對Arduino進行編程!

結果?

IDE成功上傳后閃爍程序,您應該看到板載LED亮一秒鐘,關閉一秒鐘,然后重復。但是我們的計劃如何運作? Arduino如何打開和關閉LED?

我們之前討論過,Arduino Uno的核心是Atmel Atmega328微控制器,它有許多金屬引腳連接到集成電路(我假設你在這里有一定程度的電路知識)。其中一些引腳用于供電,一些用于外部振蕩器,其余用于輸入和輸出(如開關,LED,數據端口等)。 Uno上的LED連接到引腳13,因此為了使用LED,我們必須將該引腳配置為輸出(可以控制外部設備的輸出)。

為此,我們使用一個名為pinMode()的簡單函數。該函數有兩個參數:我們正在配置的引腳,以及引腳的類型,無論是輸出還是輸入。因此,在我們的代碼中,我們將LED引腳配置為輸出。您可能想知道為什么該功能使用LED_BUILTIN而不是13.這是因為不同的Arduino板可能使用不同的引腳用于內置LED,因此Arduino IDE的設計者巧妙地創建了一個名為LED_BUILTIN的變量。當您選擇電路板類型(Uno,Nano等)時,此變量將更改為內置LED連接的正確引腳,因此您的閃爍項目仍然有效!

設置Arduino后,執行主循環功能。我們遇到的第一條指令是digitalWrite(),它用于打開或關閉輸出(HIGH或LOW)。這個函數有兩個參數:我們寫的引腳和值。第一條指令通過將HIGH(1)寫入LED引腳來打開LED。

打開LED后執行的下一條指令是延遲(1000)。此函數使Arduino延遲n毫秒,其中n是傳遞給延遲函數的參數。換句話說,延遲(1000)將等待1000ms,等于一秒。如果調用delay(1),Arduino將延遲1ms。

最后兩條指令類似于之前執行的兩條指令,除了不打開LED,我們通過寫入LOW將其關閉LED引腳使用digitalWrite()函數。一旦關閉,Arduino會在無限期重復整個循環之前執行最后一秒鐘的延遲。

結論

雖然這個例子看似簡單,但它證明了編寫和編寫Arduino是多么容易。存在其他微控制器,例如PIC系列,但它們需要定制電路和專用編程器,而Arduino只需要USB端口和USB B電纜。當然,在需要精確控制的某些情況下,Arduino是不實用的,例如高級傳感器,中斷控制,DMA數字信號處理。因此,如果您的產品是簡單的物聯網設備或機器人控制器,那么Arduino可能只適合您!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3616

    瀏覽量

    93738
  • Arduino
    +關注

    關注

    188

    文章

    6469

    瀏覽量

    187091
收藏 人收藏

    評論

    相關推薦

    多個TLV320AIC3254一路I2C總線對其配置可行嗎?

    一片CPU3片TLV320AIC3254做音頻處理,想用一路I2C總線對其配置可行嗎? 地址好像是唯一的 0011000沒法設置,手冊中又提到可使用10位地址但是沒找到說明怎樣用,哪位大俠用過
    發表于 10-22 07:54

    怎樣用THS3201實現輸出功率可調?

    怎樣用THS3201實現輸出功率可調?
    發表于 08-26 08:28

    esp32什么軟件編程

    。 概述 ESP32具有豐富的外設接口和靈活的編程方式,支持多種編程語言和開發環境。本文將詳細介紹ESP32的編程軟件,包括開發環境、編程語言、庫函數、開發工具等。 開發環境 2.1
    的頭像 發表于 08-19 17:24 ?3529次閱讀

    OPA735加OPA333,怎樣用TINA TI去仿真?

    當輸入信號VG1從7.06V慢慢變化到7.22V時。 輸出電壓Vout的變化必須是接近線性變化的。我想知道我該怎樣用TINA TI去仿真?怎樣設置那個輸入信號VG1才能達到我的目的。因為這個電壓源好像
    發表于 08-02 08:39

    怎樣用表測穩壓管穩壓值

    表是一種常用的電子測量工具,可以用來測量電壓、電流、電阻等多種參數。在測量穩壓管的穩壓值時,我們可以使用萬表的直流電壓測量功能。以下是步驟和注意事項: 準備工具和材料 萬表 穩壓管 電源
    的頭像 發表于 07-31 14:26 ?1679次閱讀

    怎樣用Arduino測試鋰電池容量

    本文詳細介紹了如何用Arduino測量鋰電池的容量。并附有電路圖和Arduino的程序代碼。
    的頭像 發表于 07-30 09:14 ?899次閱讀
    <b class='flag-5'>怎樣用</b><b class='flag-5'>Arduino</b>測試鋰電池容量

    Arduino自制點焊機

    組裝18650電池組,要用到點焊機,本文介紹Arduino控制點焊機的點焊時間。
    發表于 07-29 10:14 ?6次下載

    ESP32使用Arduino啟用藍牙后編譯固件過大,怎樣縮減大小呢?

    ESP32使用Arduino啟用藍牙后編譯固件過大,怎樣縮減大小,日志級別已經最低了,分區不能動,已經是1.9M的OTA分區配置了,怎樣還能縮減大小,藍牙功能能否裁剪
    發表于 06-28 11:27

    esp32-S3支持arduino編程嗎?

    arduino選開發板的時候沒有es32-s3, 只有s2可選。 請問: 1. esp32-S3支持arduino編程嗎 2. arduino下sample下的BLE庫能用嗎? 3.
    發表于 06-27 08:23

    求助,在esp-idf中使用arduino作為組件后怎樣使用arduino的庫?

    在esp-idf中使用arduino作為組件后怎樣使用arduino的庫,例如我此時需要使用arduino的第三方庫blinker,怎樣使用
    發表于 06-12 07:21

    NUCLEO可以直接利用現有的ARDUINO資源不?

    如題,對3D打印比較感興趣,不過不會用Arduino,所以問問大家,NUCLEO可以直接利用現有的ARDUINO資源不。
    發表于 05-15 07:13

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?
    發表于 05-07 06:55

    stm32f100怎樣用重映射功能?

    的是stm32f100c8t6b芯片,現在想用將PB1映射為TIM1_CH3N,在調用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)時, GPIO_PinAFConfig和GPIO_AF_TIM1都沒定義,stm32f100
    發表于 05-07 06:06

    fpga的是什么編程語言 fpga什么語言開發

    fpga的是什么編程語言 FPGA(現場可編程邏輯門陣列)主要使用的編程語言是硬件描述語言(HDL)。在眾多的HDL中,Verilog HDL和VHDL是最常用的兩種。 Verilo
    的頭像 發表于 03-14 17:09 ?3510次閱讀

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼?

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼? SD卡例程能跑,但mx生成的代碼不能正常運行,我生成代碼后是不是還要配置一些東西?(我生成后只寫了測試代碼) 問題解決了,雖然我不知道我為什么不能直接使用mx生成的代碼去操作sd卡,但我通過復制粘貼例程的代碼完成了測試。
    發表于 03-12 08:15
    主站蜘蛛池模板: 午夜小视频在线| 成 人 色综合| 美女拍拍拍免费视频观看| 欧美线人一区二区三区| 六月丁香婷婷激情国产| 国产一级特黄在线播放| 爱爱永久免费视频网站| aaa在线观看视频高清视频| 久久xx| 色香欲亚洲天天综合网| 一级毛片无毒不卡直接观看| 欧美极品一区| 精品国产中文一级毛片在线看| 一级一片免费播放| 日本免费黄色网| 黄色特级毛片| 一级特黄a免费大片| 亚洲444kkk| 永久免费人成网ww555kkk手机| 男同小黄文| 日本一区二区三区四区不卡| 夜夜爱夜夜爽| 日本不卡视频免费的| 女人张开双腿让男人桶完整 | 日本级毛片免费观看| 七月丁香八月婷婷综合激情| 高清激情小视频在线观看| 色综合天天操| 国产成人啪精品午夜在线观看 | 欧美性一级交视频| 天天干天| 中文字幕视频二区| 手机看片a永久免费看大片| 黄网站在线播放| 4438x亚洲最大| 在线播放你懂| 老色皮| 大量国产后进翘臀视频| 免费黄视频网站| 国产网站免费观看| 黄色欧美网站|