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



Teraz jest 23 kwi 2024, o 22:09


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 2 wrz 2015, o 11:33 
Offline
Nowy

Dołączył(a): 02 wrz 2015
Posty: 10
Pomógł: 0

Witam

Po zapoznaniu się z "forum.atnel.pl" uznałem iż będzie ono właściwe dla mojego zapytania / problemu, a może i początkiem przygody z mikro kontrolerami AVR.
Pytanie jakie mnie do was przyprowadziło jest następujące:
Potrzebuję odczytu z który z styków przełącznika obrotowego 5 - pozycyjnego, aktualnie jest w stanie przewodzenia. Na przełączniku występuje napięcie stałe 3 V.
Pytanie jest więc takie czy na podstawie mojego opisu popartego załączonym obrazem, jest możliwe uzyskanie takiego efektu, oraz czy jako bardzo początkujący jestem w stanie coś takiego wykonać wspomagając się poradnikami dostępnymi w sieci oraz na tym forum. Jest to to tylko pytanie a nie prośba o wyłożenie gotowego kodu programu, więc w taki sposób należy ten post traktować.

Pozdrawiam

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2015, o 11:49 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

Oczywiście, że jest to możliwe.
Całość bardzo "statyczna". Nie trzeba nawet multipleksować, tylko zapalać odpowiednie segmenty wyświetlacza.
Procesor zanudzi się przy takim wykorzystaniu :)

------------------------ [ Dodano po: 2 minutach ]

Zmniejszyłbym tylko zasilanie uC do okolic 3V.
Jeśli jest stabilne źródło to z przełącznika nawet, albo standardowe 3.3V

------------------------ [ Dodano po: 5 minutach ]

Jakby co, służę pomocą.
I z pewnością nie tylko ja :)

Zakładam, że przełacznik jest w pobliżu uC/wyświetlacza.
Wtedy pod pięć pinów procesora podciągasz sygnał ze styków przełącznika.
Pod 7 pinów wyświetalacz. Mozna jeszcze coś robić na pozostałych wolnych pinach w razie potrzeby.
Resztę załatwi prosty kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2015, o 12:14 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 sty 2014
Posty: 336
Lokalizacja: Grodzisk Mazowiecki
Pomógł: 13

Drugi sposób to poprzez pomiar ADC wtedy do procka mamy dwa przewody (sygnał i gnd) rezystory mogą pozostać przy przełączniku. Tak jak przedmówca. Zależy czy przełącznik blisko procesora.

_________________
"Nie programuj w święta - bug się rodzi"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2015, o 12:18 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

W uzupełnieniu.
Jak jesteś pewny napięcia na przełaczniku (brak skoków np. z urządzeń indukcyjnych),
to można spokojnie podłączyć bezpośrednio (przy podciągnięciu rezystorami pinów do GND, aby nie wisiały w powietrzu - dla pewności uzyskania zera logicznego).
W przeciwnym razie podciągnąłbym piny do VCC i dał separujące tranzystory NPN z kolektorem na pin.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2015, o 12:24 
Offline
Nowy

Dołączył(a): 02 wrz 2015
Posty: 10
Pomógł: 0

Dziękuję za zainteresowanie. Zasilanie procesora oczywiście można bez problemu obniżyć natomiast nie mogę zasilić go z przełącznika bo podczas przełączania wygaszał bym go za każdym razem. Tak przełącznik powinien być w okolicy 10 cm. od procesora. Tak na wstępnym rozumieniu tego układu myślałem o podpięciu katod wyświetlacza pod PB0 - PB6, a jako wejścia pinów przełącznika PD0 - PD4, a sterowanie miało by się odbywać za pomocą wykrywania stanów wysokich PD0 - PD4. czy dobrze to rozumię ?.

Napięcia na przełączniku są stałe 3 V. i pochodzą od pięciu innych procesorów.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2015, o 12:33 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

Jak nie przewidujesz zmiany softu przez ISP, to spoko.
O zasilaniu z przełącznika myślałem o styku wejściowym (obrotowym), wtedy zasilanie byłoby cały czas.

------------------------ [ Dodano po: 3 minutach ]

A może warto zostawić PD0, PD1 (RX, TX) na wszelki wypadek?
To tak, jakbyś chciał jednak kiedyś wysyłać pozycję przełącznika dalej...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 wrz 2015, o 20:06 
Offline
Nowy

Dołączył(a): 02 wrz 2015
Posty: 10
Pomógł: 0

@tomson5 z ADC to chyba za wcześnie dla mnie bo jak pisałem jestem wcześniakiem, dziś pierwszy raz zapoznałem się z programowaniem i obsługą AVR.

@jerrylu urządzenie nie będzie więcej modyfikowane poza tym wyświetlaczem. To co zrobiłem do tej pory to wpiąłem wyświetlacz do portu D ( PD0 - PD6 ) i wygenerowałem wszystkie liczby od 0 do 9 w celu sprawdzenia działania, i na tą chwile jest wszystko ok. Teraz zajmę się się skleceniem właściwego kodu ale szczerze mówiąc nie bardzo mam jeszcze jakąkolwiek koncepcję. to moje pierwsze podejście do mikro kontrolerów więc jestem na etapie niemowlęcym. Optymalizacją się nie przejmuję byle tylko wykonanie kodu było poprawne. Jako wejście mam zamiar ustawić port C (PC0 - PC4 ). Z tymi rezystorami podciągniętymi do GND to bardzo dobra sugestia którą pewnie bym pominął.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 wrz 2015, o 06:13 
Offline
Użytkownik

Dołączył(a): 25 lut 2015
Posty: 252
Lokalizacja: Lublin
Pomógł: 23

Jak już wiesz co wystawiać na port wyświetlacza to sprawdzasz piny wejściowe, przykładowo:

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


albo

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


------------------------ [ Dodano po: 2 minutach ]

Mam nadzieję, że napisałem to w sposób zrozumiały :)
Można też zrobić tablicę 5 elementową z wartościami hex cyfr do wyświetlenia od 1 do 5.
I zapodawać kolejne komórki tablicy na PORTD z indeksem równym indeksowi pinu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 wrz 2015, o 09:24 
Offline
Nowy

Dołączył(a): 02 wrz 2015
Posty: 10
Pomógł: 0

@jerrylu Dziękuję za kody. Po pracy postaram się zrozumieć ich działania. Do ustalenia hex wyświetlacza pomocny okazał się mkAVRcalculator i jego zakładka narzędzia, w wersji free oczywiście. Zanim zauważyłem tą pomocną funkcję to pomagałem sobie windowsowskim kalkulatorkiem. Dziękuje za pomoc a o efektach poinformuję później.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2015, o 19:50 
Offline
Nowy

Dołączył(a): 02 wrz 2015
Posty: 10
Pomógł: 0

Witam
@jerrylu pozwoliłem sobie na wykorzystanie Twojego kodu ponieważ spełnia on swoją funkcję tak jak powinien. Z drugim miałem problem bo ciągle wywalał błędy więc odłożyłem go na bok żeby w niedługiej przyszłości postarać się go jednak uruchomić tak dla własnego doświadczenia. Przetestuję urządzenie i jeśli będzie wszystko dobrze to temat zamknę. Dziękuję również @tomson5 za sugestie i pozdrawiam.
Poniżej to co wgrałem do ATmega8:
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: 5 gru 2015, o 23:23 
Offline
Nowy

Dołączył(a): 02 wrz 2015
Posty: 10
Pomógł: 0

Wszystko działa bardzo dobrze. Jeszcze raz dziękuję za pomoc.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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