Lekce 22 - Arduino bez Arduina

06.07.2013 21:01

Translate to English

Při vývoji našich aplikací se dostaneme jednou do stádia, kdy budeme chtít něco praktického postavit. Jistě by to asi šlo. Celé Arduino by jsme dali do nějaké pěkné krabičky i s ostatními součástkami. Ale není to škoda? Trošku Vám dnes nastíním způsob jak by se to dalo elegantně vyřešit. Když se podíváme na Arduino UNO vidíme mikroprocesor ATMega328 zasazený v 28 pinové patici. To je jádro celého Arduina. Na tomto obvodu je již nahrán bootloader (zavaděč), který je potřebný pro komunikaci s počítačem. Takže když si koupíte nový ATMega328 a zasadíte do do patice fungovat Arduino nebude. Na trhu se ovšem již dají sehnat náhrady již s nahraným bootloaderem. 

Co budeme tedy potřebovat. Připravíme si buď mikroprocesor ATmega328 s již nahraným booloaderem nebo budeme používat ten co je tam zasazený. Já jsem si sehnal jiný náhradní (ovšem původní v UNU stejně musím vyndat - později pochopíte). Dále budeme potřebovat krystal 16MHz dva kondenzátory 18-22pF a jeden odpor 10kOhm. Samozřejmě také nějaké nepájivé kontaktní pole (do desky plošných spojů si můžete napájet již vyzkoušený prototyp :-) ). 

Pro základní zapojení Arduina bez Arduina není opravdu potřeba mnoho součástek

Při vyndavání mikroprocesoru postupujte velmi opatrně ať nepoškodíte patici ani samotnou ATMega328. Pozornost věnujte také jak se procesor orientován. Při pohledu shora na Arduino Uno je značka napravo, takže text na procesoru je vzhůru nohama. Když ho tam budete vracet tak orientaci dodržujte! Jinak to fungovat potom už nebude a mohlo by dojít k poškození :-(.

Pomožte si třeba menším šroubováčkem. Hlavně opatrně a nezohýbejte vývody mikroprocesoru.

Mikroprocesor zasuneme do desky nepájivého kontaktního pole tak aby jsme měli text na něm normálně čitelný a neyl vzhůru nohama - takže klasicky značka (výřez) bude vlevo. Na internetu jsem našel fotografii, jak si někdo vyrobil na tento mikroprocesor nálepku pro lepší orientaci, vypadá takto a nám i teď tento obrázek trošku pomůže. 

Pro jistotu tabulka zapojení vývodů:

1 RESET  
2 DIGITAL PIN 0 TX
3 DIGITAL PIN 1 RX
4 DIGITAL PIN 2  
5 DIGITAL PIN 3  
6 DIGITAL PIN 4  
7 Vcc (+)  
8 GND (-)  
9 XT1 krystal
10 XT2 krystal
11 DIGITAL PIN 5  
12 DIGITAL PIN 6  
13 DIGITAL PIN 7  
14 DIGITAL PIN 8
15 DIGITAL PIN 9  
16 DIGITAL PIN 10  
17 DIGITAL PIN 11  
18 DIGITAL PIN 12  
19 DIGITAL PIN 13  
20 Vcc (+)  
21 AREF  
22 GND  
23 ANALOG PIN 0  
24 ANALOG PIN 1  
25 ANALOG PIN 2  
26 ANALOG PIN 3  
27 ANALOG PIN 4 SDA
28 ANALOG PIN 5 SCL

 

Těch pár součástek si hravě zapojíme. Krystal na vývody 9 a 10 (u krystalu polarita není tak jedno jak) a kondenzatory 18-22 pF také k těmto vývodům a k zemi. 

Pak si připojíme odpor 10kOhm u vývodu 1 k Vcc (+). To je vývod RESETU, jakmile by jsme přivedli k tomuto vývodu GND (-) obvod by byl v resetu. Na desce Arduina je k tomuto zapojeno tlačítko RESET. A zapojíme napájení (+ na 7 a - na 8). Tím je úplné základní zapojení hotové. Opravdu jednoduché :-)

Aby jsme si ukázali, že to něco bude dělat připojíme k vývodu 14 (což pro nás znamená podle tabulky digital pin 8) LED diodu přes odpor 1,2KOhm. Napájení zatím pro pokus vezmeme z desky Arduina (5V a GND)

Na něco jsme, ale asi zapomněli :-). V mikroprocesoru nemám žádný program, který by nám něco dělal (nebo to co by jsme chtěli). Takže ho z kontaktního pole vyndáme a opatrně vložíme do Arduina, kde do něj normálně nahrajeme tento program:

Tento program nedělá nic jiného než, že v cyklu rozsvítí LED diodu na digitálním pinu 8 na 0,3 sekundy a poté jí zase na 1,7 sekundy zhasne. Já jsem již program nekomentoval v kódu, z předchozích tutoriálů musí být vše již jasné. Z obrázku vidíte, že jsem použil napájení z Arduina, takže taková malá "pupeční šňůra" nám zůstala. To se dá vyvřešit následnovně. Vezmeme jiný zdroj 5V a nebo použijeme např. 9V baterii. Ovšem k 9V baterii musíme, aby jsme získali napětí 5V použít stabilizátor např. 7805, který na výstupu nám dá již potřebné napětí. 

