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

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ů.

Datum
Vložil
Titulek

Re: Re: Re: Navod ako vyrobit I2C relé

100 metrů? co tím ovládáš?

<< 1 | 2

Vyhledávání

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