Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 12 gru 2024, o 01:11


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 25 kwi 2013, o 18:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 kwi 2013
Posty: 88
Pomógł: 1

Witam ;)
Na początku zaznaczę że jestem kompletnie zielony jeśli o uC chodzi, jedyne doświadczenie mam w programowaniu :)
Wczoraj przyszła do mnie paczka z podstawowymi elementami, w tym wyświetlaczem LED, tym konkretnie:
http://sklep.avt.pl/p/pl/482881/wyswiet ... m++wa.html
Jak na zielonego przystało, udało mi się go uruchomić, dość "chałupniczo" ;)
Podłączyłem anody do Vcc, kolejne piny przez rezystory 1K do wszystkich PORTB mojej ATMegi8A.
Kod do tego wygląda tak:
http://pastebin.com/NviDZR30
Jeśli liczyć to za sukces, działa :D
Problem w tym że Pan Mirek powiedział mi na Skype że zrobiłem to kompletnie nie tak :o Wspominał coś o miltipleksowaniu, problem w tym że nie mam do tego żadnych materiałów. I tu prośba do was, forumowicze. Znacie jakieś dobre materiały o multipleksowaniu? Musi być to wytłumaczone dość łopatologicznie, jestem raczej laikiem elektroniki w ogóle ;)
Z góry dziękuję za pomoc.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 18:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2013
Posty: 844
Lokalizacja: Przemyśl
Zbananowany użytkownik

Pomógł: 43

Sama zasada działania jest bardzo ładnie i w prosty sposób przedstawiona w niebieskiej księdze.
Działa to tak:
segmenty katod poszczególnych wyświetlaczy łączymy razem i poprzez driver lub tranzystory(npn) podłączamy do procesora. Anody każdą osobno zasilamy również przez driver lub tranzystory (pnp) i podłączamy do procesora.
Dzięki temu ograniczamy ilość niezbędnych linii do 8+4 zamiast 32 ;)

Aby wyświetlić daną cyfrę (np. 3) na drugim wyświetlaczu "włączamy" tranzystor anody drugiego wyświetlacza oraz tranzystory od danych segmentów. Działając w ten sposób oraz przełączając poszczególne wyświetlacze ze znaczną częstotliwością po kolei (oraz wykorzystując bezwładność ludzkiego oka) mamy zamierzony efekt, czyli w tym przypadku wyświetlona liczbę 4 cyfrową.

Pogmatwany opis, wiem :(

_________________
Klimatyzacja Przemyśl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 18:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 kwi 2013
Posty: 88
Pomógł: 1

Wow, ale ja mam tylko jedną małą "ósemkę" nie żadne 4 cyfry ;D

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 18:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2013
Posty: 844
Lokalizacja: Przemyśl
Zbananowany użytkownik

Pomógł: 43

Przy pojedynczym wyświetlaczu to normalnie podłączasz, anoda do plusa, katody przez rezystory do portu i heja ;)

Jaki efekt chcesz osiągnąć?


Autor postu otrzymał pochwałę

_________________
Klimatyzacja Przemyśl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 18:36 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3206
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

Przy wyświetlaczu jednocyfrowym żadne multipleksowanie ci nie jest potrzebne.

Przyda się (a nawet trzeba je stosować) dopiero od 2 cyfr wzwyż.

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 18:47 
Offline
Użytkownik

Dołączył(a): 11 lut 2013
Posty: 140
Lokalizacja: Kraków
Pomógł: 10

zrob sobie tablice gdzie wpiszesz wartosci jakie maja byc wystawiane na PORTB i potem ustawiaj na niego wartosci np tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 19:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 kwi 2013
Posty: 88
Pomógł: 1

@janeczq napisałem przecież, że właśnie tak zrobiłem ;)
@Jaglarz pan Mirek mnie zmylił ;)
@matisek1233 a przeczytałeś mój kod, który podesłałem w pierwsszym poście? To samo zrobiłem funkcjami ;)
Mimo wszystko ponawiam prośbę o materiały dotyczące multipleksowania, kto wie, kiedy będą potrzebne ;)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 19:19 
Offline
Użytkownik

