| Author |
Message
|
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#1
30 Oct 2005 18:50 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
Witam!!
Chcialbym sie dowiedziec jak wysterowac 3 wyswietlacze segmentowe LED ( 888 ) za pomoca atmegi. OCzywiscie oprocz tych wyswietlaczy ma byc LCD 2*16 lub 2*20 albo jeszcze wiekszy :) ale tu problemu nie ma.
liczby wyswietlane to od 1 do 300 i tak, zeby jak sa tylko jednosci i dizesiatki nie bylo przed nimi zer (np 29 zamiast 029)
calosc w BASCOMie AVR - dopiero zaczynam programowac :)
czy jest mozliwosc wysterowania wiekszej liczby wyswietlaczy??
myslalem o czyms takim: na wyjsciu megi podac jakas czestotliwosc (jesli sie da) i do tego przetwornik czestotliwosc => napiecie i potem woltomierz z dekoderem 7-segmentowym :/ ale to dosc duzo elementow i komplikacja niepotrzebna (chyba)
prosze o pomoc wtej kwestii.
tylko po ludzku i jak do debila mowcie :D
|
|
| Back to top |
|
 |
bogdan_p Poziom 23

Joined: 12 Feb 2003 Posts: 3519
|
#2
30 Oct 2005 19:00 Re: atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
a nie łatwiej większy LCD np 4*16 i w każdej linijce wyświetlać potrzebną wartość
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#3
30 Oct 2005 19:13 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
latwiej ale musi to byc dobrze widoczne i chodzi o wielkosc znakow => musza miec z 3cm wysokosci :/
ewentualnie wyswietlacz graficzny drugi albo wyswietlacz tak jak piszesz 4*16 i wyswietlac na nim cale pola ciemne tak zeby tworzyly cyfry
ale to chyba trudne :/ no i to musialby byc drugi wyswietlacz, bo na pierwszym - podstawowym beda inne parametry wyswietlane.
|
|
| Back to top |
|
 |
marek_Łódź Poziom 23

Joined: 23 Dec 2004 Posts: 3131 Location: Łódź
|
#4
30 Oct 2005 19:20 Re: atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
| Lodoo wrote: |
| myslalem o czyms takim: na wyjsciu megi podac jakas czestotliwosc (jesli sie da) i do tego przetwornik czestotliwosc => napiecie i potem woltomierz z dekoderem 7-segmentowym :/ ale to dosc duzo elementow i komplikacja niepotrzebna (chyba) |
Troszku przyszalałeś z tym przetwarzaniem...wyświetlacz LED najprościej sterować bezpośrednio z procesora. Musisz poszukać przykładowych rozwiązań. W przypadku 3 cyfr na ATMega8 masz co najmniej dwie możliwości.
Pierwsza to sterowanie w multipleksie - cykliczne zapalanie poszczególnych cyfr z szybkością zapewniającą wrażenie ciągłego świecenia (potrzebny 1 port 8 lub 4 bity dla segmentów i po 1 bicie na każdą zapaloną cyfrę, czyli w sumie 7-11 bitów sterujących). Ten układ sprawdzi się do 6-10 cyfr w zestawie.
Druga - wykorzystanie rejestrów przesuwających (np. 74..164) o łącznej długości odpowiadającej liczbie sterowanych segmentów, sterowanych z portu SPI. W tym przypadku niezależnie od długości wyświetlacza potrzebne są dwie lub 3 linie sterujące. W przypadku większych prądów sterujących konieczne jest dołożenie driverów (np. ULN2803). Układ taki umożliwia podłączenie nawet kilkudziesięciu cyfr. Załadowanie jednej cyfry czyli 4 lub 8 bitów przez SPI może trwać poniżej 1µs.
Oczywiście możesz też poszukać gotowców do sterowania wyświetlaczem LED np. przez I2C, ale wyjdzie to pewnie drożej.
No i oczywiście w programie oprócz sterowania portów (np. w przerwaniu zegara), musisz jeszcze umieścić jakieś procedury konwersji, które przetworzą Ci Twoją liczbę na kody odpowiadające układowi wyświetlającemu.
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#5
31 Oct 2005 18:18 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
brzmi strasznie :/
moglbys bardziej zczegolowo rozpisac te 2 metody bo nei za bardzo kojarze jak mozna zapalac "kreski" po kolei wykorzystujac mniejsza ilosc pin'ow :/
jedyne co przychodzi mi do glowy to 3 cyfry czyli 3 piny i w kazdym po 7 "kresek" i wszystkie kreski "a" polaczone ze soba wszystkie "b" i tak do "g" i to do 7 wyprowadzen proca czyli 10 pinow. i zapalac tak jak mowisz - po kolei szybko: np kreska "a" i w tym czsie jak jest "a" to zapalac odpowiadajace temu wyswietlacze i tak wszystko p okolei...
ale jak to napisac to nie mam pojecia :/ przeciez to bedzize bardzo duzo kodu. liczby od 0 do 300 i nic wiecej
a drugie wyjscie => czyli drugi wyswietlacz LCD i wyswietlanie duzych cyfr na 2 linijki?
albo moze latwiej niz te 7-segmentowe bedzie wykorzystac taki wyswietlacz LCD z multimetru czy kalkulatora?
|
|
| Back to top |
|
 |
Samuraj Poziom 22

Joined: 08 Oct 2002 Posts: 1923 Location: Szczecin
|
#6
31 Oct 2005 19:49 Re: atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
Z LCD jest podobne a do tego musisz za palac i gasic segment z odpowiednią częstotliwością.
A ten drugi sposób (szeregowo).
Do jednego układu podpinasz wszystkie segmenty
Na jedną noge podajesz czy dany segment ma sie palić czy nie.
Jak juz ustalisz czy ma sie świecic czy nie to podajesz sygnał na CLK i lecisz z kolejnym segmenem, i tak az do ostatniego.
Po podaniu wszystkich danych podajesz sygnał na 3 noge i dane pojawiają sie na wyświetlaczu.
Układy mozesz łączyć razem szeregowo.
Czyli w twoim wypadku bedzie to ciąg 21 bitów.
Po ich wysłaniu podajesz sygnał i dane się pojawiają.
Nie opisałem dokładnie na które nóżki należy podawac jakie sygnały bo nie mam przed sobą pdf'a. Ale przynajmniej wiesz jak to powinno wygladać. Trzy nózki procesora. Dane, zegar (CLK) oraz przepisanie danych z rejestru na wyjście.
Czy to będzie dużo kodu.
Hmm nie znam sie na baskomie ale petle i przesunięcia bitowe jakies on tam w sobie ma. Wielkość kodu tylko żależy od Cibie.
A i można jeszcze trzecim sposobem. Bedzie to najłatwiejsze ale zarazem najdroższe rozwiązanie.
Są specjalne układy pracujące na magistrali I2C.
Tylko dwie nogi procka. Ale jeden układ steruje tylko dwoma wyświetlaczami.
Powodzenia.
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#7
31 Oct 2005 20:01 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
i tak nie kumam - chyba musze to 100 razy przeczytac :D
jak ktos potrafi jeszcze dokladniej to opisac (zasade dzialania) to prosze :)
wiem, wiem - jestem debilem :P
|
|
| Back to top |
|
 |
marek_Łódź Poziom 23

