女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arduino的使用技巧

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-27 11:30 ? 次閱讀

Arduino UNO常見問題解答

那里有很多Arduino,這可能會引起一些混亂。我們想向人們說明最新版本中的一些更改。

Arduino的使用技巧

NB 這只是我們對Arduino做出的某些決定的看法和解釋。我們沒有與Arduino相關(guān)聯(lián),也不要為他們說話!如果您需要對Arduino問題的正式答復(fù),請直接與他們聯(lián)系。謝謝!

NB2 仍在進(jìn)行中,我們正在收集常見問題來回答。如果您還有其他問題,請在我們的論壇中發(fā)布。

Arduino時間軸,但首先……一些歷史!首先是帶有RS232的串行Arduino(它的名字是什么?),它沒有在Arduino團(tuán)隊和朋友之外使用。

第一個流行制造的Arduino被稱為NG(新一代,例如Star Trek,yknow?)。NG使用了以16 MHz運行的Atmega8芯片和用于USB接口的FT232芯片。該引導(dǎo)程序占用2KB的空間,并以19200波特的速度運行。

下一個版本是Diecimila。 Diecimila將芯片從Atmega8更新為Atmega168。這里最棒的事情是空間和內(nèi)存增加了一倍(16K而不是8K)。它仍然以16MHz運行。 Diecimila還增加了兩個額外的3.3V插頭(來自FTDI芯片)和復(fù)位引腳,當(dāng)屏蔽層覆蓋了Reset按鈕時,該引腳非常方便。引導(dǎo)加載程序占用2KB的空間,并以19200波特的速度運行。還添加了自動重置功能,使每個人的生活變得更加美好。

2009年,發(fā)布了Duemilanove。這也將芯片再次升級到Atmega328。空間和內(nèi)存又增加了一倍!另一個升級是現(xiàn)在可以在USB和DC插孔之間自動切換電源,從而刪除了先前的跳線。這使得從編程過渡到獨立變得更加容易和快捷,并且擺脫了一些混亂。引導(dǎo)加載程序占用2KB的空間,運行速度為57600波特。

2010年,我們推出了Uno! Uno仍使用328P芯片和電源切換器。它有一個名為OptiBoot的較小引導(dǎo)加載程序(用戶項目有更多空間),運行速度為115K。因此,即使芯片相同,您也可以獲得引導(dǎo)加載程序先前使用的另外1.5K的額外閃存空間。 FTDI芯片也已替換為atmega8u2,后者可支持各種USB接口。最后,還有一個額外的3.3V穩(wěn)壓器(LP2985),可提供更好的3.3V電源。

USB芯片 所以!所有較舊的Arduino(NG,Diecimila和Duemilanove)都使用FTDI芯片(FT232RL)來轉(zhuǎn)換Arduino芯片(Atmel ATmega)的TTL串行。這樣可以進(jìn)行可打印的調(diào)試,并連接到PureData/Max,Processing,Python等軟件,還可以通過串行引導(dǎo)加載程序更新固件。

有關(guān)的好消息FT232RL具有免版稅的驅(qū)動程序,幾乎可以正常使用。壞消息是它只能用作USB/串行端口。它不能像鍵盤,鼠標(biāo),磁盤驅(qū)動器,MIDI設(shè)備等一樣起作用。

Uno通過將FT232RL芯片與atmega8u2芯片交換來改變了這種情況。這款新芯片可能有幾件事情,但是在我們進(jìn)行討論之前,讓我們先弄清楚默認(rèn)情況下,該芯片的功能與它所取代的FTDI芯片相同。這只是USB串行端口!

更新芯片的一項改進(jìn)是,以前,Mac用戶需要安裝FTDI驅(qū)動程序。 8u2模仿“通用” CDC串行設(shè)備。因此,現(xiàn)在,Mac用戶不必安裝驅(qū)動程序。 Windows用戶仍然需要安裝.INF文件,但是幸運的是沒有驅(qū)動程序。這意味著新版本的Windows將出現(xiàn)較少的問題。遺憾的是,沒有辦法在Windows中擁有不需要INF文件的串行USB設(shè)備:(

8u2的優(yōu)點是 advanced 用戶可以將其轉(zhuǎn)變?yōu)榱硪环NUSB設(shè)備,例如,它可以像鍵盤或鼠標(biāo),磁盤驅(qū)動器,或MIDI接口等一樣工作。這樣做,但我們希望很快發(fā)布。

最后,使用8u2降低了電路板的價格,彌補(bǔ)了其他一些不足。

為什么不只使用atmega32u4?

Arduino團(tuán)隊已經(jīng)表明他們考慮了這一點,但更喜歡DIP芯片的可破解性。

現(xiàn)在,有一些帶有32u4芯片的Arduino,例如Leonardo,Micro和Esplora

如何更改USB固件?

可以通過焊接6針I(yè)SP接頭(R3具有6針)來對8u2進(jìn)行編程標(biāo)頭已預(yù)先焊接)并使用標(biāo)準(zhǔn)的AVR編程器。您也可以在8u2中使用引導(dǎo)加載程序(DFU)。在第一代Unos上,您可以通過在板子下面焊接10K電阻器來啟用它。 (Uno的R2和R3版本使用16U2,不需要電阻!)同樣,我們沒有任何示例或教程,但希望很快。

8u2的代碼基于LUFA,這是Dean Cameran極為出色的USB-AVR庫,其中包含大量示例和文檔。它也是完全開源的。

