V prvom rade chcem poďakovať, že seriál pokračuje. Vďaka nemu som sa odhodlal po možno 18 rokoch zase začať s elektronikou. :-)
Ako druhé by som sa chcel opýtať: nie je to nezdravé, žhaviť tie LEDky úplne bez odporu, rovno na 5V?
V prvom rade chcem poďakovať, že seriál pokračuje. Vďaka nemu som sa odhodlal po možno 18 rokoch zase začať s elektronikou. :-)
Ako druhé by som sa chcel opýtať: nie je to nezdravé, žhaviť tie LEDky úplne bez odporu, rovno na 5V?
Jasne ze to je nezdrave, kilovy odpor to isti (pripadne sa to zide spocitat, ale popravde - komu sa to chce)
Kdysi jsem měl dětskou stavebnici s elektronikou napájenou 4xtužkovou baterkou a takhle jsem si LEDky spálil. Co si pamatuju ze školy, tak LED má mít 10mA a napětí podle barvy od 1.6V výš což vychází kolem 300 ohmů. (ale ze školy jsem pryč patnáct let :-) )
Voltík 2? ;-)
Nevím jak Voltík 2, ale Voltík 1 má už odpory přímo napájené k LED, takže je spálit nelze. Voltík 2 dostane syn dnes, takže tam ještě nevím jak je to řešené.
Voltík 2 odpory nemá a je tam toho víc, co se dá odpálit (já tedy odpálil tranzistor, pak jsem to musel rozdělávat a zevnitř měnit - nic hrozného, ale pak to šlo zase blbě složit).
Nebol to "Logitronik 02" ? Jeden tu mám a pri červenej LEDke tam je 330 ohm a pri zelenej 220 ohm. Keď som pozeral schému samotného Arduina, tam všade používajú 1k odpory.
Diodu lze bez odporu připojit na logický výstup směrem k zemi a to proto, že úroveň H má typicky odpor 130ohmů, některé i víc.
Obráceně (zapojit diodu na proti +5V) nedělejte, logická úroven L většinou jde přímo na zem!
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.
myslim,ze na 5V by se tam hodilo 330 Ohmu
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)
Něco jsem řešil, když tak mi napište na zapik@email.cz, pošlu vam moje řešení
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.
Co takto zabudnut na celu tu Arduino zvrhlost a zacat pouzivat ciste ATmegy?
Potom mate k dispozicii napr AVR Studio priamo od ATMELu :-)
Dival jsem se a AVR studio jede jen na windows (nepouzitelne).
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
Ciste ATMega vyzaduje programator, co nie je az tak trivialna zalezitost, tie jednoduche programatory vyzaduju fyzicky seriovy, alebo paralelny port (s USB redukciou casto nefunguju), to dnes nema kazdy pocitac.
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.
Ano, to pouzivam tiez, vyhodou pouzitia Arduina ako programatora je okrem ineho aj to, ze FTDI prevodnik, ktory je v nom, je priamo podporovany na 64 bit Windows 7. Pre rozlicne ine USB programatory je casto problem zohnat podpisane drivre.
Klon programatora AVR ISPmkII sa da vyrobit za asi 150 KC (vratane PCB, atmegy8, konektorov a 1-2 piv pre cloveka co vam to vyrobi), ano funguje cez USB, ano je podporovany AVR Studiom a ano tiez je podporovany FOSS nastrojmi ako napriklad avrdude.
A proč bych to měl dělat?
Uz len preto ze to stoji zlomok ceny a clovek sa nemusi rozculovat nad retardovanym API.
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/