Nesmysl, prave sem zmeril atmega8, na pin nastavenej na H jsem pripojim naprimo cervenou diodu (20mA/1.8V) a bylo na ni U=3.88V I=30mA coz znamena ze vnitrni odpor v MCU je (5-3.88)/0.03 = 37 Ohmu
Podle datasheetu je max zatizeni vystupniho pinu 40mA, takze se MCU asi nespali, ale dioda po nejakem case pravdepodobne ano.
Do datasheetu jsem se nedíval, takže se nehádám. Fakt je, že se tam nějaký odpor dává, a 130 ohmu myslím bylo u klasických hradel, nevím. Kdysi jsem to měřil. Každopádně to bývá jako ochrana proti zkratu, na logickou úroveň H není třeba žádný velký proud, stačí cokoliv, co je schopno dostatečně otevřít případný tranzistor (v nejhorším případe dva tranzisory). 40mA mi přijde snad až moc.
Zrovna teď se snažím navrhnout obvod pro ovládání trakce u mašinek (analog +/-16V) s nulovou kolejnicí (symetrický zdroj).
Programově to problém nebude, výstup PWM, a ovládání směru. Koncový stupeň ale tak snadná záležitost není, klasický můstek použít nejde (nulová kolejnice)
Zdravim a dekuji za clanek, popsal jste to perfektne.
Vubec se mi nechce verit ze je to tak primocare:
- napsat aplikaci v Arduino GUI s pouzitim knihoven pripojenych shieldu atd.
- vymyslet protokol vlastni komunikace a jeho zpracovani v cyklu
- prenest program do Arduina (predpokladam ze potrebne casti pouzitych
externich knihoven atd. se prenesou automaticky a neni potreba to
dale specialne resit)
- z jakehokoliv programovaciho jazyka posilat prikazy komunikacniho
protokolu primo do portu
To je snad sen....
Opravdu, upload je jedním tlačítkem v GUI, sám si to přeloží a sám uploaduje a resetuje.
Externí knihovny řešit netřeba, předpokládám, že se to linkuje staticky, takže výsledná binárka obsahuje vše co potřebuje :-)
Jinak v omezené 1KB RAMce je k dispozici klasická halda, takže tam lze používat malloc, free, new, delete, proto tam je třída pro práci s řetězci. Musí se tam ale vejít i zásobník.
Arduion je osmibitový procesor, všechny inty jsou "dvojbajtové", adresy taky (je to nezvyk, když člověk dělá na platformě x64), jinak se tam dá programovat opravdu tak, jak je člověk zvyklý. Dokonce lze používat i C++ šablony a virtuální metody :-). Nechodí výjimky (throw)
Akorát člověka může trošku rozhodit Hardwarská architektura, totiž, že si nelze ukázat na data v programu pointerem, takže buď se všechny R/O data rvou do RAMky (a plejtvají cenný prostor), nebo se musí z ROMky přenášet pomocí speciálních funkcí. To se dá přežít.
Doporučil bych použít jako firmware do Arduina Firmata (http://firmata.org/wiki/Main_Page). Implementuje přesně tuto variantu ovládání a nemusíte se s tím psát sami.
Netušíte o emulátoru arduina?
Ona by stačila možná knihovna s nějakou grafickou nadstavbou, která by měla stejné api jako vlastní system.
Sice má chip flashku, který by měl teoreticky zvládnout 100tis přepisů, nicméně bych nerad takto vyvíjel software. Také nepředpokládám, že flashka má wear-leveling, takže čím zuřivěji budu vyvíjet, tím větší pravděpodobnost, že to brzo oddělám.
existuje i avr pro eclipse (http://avr-eclipse.sourceforge.net/wiki/) co by mělo jít i na Linuxu(já to používam na windows)
Já osobně ho hodně využívám stylem - zbastlím v arduinu, zkusím přepsat do čistého C a pak přes AVR eclipse a arduinoISP naleju třeba do ATTiny
Na sve obcasne hrani pouzivam sketch ArduinoISP, ktery prave z Arduina udela programator.
Takze napred udelam zakladni zapojeni s Arduinem (Duemilanove nebo Seeduino Mega) na breadboardu, zbastlim soft a pozdeji se teprve poustim do pajeni ...
Jen varovani: sketch ArduinoISP mi nejede prave na Seeduino Mega (nejak se o kousne, nezkoumal jsem proc). S Arduino Duemilanove chodi vsechno krasne.
Nevšiml jsem si, že by se někdo rozčiloval nad API. V původním příspěvku jsem se jen ptal, zda neexistuje emulátor umožňující vývoj a ladění kódu bez nutnosti nahrávat ho na fyzický HW.
API naprosto vyhovuje, nabízí takové operace, které procesor maximálně umožňuje a zbytek je C++. Tenhle set většinou využijí právě programátoři, kteří si s nějakým API a jeho vylepšováním hravě poradí. Spíš než se sestavováním HW. Já nevím jak vy, ale já to koupil za nějakých cca 700kč. To je zhruba mzda za 3 hodiny mé prace. Sorry, stavět si to sám, tak to za 3 hodiny neudělám ... přitom si započítejte čas studování dokumentace, návrh plošného spoje, jeho malování, leptání, pájení a oživování. Možná člověk, co to dělá denně by to zvládl rychle, já ne.
Našel jsem toto:
http://emulare.sourceforge.net/
Zdravim, vie mi niekto poradit? Potrebujem pomocou arduina kontrolovat obvod teda spojit dva kontakty, je tam 3,3 V tak myslim ze je zbytocne pouzit rele pre 220V.(je to pre spojenie kontaktov na tlacitku stareho telefonu). Nieco jednoduchsie ako toto: http://www.youtube.com/watch?v=D5_KpgvIqo0 . Zacinam, tak pre niekoho sa to moze zdat primitvna otazka, ale dakujem za rady.
1) Relé existují i pro menší napětí (nebývají levnější), ale vždy by tam měl být tranzistor, který bude relé řídit.
2) Daleko lepší je použít přímo tranzistor pro řízení telefonu. Je ale problém, že musíš mít vše na stejném potenciálu. Emitor tranzistoru (NPN) bude na stejném záporném napětí, které je v telefonu.
3) Ještě existují optočleny, kterými to také můžeš řídit. Co si matně pamatuji, tak by měly existovat optočleny přímo na TTL logiku. To znamená přímo na výstupy desky.
Pokud budeš používat tranzistor, pak se před jeho bázi strká odpor a seriově dioda. Odpor aby ti nezhořel procesor a tranzistor a dioda protože TTL má definovánu L úroveň do 0.3V a to na otevření tranzistoru stačí. Je to odzkoušeno praxí.