Uno是否使用諧振器或晶體作為處理器時鐘

FT232RL具有內(nèi)部振蕩器,而8u2沒有。這意味著8u2旁邊有一個16mhz晶體,以使其能夠保持精確的USB時序。

另一方面,作為Arduino中核心處理器的Atmega328p芯片現(xiàn)在具有16mhz陶瓷諧振器。陶瓷諧振器的精確度略低于晶體,但我們已經(jīng)確信這一諧振器已經(jīng)過指定并且可以很好地工作。

所以Arduino在計時方面不那么精確嗎?

簡短的答案是:是的。長答案是,人們使用Arduino所做的大多數(shù)事情都不依賴于20ppm的精確定時,否則100ppm就會失敗。對于需要長期精確計時的人,我們建議使用TCXO(溫度補(bǔ)償晶體振蕩器)-但您會知道是否需要它。

《我class =“ fa fa-question-circle-o”》

兩者之間共享一個16Mhz晶體?

很好的問題,從技術(shù)上講可以。但是,實際上,開發(fā)板并沒有通過一個晶體通過FCC認(rèn)證(長的痕跡和快速的方波=大量的噪聲)。

好,可以說我不在乎。..

您絕對可以連接CLKO從‘8u2到’328p的晶體,但是您是一個人,因為我們不認(rèn)為會有任何相關(guān)的教程。

背面的FCC徽標(biāo)是什么?

Arduino現(xiàn)在已通過FCC認(rèn)證!這意味著該板本身就通過了FCC電磁輻射認(rèn)證。這不是不是意味著您的項目已通過FCC認(rèn)證。更改Arduino的那一刻,它已不再經(jīng)過FCC認(rèn)證(盡管我們需要一些備用文檔)。

它還是歐洲人的CE認(rèn)證。

新的Bootloader?

有一個新的Bootloader。它就像舊版本一樣工作-兼容STK500協(xié)議,但大小只有 1/4 !從2K開始,新的引導(dǎo)程序只有512b。這為您的項目代碼提供了更多空間!好極了!它也更快 -115K(而不是57.6k),因此您將在3秒內(nèi)上傳代碼。

壞消息是,您必須確保在“董事會”菜單中選擇Uno !!!如果您不這樣做,則由于引導(dǎo)加載程序速度錯誤而使您感到困惑,并且您將無法獲得額外的1.5K!

總體而言,它是一個很好的方向,并且芯片可以很好地用于較早的Arduino(因此,您只需更換芯片即可將Diecimila或Duemilanove升級到Uno)。

有關(guān)引導(dǎo)加載程序的更多詳細(xì)信息,例如源代碼,請訪問Optiboot項目頁面。

為什么不只是將‘8u2用作程序員

雖然8u2可以充當(dāng)完整的ISP編程器,但出于某些原因卻并非如此。

初學(xué)者使用完整的ISP編程器將導(dǎo)致積木。如果只是被引導(dǎo)加載,就不會將Arduino芯片弄得面目全非。

讓該芯片僅作為USB/串行接口來使用,從而簡化了固件,因此該芯片僅具有一種功能,而不必具有它具有程序員和串行接口的雙重作用(考慮一下,這并不容易)

向后兼容-仍然可以使用FTDI分支板或電纜對Arduino芯片進(jìn)行編程,使人們很容易面包板或制作克隆。

新的’8u2如何影響Arduino衍生物?

每個USB設(shè)備都必須具有唯一的產(chǎn)品ID和供應(yīng)商ID。供應(yīng)商ID(VID)出售給公司,產(chǎn)品ID(PID)由該公司選擇。因此,例如,F(xiàn)TDI擁有VID#0403,并且他們給芯片提供的ID在#0000和#FFFF之間(65,536個不同的PID)。Ardiuno的舊會員使用FTDI的VID/PID,因為這是您購買芯片時交易的一部分。由于Uno不再使用FTDI芯片,因此Arduino團(tuán)隊不得不購買USB供應(yīng)商ID(VID)。現(xiàn)在,每個Arduino產(chǎn)品都將從Uno(#0001)開始具有自己的PID。

如果要制作自己的Arduino兼容板,您可以選擇以下幾種:

Don ‘不使用8u2,而是使用帶有VID的FTDI芯片代替

如果您打算制造多塊用于個人使用的板,則必須購買VID從USB IF一次性收取$ 2000的費用

如果您要為自己的實驗制作一塊單板,則可以選擇一個不會干擾您設(shè)備上的任何設(shè)備的VID/PID計算機(jī)并替換其中的那些

您可以從開發(fā)USB設(shè)備的公司購買單個VID /PID對的許可證(目前我們沒有任何特定鏈接)

但是,您分發(fā)自己的Arduino兼容產(chǎn)品時不能使用Arduino VID!如果VID的成本對您來說太高了,只需使用FTDI芯片K?

我試圖找到一個購買“ 8u2”的地方,卻找不到任何地方!

是的,目前全球范圍內(nèi)都缺少Atmel零件。甚至Arduino內(nèi)核(Atmega328P)中使用的芯片也很難獲得。經(jīng)濟(jì)衰退后會發(fā)生這種情況。我們希望這些芯片和其他Atmel芯片能盡快在Digigikey之類的地方出現(xiàn)。直到那時,繼續(xù)在findchips.com上搜索!