Joined: 23 Dec 2004 Posts: 3131 Location: Łódź
|
#8
31 Oct 2005 20:30 Re: atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
| Lodoo wrote: |
| jedyne co przychodzi mi do glowy to 3 cyfry czyli 3 piny i w kazdym po 7 "kresek" i wszystkie kreski "a" polaczone ze soba wszystkie "b" i tak do "g" i to do 7 wyprowadzen proca czyli 10 pinow. i zapalac tak jak mowisz - po kolei szybko: np kreska "a" i w tym czsie jak jest "a" to zapalac odpowiadajace temu wyswietlacze i tak wszystko p okolei... |
Brzmi to strasznie, ale właśnie opisałeś własnymi słowami sterowanie w multipleksie. W pierwszym etapie musisz rozbić liczbę na cyfry, przekodować je na układ (jak to nazwałeś) kresek i wysłać to na port sterujący kreskami, wysyłając jednocześnie sterowanie na bit wyboru cyfry. Program nie jest aż tak bardzo złożony, ale wymaga sterowania w przerwaniach zegara. W drugim przypadku przekodowane dane przesyłasz przez port SPI.
|
|
| Back to top |
|
 |
Sind Poziom 14

Joined: 03 Feb 2003 Posts: 182
|
#9
31 Oct 2005 20:37 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
polecam ksiazke bascom-avr tam jest ladnie opisane co i jak zrobic i jest tez przykladowy program obslugujacy i rozwiazanie praktyczne
pozdrawiam
|
|
| Back to top |
|
 |
Google

|
#
31 Oct 2005 20:37 |
|
|
|
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#10
31 Oct 2005 21:36 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
ok dzieki :)
to troche z tym pomysle i zalapie chyba o cho chodzi :)
a pozostaje jeszcze 2 pytanie: czy da sie obsluzyc 2 wyswietlaczeLCD na 1 ukladzie atmega8?
|
|
| Back to top |
|
 |
Sind Poziom 14

Joined: 03 Feb 2003 Posts: 182
|
#11
31 Oct 2005 22:25 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
Napewno sie da, tylko podejrzewam ze zwykle procedury bascomowe tego nie obsuza, gdyz tam tylko uzywasz polecenia LCD, ale odpowiednia konfiguracja pinow i troche assemblera i pewnie uda sie cos takiego stworzyc.
Jeszcze jedna mozliwosc (sam jeszcze nie testowalem jak i tej poprzedniej to tylko pomysl) polaczenie dwoch wyswietlaczy rownolege i sterowanie bitem odczyt/zapis, ale nie mam pojecia czy to bedzie dzialac... ;) :D
Pozdrawiam
|
|
| Back to top |
|
 |
marek_Łódź Poziom 23

Joined: 23 Dec 2004 Posts: 3131 Location: Łódź
|
#12
31 Oct 2005 22:30 Re: atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
Jeśli ma to byc typowy LCD ze sterownikiem np. HD44780 to wszystkie linie równolegle (razem) z wyjątkiem rozdzielonych linii enable. W ten sposób można obsłużyć z jednego procesora kilka wyświetlaczy (mając odpowiedni program - BASCOM bez doróbek chyba tego nie obsłuży).
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#13
31 Oct 2005 23:57 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
wiec bede musial zrobic 2 procesorowy ukladzik :/ trudno, 2 programy, 2 atmegi :/ ale co tam :)
8zl w ta czy w ta strone :)
przynajmniej jak sie skonczy miejsce w 1 to bedze 2 :)
ma to byc poprostu taki komputerek samochodowy ktory przejmie funkcje zegarow.
chcialem wsyzstkie funkcje wyswietlac na wyswietlaczy 4*16 lub 4*20 (przebieg, poziom paliwa, temperatura, itd) i aktualna predkosc na 3 7-segmentowych LED'ach. bede kombinowal :)
to ostatnia sprawa:
czy da sie jakos latwo (w BASCOM) zrobic tak zeby ta predkosc wyswietlalo wiekszymi cyframi? tak na wysokosc 2 linijek? czy na wyswietlaczu graficznym?
mam w urzadzeniu biurowym canon mp730 taki wyswietlacz 2*20 ale dziwnie zrobiony bo nie ma przerwy miedzy linijkami - jest jakby 1*20 ale wysokosc komórki to 16 znakow a szerokosc 5 (takie polaczone 2 linijki + 2 dodatkowe wiersze pikseli) ... i tekst jest wyswietlany w 2 rzedach a po prawej stronie wyswietlacza dyzymi syframi liczba kopii... cos takiego byloby super :)
|
|
| Back to top |
|
 |
bogdan_p Poziom 23

Joined: 12 Feb 2003 Posts: 3519
|
#14
01 Nov 2005 08:31 Re: atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
w Bascomie CRL+L i sam defeniusz znaki połączenie znaków 1 i 2 linii powinno dać Ci porządany efekt , to moja propozycja
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#15
01 Nov 2005 10:36 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
no tak wiem => musialbym zdefiniowac "moje" cyfry od "0" do "9"
tylko jak teraz zmusic zeby wyswietlajac jakas jedna zmienna progam korzystal z tych znakow jako liczb a reszte zmiennych wyswietlal normalnie :/
no i prosilbym jeszcze o skladnie programu w bascom'ie odpowiadajaca za multiplex - bo zasade juz znam ale jak to napisac to nie mam pojecia
a nie znalazlem na elektrodzie nigdzie - sa przyklady w assemblerze ale w nim nic nie kumam
|
|
| Back to top |
|
 |
bogdan_p Poziom 23

Joined: 12 Feb 2003 Posts: 3519
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#17
02 Nov 2005 01:04 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
kurs czytam ale tam jest plytka z wyswietlaczem LCD i tylko 1 wyswietlacz segmentowy :(
|
|
| Back to top |
|
 |
Google

|
#
02 Nov 2005 01:04 |
|
|
|
|
|
| Back to top |
|
 |
bogdan_p Poziom 23

Joined: 12 Feb 2003 Posts: 3519
|
#18
02 Nov 2005 07:56 Re: atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
chodzi o programy "Ośla łączka " jest tam opisany sposób sterowania wyświetlaczami led ( na końcu strony ) lekcje C008 > C018
z samego kursu jest tylko wstęp
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#19
02 Nov 2005 19:58 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
znalazlem - faktycznie sa tam na koncu jakies cyferki :)
jest
DATA tablica i cyferki - i one niby definiuja znaki - ale nie wiem w jaki sposob... :( skad oni to wiedza ze np 194 odpowiada dziewiatce (przyklad) itd...
|
|
| Back to top |
|
 |
bogdan_p Poziom 23

Joined: 12 Feb 2003 Posts: 3519
|
#20
02 Nov 2005 21:22 Re: atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
każda liczba odpowiada zapalonym segmentom wyświelacza , w tym przykładzie masz zapis dziesiętny tej wartości
poszukaj w dziale download jest program który pozwoli Ci zrozumieć jak powstają te cyferki
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#21
02 Nov 2005 22:24 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
dziekuje :) juz szukam :)
no i nie znalazlem - chociaz posciagalem duzo rzeczy z DOWNLOAD - nigdy tam nei bylem :D
wiec prosilbym o jakiegos linka skad sie biora te cyferki
zauwazylem ogladajac rozne projekty, ze co projekt to tej samej cyfrze na wyswietlaczu odpowiadaja inne cyferki w tablicy :/ domyslam sie ze to zalezy poprostu do jakich pinow proca sa podpiete poszczegolne segmenty -- ale dalej nie mam pojecia jak obliczyc te kody :(
|
|
| Back to top |
|
 |
Samuraj Poziom 22

Joined: 08 Oct 2002 Posts: 1923 Location: Szczecin
|
#22
03 Nov 2005 00:20 Re: atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
Zamień tę cyfre np.194 na binarną 11000010 (przedstaw ją w innym systemie niż dziesiętny). Dla uproszczenie w kalkulatorze windowsa jest takie coś jak przełączysz na naukowy. I teraz każda 1 odpowiada zapalonemu segmentowi a 0 zgaszonemu. Wysyłając odpowiednią wartośc na port sterujesz odrazu 7 segmentami wyświetlacza + kropka (8 bitów).
A i jeszcze jedno czy 1 to zapalony czy 0 to zależy od wyświetlacza czy sterowany jest anodą, czy katodą.
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#23
03 Nov 2005 13:02 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
aaaa no to juz czaje baze :)
dziekuje bardzo :)
|
|
| Back to top |
|
 |
