Multipleks na 4 wyświetlacza robisz tak: Na jednym porcie Atmegi wystawiasz dane segmentów z tej cyfry która wybierana jest jeden z czterech bitów następnego portu. Zmieniasz te dane na kolejne z czasem około 2,5 ms co gwarantuje Ci że nie będą migotać. Ja taki czas po prostu sobie wypraktykowałem.
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....
Witam, Jest to konstrukcja miernika VU, która posiada wskaźnik LED 2×20. Diody sterowane są mikrokontrolerem Atmega8. Zakres wyświetlania wynosi od -34 do +4 dB. Diody są sterowane przez multipleksowanie 4 diod w 10 krokach, częstotliwość multipleksu wynosi około 100Hz. R1 … R4, rezystor (270 omów) ogranicza prąd LED, i określa jasność diod LED....
Witam. Szukałem na forum i niestety nie znalazłem jednoznacznej odpowiedzi na mój problem (tak czasami bywa). Tak więc atmega8 to tego wykorzystany wewnętrzny ADC, kanał 0, wpięty lm335+4k7 do VCC, kwarc 11059200, zasilanie przez dławik 10uH do AVCC, 10uF pomiędzy AREF i GND zgodnie z opisem z helpa, configuracja ADC: Config Adc = Single , Prescaler...
O tym nie pomyślałem :) Ale popatrzyłem trochę i masz rację. Bardzo dobry pomysł. W sumie taki czytnik RFID pewnie jakoś można ustawić, żeby zasięg był minimalny, w urządzeniu zrobić "szparę" i przeciągać karty jak zwykłe magnetyczne :) A nawet pójść z duchem czasu i zrobić "PayPass" :D Pomyślę i jak już coś będę miał, to się podzielę. ----------------------------------------...
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...
volatile
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...
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
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...
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.
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...
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ę...
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...
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...
http://www.elektroda.pl/rtvforum/topic10... Przestaw zegar wewnętrzny Atmegi na 8MHz
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...
Witam :arrow: bdfhjk skąd Ci się wzięło 45mA. Jak od napięcia zasilania 5V odejmiesz 2.4V spadku na diodzie w wyświetlaczu oraz odejmiesz 0.2V na tranzystorze w stanie nasycenia i olejesz spadek na porcie (zazwyczaj około 50mV) to wyjdzie Ci 2.4V. Jeśli podzielisz tą wartość przez 120Ω to jak nic wychodzi Ci 20mA. W rzeczywistości ten prąd będzie...
Faktycznie aktywnym stanem jest zero i wtedy ten fragment kodu nie powinien dać żadnego rezultatu, ale co dziwne cokolwiek nacisnę i tak się wykona. Znaczy, dlaczego nie. Jak wcisnąłeś przycisk 0, a sprawdzasz 2, to przerwanie sie wygeneruje, ale na dwójce jest stan wysoki, to warunek (pierwszy) zadziała. Jak sprawdzam czy stan jest równy zero to też...
A tak mi się skrobnęło... Na weścja A,B,C multipleksera dajesz liczbę 0..7 wyburając nr wentylatora (tzn. odpowiednie wejście X0..X7). I już po sprawie. Mierzysz 8 razy na tym samay liczniku.
Możesz użyć specjalizowanych układów SCT2024, można też zrobić multipleks. Jeden SCT obsługuje 16 diod led, do ustalenia prądu diod potrzeba 1 rezystor. Transmisja danych przez SPI, dla 100 szt. led wystarczy 7 scalaków. Obecnie cena w TME nie przekracza 2 zł brutto za sztukę. No i jakie łatwe oprogramowanie tych układów, szczególnie gdy podpięte są...
Witam, Przeszukałem forum, goglowałem i niestety nie mogę znaleźć rozwiązania pewnego problemu. Poskładałem mały projekcik oparty na atmega8 i 6 segmentach LED. Do anod użyłem 6xbc327 sterowanych z portu d przez rezystory 10k. Katody steruje z portu c przez rezystorki 220 ohm. Programy testowałem różne - pisałem je w bascom - ostatni służący do testów,...
Ja wykonałem dwa układy dające pomiary w szerszym zakresie. Jeden działał w dość szerokim zakresie napięć bo tak od 50mV do 500V. Tutaj temat: http://www.elektroda.pl/rtvforum/topic15... Nie przedstawiłem tam ostatecznego schematu więc go podam tutaj: http://obrazki.elektroda.pl/1538948400_1... Pomiar napięć był w 6-ciu zakresach....
...NIGDY nie robi się multipleksowania na tym samym Timerze , który jest wykorzystany do odmierzania czasu... ...Mega 8 na pewno ma dwa Timery, więc jeden na przerwania związane z czasem oczekiwania klawiszy, natomiast drugi do multipleksacji.... Hmmm... nie wiem czy dobrze zrozumiałem, ale jeśli się mylę to mnie popraw i wytłumacz dlaczego wszystko...
Ciepły ma prawo się robić pobór prądu przez taki wyświetlacz nie jest mały 7 led *10mA razy spadek napięcia na stabilizatorze (Uwe-Uwy) i się zrobi trochę ciepła ;) a przy multipleksie masz pewnie sporo większy prąd led bo na 10mA to je ledwo widać ;) . Gdybyś miał zwarcie to byś się do niego nie dotknął po 5s .
W tej chwili nie ma znaczenia co załadujesz do rejestrów sterujących tranzystorami. Świeciło będzie zawsze. Na pewno tranzystory sterujące wyświetlaczami są podłączone nieprawidłowo. Jeżeli nie potrafisz określić gdzie jest dren, a gdzie źródło, to pamiętaj, że diody w tych tranzystorach mają być spolaryzowane zaporowo. U Ciebie są spolaryzowane w kierunku...
Jestem w trakcie tworzenia programu do syntezy na SAA1057 ,do tego 4 wyświetlacze 7 segmentowe ,utknąłem w momencie gdy trzeba było przekonwertować liczbę całkowitą (bo w takiej przechowuję na częstotliwość) na poszczególne jej cyfry ,tak aby można było to wysłać do zmiennych obsługi multipleksu.
1. Dlaczego każdy bit przechowujesz na 16 bitach w pamięci RAM (typ int) zamiat trzymać po 8 bitów w jednym bajcie pamięci Flash? 2. Co pisze kompilator o zajętości pamięci RAM? 3. Skróć program min. 20-krotnie, wyrzuć wszystkie switch() i użyj prawdziwej pojedynczej 2- lub3-wymiarowej tablicy do przechowywania obrazów znaków. W ten sposób całe wyświetlanie...
Tylko jeden segment 8x8.
OK, w takim układzie powyżej kolega BlueDraco już Ci to wyliczył, ale zapoznaj się dobrze z artykułami, które Ci wskazałem, bo za chwilę, będziesz multipleksował kilka wyświetlaczy, a wtedy bezwzględnie należy znać ograniczenia procesora i zasady dot. diod.
Proszę bardzo: [syntax=c]ISR(TIMER1_COMPA_vect) { static uint8_t licznik=1; // zmienna do przełączania kolejnych wyświetlaczy if (licznik==1) wylacz_czwarty_i_wlacz_pierwszy_segment(... if (licznik==2) wylacz_pierwszy_i_wlacz_drugi_segment(); if (licznik==3) wylacz_drugi_i_wlacz_trzeci_segment(); if (licznik==4) wylacz_trzeci_i_wlacz_czwarty_segment();...
Witam W ramach nauki języka C napisałem program do multipleksowania wyświetlaczy siedmiosegmentowych LED. Gdy obsługę wyświetlacza miałem w pliku main.c wszystko działało prawidłowo. Postanowiłem jednak podnieść sobie poprzeczkę i wszystko co jest związane bezpośrednio z wyświetlaczem przenieść do plików led7.c i led7.h. No i zaczęły się problemy, których...
Anody wyświetlaczy musisz sterować osobno. Musisz więc zastosować dodatkowe tranzystory, które będą sterowane z mikrokontrolera. Poczytaj o multipleksowaniu wyświetlaczy. Nie zapomnij też o rezystorach ograniczających prąd w segmentach. Pozdrawiam Adam
czyli jak w programie zmienie multipleks na timer 1 to bedzie działało?
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...
wywołanie funkcji odbywa się przez dodanie () do końca więc s7_init powinno być zapisane s7_init();
W przewlekanych to ATmega8515 ma dostępnych 35 pinów do wykorzystania (PORTA - PORTD =- 4x8pin; PORTE - 3pin) Light'I
Nie, SPI jest tutaj świetnym rozwiązaniem jak i każdy inny interfejs szeregowy (niestety nie mogę znaleźć popularnego drivera 6 led z i2c). Ale jeżeli już stosować układy zewnętrzne to chciałbym uniknąć nadmiaru wykorzystanych pinów minimalizując tym samym sam procesor - będę mógł wsadzić do układu wtedy jakaś ATMEga8, a może nawet ATTiny. W układach...
Albo w tym schemacie brakuje rezystorów w katodach, albo w oprogramowaniu trzeba będzie zrobić odwrotne multipleksowanie (czyl na 8 faz, po segmentach, a nie po cyfrach. Moim zdaniem schemat jest błędny, bo nie wierzę, że ktoś w kodzie chciałby robić odwrotny multipleks.
Odłączyłeś programatory od układów ?
Rzecz w doborze rezystorów do bazy kolektora (edit: i bazy w gruncie rzeczy). Rejestr przesuwny: M74HC595B1 tranzystor NPN: BC547B rezystory na diodach led: 220Ω µC: ATMega8A wyświetlacze siedmiosegmentowe ze wspólną katodą. Wzmocnienie tranzystora hFE: 266 (zmierzone tanim, pospolitym miernikiem) Zasilanie układu (z programatora STK500v2)...
Napisz wyświetlanie od nowa - w tym kodzie wszystko jest źle. Zdefiniuj obrazy cyfr w postaci tablicy stałych indeksowanej wartością cyfry. Wyrzuć procedury wyświetlania cyfr i switche, które je wywołują - to wszystko razem da się zrobić w jednej linijce kodu, a u Ciebie zajmuje to ponad 120 linii. Wyświetlacz multipleksowany MUSISZ obsługiwać w przerwaniu...
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.
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...
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;...
Niestety to co napisałeś albertb nie sprawdza się ;/ korzystam z Atmega8. Czy ma ktoś pomysł jak wyeliminować mruganie "setek" ??
Nie tak dawno też nieco walczyłem z tym wyświetlaczem. Wyświetlacz fajny ale potrafi być oporny :D Trochę czasu musiałem na niego poświęcić żeby ruszył... Biblioteki które można znaleźć na necie nie zawsze działają. Miałem podobny problem. Rozwiązaniem okazało się wysyłanie odpowiednich komend do sterownika. U mnie działało dla takiej konfiguracji:...
Dopiero teraz załapałem że to nie taki zwykły czujnik a wypasiona wersja, to tlumaczy cenę. Nie mogę sobie przypomnieć jak sie nazywał taki przełącznik, ale tutaj masz link do czegoś co może mieć taka funkcjonalność: http://www.tme.eu/pl/details/dg211bdj/mu... Multiplexery/demultiplexery też mają podobną funkcjonalność...
Problem jeszcze może byc w ilości diod, które sterujesz z jednego pinu IO. Napięcie pinu IO mocno zależy od prądu pinu, w efekcie uzyskasz efekt taki, że w zależności od ilości włączonych diod będzie się zmieniać ich jasność. Niewykluczone też że przekroczysz maksymalny dopuszczalny prąd pinu. Stąd lepiej do sterowania rzędów wykorzystaj klucz tranzystorowy....
Nie wiem w ogóle o co chodzi, Ale a)Segment dłuższy: zwykła praca: 11x20mA = 220mA multiplex: 4*(11x20mA) = 880mA Coś mi się nie podoba. Jakim cudem w multipleksie jest większy prąd niż przy zwykłej pracy!?
wyświetlacz multipleks multipleks wyświetlacz multipleks bascom
przełącznika kierunkowskazów delonghi magnifica pompka tablet awaryjny
bateria milwaukee myjka ultradźwiekowa
Canon GP405 - Problemy z kartą druku Radio Seat 6K2 - Modernizacja, Problemy Techniczne, Wymiana