那么這是否意味著Arduino短缺?

可能不是。 Arduino團(tuán)隊直接從Atmel購買了成千上萬的芯片。因此,他們可能會優(yōu)先于分銷商。我們假設(shè)團(tuán)隊購買了足夠的東西可以持續(xù)一段時間。

i》

Arduino小組是否已將FTDI芯片從FTDI芯片移到了8u2芯片上,制造商?

雖然出現(xiàn)了難以獲得的芯片并VID/PID的混亂似乎有點令人討厭,我們認(rèn)為這并不意味著Arduino團(tuán)隊是惡意的,或試圖使衍生產(chǎn)品的人生活困難。向’8u2的遷移使Arduino更加強(qiáng)大,并且易于安裝,因為安裝的驅(qū)動程序更少。盡管現(xiàn)在短缺,但最終市場上會有很多芯片。

Arduino論壇中的某些人已經(jīng)考慮組建一個小組,該小組將購買VID供Arduinites用于個人項目。這是一個很好的主意,并且可能是避免VID/PID沖突的最佳方法。在65,536個項目中,每個PID花費的錢很少。

當(dāng)然,因為它們沒有擺脫引導(dǎo)加載程序系統(tǒng),所以您可以始終使用FTDI芯片。

盾牌還在起作用嗎?

所有以前的屏蔽仍應(yīng)能正常工作,因為插頭間距相同,核心芯片相同且零件位置相同。實際上,由于3V電源已經(jīng)升級(請參見下一點),因此某些方法應(yīng)該工作得更好。

機(jī)箱,平板等仍然可以使用嗎?

是的! Uno在物理上與以前的Arduino具有相同的大小和布局。安裝孔在同一位置。現(xiàn)在,還有一個附加的安裝孔。

更多3.3v電源!

對于較舊的主板,一件可悲的事情是它們具有3.3v電源,但這實際上就是FTDI芯片內(nèi)部3.3v穩(wěn)壓器所能提供的。您可能會從中獲得50mA的電流。但是諸如XBees,SD卡,某些快速ADCDAC之類的高功率設(shè)備很容易將FTDI芯片拉下并重置USB連接。 Uno通過添加一個新的3.3V穩(wěn)壓器LP2985解決了這個問題,該穩(wěn)壓器可以輕松提供150mA電流。

LP2985是一款非常高質(zhì)量的穩(wěn)壓器,非常適合于為物品供電,并且非常漂亮。堅實的1%模擬參考。

為什么Arduino芯片可以20MHz運行時為何以16MHz運行?

這是一個常見問題。原因是第一個Arduino使用的Atmega8的運行速度不能超過16Mhz。隨著芯片的升級,他們希望使主板速度兼容。 Arduino也不是真正打算用于快速處理(無論如何它僅是8位的),因此芯片以16MHz運行。

它仍然是開源硬件嗎?和軟件?

是! Uno仍可在知識共享許可下使用。您可以在Arduino網(wǎng)站上獲得最新的原理圖和布局。

UNO R2和R3 在2011年秋季,Arduino團(tuán)隊透露將會有新的次要修訂經(jīng)典Arduino的“ UNO R3”(修訂版3)。許多人向我們詢問了有關(guān)R3的信息,因此,到目前為止,我們已經(jīng)掌握了所有信息。

UNO R3直到12月1日左右才對經(jīng)銷商銷售。真!直到那時還沒有人!

UNO R3向后兼容UNO-相同的驅(qū)動程序,相同的上載內(nèi)容,相同的外觀

UNO中有一些更改,這里是它們是什么:

USB控制器芯片已從atmega8u2(8K閃存)移動到atmega16u2(16K閃存)。 這并不意味著您的草圖具有更多的閃存或RAM 。此升級僅針對USB接口芯片 。從理論上講,這意味著使用低級USB接口(例如MIDI/操縱桿/鍵盤)會更加容易。 但是,這只是理論上的問題,沒有示例代碼或固件可以真正做到這一點。

另外還有三個突破針在PCB上,在AREF引腳旁邊有兩個I2C引腳(SDA/SCL)-這是模擬4和5引腳的重復(fù)。沒有額外的I2C接口或其他任何東西,只是因為I2C引腳位于Mega的不同位置,所以他們在那里復(fù)制了這些引腳以用作將來的屏蔽。復(fù)位引腳旁邊還有一個IOREF引腳-這是為了讓屏蔽層知道板上正在運行的I/O引腳電壓(對于UNO,為5V)。再次,這是電源引腳的重復(fù),它不會增加UNO的電壓電平。

“ RESET”按鈕已移到電源按鈕旁邊。 USB連接器,這樣在屏蔽層位于頂部時更易于按下。

這是UNO中沒有發(fā)生的變化:

處理器的尺寸和速度-自從Duemilanove以來,它的運行頻率為16MHz的ATMega328P相同。您的代碼不會在R3上更快或更佳地運行

相同數(shù)量的插針-沒有添加額外的插針甚至有更多的突破(請參見上文!)

電路板的尺寸和形狀-與以前相同的尺寸

屏蔽罩的兼容性-每個能正常工作并插入UNO R1/R2的屏蔽罩都應(yīng)該能夠在R3上正常工作

驅(qū)動程序-驅(qū)動程序是相同的

上傳速度-相同的上傳速度和技術(shù)