Dołączył(a): 11 lut 2013
Posty: 140
Lokalizacja: Kraków
Pomógł: 10

ta.. tyle ze teraz zajmuje ci to wiele wiecej pamieci.. ale to twoj wybor.. jak chcesz ogarnac multipleksowanie to poczytaj najpierw cos o przerwaniach



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 22:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

kacperu2 napisał(a):
@matisek1233 a przeczytałeś mój kod, który podesłałem w pierwsszym poście? To samo zrobiłem funkcjami
Mimo wszystko ponawiam prośbę o materiały dotyczące multipleksowania, kto wie, kiedy będą potrzebne


A zrobisz funkcjami np tak :
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wyświetlanie cyfr za pomocą takich funkcji właśnie przy multipleksowaniu bardzo mocno się zemści na tobie ......

ponieważ w czasie multi zmieniasz wyświetlacz ok 200 razy na sek i wygodniej jest to robić na tablicy.

Po krótce multipleksowanie to zmiana wyświetlacza a raczej segmenyu wyświetlacza ok 25 razy na sek na każdy wyświetlacz z równoczesną zmianą wartosci portu tak aby pozycja na wyświetlaczu odpowiadała cyfrze która ma się wyświetlić na nim.

Uff ale zamotałem ;)

Co do przykładowgo kodu to jest w bluebook'u :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 22:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 kwi 2013
Posty: 88
Pomógł: 1

@Malutki_27 Ok, zastanowię się nad tym, dzięki.

Muszę przyznać że społeczność na tym forum jest dużo bardziej otwarta na nowe osoby niż na elektrodzie ;D

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 kwi 2013, o 22:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

Miło to słyszeć ;)

Jeszcze jedno, jak piszesz funkcję która ma nic nie zwaracac to wykorzystaj typ void

Ty piszesz tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


A powinieneś:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2013, o 05:33 
Offline
Użytkownik

Dołączył(a): 11 lut 2013
Posty: 140
Lokalizacja: Kraków
Pomógł: 10

jak chcesz to przerobie troche swoja biblioteke do obslugi wyswietlacza i ci podesle.. bo na dzien dzisiejszy to mam w niej strasznie namieszane. zobaczyl bys jak to mniejwiecej sie to zwykle robi.. no i przy okazji inni mogli by mi wytknac bledy
no.. chyba ze masz juz jakies materialy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2013, o 11:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 21 gru 2012
Posty: 161
Pomógł: 9

A poszukać to nie łaska?? Tematów na forum o multipleksowaniu mnóstwo...
Tutaj nawet jest pełny kod: topic2490.html?hilit=multipleksowanie
dalej: post27386.html?hilit=multipleksowanie
kolejny: post26883.html?hilit=multipleksowanie
i jeszcze: post19301.html?hilit=multipleksowanie

I praktycznie masz wszystko wytłumaczone... Z gotowcami nawet, dobrze wyjaśnione. W jednym jest nawet jak podłączony jest wyświetlacz, a wszystko to na pierwszej stronie wyszukiwania słowa "multipleksowanie".

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2013, o 15:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 kwi 2013
Posty: 88
Pomógł: 1

@Malutki_27 Oczywiście że o tym wiem ;D Do niedawna opracowywałem prosty projekt w "pierwszym" Ansi C (standard C89). To o czym piszesz weszło do standardu Ansi dopiero gdy uznano C99, czyli trochę później ;) Przyzwyczajenia to zła rzecz.
@matisek1233 Podsyłaj, podsyłaj ;D i sprawdź PW ;)
@Domanoid Dzięki za linki. Wiem że na mniejszych forach, takich jak to szukanie nie boli, ale od kiedy próbowałem coś znaleźć na elektrodzie mam do szukajki lęk :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 kwi 2013, o 17:13 

Pomógł: 0

Najlepiej się wyszukuje przez "słowo kluczowe" a potem site:forum.atnel.pl
np.



Góra
  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO