Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
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
Lapozás: OK   703 / 840
(#) kaqkk válasza k3gy3tl3n hozzászólására (») Nov 10, 2015 /
 
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
(#) k3gy3tl3n válasza kaqkk hozzászólására (») 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.
(#) zombee válasza k3gy3tl3n hozzászólására (») Nov 10, 2015 / 1
 
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
(#) pont válasza k3gy3tl3n hozzászólására (») 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.
(#) csabeszq válasza pont hozzászólására (») Nov 11, 2015 /
 
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
(#) killbill válasza zombee hozzászólására (») Nov 11, 2015 /
 
Idézet:
„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.”
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.
(#) pont válasza killbill hozzászólására (») Nov 11, 2015 /
 
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.
(#) killbill válasza pont hozzászólására (») Nov 12, 2015 /
 
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.
(#) k3gy3tl3n hozzászólása Nov 12, 2015 /
 
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?
(#) Kovidivi válasza k3gy3tl3n hozzászólására (») Nov 12, 2015 / 1
 
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.
(#) wbt válasza k3gy3tl3n hozzászólására (») Nov 12, 2015 /
 
Szia!
Bocs, hogy belekérdezek, de ez milyen állatforma szenzor? Mekkora tápról megy?
(#) k3gy3tl3n válasza wbt hozzászólására (») Nov 12, 2015 /
 
Szia, legjobb tudomásom szerint 12V-ról működik, kerék sebesség mérésre szokták használni.
(#) k3gy3tl3n válasza Kovidivi hozzászólására (») Nov 12, 2015 /
 
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
(#) Kovidivi válasza k3gy3tl3n hozzászólására (») 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
(#) zombee válasza k3gy3tl3n hozzászólására (») Nov 12, 2015 / 1
 
Neked még komparátor se kell, az AVR-ek nagyobb részébe be van építve!
AIN0 és AIN1 lábakat keress...
(#) k3gy3tl3n válasza zombee hozzászólására (») Nov 12, 2015 /
 
Szia zombee, én atmega328-at és atmega8-at használok, elvileg mindkettőnek van AIN0 és AIN1 lába. Esetleg egy példa kapcsolást vagy példa programot tudnál linkelni?
(#) kapu48 válasza k3gy3tl3n hozzászólására (») Nov 12, 2015 /
 
ATmega328 Analog Comparator
Bővebben: Link
(#) zombee válasza k3gy3tl3n hozzászólására (») Nov 12, 2015 / 1
 
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
(#) pont válasza killbill hozzászólására (») 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?
(#) killbill válasza pont hozzászólására (») Nov 13, 2015 /
 
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
(#) csabeszq válasza killbill hozzászólására (») Nov 13, 2015 /
 
É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.
(#) killbill válasza csabeszq hozzászólására (») Nov 13, 2015 /
 
Idézet:
„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.”
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.
(#) zombee válasza killbill hozzászólására (») Nov 13, 2015 /
 
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.
(#) cimopata hozzászólása Nov 13, 2015 /
 
Ü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
(#) Kovidivi válasza cimopata hozzászólására (») 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.
(#) cimopata válasza Kovidivi hozzászólására (») Nov 13, 2015 /
 
Köszi akkor jól sejtettem, csak reménykedtem
(#) zombee válasza cimopata hozzászólására (») Nov 13, 2015 /
 
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
(#) fecus hozzászólása 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
(#) zombee válasza fecus hozzászólására (») Nov 13, 2015 /
 
Én a PWM frekit növelném, azzal az "1 bit idő" is kevesebb lesz.
(#) vzoole válasza zombee hozzászólására (») Nov 13, 2015 /
 
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.
Következő: »»   703 / 840
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem