Obsah:
- Krok 1: Budování samostatného Arduina
- Krok 2: Zapojení ISP
- Krok 3: Upravte soubor bootloaderu, vypalte bootloader a nahrajte svou skicu
- Krok 4: Sériová komunikace
Video: Samostatné hodiny Arduino 3,3 W / externí 8 MHz programované z Arduino Uno prostřednictvím ICSP / ISP (se sériovým monitorováním!): 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Cíle:
- Postavit samostatné Arduino, které běží na 3,3 V z externích hodin 8 MHz.
-
Chcete-li jej naprogramovat prostřednictvím ISP (také známý jako ICSP, sériové programování v obvodu) z Arduino Uno (běží na 5V)
Chcete -li upravit soubor bootloaderu a vypálit bootloader (přes ISP)
-
Aby bylo možné číst sériové informace ze samostatného Arduina pomocí kabelu FTDI
Aby bylo možné číst sériové informace ze samostatného Arduina bez kabelu FTDI
Preambule:
Snažil jsem se vybudovat svůj samostatný projekt, ale neviděl jsem žádné komplexní průvodce spuštěním, programováním a monitorováním samostatného Arduina - zejména jednoho, který běží na externích hodinách 8 MHz a 3,3 V a programuje Arduino UNO. Dal jsem dohromady několik samostatných průvodců a snažil jsem se uvést, odkud jsem získal informace, abych poskytl kredit tam, kde je splatný kredit. Tato příručka je výsledkem mnoha dní hledání řešení a hledání jejich částí v době, kdy jsem stavěl svůj vlastní projekt. Také jsem propojil několik užitečných produktů, které by se dostaly do rukou, ne proto, že jsem přidružen k některému z společnosti, ale protože je důležité zahrnout konkrétní položky, o kterých mluvím.
Časté otázky, než začneme:
Proč ho potřebujete programovat s ISP a monitorovat přes FTDI? Proč to prostě nemůžete naprogramovat přes FTDI?
Budeme muset změnit nastavení pojistek vypálením nového bootloaderu a nemůžete to udělat přes sériovou komunikaci. Bootloader musíte vypálit přes ISP. To je také užitečné pro ty, kteří nemají předem načtený čip ATMEGA328.
Proč nepoužiji kabel ISP se sériovým monitorováním, jako je tento?
Možná, stejně jako já, náhodou nemáte a místo toho, abyste čekali, až vám bude někdo doručen, budete chtít použít to, co máte! Náhodou mám kabel FTDI (i když nakonec zjistíte, že ho ani nepotřebujete: jen vám usnadňuje život).
Nepotřebuji logický posunovač úrovně z Uno na samostatné Arduino?
Ano, máte, ale já vám ukážu, jak si jeden vyrobit sami. Stejně jako kabel ISP jsem ani náhodou neměl.
Chci to spustit z externího napájení. Jak to udělám?
Existuje spousta průvodců, které ukazují, jak spustit samostatné Arduino z baterie. Napíšu, jak jsem to udělal, a dám sem odkaz [vložím později].
PRŮVODCE
Krok 1: Budování samostatného Arduina
1) Vytvořte samostatné Arduino z tohoto odkazu. Jediná část průvodce, kterou potřebujete, je „Základy ATMEGA8/168/328“.
- můžete napájet samostatné Arduino z 3,3 V z Arduino Uno. (První část tutoriálu s názvem „Přidání obvodu pro napájecí zdroj“můžete přeskočit.
- Nahraďte hodiny 16 MHz hodinami 8 Mhz.
-
Přidejte 0,1 uF cap mezi: VCC a Gnd (obě strany) VRef a Gnd.
- Nemám je na obrázku, ale mám je ve svých projektech!
- Vím, že na fotografii je to oscilátor 16 MHz. Fotografoval jsem, než jsem přišel na vše, co jsem v průvodci udělal!
Zdroj obrázku pinoutu ATMEGA328p zde.
Běžné tipy pro řešení potíží
- Ujistěte se, že jste resetovali vysoko nastavený odpor 10k z VCC na pin 1 ATMEGA. Pokud je kolík uzemněn nebo plovoucí, nebude fungovat.
- Znovu zkontrolujte, zda jste správně vložili vodiče a oscilátor.
- Pro 8 MHz oscilátor zajistěte použití kondenzátorů 22 pF. Jinak to nepůjde.
- Ujistěte se, že je zařízení napájeno.
Krok 2: Zapojení ISP
2) Vytvořte část ISP
Tuto příručku zde budete sledovat malým, ale velmi důležitým krokem.
Důvodem, proč se nemůžete jednoduše řídit průvodcem, je to, že vám chybí zásadní část: nemůžete naprogramovat 3,3V zařízení přímo z 5V připojení. (Alespoň jsem nemohl: dokud to neudělám, nebude to fungovat). Musíte vložit logický řadič úrovně, který přesouvá signály 5V z UNO do 3.3Vstandalone Arduino.
Pokud nemáte desku řadiče logické úrovně, můžete si ji vyrobit pomocí odporů. Logický řadič úrovně opravdu je (pokud řadíte dolů) je dělič napětí. Budete potřebovat 6 stejných rezistorů, nic příliš vysokého ani příliš nízkého. Použil jsem 220 ohmové odpory, ale jsem si jistý, že i 10k odpory by fungovaly.
U SCK (digitální pin 13) a MOSI (digitální pin 11) použijte dělič napětí ke snížení napětí o jednu třetinu. V podstatě budete mít jeden Uno SCK a MOSI, pak odpor (220 ohmů), pak SCK a MOSI připojené k samostatnému Arduinu a 2 odpory (celkem 440 ohmů) k zemi.
Přečtěte si tedy průvodce připojený na začátku této části, ale zahrňte děliče napětí mezi SCK a MOSI. Pamatujte, SCK, MISO, MOSI a RESET jsou piny 13, 12, 11 a 10 na Uno, ale jsou piny 19, 18, 17 a 1 na samostatném Arduinu!
Běžné tipy pro řešení potíží
-
ZKONTROLUJTE ZAPOJENÍ
- Pokud při pokusu o zápis programu získáte podpis všech 0, pak je vaše zapojení téměř jistě vypnuté nebo samostatné Arduino nedostává energii.
- Také se ujistěte, že máte resetovací vodič od 10 na Uno do 1 na samostatném Arduinu
-
ZKONTROLUJTE ROZDĚLOVAČE NAPĚTÍ
Ujistěte se, že máte děliče napětí s poměrem 1: 2 (vysoká strana: dolní strana) pro rezistory pro SCK i MOSI. Např. 220 odpor na straně +5 V a poté 2 220 ohmové odpory (celkem 440 ohmů) směrem k zemi se signálem směrem k samostatnému Arduinu uprostřed
Krok 3: Upravte soubor bootloaderu, vypalte bootloader a nahrajte svou skicu
3) Upravte soubor bootloaderu (boards.txt) a vypalte bootloader na samostatné Arduino. Nahrajte svůj náčrt
Úprava souboru zavaděče
Aby bylo možné spustit samostatné Arduino, budete muset upravit nastavení pojistky Brownout zavaděče. V opačném případě na něm budete moci vypálit bootloader, ale nebudete moci spouštět žádné skici.
Detekci Brownout můžete úplně odstranit, ale nedoporučoval bych to. Místo toho jej snížíme z 2,7 V (to, co mi přišlo na čip jako výchozí) a nahradíme jej 1,8 V. Nakonec si však můžete pomocí kalkulačky pojistek vybrat, jaké nastavení procházení chcete.
Soubor mých desek byl v následujícím umístění:
C: / Program Files (x86) Arduino / hardware / arduino / avr
Ve složce s hardwarem však můžete mít více než jeden soubor boards.txt než /arudino /. Budete upravovat soubor boards.txt v umístění / arduino /, protože budete upravovat sekci ATMEGA328p (3,3 V, 8 MHz).
Upravený soubor boards.txt můžete ztratit, pokud přeinstalujete nebo aktualizujete Arduino IDE (podle tohoto příspěvku). To znamená, že pokud aktualizujete Arduino IDE, budete muset tato nastavení znovu změnit, pokud chcete vytvořit další ze stejného samostatného Arduina.
V souboru boards.txt přejděte dolů nebo vyhledejte „Pro Mini“. Sekce má název „pro.name = Arduino Pro nebo Pro Mini“. Přejděte dolů do podsekce „pro.menu.cpu.8MHzatmega328 = ATmega328P (3,3V, 8 MHz)“.
Vyhledejte řádek s nápisem „pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = _“
Změňte nastavení na xFE. (pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses = 0xFE).
Uložit a odejít.
Vypalování bootloaderu
Jakmile to uděláte, můžete od kroků 1 až 5 postupovat podle části „Pokyny“v průvodci ISP.
Některé věci k upřesnění:
-
Když nahráváte skicu „Arduino jako ISP“, musíte zajistit, abyste vybrali správný COM port a procesor.
V tomto případě to znamená, že jste vybrali COM port vašeho Arduina v Tools-> Port: COM X (Arduino Uno) a deska je Arduio Uno
-
Vyberte správného programátora: v části Nástroje-> Programátor-> Arduino jako ISP.
NE ArduinoISP nebo ArduinoISP.org
-
Před vypalováním bootloderu změňte desku „Pro nebo Pro Mini“a procesor na „ATMEGA328p (3,3 V, 8 MHz)“.
Sekci procesoru neuvidíte, dokud nevyberete správný typ desky
Dříve, než se na něj pokusíte napsat skici, vypalte bootloader na samostatné Arduino.
Nahrávání skici
Tohle je velmi důležité. Nyní můžete programovat Arduino: Uno a Standalone. Pokud nenahrajete na správné zařízení, musíte zopakovat výše uvedenou část a přepsat Arduino jako program ISP na Uno.
Při nahrávání skici se ujistěte, že jste klikli na Nástroje -> Nahrát pomocí programátoru NEBO klikněte na Ctrl+Shift+U. Můžete také podržet shift a kliknout na ikonu šipky, ale nekliknout na ikonu šipky bez podržení shift.
Běžné tipy pro řešení potíží
- Pro řešení potíží zapněte podrobný výstup.
-
„Všechny podpisy zařízení jsou 0!“[K tomu velmi pravděpodobně dojde.]
- viz část ISP Wiring. Buď jste nesprávně zapojili samostatné Arduino, nebo není zapnuto.
- Ujistěte se, že jste vybrali správný port COM a desku / procesor. Když vypalujete zavaděč, MUSÍTE se ujistit, že na něm vypalujete zavaděč Pro Mini 3.3V 8 MHz, jinak nebudou správně nastaveny pojistky.
-
"Upravil jsem soubor boards.txt, ale nevidím úpravy"
Ujistěte se, že jste upravili správný soubor boards.txt. Pokud úpravy nefungují, zkuste aktualizovat Arduino IDE, nebo dočasně odeberte další složky ve složce / hardware /
-
„Nemohu najít profi mini sekci boards.txt!“
Nehledáte správný soubor boards.txt. Zkontrolujte složku Arduino // hardware/arduino/
Krok 4: Sériová komunikace
4) Monitorujte samostatné zařízení prostřednictvím sériové komunikace
Opravdu to můžete udělat dvěma způsoby, takže pokud nemáte ani FTDI kabel / breakout desku, není to konec světa. A pamatujte si, že skica, kterou jste nahráli do samostatného Arduina, musí mít prohlášení Serial.print, abyste si je mohli přečíst: pokud jste to nenapsali do programu, nic neuvidíte!
Pokud nemáte kabel FTDI
Poté, co spustíte zavaděč a napíšete požadovaný program, můžete (velmi opatrně a pamatovat si, v jaké orientaci se vrací) odstranit čip ATMEGA328 DIP z Arduino Uno. K tomu doporučuji použít plochou hlavu.
Samostatné Arduino RX můžete připojit k Uno RX a TX k TX. Ano, obvykle je to naopak, ale Uno můžete považovat za „přeposílání“informací na sériový monitor IDE. Proto v tomto případě nepřipojujete RX k TX a TX ro RX. Když běžíte svůj program, ujistěte se, že máte vybrán COM port Arduino Uno a otevřete sériový montor. Budete moci vidět sériový výstup standardního Arduina.
(Toto řešení je připsáno Robin2 zde.)
Pokud máte kabel / desku FTDI
(Používám FTDI desku Sparkfunu, kterou jsem pomocí pájecí podložky na zadní straně převedl na 3,3 V)
Jednoduše připojte GND breakout desky k samostatné zemi Arduina a připojte RX breakoutboardu k Arduino TX a TX k RX. (Pokud provádíte POUZE sériové monitorování a nepíšete nic zpět, stačí připojit RX breadoutboardu k Arduino TX).
V tuto chvíli mějte na paměti, že máte možnost napájet samostatné Arduino pomocí Uno NEBO kabelu FTDI. Nepřipojujte oba zdroje napájení současně! Všimněte si toho, že budete muset změnit COM port, protože bude jiný než Arduino Uno COM port.
Běžné tipy pro řešení potíží
-
„Nic nevidím!“
- Zkontrolujte, zda máte povolený správný port COM.
- Zkontrolujte, zda máte nejnovější ovladače FTDI.
- ZABEZPEČTE PŘIPOJENÍ UZEMNĚNÍ.
-
„Všechno, co vidím, je odpadkový výstup na sériovém monitoru!“
- Dostáváte něco, co je dobré znamení.
- Zkontrolujte však napětí desky FTDI.
- Samostatné Arduino má na svém TX výstup 3,3 V a deska FTDI jej nemusí zachytit, pokud očekává 5 V.
- Zkontrolujte přenosovou rychlost.
- Ujistěte se, že máte připojenou zem a pouze jeden zdroj napájení! (Tj. Nezapojujte samostatné Arduino z Uno A vaší desky FTDI.
Doporučuje:
Velké hodiny Arduino LCD se dvěma alarmy a monitorováním teploty ovládané dálkovým ovladačem IR TV: 5 kroků
Velké hodiny Arduino LCD se dvěma alarmy a monitorováním teploty ovládané dálkovým ovladačem IR TV: Jak postavit hodiny LCD založené na Arduinu se dvěma alarmy a monitorem teploty ovládaným dálkovým ovladačem IR TV
Levné počítače: Arduino se sériovým TTL: 3 kroky
Levné počítače: Arduino se sériovým TTL: Velká část nákladů na arduino v plném rozsahu, jako je UNO, je cena rozhraní USB (poznámka Pravda, když to bylo napsáno, ale to již není pravda, USB je nyní levné. Můžete stále chci jít na TTL seriál z jiných důvodů.). Zbavte se toho
DIY Samostatné Arduino Uno: 5 kroků
DIY Samostatné Arduino Uno: V tomto projektu řeknu, jak můžeme vyrobit DIY Arduino Uno pouhým nastavením na prkénko. To lze provést z různých důvodů, jako je zlevnění, malá velikost, snížení spotřeby energie atd. Tento projekt vám poskytne způsob, jak
Převeďte domácí obyčejné hodiny na samostatně zářící hodiny: 8 kroků (s obrázky)
Převeďte domácí obyčejné hodiny na samostatně zářící hodiny: PRVNÍ DÁVÁM SVÉ HEARTILKY DÍKY INSTRUKTIVNÍM TÝMU, KTERÝ SE MÉM ZDRAVOTNÍM DENŮM ZÍSKÁVÁ DEN ODPOVĚDNĚJI ….. V tomto návodu se s vámi chci podělit o to, jak převést domácí běžné hodiny do samostatně zářících hodin. > > Za to, že
ROOMBA Řídí ARDUINO YUN prostřednictvím aplikace Wifi od STEFANO DALL'OLIO: 4 kroky (s obrázky)
ROOMBA Driven by ARDUINO YUN Via Wifi App by STEFANO DALL'OLIO: S touto příručkou sdílím kód pro připojení ARDUINO YUN k Roomba za účelem ovládání Roomba přes Wifi. Kód a aplikaci si plně vytvořil a vyvinul sám Stefano Dall ' Olio.Moje Roomba je Roomba 620, ale stejný kód můžete použít i pro ostatní Roomb