如果您想立即使用Arduino R3,請訪問adafruit商店,拿起木板或包裝!

Arduino庫

需要幫助庫?在此處查看我們針對所有操作系統(tǒng)的超級詳細(xì)教程:

http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use

什么是庫? 庫是很棒的地方,在美國還不是非法的!如果您需要學(xué)習(xí)如何做某事,例如修理摩托車,可以去當(dāng)?shù)氐膱D書館去拿書。當(dāng)然,您可以買書,但是圖書館很好,因為作為一種資源,您可以在需要時隨時獲得書,使房子整潔。

軟件圖書館非常相似。在第3課中,我們已經(jīng)研究了過程是什么:過程是要執(zhí)行的事情的列表。庫是過程的大集合,其中所有過程都相關(guān)!例如,如果您想控制電動機(jī),則可能需要找到一個電動機(jī)控制庫:一個已經(jīng)為您編寫的過程的集合,您可以使用這些過程,而不必進(jìn)行繁瑣的學(xué)習(xí)電動機(jī)的細(xì)微差別的工作。

例如,這是串行庫,它允許Arduino將數(shù)據(jù)發(fā)送回計算機(jī):

使用庫 Arduino項目的最佳功能之一是能夠添加預(yù)制的庫,以增加硬件支持。它們很多,您可以選擇安裝哪個。僅當(dāng)您正在處理的草圖需要它們時才加載它們,因此在大多數(shù)情況下,您可以下載并存儲它們以備將來使用。

草圖通常會依賴,在庫中,您可以通過查看草圖的頂部來查看它們的內(nèi)容。如果您看到以下內(nèi)容:

下載:文件

復(fù)制代碼

#include #include

這意味著您將需要一個名為FatReader的庫或包含文件FatReader的庫。如果未安裝,則會出現(xiàn)錯誤:

庫中有什么? 庫是其中包含一些文件的文件夾,這些文件將以 .cpp (C ++代碼文件)和 結(jié)尾。 h (C ++頭文件)。

可能還會有一些 .o 文件。 .o 文件是C ++編譯的對象。如果最終要處理庫并對其進(jìn)行修改,請確保刪除 .o 文件,因為這將迫使Arduino IDE將修改后的 .cpp 編譯為 .o 。

您可能會看到的兩個可選文件是 keywords.txt (這是一個提示文件,用于告訴Arduino IDE如何為草圖和示例文件夾上色,其中可能會有一些方便的測試標(biāo)記,這些標(biāo)記將顯示在“文件”→“示例”→“庫”下拉菜單下。

請記住!庫文件夾的結(jié)構(gòu)非常重要! .c 和 .h 文件必須位于文件夾的“最低級別”中,例如,您不能具有 Arduino/libraries/WaveHC/WaveHC/file.c 或 Arduino/libraries/MyLibraries/WaveHC/file.c -它必須為 Arduino/libraries/WaveHC/file.c

如何安裝庫在Arduino v16及更早版本中,庫存儲在 ArduinoInstallDirectory/hardware/libraries 文件夾中,該文件夾還包含所有內(nèi)置庫(如Wire和Serial)。

在v17及更高版本中,用戶庫現(xiàn)在存儲在 ArduinoSketchDirectory/libraries 文件夾中。您可能需要第一次制作庫 子文件夾。但是,這樣做的好處是,您不必在每次升級軟件時都移動并重新安裝庫。

例如,這是在Windows中安裝NewSoftSerial時的外觀。當(dāng)然您的用戶名會有所不同。)

在Mac上,您的arduino素描文件夾可能會被稱為 Documents/arduino ,因此請在名為 libraries 的內(nèi)部創(chuàng)建一個新文件夾,然后將未壓縮的庫放入

請檢查Documents/arduino/libraries/MyNewLibary文件夾中是否包含.cpp和.h文件。

完成后,重新啟動Arduino IDE。

Bootloader

這是一些高級的Bootloader調(diào)整-99%的Arduino用戶應(yīng)不要惹他們的引導(dǎo)程序!

用于Atmega328的引導(dǎo)加載程序,這里是“固定” ATmega328引導(dǎo)加載程序的軟件包。要對其進(jìn)行編程,可能需要更改Makefile的ISPTOOL等定義。命令為 make adaboot328;。 make TARGET = adaboot328 isp328 (我無法使用默認(rèn)的‘isp’目標(biāo),因此我制作了一個新目標(biāo))。

此版本具有一些修復(fù)程序:首先,它集成了下面的“ no-wait”和“ no-hang”修復(fù)程序。它還修復(fù)了在不使用IDE進(jìn)行編程時令人討厭的“缺少簽名字節(jié)”的錯誤。我還修復(fù)了EEPROM代碼,以便現(xiàn)在您可以上傳和下載EEPROM存儲器以及閃存。最后,對于沒有TX/RX指示燈的arduino克隆,LED會提供“上傳反饋”。

請注意,由于擴(kuò)展了內(nèi)存,該芯片的保險絲有所不同!

“ No-Wait”引導(dǎo)程序 這是一個引導(dǎo)加載程序hack,它將在上載后自動啟動草圖,并且僅在按下重置按鈕時才會啟動引導(dǎo)加載程序(因此,當(dāng)您插入電源時,它將直接進(jìn)入草圖)。 br》

復(fù)制以下行:

下載:文件

復(fù)制代碼

ch = MCUSR;

MCUSR = 0;

