Zdravím. Vždycky jsem měl za to, že PWM (analogWrite) lze na Arduinu použít i na analogových pinech. Tím pádem bychom na Pro Mini měli mít 6 digitálních pinů s PWM a 4 analogové, takže 10 dohromady a pro 8 LED bychom softwarové PWM vůbec nemuseli řešit.
Nebo mám někde ve své úvaze chybu?
Ano, je to tak - analogRead() a analogWrite() jsou dvě naprosto odlišné věci používající odlišné piny procesoru zcela odlišným způsobem.
Piny s PWM funkcí (na které jde zavolat analogWrite na Arduinu Uno) jsou D3, D5, D6, D9, D10 a D11, přičemž vždy ve dvojici používají některý z tří časovačů, což je důležité vědět, pokud ten který časovač potřebujete na jiný účel - pak obvykle dva z té šestice PWM pinů přestanou fungovat.
Dneska máme tohle, stačí poslat požadovanou barvu a PWM si to dělá samo:
http://www.aliexpress.com/item/DC5V-1m-5m-Black-White-PCB-30-60-144-leds-m-WS2812IC-30-60-144-LED/32414654549.html?spm=2114.01020208.3.49.Ut9Stj&ws_ab_test=searchweb201556_9,searchweb201644_3_10001_10002_10005_10006_10003_10004_62_9912,searchweb201560_8,searchweb1451318400_6151
Díky za tip, to vypadá hodně dobře. Vidím že místo obyčejného tupého RGB LED pásku (který kluk z nějakého důvodu furt chce) koupím něco s WS2812B, a aspoň tak zase budeme mít důvod vytáhnout Arduino ze šuplíku. Tohle je super věc (a to i přesto že číňani trochu přehání, protože "each LED is separately controlled" bych to nenazval ani náhodou, když to celé funguje jen jako dlouhatánský posuvný registr)
Tak v tomto číňaňi nepřehání, protože opravdu jde řídit každá LEDka zvlášť.
LEDky jsou adresovány polohou.
Na datavý vstup se posílají data první LEDce.
První LEDka přijme prvních n bitů (je to popsané v pochybném datasheetu)
a zbytek pošle dál k druhé LEDce. Druhá dělá to samé.
Podle toho co přijali se rozsvítí, takže se dá ovládat každá zvlášť.
Nejlepší ale je, že na Arduinu je na to už knihovna.
Jednoduše se nastaví, kolik LEDek v pásku máme,
jednotlivým LEDkám nastavíme barvu a řekneme,
aby se zobrazili.
A 4 Kč za LEDku taky není špatná cena.
Jediné co, tak je potřeba mít dostatečně výkonný zdroj (40 mA/LED).
Nerad polemizuji s anonymy, ale nemůžu souhlasit s hláškou, že "program bude naprosto jiný". Podstata mé předchozí poznámky byla v tom, že když program řeší přes vlastní PWM "stmívání", může se použít na jakékoliv svítidlo (samozřejmě které je PWM friendly, ať mě zas někdo nechytí za slovo) či jiný spotřebič, tj. je to řekněme škálovatelné řešení. Zatímco když se se stmíváním spolehnu na externí HW (inteligentní LED řízené digitálně), tak je potom nemůžu zaměnit za nic jiného, hloupějšího.
100W žárovka byla příkladem násobně výkonnějšího svítidla než je WS2812. Nemluvil jsem o tom, že bude napájená střídavým proudem, klidně do ní může téct stejnosměrný a můžu ho řídit MOSFETem připojeným k pinu Arduina. Nebo tam můžu připojit motory, nebo reproduktory, nebo cokoliv, a program zůstává beze změny. Zatímco WS2812 nejde ničím nahradit, takže když se stanou součástí řešení a část algoritmu je na ně přenesena, při jejich změně musím skutečně přepisovat i program. Tj. IMHO je to přesně naopak, než kolemjdoucí z anonymní myši píše.
Podstata je ta, že je to software kdo se přizpůsobuje hardware, ne obráceně :-)
PIN Arduina dá možná 20 mA, všechno ostatní potřebuje nějaký dodatečný hardware a podle toho pro jaký hardware se rozhodnu si upravím program.
Například se nebudu hrát o osmi budiči pro výkonové LED, když je mám pohromadě v tom TPIC za 13 Kč.
Jako milovník Knight Ridera bych to viděl tak, že KITT svým skenerem prostě „skenoval“, ať už to bylo nebo znamenalo cokoli. Doba byla taková, že stačilo vymyslet cool název a prošlo to, bez ohledu na technikálie. A v KITTovi toho časem prošlo hodně, i hodně absurdního (nemyslím jen vystřelení sedačkou či dokonce chycení padajícího Michaela do sedačky z nevímkolikáteho patra, ale i takové věci jako odmykání ala FAB zámku pomocí „vln z hodinek“ nebo vzdálené nastartování a ovládání cizího auta, blokace brzd apod.
Takže když se řeklo „skener“, tak to byl prostě skener :). KITT měl hromadu funkcí, které se těžko vysvětlovaly a dělal i některé chyby, které by dělat neměl. Jakkoli byl Knight Rider 2008 podle hodnocení řady lidí horší seriál, jeho technologická stránka dávala větší smysl (a to i přesto, že tam bylo taky pár nesmyslů podobně uhozených jako v původním seriálu).
Mimochodem starý pajšl KITTa namontovaný do starého Chevy uměl číst myšlenky osoby mající jeden z jeho čipů ve svém mozku skrze řadící páku, tentýž pajšl pak přehozený do moderního kabátu Knight 4000 dokázal vnímat vůně/pachy. Mluvím o filmu Knight Rider 2000, kde zabili Devona, parchanti ;).
Na odemykání nejrůznějších zámků podobně popsaným způsobem od začátku do současnosti staví Doctor Who :)
A k ovládání aut - http://www.wired.com/2015/07/hackers-remotely-kill-jeep-highway/
Takovouhle vec jsem pred asi 10 lety delal s PICem pro jednoho cloveka co delal modely aut. 8 ledek, R-pack, 14ti pinovej svab, kondik, baterka, tlacitko.
Dosvecovani jsem delal softwarove podobne jak autor, PIC byl furt napajenej, tlacitko vedlo na reset, aby kdyby se to zblaznilo, tak aby se to tim tlacitkem resetlo. Ale i presto se dalo pocitat kolikrat se zmacklo, takze na jedno zmacknuti to blikalo radove minutu, na 4 zmacknuti asi hodinu (aby se to dalo dat do vykladu). Baterka tam byla CR2450, s tou mi tady prototyp fungoval nekolik let. Mel jsem ho na stole a cas od casu jsem to zapnul.
Celkova cena radove 5 euro. Kolik, ze stoji Arduino? Myslim si, ze Arduino je na takovehle veci jako kanon na komara. V mem pripade by to ani neprichazelo v uvahu vzhledem k tomu, ze jsem to potreboval mit male.
Ovsem firmware jsem psal v assembleru. 533 radku. Hmm, dneska uz by me to nebavilo. Uz jsem moc starej na psani v assembleru. Ale dnes uz zase nastesti existuje celkem dobry kompilator C pro PIC, takze zadnej problem.
to jsem ovsem pocital i s ledkama a baterkou. Pic samotnej stoji asi 80 centu.
Ovsem 3.25 za cely arduino neni moc, ja jsem si myslel, ze stoji tak 20. Nejspis jak ktery.
Arduina nemam rad kvuli tomu jejich silenymu IDE. Onehda jsem stravil skoro celej den nez se mi podarilo dokopat Makefile, abych to mohl prekladat z command line a pouzivat normalni editor.
Arduino lze ovladat z prikazove radky; editujes si, v cem chces, a pak to posles do Arduina, viz.: https://github.com/arduino/Arduino/blob/master/build/shared/manpage.adoc
Před nějakou dobou jsem si taky hrál s přerušením časovači a napsal si pro to pomůcku - "kalkulačku" pro generování kódu pro Arduino:
http://www.8bit-era.cz/arduino-timer-interrupts-calculator.html
... třeba se to bude hodit i někomu dalšímu.
Puvodne je to Cylon Light z Battlestar Galactica, tady je jedno pro AR159:
http://blog.jabawoki.com/category/arduiono/
Moc pěkný článek a pěkné domácí projekty. Knightridera jsme dělali v radioamatérech diskrétně, jó to byly časy...
Dovolím si malou reklamu, také jsem doma dělal termostat přes Arduino, pak jsem objevil ESP8266, které se dá sehnat překvapivě za podobnou cenu, jako Arduino, dá se programovat v Arduinu a kupodivu má podporu PWM na více pinech.
... a jako použití bych přidal, "Měření signálu Wifi pomocí Kittova scanneru" a rovnou s nějkou FFT transformací, aby se procesor (notně silnější) nenudil :-D
Doporučuju mrknout na ní, je to zajímavá součástka. Já koupil 5xESP8266-12E, zatím stále v rozpracovaném stavu, ale už se těším, až nahradí současnou konfiguraci Arduino+ibm600e místo ethernet shieldu.
PS: Programuju v Pythonu, Arduino/C je pro mě zábavou a nostalgickou vzpomínkou na hrátky s 8086 či co jsem to kdysi měl a musím říct, že je to mazec na závity. Člověk si pak jinak váží Pythonu, který toho udělá TOLIK! Jen mít víc času...
ESP8266 znám rok, má kupodivu jen SW podporu pro PWM a ještě víc kupodivu jen pro maximálně 6 pinů, takže se tam tento můj program stále může hodit.
Měření síly WiFi signálu mě také před pár dny napadlo, chci to udělat, ale nejdřív jsem potřeboval vydat tento článek, než začnu dělat zas na něčem dalším :-)
K Pythomu.... Já jsem si koupil pyboard - viz. tohle: http://micropython.org.
1. Dostupnost. Narozdil od RPi za 5$ se koupit da
2. Spotreba, jak psal jiz kolega
3. Spolehlivost. RPi bude chtit cas od casu reboot
4. Dodatecne naklady. Ne kazdy ma SD karty zadarmo
5. Rychlost. RPi prekvapive musi nabootovat do OS
6. Jednoduchost. Vite co to dela. S RPi je to naopak "funguje to, tak to neres"
Navic je tu porad fakt, ze i kdyby osobni auto stalo 15 Kc a benzin byl zadarmo, tak z obyvaku do kuchyne je to lepsi vzit pesky.
Dory den,
skusal som to nahrat do sparkfun promini (5V16MHz) a je s toho dost nestastny.
Okrem toho, ze neblika, ako by som cakal, tak asi zmeni nieco v bootloaderi a doska je po resete na inom com porte.
Mozete mi prosim poradit, co moze byt problem, pripadne co hladat?
Dakujem.