Podpatrując inne schematy zauważyłem że w większości każdy segment ma swój rezystor a każdy segment może być obciążany stale 25mA i 100mA przy cyklu -0.1,1KHz. Przyjmę więc 50mA ( będzie dobrze?) rezystor wynosić będzie: I=U/R 0.05=5/R R=5/0.05 R=100 Ohm na każdy segment. Tak na marginesie to w tych skomplikowanych obliczeniach jest błąd. Nie jest...
Poprawka: wygląda to na zbyt niskie natężenie prądu we wspólnych anodach. Zmniejsz rezystor w bazie tranzystora do np. 1k, no i koniecznie zasil to ze źródła, którego nie zdławisz - nie ze zużytej baterii.
Jak już to nie : Cyfra1kodu = A * 1000 Cyfra2kodu = B * 100 Cyfra3kodu = C * 10 Cyfra4kodu = D Code = Code + A Code = Code + B Code = Code + C Code = Code + D tylko: Cyfra1kodu = A * 1000 Cyfra2kodu = B * 100 Cyfra3kodu = C * 10 Cyfra4kodu = D Code = Code + Cyfra1kodu Code = Code + Cyfra2kodu Code = Code + Cyfra3kodu Code = Code + Cyfra4kodu
volatile
tak na pierwszy rzut oka: TCCR1B=(1 << CS10); //ustaw timer1 z preskalerem 1 TCCR1B=(1 << WGM12); //ustaw timer1 w tryb CTC Taki zapis nie wykona tego czego byś oczekiwał. Używasz operator przypisania =, co powoduje że pierwsza linia jest "pomijana" a w TCCR1B masz wartość (1 << WGM12). Użyj operatorów sumy i iloczynu...
Przy multipleksowaniu ważny jest również Ifp ;)
Obsługa przerwania nie ma być "jak najkrótsza", tylko "nie za długa". Odświeżanie wyświetlacza zawsze robi się w przerwaniu, gdyż zajmuje to czasu tyle co nic, a nie zrobienie tego w przerwaniu powodowałoby złe działanie wyświetlacza - nierówną jasność cyfr, zmiany jasności, migotanie, przygasanie itp. To ma być działać ze stałą częstotliwością, a do...
Czyżby kolejny zegar binarny... Wszystkie porty jako wyjścia. Przy takim podłączeniu możesz sterować jednocześnie tylko jedną kolumną diod. Chcąc uzyskać efekt ciągłego świecenia musisz w sposób ciągły zapalać kolejne kolumny. Czyli w pętli na port C wysyłasz odpowiednie dane, a potem zapalasz odpowiednią kolumnę wysyłając na PD 1 następnie wysyłasz...
TCCR0 = _BV(x<<CS00); Źle użyłeś makra _BV. _BV(x) jest równoznaczne z ( 1 << x ), czyli w Twoim przypadku próbujesz wykonać podwójnie przesunięcie bitowe. Jeżeli x = 3 (CS00=0): _BV(3<<CS00) = _BV(3) = (1<<3) = 0b00001000 czyli TCCR0 będzie równe 0b00001000 . Innymi słowy, próbujesz ustawić bit tylko do odczytu, zamiast...
Nie bardzo chcę stosować 9V w tym projekcie, dlatego pewnie zamienię te wyświetlacze na mniejsze, zawierające tylko jedną diodę w segmencie. Wtedy powinny już świecić prawidłowo z takim układem jaki przedstawiłem? W ogóle cały układ miał być zasilany 4x aku AA, czyli 4,8V. Ale teraz zaczynam się zastanawiać jak długo takie akumulatorki będą w stanie...
wywołanie funkcji odbywa się przez dodanie () do końca więc s7_init powinno być zapisane s7_init();
Pomysl z przerwaniem dobry. Zalezy jak podlaczysz przycisk to na takie zbocze bedziesz ustawial przerwanie. Przewaznie robi sie tak ze przycisk zwiera do masy czyli jak puscisz przycisk to z masy zrobi sie stan wysoki wiec bedzie to zbocze narastające. Z przyciskiem przeladowania - jak wczesniej tlumaczylem ale tu raczej na opadajace (przycisk zwiera...
Hmm, zasilanie jest bateryjne, stabilizator jest tylko po to, żeby zdjąć dodatkowego 1V którego mój AVR nie zdzierży. 78L05 nie zmniejszy napięcia z 6V do 5V. On wymaga ze 2V spadku napięcia a więc z 6V zrobi najwyżej 4V. Tak więc zmierzy ile faktycznie masz za stabilizatorem. Jednak jak by nawet było tam 5V to tranzystory nie będą się zamykały. Pasowało...
Wywal oba wewnętrzne rozkazy do loop, bo się na nich zatrzymuje gdy masz wciśniety klawisz, chyba dlatego mryga. A tak, doda lub odejmie wartość i pętla główna leci dalej... Niepotrzebne będą goto.
Kolega czytał opis w helpie o Config RC5 ? jest tam napisane, że GETRC5 korzysta z Timera 0 , a tego samego timera używasz do multipleksowania.
Timer w przerwaniu obsługuje wyświetlacz LED i inkrementuje zmienną byte, która w pętli głównej w instrukcji Case wybiera konkretne funkcjonalne fragmenty programu do wykonania, których wykonanie czasowo mieści się pomiędzy przerwaniami od timera. W przerwaniu od timera ustawia się także flaga przerwania, która uruchamia za pomocą If Then instrukcję...
http://www.elektroda.pl/rtvforum/topic10... Przestaw zegar wewnętrzny Atmegi na 8MHz
Tylko jeden segment 8x8.
To nie jest dobry schemat, bo: 1. Skanowanie klawiatury wymaga wyłączenie wyświetlaczy. 2. Masz multipleksowanie w 8 fazach, a to wymaga sporego prądu segmentów - ATmega ma za małą wydajność prądową - wypada mieć min. 30 mA na segment, prawdopodobnie więcej. Pomyśl o wzmacniaczu segmentów, np. tranzystory NMOS (BSS138?). 3. Niepotrzebnie dajesz po dwa...
Witam. Jestem dosyć zielony jeśli chodzi o uC. Chcę sobie zrobić ładowarkę do akumulatorów i potrzebuję uC z 4 przetwornikami A/C (2 napięcia, prąd, temperatura), jednym C/A (sterowanie źródłem prądowym) i okolo 15 I/O (do obsługi 3 klawiszy, wyświetlacza LCD 1602 itd.). Jak narazie najbardziej odpowiada mi ATmega8 (multipleksowany przetowrnik A/C)...
wooolniej!! - czyli zmniejsz czestotliwosc multipleksowania
A jeśli chodzi o podejście od strony programowej, to można by to rozwiązać następująco (w pseudokodzie): zmiana_cyfry { wyłącz_obie_anody; prawa = not prawa; // z każdym wywołaniem tej funkcji negujemy pewną zmienną jeżeli(prawa) { zapal_segmenty_dla_prawej_cyfry; włącz_prawą_anodę; } w przeciwnym przypadku { zapal_segmenty_dla_lewej_cyfry;...
Odłączyłeś programatory od układów ?
Ja bym to podłączenie widział tak Tak nie zadziała. jak sterować każdą diodą z osobna przy podłączeniu w ten sposób? Multipleksować.
btw co do napiecia wejsciowego na przetworniku. Jesli dasz wiecej niz VCC+0.3v to od razu leci przetwornik i juz na zadnym wejsciu nie bedzie ci on działał (bo jest multipleksowany).
Oprócz kwarca nic, tylko ustawić fusebit CKOPT=0 i skonfigurować rejestry. Ale napisałeś ze używasz go do multipleksowania wyświetlacza.
A nie prościej było zamiast pakować dodatkowe scalaki, napisać porządnie obsługę 1-wire? Przecież za pomocą UARTa można to zrobić prawie całkowicie sprzętowo bez zaangażowania procesora. Tak naprawdę to poprawiając nieco twoje procedury do 1-wire można z łatwością zlikwidować ich wpływ na multipleksowanie.
Nie potrzebujesz rzadnego scalaczka... ATmega8/16 mają przetwornik z multipleksowanymi wejściami... 6 do 8 wejść...
Ważne jest przede wszystkim jak te wyświetlacze siedmiosegmentowe zostaną podpięte do atmegi i w zależności od tego można coś dalej wtedy nad kodem myśleć, w sterowaniu statycznym potrzeba będzie bardzo dużo linii i w przypadku atmega8 poprostu zabraknie nóżek, ja bym zastosował jakies konwertery BCD do 7 segment, to drastycznie zmniejszy ilość nóżek,...
Popraw cytowanie (wybierz syntax=c ) kodu w jednym i drugim przykładzie - nie można za .... żadne skarby się rozczytać. A już kompletnie nie wiem co robią twoje przerwania: [syntax=c]ISR(TIMER2_COMP_vect)[/syntax] zmniejsza zmienne, zaś [syntax=c]ISR(TIMER0_OVF_vect)[/syntax] wpisuje w kółko do zmiennej wartość true, tylko po co? A gdzie multipleksowanie?
Ma jeden ADC, ale z wejściem multipleksowanym. Możesz więc czytać sekwencyjnie max 8 kanałów, ponieważ możesz bez problemu próbkować 20kHz, czyli 5kHz/szybę, czyli co najmniej 1000x częściej niż potrzeba.
to da sie zrobić cos takiego bez multipleksowania?
tak myslalem ze nie do konca dobrze zinterpretowałem Twoje słowa :D ale poza tym D2 reszta Ok ? Wybacz za moje ciągłe pytanie ale jest to moj 3 procesor z którym mam styczność a pierwszy jaki uruchomiłem :P Aha wiesz z czym mam problem z dwukropkiem bo migaja tak: kropka 2 znaku dwukropek i kropka 3 znaku... wynika to z tego ze kropki jak i dwukropek...
Rozrysowanie połączeń tego wyświetlacza to dosłownie 3 minuty. Poczytaj sobie o multipleksowaniu wyświetlaczy.
Tak, tylko dobrze by było dodać rezystor na każdy pin uC (nie jeden od strony anody, bo to nie to samo). Pozatym, dalej namawiam na zastosowanie jakiegoś sterowania tym przez inne scalaki, bo przy większej ilości wyświetlacza, albo braknie wydajności prądowej uC, albo skończą ci sie nóżki. Ja ostatnio zrobilem moduł 8 wyśw Led + 2 scalaki ttl, i wszystko...
Zauwaz ze czestotliwosc tu ma duzo do gadania. przy 1MHz faktycznie masz 125uA, przy 16MHz juz 2mA A jak to zostało wyliczone ? Bo ja po raz pierwszy słyszę, że średni prąd multipleksowanej diody zależy od częstotliwości multipleksowania. Pozdrawiam Mariusz
1. używaj znaczników CODE 2. na początek zapoznaj się z obsługą wyświetlaczy led z wykorzystaniem multipleksowania
Myślę że jeśli zrobię to bez multipleksowania to zaoszczędzę jeden timer do obsługi przetwornicy.
Wszystko zależy od skomplikowania i techniki w jakiej chcesz wykonać :) możesz wykonać system mikroprocesorowy złożony z dwóch kontrolerów.. pierwszy z nich za pomocą przetwornika ADC mierzył by napięcie i wysyłał przez UART do drugiego kontrolera który odbierze dane i wyświetli na zestawie wyświetlaczy 7 segmentowych :) Stosując system mikroprocesorowy...
Popraw multipleksowanie, nie wyłączasz rzędów i widać, że multipleksujesz od dołu do góry. Lekko prześwituje i widać poprzednią wartość.
Ok , a tak bez analizy mógłbyś mi powiedzieć jaki wpływ na działanie Atmegi8 mają delaye :( programy są napisane w taki sposób że ich działanie przynajmniej w symulatorze jest poprawne, w wersji rzeczywistej program uruchamia sie po wciśniciu jak napisałem i przelatuje przez wszystkie podprogramy wszystko świeci jak ma świecić tylko nie działa to w...
o kurde... przegladalem wszystko ale jakos mi sie wymknelo :/ dzieki :) bardzo fajny programik :) mam jeszcze takie pytanie: (BASCOM AVR i atmega8) czy jest mozliwe wpisywanie wartosci z tabeli (DATA) ale nie do calego portu tylko do 7 jego pinow? np port D ma 8 bitow ale potrzebuje jego wejscie nr5 jako wejscie timera pracujacego jako counter a na...
Cieszę się, że problem rozwiązany. Czy kolega aby na pewno nie pomylił kolektora z emiterem i nie wlutował tranzystora odwrotnie. Pytam ponieważ nigdy nie musiałem podciągać bazy tranzystorów do plusa przy multipleksowaniu wyświetlaczy.
Witam, trochę odbiegnę od tematu gdyż sam potrzebuje termometr dwupunktowy na ds-ach i wyświetlaczach LED, jednak nie potrafie pisać programów. Zrobilem termometr na attiny2313 i 3wyświetlaczach LED lecz jednopunktowy. Czy mogłby ktoś przerobić program na ten procesor i aby obsługiwał dwa ds-y w połączeniu 1-wire. Przypuszczam że jest to kwestia zmiany...
No właśnie chyba jednak mnie to na razie przerasta :( Gwarantuję, że nic kolegi nie przerasta ;) Tylko jak zwykle - trzeba mniejszymi kroczkami no i czasu trzeba. Tak w ogóle to zanim kolega przejdzie do rozpatrywania takich rzeczy, proponuję wrócić jeszcze do rozdziałów typu "Multipleksowanie LED". Tam są przykłady wykorzystujące i omawiające przerwania...
Rozumiem, że użyć mam po prostu zegara wewnętrznego? Aktualnie mam podpięty kwarc 16MHz, bo przy wewnętrznym 8MHz wyświetlacze nadal migały. Dodano po 2 Tfu, co ja piszę.. (przemęczenie). Ogólnie cała akcja multipleksowania ma działać na 800Hz?
Właśnie skończyłem montaż i uruchamianie prostego układu zegarka z termometrem do samochodu. Celem była wymiana fabrycznego zegarka, który choć sprawny, miał jedynie 12-godzinny wyświetlacz oraz gubił czas przy każdym odłączeniu akumulatora. Układ składa się z mikrokontrolera ATmega8, 4 wyświetlaczy 7-segmentowych LED (multipleksowanych), układu DS1307...
nie przeszkadza bo całe multipleksowanie wyświetlaczy jest w przerwaniu, co najwyżej oczekiwanie będzie dłuższe niż 750 ms
Skoro opanowałeś obsługę timera, to zrób jeszcze całą obsługę LED w przerwaniu timera. W pętli głównej się multipleksowania LED nie robi, bo ciężko w to wpleść jakikolwiek inny kod. Jaki wtedy jest sens podziały projektu na pliki *.h i *.c skoro część pliku "7led.c" będę miał w pliku związanym z Timer0 ? Chyba, że coś źle zrozumiałem. Źle do tego podchodzisz....
Teraz wartości rezystorów przy RGB są dobrane "na oko", tak żeby prąd na dany kolor wynosił ok 10mA. Na razie nie obliczałem ich dokładnej wartości, tylko skupiłem się na schemacie i multipleksowaniu. Dzięki za uwagę :)
100mA i taki program jak wyżej... powinszować:> Wyświetlacze za długo nie podziałają... Świetna porada kolego zerpo. Nie zaniżajmy poziomu forum... Piszesz, że PORTC wybiera diodę...a czy jest to jakaś atmega i nie atmega8/atmeg88? Jak tak...to czytaj wyróżnione/przyklejone tematy...słowo klucz... JTAG.
Przedstawiam timer oparty na ATmega8 i podwójnym multipleksowanym wyświetlaczu 7 segmentowym LED. Układ stworzony do uruchamiania syreny co pewien ustalony czas. Maksymalny czas załączenia to 99 sekund a maksymalny czas zwłoki to 99 minut. Układ zasilany bezpośrednio z sieci 230. Wrzucam schemat układu oraz płytkę układu i wyświetlacza który łączy się...
Przetwornik jest jeden ma jedynie multipleksowane wejście za pomocą kluczy analogowych , jeśli więc uszkodzi się klucz przetwornik będzie działał na innym wyprowadzeniu , jednak przy podaniu na wyprowadzenie napięcia typu 12V raczej mała szansa żeby port, pin , i przetwornik zachował pełną sprawność . Dla świętego spokoju lepiej taki układ wymienić...
Dajcie spojój z pomiarem temperatury ujemnej, Autor nie mieszka na Syberii, więc to mu się nie przyda. Przecież to termometr pokojowy. Z drugiej strony, jakby autor zastosował pomiar temp. ujemnej, to by się wszyscy pytali, po co, skoro to termometr pokojowy. Gdyby zastosował multipleksowanie, to wszyscy mówliby, po co atmega8, skoro wystarczyło by...
Do któregokolwiek pinu. Sygnał z pinu przesyła się do timera działającego w trybie enkodera (QDEC) przy pomocy event system. W mojej książce masz i przykład takiego podłączenia i multipleksowania. Kody możesz sobie już ściągną i przeanalizować.
Maksymalny prąd wszystkich pinów w ATmega8 to 200mA, czyli faktycznie prąd na diodzie byłby mały i nie świeciłaby pełnym światłem, a przy multipleksowaniu jasność jeszcze by zmalała. Czy zastosowanie tranzystorów C556B rozwiązałoby problem?? Nie bardzo wiem o co chodzi Ci z SPI, konkretnie które porty połączyć?? Pozdrawiam
Multipleksowanie i tak cię nie minie... ATmega8 nie ma na tyle pinów żeby 4x7 podpiąć do niej... Co do prądu... Generalnie przy takiej liczbie ledów lepiej było by dać np ULN2003/ULN2803... Są natomiast wyświetlacze dla których wystarczą 2mA na segment i w takim przypadku można by podpinać bezpośrednio pod porty... Oczywiści nie zapominając o rezystorze...
Wyświetlanie realizowane jest przez multipleksowanie więc odświeżanie musi być ciągłe. Wydawało mi się wyłącznie przerwać na czas obliczania zmiennych t0-t3 pomoże ale nie pomogło
Moim zdaniem masz rację, że przerwania powodują problem. Miałem kiedyś podobną zagwozdkę z obsługą klawiatury PS2 + multipleks. Problem rozwiązało zezwolenie na przerwanie przerwania multipleksowania, tak aby przerwanie (w moim wypadku) od obsługi klawiatury miało "wyższy priorytet" i mogło wywłaszczyć przerwanie multipleksowania.
Multipleksowanie jakoś działa, nie mam pomysłu jak można by to było zrobić lepiej. Gdzie umieścić pobieranie TCNT1 też nie za bardzo mam pomysłu...będę kombinował.
http://obrazki.elektroda.net/19_12334999... http://obrazki.elektroda.net/13_12334999... Krotki opis: Diody umieszczone w otworach wywierconych za pomocą szablonu i połączone w taki sposób zeby mozna było zastosowac multipleksowanie, Procesor Atmega8 na wewnetrznym zegarze chyba 1 Mhz nie dało sie zejsc ponizej ze wzgledu na pomiar...
o co chodzi z tym wyświetlaniem multipleksowanym? dana dioda zaświeci jak dam "1" na baze i "1" na kolektor tego tranzystora tak?
Tak, przy UF powyżej 2 V to ma prawo działać, ale do matrycy diod potrzeba 10 przewodów (przy klasycznym multipleksowaniu byłoby potrzebnych 9). W charlieplexingu do matrycy diod potrzeba doprowadzić tylko 5 przewodów.
Czyli w złącze Z10 podłączam wyjście czujnika czyli DQ , tak ? Nie działa jak na razie .... Podłączyłem DQ czujnika do złącza Z10, plus i minus zasilania też. Z kołka 1wire poprowadziłem kabelek na Portc.5 . Pc0 Pc1 Pc2 podłączyłem na W1 W2 W3 czyli multipleksowanie. i cały portb na segmenty poszczegolne .
Witam ! Poprawiłem schemat: Dodałem rezystory aby procesor i wyświetlacz nie zagotował się. http://obrazki.elektroda.net/49_12564692... W ostatnim czasie podłączałem do ATtiny2313 pięć wyświetlaczy LED (multipleksowanie) i nie używałem tranzystorów kluczujących. Procesor zimny. Pozdrawiam. Stefan GG6293398
Multipleksujesz to jak zwykłe 7 segmentowe wyświetlacze LED. Mam nadzieję że wiesz na czym to polega. W ruch idzie timer który podczas przerwania zapala jedną kolumnę i wpisuje do portu odpowiednią wartość. Kiedy nie występuje przerwanie to kolumny zostają wygaszone. I tak w kółko z taką częstotliwością żeby oko ludzkie nie było w stanie tego zauważyć....
zastanawiam się czy takie nieustanne pobieranie czasu z PCF-a jest dobrym rozwiązaniem? Nie widzę żadnych negatywów ani wad takiego rozwiązania. PCF ani atmega się z tego powodu nie zużyją. Może pokaż schemat, kod. Ciężko bez tego powiedzieć co możesz poprawić. Zegarek zasilany z..? -w nieskończonej pętli głównej wyświetlam na wyświetlaczu LED godziny...
Jeżeli mamy do czynienia z multipleksowaniem to przerwanie co jakiś czas jest nam potrzebne do uzyskania jakiejś częstotliwości. Takiej aby ludzkie oko nie było w stanie wyłapać wyłączania i załączania wyświetlaczy.
Oczywiście że możesz podłączyć 3 takie układy. A z wyświetlaczami to możesz zrobić multipleksowanie. Będziesz wtedy potrzebował 7 linii + tyle ile będziesz miał wyświetlaczy. Spokojnie zatem wystarczy. Reszta to kwestia oprogramowania.
Układ prosty jak konstrukcja cepa, to nie fizyka jądrowa... Po kiego grzyba tak kombinować... Masz jeden wyświetlacz więc nawet multipleksować nie trzeba... Wyświetlacz do portu przez rezystory... Wspólne wyprowadzenie odpowiednio do Vcc lub masy... Przyciski pod wybrane piny i do masy... No i oczywiście jakiś stabilizator... Ot cały układ... Całą resztę...
1) Skoro przykład z książki więc pewnie jakiś fachman ją pisał, ja bym się czepił tego że zamiast ciągnąć dane z flasha to sa przepisywane do sram. Rakiety nie budujesz a program dałoby się uprościć i mniejsze ryzyko że coś ci te dane zamaże. Ja np rejestrów Y nigdy nie używam. 2) Nie wiem o co ci chodzi ale: inc R24 cpi R24, 10 brlo petla2 po CPI R24...
Albo tanim kosztem: [url=http://www.jaycar.com.au/images_upl... (lub kilka sztuk) - około 1pln za sztukę, plus oczywiście tranzystorki. Zależy jaki chcesz mieć układ tych diód. Czy moga być multipleksowane? 5x5? Cokolwiek innego?
Na Atmega8 4MHz dla 12 ledów uzyskałem bardzo dobry efekt robiąc tak: 1) Standardowe multipleksowanie katod ledów, wprost z proca/przez dekoder itp 2) Wspólna anoda wszystkich ledów sterowana przez 1 Fast PWM 3) Podczas multipleksowania po wygaszeniu led i przed zapaleniem następnej zmieniam częstotliwość PWM W ten sposób mogę dla każdej led ustawić...
w tym momencie wykorzystuje do multipleksowania timer1 czyli B (chyba), a mam wykorzystać pierwszy, czyli timer0 czyli A. W obsłudze tego przerwania nic ma nie być?
1. Mała poprawka... ATmega8 ma jeden przetwornik 10-bitowy z multipleksowanymi wejściami... Obudowa SMD 8 wejść a PDIP 6... Przy czym analogowe są tylko wejścia... 2. Aby pomiar był jak najdokładniejszy lepiej skorzystać z opisu i schematu zawartego w dokumentacji... 3. Nie można tak dosłownie przekierować... Można natomiast napisać program tak, że...
ogryz -> proponuję ci poszukać sobie nawet tu na elektrodzie - tematu o multipleksowaniu dla wyświetlaczy LED, tak żebyś zobaczył i załapał od razu jak to się robi prawidłowo - a potem już będzie z górki. o np z googla polecam chociażby taki pierwszy link, n/t multipleksowania LED w języku C akurat: http://wkretak.pl/readarticle.php?articl...
Należy zastosować sterowane multipleksowane. Diody połącz w matrycę 10x10 , anody razem kolumnami, katody wierszami. W ten sposób otrzymasz 10 "wejść" i 10 "wyjść" matrycy, więc do jej wysterowania wystarczy 20 portów. Należy cyklicznie podawać zasilanie na kolejne kolumny zwierając odpowiednie wyjścia wierszy do masy. Zeby nie być gołosłownym oto moja...
dokładnie tak jak napisał kolega , kondensatory filtrujące to podstawa , warto stosować układ EL + ceramiczny , dość ważne kondensatory jak najbliżej nóżek zasilania mikrokontrolera - wyświetlacze 7 segmentowe chodzą na dekoderze 74LS247 (multipleksowane przez procka) jak sterujesz anodami może problem jest związany z wyświetlaczami ?
Witajcie koledzy, mam problem z przesiadką z Atmega8 na Atmega168. Ślęczę nad datasheetami jednej i drugiej i już nie ogarniam. Fragment mojego kodu z Atmega8 odpowiedzialny za przerwania: [syntax=c] TCCR1B=(1 << CS10 |1 << CS11 | 1<< WGM12); TCCR2=(1 << WGM21 | 1 << CS22); OCR2=50; OCR1A=15625; SREG=(1 << 7); TIMSK=(1...
Dzięki, ale nie dało by się podłączyć tych diod jako matrycy 10x10 ? (diody pozostałyby w formie linijki chodzi mi tylko o podłączenie) Zdecydowanie polecam tego typu rozwiązanie. Nie trzeba dodawać żadnych drogich scalaków, a ekspandery do tego zastosowania to już dosłownie zdzierstwo. Robiłem tego typu listwy właśnie za pomocą multipleksowania i...
Wyświetlacz nie działa poprawnie, bo jest obsługiwany w pętli ze zmiennym okresem, a nie w przerwaniu timera ze stałym okresem. Błędów masz sporo, ale ten jest najgrubszy - jest to błąd w założeniach. O obsłudze wyświetlacza multipleksowanego napisano tysiące artykułów w sieci i setki postów na tym forum - czytaj.
Małe pytanko a obsługa wyświetlania multipleksowanego jest wykonana w przerwaniu czy w pętli programu po ustawianiu zmiennej F4ms? EDIT: Nie rozumiem, zapis do eepromu wykonuje się 20 razy (zmienna Autoret = 20)
Racja, odbiegliśmy od tematu. Autorowi tematu można polecić to, co wyżej Koledzy, czyli klasyczne multipleksowanie, być może łącznie z przyciskami. Ja proponowałbym również przemyśleć kwestię liczby diod. 15 wskaźników - to już raczej dyskoteka niż klarowna komunikacja z użytkownikiem. Im mniej - tym lepiej.
Trochę zostały pomylone pojęcia. Otóż MUX w Atmedze jest na stałe przypisany do ADC, i oznacza on multiplekser, czyli inaczej wybór kanału w przetworniku. Atmega8 zawiera 8-wejściowy przetwornik, ale tak na prawdę jest to 1 przetwornik wyposażony w przełacznik wejść. Skoro chcesz mierzyć 3 różne napięcia, więc podłącz je do portów PC0, PC1, PC2, PC3....
Na segment? Raczej masz na myśli na cyfrę? Dla 50 Hz odświeżania będzie widać wyraźnie migotanie. Trzeba 200-300 razy na sekundę odświeżać. Ściągnij przykładowe kody do książek z linku w mojej stopce, tam masz przykład realizacji multipleksowania LED. switch jest niepotrzebny, a całość nie obciąży MCU w istotnym stopniu.
Witam! Aktualnie projektuję podobne urządzenie. W moim przypadku jest to 10 takich wyświetlaczy. Wyprowadzenia Bank1-5 wszystkich wyświetlaczy multipleksuje (poprzez bufory) z wyprowadzeń mikrokontrolera. Pozostałe 4 wyprowadzenia każdego wyświetlacza (czyli w sumie 10 x 4 = 40) podłączam bezpośrednio do 5 układów 4094 połączonych szeregowo. Układy...
grysek -> oczywiście, że tak można - jak najbardziej tylko, jeszcze trzeba ustawić w jaki sposób ma być wyzwalane przerwanie - najlepiej ustawić na zbocze opadające czyli falling. po drugie takie rozwiązanie jest dobre ale nie zabardzo nadaje się do rozwiązań gdzie wykorzystuje się multipleksowanie przy wyświetlaczach LED. Wtedy zwykle powoduje to...
Próbowałem chyba 5 różnych możliwości obsługi czujnika jednak żaden nie działał przy 8Mhz poprawnie. Próbuje teraz na 4M, ale też kiepsko. Choć zastanawiam się czy przy takim programie 6 wyświetlaczach i multipleksowaniu ich, plus odczytywanie czasu i daty i obsłudze czujnika to nie będzie za mała częstotliwość?
Jak to skąd? Od sprzedawcy. A jak nie wie to nie kupować, scalaki też kupujesz na zasadzie, że poproszę coś w SO08, a co to będzie to wyjdzie w praniu?:) Z trudną dostępnością AVRów z dużą ilością kanałów też przesadzasz - np. w Farnelu mają na stanie AVRy nawet do 36 kanałów PWM. A jeśli ci to nie pasuje to już w pierwszym poście dostałeś rozwiązanie...
Poza uwagami kolegi (at)BlueDraco pomyśl nad przepięciem DSa na USART, którego nie wykorzystujesz. Dzięki temu z łatwością zrobisz nieblokującą obsługę 1-wire, dokładnie tak samo, jakby to kolega (at)BlueDraco zrobił na ARM. Poza tym zastanów się nad eliminacją układu RTC - w końcu mikrokontroler już ma go w sobie, tyle, że zachodzi potrzeba przeliczenia...
Jeżeli to maja być przerzutniki niezależne, to pozostaje tylko 4013 i odpowiedniki, albo Atmega8 (nie tylko) gdzie wszystko wykona program który Sam napiszesz. :D Dalsza sprawa to zastosowanie multipleksera 4051, o którym piszesz w pierwszym poście. Co miałby multipleksować.
Ja się zawsze zastanawiam skąd się biorą u tylu ludzi , początkujących te schematy bez podłączonego AVCC i AGND ??? przecież - trąbi się o tym nie tylko w nocie PDF ale i na forum - no wszędzie. Wprawdzie ATmega8 ma zwarcie wewnątrz pomiędzy VCC i AVCC ale nie podłączanie jeszcze niefrasobliwie drugiej nogo GND to już - proszenie się na własne życzenie...
Witam. Musze przyznać że to ciekawy pomysł wykorzystania i2c. Niestety nie słyszałem o takich wyświetlaczach lcd wykorzystujące ten protokół. Na twoim miejscu wykorzystałbym drugi mikrokontroler do sterowania tylko wyswietlaczami lcd, który komunikowałby się z głównym poprzez i2c. Ja programując at89s8252 wykorzystałem 11 portów do wysterowania 4 wyświetlaczy...
Na tej płytce masz 8 wejść (abcdefg.) sterujących segmentami i 4 wejścia sterujące wspólnymi zakończeniami każdego z wyświetlaczy osobno. W sumie 12 pinów i Atmega8 spokojnie to przełknie (ba, nawet Attiny2313 to łyka). Widzę, że brakuje Ci nieco teorii o multipleksowaniu takich wyświetlaczy: http://maxembedded.com/2013/01/30/seven-...
Witam. Jak działa multipleksowanie? Wszystko co szukam jest o wyświetlaczach segmentowych. Chcę zrobić jakiś mały wyświetlacz 5x5 led na diodach lub mniejszy. Na razie chciałbym nauczyć się na małym wyświetlaczu i Atmega8. Później bym to rozbudował. Jak zrealizować wgl wyświetlanie? Gdyby podłączyć każdą diodę do portu i sterować stanem niskim i wysokim...
W pierwszym poście zaznaczylem, ze chodzi mi o procesor atmega8. Wiem, jak sterowac wyswietlaczem bezposrednio z procka, jednak potrzebuje maksymalnie zmniejszyc liczbe portów potrzebnych do obslugi wyswietlacza. To ma byc podwójny wyswietlacz, ale obsluge przeprowadze multipleksowaniem. Nie mam z tym problemu. Interesuje mnie tylko sprawa w jaki sposób...
W oparciu o wasze sugestie (http://mirley.firlej.org/timer_serwisow... narysowałem nowy schemat połączeń. Jest OK. Jeśli dobrze zrozumiałem to chyba mogę katody wyświetlaczy połączyć do portów uC? Nie możesz. A może zamienić te tranzystory na MOS? Nie ma takiej potrzeby. Skoro zamierzasz realizować projekt od nowa, to może warto porzucić starożytną...
Bascoma nie znam więc nie będę się w tym temacie wypowiadał. Natomiast uwaga co do multipleksowania: To nie ma sensu. 1.Nie będziesz mógł uśpić procesora, bo będzie musiał się zajmować odświeżaniem stanu diod. 2.Obniżenie poboru prądu dostajesz z tego, że każda dioda pracuje np. przez 1/10czasu. To samo możesz uzyskać zwiększając odpowiednio rezystor,...
1.STFW.... 2.RTFM [kolejny bascomowiec] 3.Naprawde, bascom nie zastępuje programisty do tego stopnia, zeby miał zaimplementowaną obsługe CZTEROCYFROWEGO WYSWIETLACZA LED!... Wniosek: Uzyj multipleksowania, a jesli nie wiesz co to jest, zastosuj sie do punktu pierwszego. 4.Jak wyeliminować to ze "tak jakbys nacisnął dwa razy": to sie nazywa drganie styków....
Co do programu, prosty napisany w bascomie, No zapewne jest prosty a wręcz banalny więc dlaczego aż 3 pkt sobie za niego życzysz? :P Co do krytyki - jak już ktoś wspomniał widać multipleksowanie. Może pomyśl nad wyświetlaniem statycznym. Mógłbyś to zrealizować na ekspanderach (z tego co pamiętam PCF8785) bądź też na zwykłych rejestrach SIPO (chyba...
multipleksowanie rejestr multipleksowanie jasność multipleksowanie wyswietlacz
zmywarka drzwiczki palet maszyna kondensator bypass
philips senseo sterownik ładowarki akumulatora
JVC TV – jak sprawdzić rok produkcji? Odczyt modelu, numeru seryjnego, datowanie telewizorów JVC Starmix ZKlon – wymiana szczotek węglowych odkurzacza: instrukcja krok po kroku