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
Vannak itt jo kis cikkel Elektronikai alapismeretek cimmel. Szerintem eloszor ezekkel kezdd, addig meg tedd le a pakat.
Először nézd meg az alkalmazott led adatlapját. Ha nincs neki, köss sorba vele egy 2 k-s potit, és úgy küld fel az 5 voltra. Az ellenállást csökkentve megfelelő fényerőnél megmérheted mennyi feszültség esik a leden, és mekkora előtét ellenállás kell neki! Ahány led annyi féle, más feszültség és áramerősség kell a zöld, piros egyéb színű ledeknek, 3 vagy 5 mm-es, kis vagy nagyobb áramú, stb. A "normál" ledek kb 4mA-tól KB 30mA-ig vesznek fel áramot, és kb 1,2V-tól 3+V-ig igénylik a rájuk eső feszültséget, fajtájuktól függően. Ha nem akarod hogy a led vagy a proci tönkremenjen (utóbbi sajnos hamarabb), mindenképp a led áram és feszültség igényéhez méretezett előtét ellenállást kell hogy használj.
Én tudok jobbat: 5V-os üzemen minimum 100Ω-os ellenállást kell sorbakötni a LED-el, így már biztonságosan ráköthető egy AVR-re. Ha pedig biztosra akar menni akkor 330Ω-ot kell rákötni és akkor a terhelés minimális lesz. Igen, valóban különbözőek a LED-ek, de egy hétköznapi, mezei 5mm-es LED meghajtásához ennyit is elég tudni!
Nem letezik 'Mezei 5mm-es LED', legalabbis adatlapot ilyenre nem talaltam
De komolyra forditva a szot, tenylag nagy a szoras, es nekem persze mindegy ki hogyan kiserletezi ki a dolgait es ehhez milyen modszereket valaszt, de egy icipic kis odafigyelessel es egy minimalis tanulassal es szamolgatassal nem kell talalgatni. Ha meg nincs meg ez a szamolgatasi kedv akkor igazan nem erdemes tervezgetni, hanem egy meglevo projectet megepiteni ahol mar mindent kiszamoltak szamunkra. De ez csak az en velemenyem persze.
Nagy szórással nézve igazad van. Nem akarok vitatkozni, de ez akkor okés ha egyforma ledeket használsz. Vagy gyengébben vagy erősebben világít mindegyik. A probléma ott kezdődik ha nem egyformák a ledek. Ha csak színkülönbség van, már nem egyforma a rajtuk eső feszültség, az áramfelvétel. Az egyik gyengébben, a másik erősebben világít, másképp terhelik a meghajtó lábat. Egyébként:
Idézet: . Sajnos nem elég. Ez bizony a tápra is kihat. Ha hálózati tápról megy a kütyü, akkor lehet hogy nem érdekes (ledek számától is függő) mennyire rángatja meg a tápot. Ha egy elemes/akkus tápod van, mindjárt érdekes lesz! A ledek egy AVR/PIC-es áramkör áramfelvételének a többszörösét is igénybe vehetik! Nem egy mcu-s kütyü megy 10-20 mA-ről, némelyik hónapokig(évekig) megy elemről! Amit írtál próbaáramkörökhöz kiváló! Sajnos végleges áramkörökhöz nem árt kissé "optimalizálni" őket. „Igen, valóban különbözőek a LED-ek, de egy hétköznapi, mezei 5mm-es LED meghajtásához ennyit is elég tudni!”
Tudok én ellenállást számolni ! Most lusta voltam de ezen ne akadjunk fel !
Hát-tal nem kezdünk mondatot, de egy pillanatig sem akadtunk fel ezen. Ez, és a többi topic is a hozzám hasonló kezdők számára elsőrendű fontosságú! Ha megnézed a hozzáértők válaszait, sokat lehet tanulni, és ha véletlenül nem igazán jó válaszokat adnak, akkor hamar jön a helyesbítés. Nem kell egymást zsákutcába vinni! Az ellenállás számítása nagyon fontos.
Csak legalább tudd, minek az ellenállását számítod ki! Mivel a ledeknek elég sok fajtája létezik, nem mindegy hogy milyen ellenállást számolsz ki. Én pl. befürödtem azzal hogy egy 5mm-es vörös leddel számoltam, és egy 3mm-es vörös ledet építettem be. Három közül egy bírta is! A többi többszörösen elhalálozott. Aztán rájöttem a saját hülyeségemre, más értékű ellenállást tettem elé, és onnantól maga a kánaán! Egy led sem halálozott el, fényerőben nemigazán érzékeltem változást, áramfelvétel mondhatnám drasztikusan csökkent. Konklúzió: Ha nincs adatlapod, akkor a fentebb leírt próbálkozás jórészt kisegít a bajból(ledeknél).
Sikerült magam kicsuknom egy atmega32-ből. Ha minden igaz (nem figyeltem eléggé ) l:0xc0 h:0x99 -et írtam a fuse bitekbe. Próbáltam egy 555-ös generált órajellel meghajtani, akkor szemre el is indult a benne levő program (egy ledet villogtat az egyik lábán), de a programozó (avrdupe Topi féle doper-en keresztül) nem ismeri fel. Próbáltam egy arduinoval hvp-n is helyrehozni, de ez sem segített.
Vissza lehetne még hozni valahogy az életbe, vagy már csak akkor tudom hasznosítani, ha belevésem jó nagy betűkkel, hogy ész nélkül nem babráljuk a fuse biteket, és kiakasztom a monitorra?
5V-3.8 V a kék lednek /0.020A =60Ohm=szabványméretben =56OhmBővebben: Link
Latom csak sikerult beloled kicsalogatni a szamitast
Noha az elmeleti szamitas jonak tunik, az a 20mA eleg nagy terheles az AVR portjanak. Ennel nagyobb terhelest mar csak a kimeneti feszultseg rohamos esesevel tudja produkalni es ezt nem tartom szerencses megoldasnak. Eppen ezert celszeru ettol a hatar ertektol kicsi tavolabb maradni (legyen egy kicsi margo az elmeleti mukodesi tartomany es a gyakorlati ertekek kozott). Altalaban a kek LED-ek magas fenyuek es az altalad kiszamoltnal joval nagyobb ellenallassal (azaz joval kisebb arammal) is szep fenyt adnak. Amit megmerhetsz az a LED es ellenallas csomopontban mert feszultseg szint (feltetelezve az ellenallas a +, azaz az AVR labara, mig a LED katodja a foldre van kotve. A masik az AVR laban mert feszultseg amibol lathatod kulonbozo terhelesek alatt milyen feszultseg szintet produkal az eszkoz. Ezenkivul a mar emlitett potmeteres probaval lathatod, hogy mi az a minimalis aram ami mellett meg szepen lathato a LED fenye (ami nyilvan attol is fog fuggeni mi a kornyezet, pl napsutesben vagy vak sotetben kell-e ennek mukodnie).
Nem hiszem hogy sok a 20mA mert huba adta azt a vezérlőpanelt amin van az ATmega8 és rákötve 2db IC amiben darlington tranyók vannak tehát szerintem nem lesz baja semminek de köszönöm a részletes magyarázatot mindenkinek !
Szervusztok! A LUFA projektjei között (bővebben: LUFA) található egy AVRISP MkII CLONE projekt. Sikerült lefordítanom és feltöltenem egy AT90USB162-be. Viszont az avrdude többször nem találja meg a programozót annak ellenére, hogy az lsusb látja az eszközt. Ha kihúzom és újracsatlakoztatom akkor ismét látja az avrdude és elvileg kezeli is. Tegnap este eddig jutottam, még cél eszközt nem próbáltam vele programozni. Kérdésem pedig az, hogy ilyen problémával találkozott-e már valaki a csapatból? Illetve mi a megoldás a hiba elhárítására?
Igen a CDEFS += -DLIBUSB_DRIVER_COMPAT engedélyezve van. Köszönöm! c
Így hirtelen az jut eszembe, hogy avrdude használatához úgy kell fordítani a kódot, hogy libusb-vel menjen. Alapesetben ugye jungo driverrel menne.
Ezt valamelyik compiler switch-csel tudod állítani. Elvileg ezzel: LUFA_OPTS += -D LIBUSB_DRIVER_COMPAT
Igen így fordítottam, mint ahogy említettem is.
Idézet: „Igen a CDEFS += -DLIBUSB_DRIVER_COMPAT engedélyezve van.” No és akkor miért találja meg replug után? c
Hellosztok!
Ha érdekel, leírom a problémám megoldását. A hiba az volt, hogy kb 1MHz-s órajelfrekvencia mellett ment az AVR-DOS, de 11 MHz-nél meghalt. A probléma nem szoftveres, hanem hardveres volt. Az én konstrukciómban két BC547-el felépített szintillesztő buffer végezte az 5V->3,3V konverziót. Ám ez meghalt a nyolcszoros órajelfrekvencián (,,elfogyott a tranyók bétája"). Ezért ezeket a fokozatokat kiváltottam egy 2k-3,3k-s feszosztóval. Így emelhettem az órajelfrekvenciát egészen 20MHz-ig. Így elérhetővé vált a 22kHz mintavételi frekvenciájú, 8 bites mintákkal rendelkező, mono WAV fájlok lejátszása (egy kis dzsitterrel, dehát ez kompromisszumos megoldás). A kimenőjel ,,élvezhetőbbé tételéhez" alkalmaztam két 512 bájtos puffert, amik felváltva töltődnek. Ezekkel a kondíciókkal elérhető kb. 13 óra lejátszási idő egy 1GB-os memóriakártyával. Az áramkör egyébként az ESZI25 elektró ,,standjának" egyik darabja lesz . Remélem tudtam segíteni annak, aki esetleg hasonló hibába ütközne. Segítségeteket köszönve: Hurka
Sziasztok
Szeretnék építeni egy üzemóra mérőt AVR-rel, amely a motor fordulatszámát is kijelzi (krossz motorra lenne). A tápellátást 1,5V-os elemről oldanám meg. Gyújtókábelre feltekert vezetékről kapna jelet (3-4 menet). Régebben lemértem egy mezei multiméterrel, hogy fordulatszám függvényében 5-20V AC mérhető rajta. Arra gondoltam, hogy a gyújtókábel által indukált feszültség állandó, csak mivel nagyon sűrű, ezért csapott be a multiméter. Szerintetek van ebben az elméletben valami? Üdv, yoman
Szia próbáld meg a váltófeszültséget egy diódával egyenirányítani, kondival pedig megszűrni.
Itt impulzusok vannak, amit a műszer így mér. Szóval ezeket az impulzusokat kellene illeszteni az avr-hez és ezeket számolni.
AVR-el ezt hogy tudom mérni? ADC alkalmas rá?
Használd a válasz gombot ha valakinek válaszolsz!
Másrészt meg ha ezt az feszt egyeniorányítod, puffereled, akkor már nem a valóságot fogod kapni, kicsit sem lesz lineáris, sőt már most sem az. Az impulzusok száma pedig már most is a fordulatot mutatja.
Esetleg próbálkozz valami optocsatolós megoldással, azt nagyon könnyen hozzá lehet illeszteni AVRhez és utána frekvenciát kellene mérni. Ez tuti megoldás. ADC vel egyenfeszültséget tudsz mérni 0-5V - ig.
Köszönöm, a frekvenicamérésnek majd utánnanézek még.
Sziasztok
Szeretnék áttérni a 7 szegmensű led kijelzőkről az LCD kijelzőkre. Kinéztem egy 7 szegmensű 3,5 digites LCD-t. Úgy gondoltam a kezelése ugyanaz, mint egy Led kijelzőé, de nem igazán stimmel a dolog, ha bcd dekóder IC-vel szeretném összehozni. Tudna valaki segíteni ebben, vagy egy oldalt belinkelni, ahonnan tudnék okosodni? Üdv, yoman
CD4543 valo a LCD kijelzohoz, mert a kimenetet a PH jel szintjetol fuggoen valtogatja. A LCD nem hajthato meg siman sztatikusan, hanam a szegmes es a Backplane ellenfazisu meghajtast igenyel. Ehhez fejlesztettek ez az IC-t.
Sziasztok!
Nagyon kezdő vagyok, csak azt szeretném megkérdezni, hogy mi a különbség a mikrokontorller és a programozó közt? Például: STK 500 USB-s programozó + hozzá való mikrokontorllerek; felsorolás stbstb.??? Köszi.
A 3,5 digites LCD kijelzőhöz akkor kell 3 darab IC is? (plusz még az AVR)
Nezd meg az adatlapjat. Kell egy oszci, a 3 meghajto, es meg a 1/2 digithez is valami logika.
Ezért írtam egy cikksorozatot: Mivel kezdjek? néven.
Kontroller: processzor és chipen belüli környezete. Programozó: Az az eszköz, amivel a futtatandó programot beleégetjük a kontroller memóriájába.
Vigyázz! Az LCD meghajtása váltóárammal (ellennégyszöggel) kell hogy legyen. Különben a folyadékkristályt elektrolízisnek veted alá!
|
Bejelentkezés
Hirdetés |