(3 głosujących)
Działanie:Schemat ideowy Wyświetlacza przedstawiony jest na rysunku poniżej: Sercem układu jest mikrokontroler U1 (ATMEGA16) wraz z rezonatorem kwarcowym X1 (16MHz) i kondensatorami C1 (22pF) i C2 (22pF). Złącze Prog (Goldpin) uożliwia zaprogramowanie mikrokontrolera a poźniej służy do podłączenia przycisku wygaszającego wyświetlacz. Elementy C3 i C4 stanowią filtr zasilania. Do komunikacji z innym układem wykorzystywany jest prosty interfejs RS-232 zbudowany z dwoch tranzystorow T13 (BC556) i T14 (BC546) oraz rezystorow R25 - R27 (10k). Gdyby wyświetlacz był oddalony od układu wspołpracującego o więcej niż 5m do komunikacji będzie konieczny pełny interfejs RS-232 zbudowany na układzie MAX232. Złącza RxD_G i TxD_Vcc umożliwiają podłączenie zasilania i kabli sygnałowych. Wyświetlacze LED W1 - W3 ze wspolną anodą sterowane są za pomocą tranzystorow T1 - T12 (BC556) i rezystorow R1 - R24 (3,3k). W celu ograniczenia prądu segmentow LED zastosowano rezystory R28 - R35 (330R). Budowa:Wyświetlacz można zbudować korzystając z płytki drukowanej dostępnej tutaj. Rysunek w odbiciu lustrzanym dostępny jest tutaj. Montaż należy rozpocząć od wlutowania wszystkich zwór a w szczególności tej pod układem U1. Następne w kolejności powinny być rezystory a na końcu pozostałe elementy. Pod układ U1 dobrze jest zastosować podstawkę. Pod wyświetlacze LED stosujemy podstawki DIP14 rozcięte po długości na dwie części. Złącze programujące po załadowaniu programu do mikrokontrolera wykorzystywane jest jako złącze do podłączenia przycisku wygaszającego wyświetlacz (masa i najbliższy pin). Gdy wyświetlacz musi być odddalony od sterownika o więcej niż 4-5m to zamiast obwodu z tranzystorami T13 i T14 należy zastosować klasyczny konwerter RS232/TTL zbudowany na układzie MAX232. Po zaprogramowaniu procesora do PortB.7 (w złączu programującym) można dołączyć przycisk zwierający do masy (zwykły uSwitch). Jego nacisnięcie powoduje wyłączenie wskazań wyświetlacza i przejście urządzenia w tryb oszczędności energii. Pomocą w czasie konstrukcji może okazać się schemat montażowy dostępny tutaj Wykaz Elementów:2x Złącze Śrubowe ARK2(podwójne) 1x Listwa Goldpin 1x4 (Prog) 8x 330R 2x 22pF 1x Rezonator Kwarcowy 16MHz Programowanie:Mikrokontroler do sterownika został zaprogramowany w wersji demo programu BASCOM AVR firmy MCS Electronics (http://www.mcselec.com/). Program przedstawiony jest poniżej: '************* Konfiguracja uC ***************** '*********************************************** $regfile = "m16def.dat" $crystal = 16000000 $baud = 4800 Config Porta = &B11111111 : Porta = &B11111111 Config Portb = &B01111111 : Portb = &B11111111 Config Portc = &B11111111 : Portc = &B11111111 Config Portd = &B11111111 : Portd = &B11111111 Config Timer0 = Timer , Prescale = 64 Enable Timer0 : On Timer0 Prztimer0 Enable Interrupts '********** Konfiguracja uC Koniec ************ '****************** Zmienne ******************* '*********************************************** Dim D As Byte , N As Byte , Poz As Byte Dim Mux As Byte Dim W(2) As Byte Dim Index As Byte Dim Temp(3) As Word Dim Flaga_1ms As Bit Dim Wysw(12) As Byte , Wysw_pomoc As Word Dim Opuznienie As Byte Dim Licz_sw As Word , Wyswietlaj As Bit Dim Dzielnik As Word , Mig As Bit Dim Mig_t(3) As Byte '************* Zmienne Koniec **************** '************ Warunki Poczatkowe *************** '*********************************************** For N = 1 To 12 Wysw(n) = 127 Next N N = 1 Wyswietlaj = 1 '******* Warunki Poczatkowe Koniec *********** '************** Petla glowna ****************** '*********************************************** Do D = Inkey() If D > 0 Then W(n) = D Incr N If N = 3 Then N = 1 Index = W(2) And &B11000000 Shift Index , Right , 6 If Index > 0 And Index < 4 Then W(2) = W(2) And &B00111111 Temp(index) = W(2) * 256 Temp(index) = Temp(index) + W(1) If Temp(index) >= 900 Then Mig_t(index) = 1 Else Mig_t(index) = 0 Gosub Przelicz End If End If End If If Flaga_1ms = 1 Then Flaga_1ms = 0 If N = 2 Then Incr Opuznienie If Opuznienie >= 100 Then Opuznienie = 0 D = Inkey() D = Inkey() D = Inkey() D = 0 N = 1 End If End If If Pinb.7 = 0 Then Incr Licz_sw If Licz_sw = 100 Then Wyswietlaj = Not Wyswietlaj Else Licz_sw = 0 End If If Wyswietlaj = 1 Then Gosub Wyswietl Else Portc = 255 Idle End If End If Loop End '************ Petla glowna Koniec ************** '************ Przerwanie timer 0 *************** '*********************************************** Prztimer0: Timer0 = 5 Set Flaga_1ms Incr Dzielnik If Dzielnik = 300 Then Dzielnik = 0 Mig = Not Mig End If Return '******** Przerwanie timer 0 Koniec ************ Przelicz: If Temp(index) < 1250 Then Wysw_pomoc = Temp(index) Mod 10 Wysw(index + 9) = Wysw_pomoc Temp(index) = Temp(index) / 10 Wysw_pomoc = Temp(index) Mod 10 Wysw(index + 6) = Wysw_pomoc Temp(index) = Temp(index) / 10 Wysw_pomoc = Temp(index) Mod 10 Wysw(index + 3) = Wysw_pomoc Temp(index) = Temp(index) / 10 Wysw_pomoc = Temp(index) Mod 10 Wysw(index) = Wysw_pomoc If Wysw(index) = 0 Then Wysw(index) = 10 'wygaszenie zera wiod?cego If Wysw(index + 3) = 0 Then Wysw(index + 3) = 10 End If Wysw(index + 9) = Lookup(wysw(index + 9) , Tabela) Wysw(index + 6) = Lookup(wysw(index + 6) , Tabela2) Wysw(index + 3) = Lookup(wysw(index + 3) , Tabela) Wysw(index) = Lookup(wysw(index) , Tabela) Else Wysw(index) = 127 '- Wysw(index + 3) = 100 'E Wysw(index + 6) = 119 'r Wysw(index + 9) = 127 '- Mig_t(index) = 0 End If Return Wyswietl: Incr Mux If Mux = 12 Then Mux = 0 Select Case Mux Case 0: '1000 Set Porta.7 If Mig_t(1) > 0 Then If Mig = 1 Then Portc = Wysw(1) Else Portc = 255 Else Portc = Wysw(1) End If Reset Portb.0 Case 1: '100 Set Portb.0 If Mig_t(1) > 0 Then If Mig = 1 Then Portc = Wysw(4) Else Portc = 255 Else Portc = Wysw(4) End If Reset Portb.1 Case 2: '10 Set Portb.1 If Mig_t(1) > 0 Then If Mig = 1 Then Portc = Wysw(7) Else Portc = 255 Else Portc = Wysw(7) End If Reset Portb.2 Case 3: '1 Set Portb.2 If Mig_t(1) > 0 Then If Mig = 1 Then Portc = Wysw(10) Else Portc = 255 Else Portc = Wysw(10) End If Reset Portb.3 Case 4: '1000 Set Portb.3 If Mig_t(2) > 0 Then If Mig = 1 Then Portc = Wysw(2) Else Portc = 255 Else Portc = Wysw(2) End If Reset Porta.0 Case 5: '100 Set Porta.0 If Mig_t(2) > 0 Then If Mig = 1 Then Portc = Wysw(5) Else Portc = 255 Else Portc = Wysw(5) End If Reset Porta.1 Case 6: '10 Set Porta.1 If Mig_t(2) > 0 Then If Mig = 1 Then Portc = Wysw(8) Else Portc = 255 Else Portc = Wysw(8) End If Reset Porta.2 Case 7: '1 Set Porta.2 If Mig_t(2) > 0 Then If Mig = 1 Then Portc = Wysw(11) Else Portc = 255 Else Portc = Wysw(11) End If Reset Porta.3 Case 8: '1000 Set Porta.3 If Mig_t(3) > 0 Then If Mig = 1 Then Portc = Wysw(3) Else Portc = 255 Else Portc = Wysw(3) End If Reset Porta.4 Case 9: '100 Set Porta.4 If Mig_t(3) > 0 Then If Mig = 1 Then Portc = Wysw(6) Else Portc = 255 Else Portc = Wysw(6) End If Reset Porta.5 Case 10: '10 Set Porta.5 If Mig_t(3) > 0 Then If Mig = 1 Then Portc = Wysw(9) Else Portc = 255 Else Portc = Wysw(9) End If Reset Porta.6 Case 11: '1 Set Porta.6 If Mig_t(3) > 0 Then If Mig = 1 Then Portc = Wysw(12) Else Portc = 255 Else Portc = Wysw(12) End If Reset Porta.7 End Select Return '******************************************************************************* 'Tabele do wyswietlania na wyswietlaczu '******************************************************************************* Tabela: Data 160 , 187 , 98 , 42 , 57 , 44 , 36 , 186 , 32 , 40 , 255 'znak: 0 1 2 3 4 5 6 7 8 9 pusty Tabela2: Data 128 , 155 , 66 , 10 , 25 , 12 , 4 , 154 , 0 , 8 , 255 'znak: 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. pusty '******************************************************************************* '****************************************************************************** Zdjęcia Projektu:
|
|||||||||||||||||||||||||
Do D = Inkey() If D > 0
Do
D = Inkey()
If D > 0 Then
W(n) = D
Witam
Chciałbym zapyta czy w tej części kodu ustala się moment mrugania wyświetlacza przy przekroczeniu pewny granicy temperatury. chodzi mi o zmniejszenie progu do 50 *C
Incr N
If N = 3 Then
N = 1
Index = W(2) And &B11000000
Shift Index , Right , 6
If Index > 0 And Index < 4 Then
W(2) = W(2) And &B00111111
Temp(index) = W(2) * 256
Temp(index) = Temp(index) + W(1)
If Temp(index) >= 900 Then Mig_t(index) = 1 Else Mig_t(index) = 0
Gosub Przelicz
End If
End If
End If
Pozdrawiam
Robert
Re: Wyswietlacz LED
Należy zmodyfikować tylko linijkę:
do postaci:
i powinno działać
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam PD 2- PD 7 czy można
Witam
PD 2- PD 7 czy można wykorzystać te wyprowadzenia jako wyjścia .
Pozdrawiam
Re: Wyswietlacz LED
Oczywiście że można wykorzystać te wyprowadzenia. Mogą sterować czymś dodatkowym :)
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam Chciałbym aby trzy z
Witam
Chciałbym aby trzy z nich uruchamiały się dla sygnalizacji buzera w raz z miganiem wyświetlacza.
Czy mógłbyś wskazać miejsce gdzie w procedurach musiałbym coś namieszać .
Pozdrawiam
Re: LED -> Buzzery
W miejscu wywoływania procedury wyświetlania:
Takie coś powinno działać, chociaż na razie tego nie sprawdzałem. Jak będzie działać to daj znać
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam Dzięki może dzisiaj
Witam
Dzięki może dzisiaj wypróbuje.
Pozdrawiam
Witam Chodzi pewnie o ten
Witam
Chodzi pewnie o ten fragment, ale mam jeszcze pytanie czy te procedury należy dodatkowo wstawić na początku ,czy pozmieniać w liniach?
Czy buzerki można podłączyć bezpośrednio czy standardowo przez tranzystor?
Che zrobić komunikacje RS na (433 .92 GOTOWYCH MODUŁACH) czy komunikacja w przypadku połączenia sterownika z led odbywa się w dwóch kierunkach czy wystarczy w jednym ?
Pozdrawiam
Robert
Re: LED rs232
Ten fragment programu ktory napisałem ma sie znaleźć w części:
Znajduje się to przed procedurą wyświetlania, umieszczoną na samym dole programu. Linijki dodatkowe ktore widać na wyższym wpisie mają być w zaznaczonym miejscu
Do buzzerow tranzystory pnp podłączone w standardowy sposob.
Komunikacja jest konieczna tylko do wyświetlacza
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam Buzzerki działają
Witam
Buzzerki działają .jest ok.
Serdeczne dzięki
Pozdrawiam
Witam Mam jeszcze jedną
Witam
Mam jeszcze jedną prośbę czy mógłbyś jeszcze dorobić reset tych sygnałów jednym przyciskiem.Dokładnie chodzi mi o to jak przekroczy poziom temp. a ktoś zareaguje ,to żeby nie wkurzało ucha .
Pozdrawiam
Robert
Re: Wyswietlacz RS232
Proponuje proste rozwiązanie dla wyłączenia buzzera. Wyłączenie wyświetlania powinno wyłączyć buzzery i po sprawie :)
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
WitamRozumiem iż ta
Witam
Rozumiem iż ta procedura spowoduje wyłączenie całkowite wyświetlacza ,ale pytanie kiedy on się włączy z powrotem i w którym momencie się wyłączy czy zaraz jak zacznie migać .Jeżeli tak to nie osiągnę celu i buzery są bez sensu.
Mam jeszcze prośbę ,czy mógłbyś mi wytłumaczyć co oznaczają dane linie?
Bardzo proszę
Re: Wyświetlacz LED
Tak na marginesie zapomniałem dopisać że do portu b.7 mozna podłączyć przycisk. Teraz dopisałem odpowiednią linijkę w sekcji budowa. Przycisk ten zmienia wartość zmiennej "Wyświetlaj" na przeciwny po każdym naciśnięciu. Standardowo gdy nie ma przycisku zmienna "Wyswietlaj = 1", cyfry są wyświetlane i buzerry działają. Jeżeli przycisk zostanie naciśniety to "Wyswietlaj = 0" i zostanie wykonany fragment, ktory aktualnie ma u ciebie wyglądać tak:
Po ponownym nacisnięciu przycisku wszystko wroci do normalnego stanu
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
3 czujniki ds18b20
Witam . Czy mogę niezależnie mierzyć temperaturę (w tym ujemną )przy pomocy trzech czujników DS18B20 ? jeśli tak to gdzie je podłączyć i co zmienić ?
Re: Wyświetlacz RS
Ten układ nie mierzy temperatury a jedynie wyświetla dane odbierane od innego procesora. Pomiarem temperatury musi zajmować się inny uC (program nie jest skomplikowany). W tym projekcie należało by tylko zmienić program aby wyświetlał też ujemne temperatury odbierane przez Rs232.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
pomiar na 3xds18b20
Bardzo podoba mi się ta konstrukcja ale czy mógłby autor lub(ktoś)zmodyfikować urządzonko tak żeby było można mierzyć temperatury w zakresie -40 do 150st C na 3xds18b20 lub zamieścić nowy projekt.
Re: Pomiar 3xDS
Pomiar do 150 stopni jest nie możliwy bo ds ma max 125 stopni, a do pomiaru to raczej lepszy byłby drugi uC bo z obsługą jednocześnie wyśw LED i czujników DS (więcej niż jednego) są pewne problemy. Takie coś mogło by powstać dopiero gdzieś w październiku najwcześniej.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Pomiar 3xDS
Może być od-30 do 100stC i jakie muszą być te dwa uC ? Ok poczekam do pazdziernika
Re: 3xDS
trzeba wykonać dokładnie ten układ co tu jest przedstawiony, tylko zrobić jeszcze taki prosty układzik powiedzmy na Tiny2313 który będzie mierzył temperaturę i wysyłał do tego wyświetlacza po rs232 tak jak robi to procesor obrotnicy kolektora z którym u mnie współpracuje ten wyświetlacz
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
3xds
Układ ten zmontowałem i po wgraniu hex na wszystkich led świecią segmenty G. Czy mógłby Pan narysować schemat i dopisać tak żeby to współpracowało ? (jestem raczkujący ).Ja używam oscylator wewnętrzy czy muszę dać kwarc zewnętrzy do poprawnej pracy ? Czy mogę stosować przewody do DS-ów do 20metrów ?
Re: Wysw
Segmanty pokazują "-" jak nic nie jest wysyłane do wyświetlacza na tej pozycji. Skorzystaj z fragmentu:
Zmienne T(x) typ word to temperatury pomnożone przez 10 (234 to 23,4 stopnia), reszta zmiennych to pomocnicze. Przewody do Ds mogą mieć 20m, możesz też pracować na wewnętrznym oscylatorze, tylko prędkość transmisji baud ustaw na 4800.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
3xds
Witam. Czy powstało coś takiego na 3xds po pazdzierniku i czy jest nadzieja ? pozdr
Re: Program do 3xds
Jeszcze nie powstało... napewno nie mam czasu aby zrobić urządzenie ale sam program można by napisać na podstawie innych urządzeń które robiłem. Nic nie obiecuje ale postaram się zmodyfikować program sterownika domowego z mojej strony tak aby wysyłał temperaturę po rs232 do tego wyświetlacza
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam, czy w takim
Witam,
czy w takim rozwiązaniu 1 avr obsługa 7led 2 avr pomiar i komunikacja rs wystepuje migotanie wyswietlaczy? czy wyswietlanie jest stabilne w 100%
pozdrawiam
BIGjack
Re: wyswietlacz
Nic nie miga ale procek zajmuje się tylko wyświetlaniem i odbieraniem, nic innego nie robi
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
miganie
Z tym miganiem, pytałem ponieważ po doświadczeniach z termometrami na ds-ach nigdy nie udało mi się w bascomie tak dobrac czasów aby nie było czasem jakiegoś mrugnięcia. Jeszcze mam pytanko czy przy komunikacji po rs-ie procki musza byc taktowane tym samym zegarem? jakie warunki muszą byc spełnione dla poprawnej komunikacji?
Re: Rs232
Muszą być te same parametry transmisji, boundrate, data bits oraz parity i bity stopu. Kwarce nie muszą być te same
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
rs232
Jestem w trakcie budowy termometra z kilkoma ds-ami jeden procek do odczytu a drugi do wyświtlania 6x7led procki mają się komunikować po rs232 i tu właśnie poległem. Na początku skupiłem się na danych tylko z jednego ds-a ale mam problem z odbiorem ponieważ wyświetla poprawnie temperature ale tylko przy pierwszym odczycie przy drugim juz jakieś losowe cyfry. Czy po odczycie powinienem wyczyścić bufor uart? jak poprawnie napisać procedurę odbioru z "nadajnika"
Re: Komunikacja RS
Z wysyłaniem nie ma problemu bo poprostu dajesz prointbin i wartość, gorzej z odbiorem bo trzeba odpowiednio odczytywać wartości. Ja wysyłam zawsze wartości większe od 0 i korzystam z polecenia Inkey. Jak jest wartość większa od 0 to zapisuje do kolejnych komórek tablicy, jak odczytam te 2 bajty, to zmienna N zostaje ustawiona na 1. Cały czas jest sprawdzana wartość zmiennej N. Jeśli przez jakiś czas utrzymuje się wartość różna od 1 to znaczy że nie odebrało dwóch bajtów a np 3 lub 1 i się licznik pokręcił, więc trzeba go skasować.
najlepiej dla odbioru jest zrobić jeszcze jeden próg wyżej a mianowicie zrobić jakiś protokuł transmisji. Mam tak w projekcie mirlighta. Wysyłam najpierw wartość 128 jako początek paczki, potem kolejne dane ale tak żeby wartość była nie większa niż 127 i na końcu sumę kontrolną. Dopiero jak się odebrała dobra ilość bajtów i suma się zgadza to dane są wykorzystywane a jak się nie zgadza to olewane :)
Pamiętaj że jak masz długi kabel to będziesz miał napewno problemy z transmisją. Czy dasz wolniejszą tym będzie lepiej. Jak masz kilka m kabla to zastosuj sobie bufory rs485, powinno działać o wiele lepiej
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Duże ledy i uln2803
Witaj Mirley.
Chciałbym wykorzystać twój wyświetlacz.
2 linie po 5-6 cyfr ( Twój projekt jest 3x4 )
Proszę o informacje jak to ugryźć.
Zmienne musiały by być większe,
oraz chcę zastosować uln2803 & led'y 57mm wysokości.
Uln2803 sterowanie jest 1 a w projekcie masz stan świecenia 0 jak się nie mylę.
Tom