WDTCSR |= _BV(WDCE) | _BV(WDE);

WDTCSR = 0;

// Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot.

if (! (ch & _BV(EXTRF))) // if its a not an external reset.。.

app_start(); // skip bootloader ch = MCUSR;

MCUSR = 0;

WDTCSR |= _BV(WDCE) | _BV(WDE);

WDTCSR = 0;

// Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot.

if (! (ch & _BV(EXTRF))) // if its a not an external reset.。.

app_start(); // skip bootloader

并粘貼它們,如下所示:

下載:文件

復(fù)制代碼

/* main program starts here */

int main(void)

{

uint8_t ch,ch2;

uint16_t w;

ch = MCUSR;

MCUSR = 0;

WDTCSR |= _BV(WDCE) | _BV(WDE);

WDTCSR = 0;

// Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot.

if (! (ch & _BV(EXTRF))) // if its a not an external reset.。.

app_start(); // skip bootloader

/* set pin direction for bootloader pin and enable pullup */

/* for ATmega128, two pins need to be initialized */ /* main program starts here */

int main(void)

{

uint8_t ch,ch2;

uint16_t w;

ch = MCUSR;

MCUSR = 0;

WDTCSR |= _BV(WDCE) | _BV(WDE);

WDTCSR = 0;

// Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot.

if (! (ch & _BV(EXTRF))) // if its a not an external reset.。.

app_start(); // skip bootloader

/* set pin direction for bootloader pin and enable pullup */

/* for ATmega128, two pins need to be initialized */

現(xiàn)在,以相同的方式,復(fù)制以下代碼:

下載:文件

復(fù)制代碼

// autoreset via watchdog (sneaky!)

WDTCSR = _BV(WDE);

while (1); // 16 ms // autoreset via watchdog (sneaky!)

WDTCSR = _BV(WDE);

while (1); // 16 ms

并粘貼到此處:

下載:文件

復(fù)制代碼

/* Leave programming mode */

else if(ch==‘Q’) {

nothing_response();

// autoreset via watchdog (sneaky!)

WDTCSR = _BV(WDE);

while (1); // 16 ms

}

/* Erase device, don‘t care as we will erase one page at a time anyway. */

else if(ch==’R‘) {

nothing_response();

} /* Leave programming mode */

else if(ch==’Q‘) {

nothing_response();

// autoreset via watchdog (sneaky!)

WDTCSR = _BV(WDE);

while (1); // 16 ms

}

/* Erase device, don’t care as we will erase one page at a time anyway. */

else if(ch==‘R’) {

nothing_response();

}

您也可以在此處獲取源代碼和已編譯的十六進(jìn)制文件。

它將在NG或Diecimila Arduino中工作。

無掛機(jī)引導(dǎo)程序如果您使用的是自動安裝的Diecimila -reset當(dāng)通信程序意外觸發(fā)引導(dǎo)加載程序時,您可能會感到沮喪。這是一個快速的技巧,可以使引導(dǎo)加載程序在未首先收到‘0’字符的情況下退出(這表示Arduino軟件正在嘗試與之對話。)

復(fù)制以下行:

下載:文件

復(fù)制代碼

uint8_t firstchar = 0; uint8_t firstchar = 0;

并粘貼:

下載:文件

復(fù)制代碼

/* main program starts here */

int main(void)

{

uint8_t ch,ch2;

uint16_t w;

uint8_t firstchar = 0; /* main program starts here */

int main(void)

{

uint8_t ch,ch2;

uint16_t w;

uint8_t firstchar = 0;

復(fù)制:

下載:文件

復(fù)制代碼

firstchar = 1; // we got an appropriate bootloader instruction firstchar = 1; // we got an appropriate bootloader instruction

粘貼:

下載:文件

復(fù)制代碼

/* Hello is anyone home ? */

if(ch==‘0’) {

firstchar = 1; // we got an appropriate bootloader instruction

nothing_response(); /* Hello is anyone home ? */

if(ch==‘0’) {

firstchar = 1; // we got an appropriate bootloader instruction

nothing_response();

,然后將其粘貼到上面的代碼下方:

下載:文件

復(fù)制代碼

} else if (firstchar == 0) {

// the first character we got is not ‘0’, lets bail!

// autoreset via watchdog (sneaky!)

WDTCSR = _BV(WDE);

while (1); // 16 ms

} } else if (firstchar == 0) {

// the first character we got is not ‘0’, lets bail!

// autoreset via watchdog (sneaky!)

WDTCSR = _BV(WDE);

while (1); // 16 ms

}

您也可以只用 app_start()

上傳草圖 bootloader與‘stk500’兼容,這意味著您可以使用ol‘AVRDUDE對arduino進(jìn)行編程。

只需插入USB電纜即可。 ,然后在開始avrdude之前按重設(shè)。如果需要avrdude教程,請查看此頁面。

使用 -b 19200 將波特率設(shè)置為19200

設(shè)備簽名顯示為似乎不起作用,因此您需要使用 -F

編程器類型為 avrisp

設(shè)備類型為 -p m168

端口是FTDI芯片顯示的端口

升級

簡介

Arduino的“大腦”是一個稱為ATmega的微控制器。它是ATMEL(一家挪威芯片公司)的產(chǎn)品線。就像英特爾AMD每年發(fā)布新的更好的芯片一樣,Atmel也是如此。 Arduino的第一個版本(直至NG)使用ATmega8-一種具有8K閃存和1K RAM的芯片。然后Atmel發(fā)布了ATmega168,它是16K閃存和1K RAM的直接替代品-確實是一個很大的改進(jìn)!現(xiàn)在有了帶有32K閃存和2K RAM的ATmega328。

更新和更換Arduino既輕松又輕松,僅花費幾美元。您的草圖將像以前一樣工作,但還有更多的呼吸空間。

要執(zhí)行此升級,您將必須購買預(yù)編程的芯片,或者自己使用AVR編程器對其進(jìn)行編程,也可以通過對其進(jìn)行“位撞擊”。 p》

更換芯片首先,《使用小型平頭螺絲刀或類似工具從插座上強(qiáng)行輕輕地撬起Arduino微控制器。嘗試確保銷釘不彎曲。放在安全的地方。最好放在防靜電袋中。

下一步,準(zhǔn)備新芯片。 IC的引腳在出廠時略有傾斜,因此需要將其彎曲一點以使其平行。

span》

最后,更換舊芯片,排列所有引腳,并確保芯片上的凹口與插座上的凹口匹配!

下載具有ATmega328兼容性的Arduino IDE 版本13和更高版本的Arduino該軟件支持328!如果您從2009年2月5日之前從Adafruit購買的芯片,則波特率將設(shè)置為19200(與舊版Arduinos相同)。 2月5日之后,升級芯片更改為57600波特率(快3倍!),以便與新的Arduino兼容。如果您使用的是19200波特率的芯片,則上傳將很困難。只需退出Arduino應(yīng)用程序并在名為 boards.txt 的硬件文件夾中編輯文件,然后將行更改為:

下載:文件

復(fù)制代碼

atmega328.upload.speed=57600 atmega328.upload.speed=57600

至:

下載:文件

復(fù)制代碼

atmega328.upload.speed=19200 atmega328.upload.speed=19200

如果遇到問題,請同時嘗試以防萬一!

3.3V轉(zhuǎn)換

介紹 所有正式的Arduino都以5伏電壓運行,長期以來,這一直是業(yè)余電子產(chǎn)品和微控制器的“標(biāo)準(zhǔn)”電壓。但是現(xiàn)在最酷的新型傳感器,顯示器和芯片均為3.3V,不兼容5V。例如,XBee無線電,SD卡和天線表均以3.3V邏輯和電源運行。如果您嘗試以5V電壓連接到它們,則可能會損壞附件的內(nèi)部。

我們使用CD4050之類的芯片進(jìn)行電平轉(zhuǎn)換,但是如果您使用大量3.3 V設(shè)備,也許您最好將整個Arduino升級為從3.3V開始運行!

為此,我們將更換調(diào)節(jié)器,以使DC桶形插孔達(dá)到3.3v類型穩(wěn)壓器,不是5V。然后重新配置5V USB電源線,使其也通過調(diào)節(jié)器。

替換調(diào)壓器 默認(rèn)穩(wěn)壓器為5.0V類型,但我們希望輸出3.3V,因此需要替換它。我們將在TO-252-3封裝中使用1117-3.3V(有一些1117穩(wěn)壓器制造商,就像7805由許多工廠制造的)穩(wěn)壓器。看起來像這樣:

您可以從任何電子零件商店購買這些產(chǎn)品,例如,這里是digikey鏈接。

首先,我們需要刪除舊的調(diào)節(jié)器。最簡單的方法是先夾住兩條腿。

然后,您需要加熱凸耳以使其呈液體,以便可以將舊零件提起。盡管看似不直觀,但最好將添加焊料到接線片上,然后用鐵將其熔化,這會改善導(dǎo)熱性,因為接線片太大。

清理選項卡并刪除所有剪切的部分仍然卡住。

現(xiàn)在將新的3.3V穩(wěn)壓器排成一行,然后先焊接接線片,使用大量焊料并耐心等待,接線片就像散熱器一樣。

然后做兩條腿。

更換保險絲 下一部分有點棘手,USB插孔已經(jīng)給了我們5V的電壓,并且通常與穩(wěn)壓器的輸出有關(guān)(essentia通常,當(dāng)DC插孔未通電時,它有一個連接它的小電路。)

使USB 5V也通過調(diào)節(jié)器的最簡單方法是卸下保險絲并將二極管從USB輸出焊接到穩(wěn)壓器輸入。

您可以使用任何功率二極管,一個1N4001完美的,只需幾美分。

需要權(quán)衡的是,USB插孔沒有500 mA保險絲。好消息是,計算機(jī)將在USB連接器(計算機(jī)內(nèi)部)上擁有自己的保險絲,因此您不太可能會破壞PC。但是請注意,這會失去一點安全性。

用烙鐵加熱保險絲,再次添加焊料可能有助于導(dǎo)熱。由于保險絲的導(dǎo)電性很強(qiáng),您可以只加熱一側(cè)一段時間,兩端就會熔化。

將二極管短接并將引線彎曲。將沒有條紋(陽極)的一側(cè)焊接到最靠近電路板邊緣的舊保險絲墊上。將帶條紋的一端(陰極)焊接到調(diào)節(jié)器的右腳上。

Arduino仍將自動選擇為您提供更多電源的電源插頭。

就是這樣!您現(xiàn)在使用3.3V供電。這比AVR芯片的功率/頻率規(guī)格低一點,因為它們應(yīng)該具有大約3.6V的電壓才能運行16Mhz,但是自 可能 AVR可以超頻一點。

Arduino黑客

保險杠 讓導(dǎo)電跡線接觸您的桌子并不是很好,您可以通過在底部添加保險杠來保護(hù)Arduino。

您可以從McMaster Carr零件號購買。 95495K66(大量)或Adafruit

免費占用一些RAM 如果您正在處理需要很多 的項目,則可以釋放100個以上的字節(jié)(ATmega168上RAM的10%!)通過減少串行接收緩沖區(qū)。默認(rèn)情況下,它的128個字節(jié)相當(dāng)多!

打開 hardware/cores/arduino (或 cores/arduino )目錄,然后編輯名為 wiring_serial.c 或 HardwareSerial.cpp

的文件,靠近頂部的是 #define RX_BUFFER_SIZE 128 ,這意味著128個字節(jié)用于緩沖區(qū)。您可以將其更改為32(甚至16!)。如果幾乎沒有串行輸入,請使其盡可能低,只要其》0。

您還可以通過將 rx_buffer_head 和 rx_buffer_tail 從更改為另外2個字節(jié)》 int 到 uint8_t

ArduinoISP

簡介 許多人開始學(xué)習(xí)使用Arduino的微控制器,但隨后又想構(gòu)建自己的項目而不必犧牲開發(fā)板。或者,也許他們想制作自己的與IDE兼容的Arduino變體。無論哪種方式,一個常見的問題是如何將引導(dǎo)加載程序刻錄到新的AVR芯片上。由于AVR一片空白,因此需要將它們設(shè)置為與Arduino IDE兼容,但為此您需要一個AVR編程器(如USBtinyISP)。

好消息是,您可以使用現(xiàn)有的USB刻錄機(jī)加載引導(dǎo)加載程序Arduino僅需一點點工作。 arduino.cc站點上甚至還有一個迷你教程。

該教程是該教程的擴(kuò)展。首先,我們將展示如何通過將28針ZIF插座焊接到原型屏蔽層并使用Arduino的PWM輸出線生成時鐘來制造永久的引導(dǎo)程序刻錄機(jī)。這樣一來,您可以“救援”設(shè)置為錯誤類型的振蕩器的許多芯片,或者將設(shè)置為從外部振蕩器(大多數(shù)Arduino引導(dǎo)加載程序)更改為內(nèi)部的芯片(例如lilypad)。

零件 您將需要。..

Arduino

原型屏蔽套件

28針ZIF(零插入力)插座(您可以使用普通插座,但ZIF是理想的插座)

一些電線

空白ATmega328P

如果您從Adafruit購買了該套件,則會有一些額外的物品,例如壓電蜂鳴器,您可以在此項目的獨立版本中使用的LED,按鈕等,現(xiàn)在就將其忽略!

組裝 首先,將ZIF插座放置在原型屏蔽板上,如下所示:

焊接所有28個引腳一種牢固的連接!

將以下電線焊接到ZIF插座上

將數(shù)字1固定到數(shù)字10-藍(lán)色不要忘記將電線彎曲到下面以進(jìn)行連接焊接時連接到ZIF插座引腳!!!

引腳7至5V-紅色

引腳8接地-黑色

針9到數(shù)字9-灰色

針17到數(shù)字11-棕色

針18到數(shù)字12-橙色

針19到數(shù)字13-黃色

針20到+ 5V-紅色

針22到地-黑色

按照protoshield教程將紅色LED焊接到 LED1 位置,綠色LED置于 LED2 位置。還要在LED旁邊焊接兩個1.0K電阻。我們將使用LED作為指示器。然后,將LED2分支(白色)到模擬0的電線焊接,LED1分支(白色)到數(shù)字8的電線焊接。

最后,您需要在接頭上焊接以允許放置屏蔽,斷開0.1英寸的公接頭并將其放入Arduino插槽中,然后將上方的屏蔽層頂部焊接到位。

加載代碼

加載草圖的時間!從我們的Github存儲庫中獲取代碼并將其粘貼到新草圖中,然后將其上傳到Arduino。

我們有報告說此過程不適用于Arduino 1.5.2。請改用最新的主流Arduino版本!

將屏蔽層插入頂部,提起閂鎖,彈出芯片,然后放低閂鎖。確保芯片方向是這樣(因此,通過左側(cè)的杠桿,您可以閱讀文本):

在仍然插入USB電纜的情況下(并選擇與以前相同的串行端口),選擇工具→刻錄Bootloader→帶有Arduino的ISP

在更高版本的Arduino IDE,從 Tools→Programmer 菜單中選擇 Arduino as ISP ,然后從Tools菜單中選擇 Burn Bootloader 。

編程時,您將看到此消息,并且LED指示燈將熄滅。

就是這樣!別忘了,您可以刻錄幾種不同的種類引導(dǎo)加載程序,例如Uno,Duemilanove,Lilypad,因此,根據(jù)您的情況,您可能希望使用其中一種。

獎金!與AVRdude一起使用 您可以非常輕松地從命令行使用ArduinoISP,使用AVRdude,這是通過運行以下命令對AVR進(jìn)行編程的標(biāo)準(zhǔn)程序:

下載:文件

復(fù)制代碼

avrdude -c arduino -p atmega328 -P COMPORT -b 19200 -U flash:w:filetoburn.hex avrdude -c arduino -p atmega328 -P COMPORT -b 19200 -U flash:w:filetoburn.hex

代替 atmega328 ,您還可以編程 atmega8 atmega88 atmega48 atmega168等,等等
責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6490

    瀏覽量

    190075
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    免費分享Arduino入門+進(jìn)階(全套例程+書籍)

    Arduino是一款開源電子原型平臺,由硬件(單片機(jī)開發(fā)板)和軟件(編程環(huán)境)組成,旨在讓非專業(yè)用戶也能輕松入門電子制作和編程。它的核心思想是簡化硬件開發(fā),通過直觀的編程和模塊化設(shè)計,讓用戶快速實現(xiàn)
    的頭像 發(fā)表于 05-22 11:40 ?79次閱讀
    免費分享<b class='flag-5'>Arduino</b>入門+進(jìn)階(全套例程+書籍)

    《ESP32S3 Arduino開發(fā)指南》第二章 Arduino基礎(chǔ)知識

    第二章 Arduino基礎(chǔ)知識 本章,我們將向大家介紹Arduino是一個什么東西?讓大家對Arduino有一個大概了解。本章將分為如下幾個小節(jié):2.1什么是Arduino2.2
    發(fā)表于 05-13 09:28

    如何使用Arduino實現(xiàn)CAN總線通信呢

    CAN(Controller Area Network)總線是一種常用于汽車和工業(yè)控制系統(tǒng)的串行通信協(xié)議,以其高可靠性和實時性而聞名。Arduino,作為一種流行的開源微控制器平臺,可以通過附加
    的頭像 發(fā)表于 12-23 09:06 ?1586次閱讀

    Arduino采集雷達(dá)模塊數(shù)據(jù)與串口繪圖

    Arduino采集雷達(dá)模塊數(shù)據(jù)與串口繪圖
    的頭像 發(fā)表于 12-14 11:44 ?735次閱讀
    <b class='flag-5'>Arduino</b>采集雷達(dá)模塊數(shù)據(jù)與串口繪圖

    Arduino Nano Matter開發(fā)板正式上市

    Silicon Labs(芯科科技)和Arduino在近日共同宣布Arduino Nano Matter開發(fā)板現(xiàn)已正式上市。這是延續(xù)今年3 月芯科科技和Arduino釋出Arduino
    的頭像 發(fā)表于 12-10 13:50 ?779次閱讀

    HAL庫在Arduino平臺上的使用

    HAL庫在Arduino平臺上的使用 Arduino平臺是一個開源的電子原型平臺,它包括硬件(基于微控制器的電路板)和軟件(Arduino IDE)。Arduino平臺因其簡單易用而受
    的頭像 發(fā)表于 12-02 14:04 ?1427次閱讀

    開源項目!基于 Arduino 的 MIDI 架子鼓

    MIDI 鼓的整個過程 - 從使用壓電傳感器到使用 3D 打印設(shè)計布局,再到使用 Arduino Leonardo 進(jìn)行編碼。 此設(shè)置可與 GarageBand、Ableton 等程序無縫協(xié)作。和我一起
    發(fā)表于 11-25 12:00

    基于Arduino的串口通信項目

    基于Arduino的串口通信項目涉及多個方面,包括硬件連接、軟件編程、串口參數(shù)配置等。 一、硬件準(zhǔn)備 Arduino開發(fā)板 :確保你有一塊Arduino開發(fā)板,如Arduino Uno
    的頭像 發(fā)表于 11-22 09:24 ?1936次閱讀

    stm32與Arduino的比較

    在微控制器的世界里,STM32和Arduino是兩個經(jīng)常被提及的名字。STM32是一系列由STMicroelectronics生產(chǎn)的高性能微控制器,而Arduino則是一個開源電子原型平臺,基于易于
    的頭像 發(fā)表于 11-19 15:45 ?3831次閱讀

    如何使用Arduino實現(xiàn)CAN總線通信

    CAN總線(Controller Area Network)是一種多主控制的串行通信協(xié)議,廣泛應(yīng)用于汽車電子、工業(yè)自動化等領(lǐng)域。它以其高可靠性、實時性和靈活性而受到青睞。Arduino作為一個
    的頭像 發(fā)表于 11-12 10:09 ?2475次閱讀

    樹莓派與Arduino的區(qū)別是什么

    在當(dāng)今的科技世界中,樹莓派(Raspberry Pi)和Arduino是兩個經(jīng)常被提及的名字。它們都是開源硬件平臺,但它們的目標(biāo)、功能和用途卻大相徑庭。 1. 目標(biāo)和用途 樹莓派(Raspberry
    的頭像 發(fā)表于 11-11 11:14 ?2076次閱讀

    arduino(1)--ESP8266配置

    硬件準(zhǔn)備 首先需要準(zhǔn)備一個開發(fā)板,這里我準(zhǔn)備的是淘寶購買的兼容arduino的ESP8266模塊。 arduino配置 我使用的是arduino來編程實現(xiàn),故需要下載對應(yīng)的庫文件,打開
    發(fā)表于 09-06 11:00

    怎樣用Arduino測試鋰電池容量

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

    idf-arduino component組件怎么設(shè)置 ?

    idf -arduino component組件該怎么設(shè)置 ,。 CMake Warning at E:/COMPILE/Othert/IDF4.4/esp-idf-v4.4/tools
    發(fā)表于 06-12 07:27

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

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