Jedná se taktéž o velmi levnou součástku. Na internetu najdete spoustu zapojení s tímto obvodem, ale funguje snad i bez dalších součástek. Já jsem vzhledem k tomu, že používám 9V baterii dal před a za stabilizátor kondenzátor 10nF podle nějakého návodu (na internetu se hodnoty kondenzátorů značně liší ve schématech) já použil 10n, ale můžete i 100nF - sami si vyzkoušejte. Tyto kondenzátory pouze blokují rozkmitání.

Ve stabilizátoru se přebytečná energie mění na teplo. Naše aplikace odebírá cca 30mA, ztrátový výkon je tedy I * (Uvstupní - Uvýstupní) což je 0,03*(9-5)=0,12W. V případě. že by naše zařízení mohlo odebírat více např. 0,5A by jsme si spíše z naší baterie topili a nevydržela by moc dlouho. V tomto případě by jsme napětí mohli snížit spínaným zdrojem, ale o tom si tady vyprávět nebudeme :-).

Zapojení s napájením z 9V baterie s použitím stabilizátoru 7805

Takže i napájení jsme nějakým způsobem vyřešili a můžeme si zkusit připojit třena displej na I2C. Víme že ho máme na A4 (SDA) což je teď vývod 27 a A5 (SCL) je na vývodu 28. Program k tomu můžeme zkopírovat z tutoriálu, kde jsme LCD na I2C zkoušeli. Nezapomeňte opatrně vyndat mikrokontrolér z desky kontaktního pole a vložit jej snad bez poškození do Arduina a značkou vpravo (obráceně). Program nahrajeme, a vložíme zpět na naše kontaktní pole. 

Nápis "Ahoj lidi" se nám zobrazí ihned po zapojení baterie. Já jsem si ještě připojil RTC modul a na displeji jsem zobrazoval hodiny:

Sami vidíte, že si Arduino můžete osamostatnit pokud budete potřebovat. Pro konečnou aplikaci si vyrobíte svůj plošný spoj, kde mikrokontrolér bude mít vlastní místo a celé zařízení bude vypadat daleko profesionálněji, než Arduino s napíchanými vodiči :-).

Zpět

Diskusní téma: Lekce 22 - Arduino bez Arduina

Datum
Vložil
Titulek

NEFUNGUJE TO

Dobrý den, pokouším se zprovozni ATMegu podle výše uvedeného návodu, ale ne a ne to fungovat :-/ Když nahraji program pro LED a je mikrokontrolér umístěn v Arduinu vše funguje. Když ovšem mikrokontrolér vyndám a zapojím podle návodu nic se neděje. Kabely jsem prošel několikrát, vše sem proměřil, proud de všude takže nějaký "studeňák" nepřichází v úvahu. Nevím jak dál. Nesetkal se tady někdo s podobným problémem? Předem děkuji. BTW super blog.

Datum
Vložil
Titulek

Re: NEFUNGUJE TO

Mám takto zapojeno již hodně ATmega8 a fungují perfektně. Takže bych se zeptal:
- Měřil jsi napájení přímo na procesoru v kontaktním poli? Měl by jsi mít řekněme 4,5 až 5V
- Použil jsi krystal 16MHz jako je na desce arduina? Program je totiž pro tuto frekvenci přeložen.
- Kondenzátory u krystalu doufám máš? Ta jejich hodnota 18p až zhruba 33p je sice hodně malá, ale důležitost prakticky zásadní.
- Nějaký ten odpor (zhruba 10K) mezi RESET a plus napájení máš? Reset pin je hodně citlivý na rušení a klidně se nechá resetnout dotykem prstu

Datum
Vložil
Titulek

UART??

zdar,

UART umoznuje adresovani? abys treba vedel ktery svetla ti svitej :)

osobne se klonim k ty 485 ....

Datum
Vložil
Titulek

Arduino bez arduina

Neni zazita dobra praxe davat k mikrokontroleru co nejblize k pinum napajeni maly keramicky kondenzator?

Datum
Vložil
Titulek

Digital pins

V tabulke su prehodene RX a TX

Datum
Vložil
Titulek

Re: Digital pins

Díky opravím :-)

Datum
Vložil
Titulek

Re: Navod ako vyrobit I2C relé

Toto by bylo asi nejlepší přes RS485. Jinak pěkné stránky :-)

Datum
Vložil
Titulek

Navod ako vyrobit I2C relé

Zdárek,
veľmi dobrý blog. Mohol by si napísať článok ako vyrobiť relé ovládané cez I2C, respektíve komplet tlačidlo pre ovládanie osvetlenia, zabudovateľné do krabičky. Teda manuálny spínač + ovládanie cez zbernicu.

Datum
Vložil
Titulek

Re: Navod ako vyrobit I2C relé

Bohužel, v tomto případě bude využití I2C pro sběrnicové ovládání světel v domě nevhodné. Vzhledem k tomu, že sběrnice (její fyzické vedení) musí mít kapacitu do 400pF omezuje to její délku na několik metrů. Je vhodná k připojování různých zařízení a modulů kompletovaných do jednoho celku nebo přístroje.

Datum
Vložil
Titulek

Re: Re: Navod ako vyrobit I2C relé

Doporučuji UART, má dosah i několik kilometrů :) (samozřejmě je třeba zvýšit napětí.). Mě běhá na 5ti voltech na 100 metrech bez problémů.

1 | 2 >>

Vyhledávání

arduino8.cz © 2015 Všechna práva vyhrazena.