Fórum témák
» Több friss téma |
WinAVR / GCC alapszabályok: 1. Ha ISR-ben használsz globális változót, az legyen "volatile" 2. Soha ne érjen véget a main() függvény 3. UART/USART hibák 99,9% a rossz órajel miatt van 4. Kerüld el a -O0 optimalizációs beállítást minden áron 5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás 6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et Bővebben: AVR-libc FAQ
Amit először leírtál az hívják időmultiplex vezérlésnek (tökéletesen leírtad) amit másodszor írtál az is használatos megoldás de ott minden digithez kell egy shiftregiszter (74ls595) de van még a két megoldásnak több "hibridje" is
A hozzászólás módosítva: Nov 10, 2015
Köszönöm a felvilágosítást! Az időmultiplexelt megoldásnál viszont halványabbak lesznek a digitek nemde? Minél több a kijelző annál rövidebb ideig világítanak az egyes digitek.
A témában érintettség miatt ezt lehet hogy nekem kellene megválaszolnom.
Az időmultiplexelt megoldás lényege, hogy az alkatrészek közötti összeköttetések számát egyszerű kapcsolási metódussal minimalizálni lehessen(ahogy az ábrán is), ezáltal a költségeket is le lehet szorítani. Tény és való hogy ez fényerővesztéssel jár, ezért az ilyen alkalmazásoknál eleve nagyobb fényerejű LED-eket használnak. De még mindig nagyságrendekkel olcsóbb egy ilyen megoldás, mintha az összes kis fényerejű LED-nek lenne saját meghajtója. Egy kis műhelytitok: ha egy LED csak az idő 1/4 - ében világít a teljes fényerején, akkor te azt úgy látod, mintha kb. 1/2 fényerőn (vagy egy kicsit fényesebben) világítana. LED-es fényerőszabályzóknál ez a fajta nemlinearitás sok fejtörést okozott már nekem, de LED-es kijelzőknél elég hasznos ha az időmultiplexálás miatti fényerőveszteség nem olyan jelentős mint amit a kijelző mérete egyébként indokolna. Otthoni világításnál szintén jó dolog, hogy a 100W-os összteljesítményű LED-füzért 1/100 (!!!) időosztással meghajtva kellemes éjszakai világítást ad az egész lakásban, amit egy 1W-os LED folyamatos üzemben nem lenne képes leadni. A hozzászólás módosítva: Nov 10, 2015
Mondjuk a linkelt nyákterven nincsenek, de az előtét ellenállások értékének csökkentésével, a működési idő arányában, majdnem ugyan olyan fényerő érhető el.
Nekem is ez jutott eszembe. Az időmultiplexelés nem feltétlenül jár fényerővesztéssel.
2.5V-os piros LED-en folyik 10mA áram, fogyaszt 25mW-ot. Időmultiplexelve két LED-del értelemszerűen 20mA áramot tolsz rajta át, ugyanúgy 25mW-ot fog fogyasztani. Addig lehet elmenni, amekkora áramot a LED maximálisan még kibír. A hozzászólás módosítva: Nov 11, 2015
Idézet: Ebben te egészen biztos vagy? Mert akkor ezt most szabadalmaztatni kellene. Képzeld el, hogy 100W LED helyett egy 200W LED-et jaratnának 25% duty-val és ez pont akkorát világítana, mint egy a 100W LED, pedig csak 50W-ot fogyaszt. „Egy kis műhelytitok: ha egy LED csak az idő 1/4 - ében világít a teljes fényerején, akkor te azt úgy látod, mintha kb. 1/2 fényerőn (vagy egy kicsit fényesebben) világítana.”
Ezt nem kell szabadalmaztatni, elterjedt megoldás, hogy úgy lesz takarékos a led üzem, hogy pár tized milliszekundum időre villantják, előtét ellenállás nélkül. Az emberi szem ugyan olyan fényesnek látja, persze műszerekkel kimutatható a turpisság.
A Tungsram-Schréderben dolgoztam fejlesztőként utcai világítás és egyéb LED-es témakörökben, de valahogy erről nem hallottam.
Sziasztok, fordulatszámot szeretnék mérni, az adott szenzoron 7mA áram folyik ha a lyuktárcsa üres fele (levegő) van előtte és 14mA ha a lyuktárcsa teli fele (fém) van előtte. Hogy lehet ebből valami triggert csinálni az AVR irányába? Valahogy az interrupt lábat gondoltam triggerelni és mérni az időt két interrupt között. Van valami ötletetek?
Rakj rá egy komparátort. A két áramot egy ellenállás segítségével alakítsd feszültséggé (elnevezem A és B-nek), a komparátor másik bemenetére pedig adj akkor feszültséget, ami = (A+B)/2. Ekkor a komparátor élesen fog váltani, amit már fel tudsz dolgozni bármelyik interrupt lábbal.
Szia!
Bocs, hogy belekérdezek, de ez milyen állatforma szenzor? Mekkora tápról megy?
Szia, legjobb tudomásom szerint 12V-ról működik, kerék sebesség mérésre szokták használni.
Köszi a gyors választ! Esetleg he-store linket tudnál küldeni hogy milyen komparátort vegyek?
A hozzászólás módosítva: Nov 12, 2015
Bármelyik jó szinte, sőt, ha nem MHz-ekről beszélünk, hanem KHz-ekről, akár műveleti erősítő is megfelelhet.
A hozzászólás módosítva: Nov 12, 2015
Neked még komparátor se kell, az AVR-ek nagyobb részébe be van építve!
AIN0 és AIN1 lábakat keress...
Ezekben van komparátor, de példát meg kapcsolást most nem tudok adni. A két bemenetre csak ellenálláson keresztül kapcsolj bármit is (2x10k jó lesz). Az egyikre rákötsz egy feszültségreferenciát(pl. 2.5V), a másikra a szenzorkimenetet egy ellenállással terhelve úgy, hogy a két állapot egyike nagyobb, a másik kisebb legyen mint 2.5V. Pl. 220Ohm ellenállással, amin 7 és 14mA esetén kb. 1.5 ill. 3V esik. Az AVR-ben pedig az analóg komparátort kell használni, elvileg a komparátor engedélyezés után az ACO bitből ki tudod olvasni a komparátor kimenetét. Ennek természetesen van megszakítása is, a többit szerintem tudod.
A hozzászólás módosítva: Nov 12, 2015
Mármint, hogy a ledek áramát és feszültségét kapcsolóüzemű meghajtóval szabályozva jobb hatásfok érhető el?
Nem. Arról nem hallottam, hogy fele teljesítménnyel ugyanakkora fényt ad egy villogtatott LED, mint folyamatos üzemben teljes teljesítményen. Mert zombee ezt állítja. Ha fogsz egy 100 lumenes LED-et és 25% be / 75% ki arányban kapcsolgatod gyorsan (200Hz+), akkor az 25 lumen fényáram lesz, nem pedig 50, ahogy zombee mondja. Én ismerem a jelenséget, amiről szerintem zombee beszél, de az egészen más tészta. Történetesen évekig fejlesztettem LED-es dimmereket is, és valóban van egy nemlinearitás, ami abban áll, hogy ugyanakkora lm emelkedés alacsony fényerőnél sokkal nagyobb változásnak tűnik, mint magas értéknél. 10-rol 20-ra az a duplaja, de 100-rol 110-re az csak 10% ugrás. Ezért nem jók a lineáris karakterisztikájú dimmerek. Az alján hirtelen emelkednek, aztán magas fényerőnél alig változik már valamit. De ez itt nagyon OFF
Érdemes kicsit jobban elgondolkozni a dolgon.
Ha áttolok 30 mW-ot a LED-en, akkor annak bizonyos része fényként, más része hőként távozik. A kérdés, hogy mikor melegszik a led jobban, ha 4-szeres árammal megy 25%-on, vagy ha egyenletesen ég. A két érték szerintem más, mert a nyitófeszültség sem ugyanaz 4-szeres áramfelvételnél. Én arra tippelnék, hogy a dimmelés hatására több hő keletkezik, mint fény ugyanazon a teljesítményen. De persze nem biztos, hogy igazam van. Idézet: Igen. Sajnos a jelentős része hő formájában távozik. Nyilván akkor melegszik jobban, amikor négyszeres árammal hajtod 25% kitöltéssel, mert a nyitófeszültsége kicsit magasabb lesz, így az átlagteljesítmény is kicsit magasabb. De nem a duplája. És ilyenkor a fény is (LED-től függ) több lesz, de csak nagyon kicsivel. De van ellenpélda is. Volt olyan piros, hétszegmenses Kingbright LED kijelzőm, ami 80mA, 1/8 kitöltéssel halvány narancssárga volt, 10mA DC-vel szép fényes piros. Betettem a helyükre azonos típusszámú, de zöld kijelzőt, az gyönyörűen ment a 80mA csúcsáramokkal. És pont olyan fényesen világított, mint 10mA folyamatos áram mellett, csak hogy az eredeti témához is hozzászóljak. Ez monjduk 1993-ban volt, azóta nagyon sokat fejlődött a LED technika. A LED-ek adatlapja megadja az áram függvényében a fényáramot. Ez általában a névleges áramig, esetleg annak 2-3 szorosáig lineáris. Sokszor fölötte nem is adják meg. „Ha áttolok 30 mW-ot a LED-en, akkor annak bizonyos része fényként, más része hőként távozik.”
Bocs srácok azt hiszem kegyetlenül félre lett értve a mondandóm, ez miatt ne vesszetek össze! Én sem állatottam azt hogy szaggatott üzemben (dimmelve) jobb hatásfokú lenne a LED, csak annyit hogy a kitöltési tényezőhöz képest fényesebbnek LÁTSZIK mint amilyen. Természetesen víztiszta LED-ekről beszélek, egy valamire való kijelzőbe diffúz LED-et rakni ma már nem divat.
Üdv kollegák!
Atmega 328-nál ha felhúzom a ADC clock-t 1Mhz-re az kb 10us mintavételt jelent majd. Kérdésem, hogy ha 4 bemenet kellene olvasni 1 helyett akkor 40us után kapom meg az adatokat vagy párhozamosan elvégzi az átalakítást és megkapom valamivel több mint 10us után az adatokat? A hozzászólás módosítva: Nov 13, 2015
1 ADC-d van, és azt váltogatja a 6 vagy 8 bemenet között. Tehát egyszerre csak 1db bemenetet tudsz konvertálni, ha kész, utána mehetsz a következőre. 1 konverzió 13-14 órajelbe kerül, ha jól tudom, tehát ezzel kell számolni, kb. 13-14uS, és ezt szorzod 4-gyel.
Köszi akkor jól sejtettem, csak reménykedtem
Ennek érdemes lenne mégegyszer nekifutni!
Sajnos AVR-ek esetén az analóg csatornák közötti váltás nagyon-nagyon lassú. Ez annyit jelent, hogy ha a váltás után nem vársz "eleget", akkor a kapott érték az előző csatornától erősen függeni fog. Megoldás: a csatornaváltás után én legalább egy ADC-konverziónyi időt hagyok az áthallás kiküszöbölésére, ha érzékeny a cucc akkor többet is. Ez konkrétan felezi/negyedeli a már így is erősen lecsökkentett SPS-t, ezzel sajnos együtt kell élni. A hozzászólás módosítva: Nov 13, 2015
Nekem is LED-es kérdésem van: Egy LED-et (később egy kis LED szalagot) szeretnék PWM-mel hajtani. Kapcsoló fet, low side elrendezés.
Hiába veszem le a pwm-et egyetlen bitidőre, a LED eléggé világít. Mivel tudnám elérni, hogy az alsó tartományban is arányos legyen a fényerő és 1 és 0 között ne bekapcsolásnak tűnjön a váltás? A hozzászólás módosítva: Nov 13, 2015
Én a PWM frekit növelném, azzal az "1 bit idő" is kevesebb lesz.
De gyakrabban fog bekapcsolni, így ugyan az lesz az eredmény.
Vagy növelni kéne a PWM felbontását, vagy LED meghajtó IC kell. |
Bejelentkezés
Hirdetés |