bogdan_p Poziom 23

Joined: 12 Feb 2003 Posts: 3519
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#25
04 Nov 2005 03:25 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
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 reszcie bitow chcialbym obsluzyc wyswietlacz, czy da sie to zrobic jakos?
bo narazie to potrafie tylko tak:
...
Case 1:
Portc.4 = 0
Portd = Lookup(dziesiatki , Tabela) 'i tu chce pominac pin 5 bo potrzebuje 7 bitow (nie uzywam kropki)
...
wiec mam problem z tym: nie mam zadnego calego portu wolnego do wyswietlacza :(
bort B - 2bity maja podpiety kwarc
port D - bit5 do timer'a
port C - bit6 do resetu
wiec jak ja mam podlaczyc to pie**** multipleksowanie :( :( :(
|
|
| Back to top |
|
 |
zatiro Poziom 14

Joined: 17 Mar 2003 Posts: 181 Location: Grodków
|
#26
04 Nov 2005 07:17 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
Witam.
A może zastosować układzik SAA1064 sterowany po I2c z AtMega 8, który obsługuje 4 wyświetlacze siedmiosegmentowe.
Robiłem na tym i dziła rewelacyjnie i finansowo też nie drogo, no i można regulować jasność świecenia programowo.
Muszę poszukać to co robiłem i przygotować do odpowiednio czytelnej formy, to podeślę.
Tu link do notki SAA1064
http://elenota.iele.polsl.gliwice.pl/pdf/Philips/saa1064_cnv_2.pdf
|
|
| Back to top |
|
 |
Google

|
#
04 Nov 2005 07:17 |
|
|
|
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#27
04 Nov 2005 12:31 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
to swinstwo :D kosztuje 20zl wiec taniej mi kupic atmege ktora bedzie obslugiwala tylko wyswietlacz :) ale dzieki za chec pomocy :) poza tym nie mam pojecia o I2C a to trzeba jakos konfigurowac dziwnie - jeszcze nie potrafie :)
|
|
| Back to top |
|
 |
zumek Poziom 23

Joined: 08 Oct 2003 Posts: 3091 Location: Włocławek
|
#28
04 Nov 2005 14:06 Re: atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
| Lodoo wrote: |
...
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 reszcie bitow chcialbym obsluzyc wyswietlacz, czy da sie to zrobic jakos?
... |
Oczywiście , że się da sie to zrobić :D
Uzywając operacji logicznych OR,AND,XOR , możesz zmieniać "hurtowo" stan dowolnej ilości bitów w np. bajcie , bez ingerencji w pozostałe bity , w owym bajcie.
Piotrek
|
|
| Back to top |
|
 |
marek_Łódź Poziom 23

Joined: 23 Dec 2004 Posts: 3131 Location: Łódź
|
#29
04 Nov 2005 14:11 Re: atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
| Lodoo wrote: |
| to swinstwo :D kosztuje 20zl wiec taniej mi kupic atmege ktora bedzie obslugiwala tylko wyswietlacz :) ale dzieki za chec pomocy :) poza tym nie mam pojecia o I2C a to trzeba jakos konfigurowac dziwnie - jeszcze nie potrafie :) |
Tańsze driverki i od razu na 8 cyfr z serii ICM7218/7228. No ale sterowanie bezposrednio z portu procesorka faktycznie wychodzi znacznie taniej.
|
|
| Back to top |
|
 |
Lodoo Poziom 14

Joined: 13 Jul 2004 Posts: 179 Location: Wrocław
|
#30
04 Nov 2005 14:11 atmega8 i wyświetlacz 7 segmentowy LED ==> BASCOM |
|
|
|
zaraz pokombinuje :)
dzieki
|
|
| Back to top |
|
 |