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



Teraz jest 28 paź 2024, o 18:32


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
Autor Wiadomość
PostNapisane: 14 maja 2012, o 19:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 maja 2012
Posty: 53
Lokalizacja: Białystok
Pomógł: 0

Witam!

Zmagam się od jakiegoś z problemem minusa temperatury w termometrze na wyświetlaczu 7 segmentowym niemultipleksowanym, ze względu na to, że chciałem uzyskać pełną moc ledów ale do rzeczy.

Korzystam z Atmegi8 taktowanej wewnętrznym oscylatorem 8MHz. Program na początku mierzy temp, gasi ledy i zapala wynik pomiaru.

Funkcja init_led(); ustawia wszystkie potrzebne piny jako wyjścia.
Funkcja clean_led(); wygasza wszystkie segmenty obu cyfr.

Bibliotekę DS18b20 posiadam z książki (a właściwie z CD) Pana Mirosława Kardasia. W przypadku gdy temperatura jest mniejsza od zera, ma zapalić znak ,,-". Jednakże zapala się tylko przy temp -1, przy -2 już kreski minusa nie ma. W czym robię błąd? Poniżej wklejony cały kod programu, trochę chaotyczny ale staram się pisać jak najpoprawniej.

http://pastebin.com/teJcptRx


Pozdrawiam

Oj syntax nie zauważyłem :oops:

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


echhhh... no trzeba ten klawisz SYNTAX naprawić normalnie ..... SunRiver

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2012, o 20:14 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

Normalnie nie wiem w ogóle o co chodzi w tym kodzie :( po co to całe gaszenie ???? toż wystarczy wpisać kod pustego znaku - kolega strasznie to przekombinował tzn nie do końca zrozumiał ćwiczenie z multipleksowania wyświetlaczy LED.

wystarczy sobie zdefiniować pod np kodem 10 pusty znak czyli wszystkie segmenty wygaszone - przecież nawet jest to w przykładzie w książce ..... a tu kolega robi jakieś kombinacje super alpejskie .... i miesza wszystko

nie a przecież jest prosta zmienna subzero od której zależy czy jest minus czy go nie ma


zatem można sobie zdefiniować kolejny znak np pod kodem 11 - gdzie będzie zapalony tylko segment F i wpisać ten kod do zmiennej cy1 albo kod 10 jeśli ma być pusto bez znaku minus

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2012, o 20:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 maja 2012
Posty: 53
Lokalizacja: Białystok
Pomógł: 0

Minus oddzielnie z tego względu że mam dwie pełne cyfry i jedną samą kreskę. Wygaszanie nie wiem do końca jak wykonać bo nie pomieściłem wszystkich segmentów cyfry jedności na jednym porcie. Fakt kod jest pomieszany, ale orientuje się w nim jakoś.

Wstępnie wyświetlacz miał być multipleksowany, ale różnica w świeceniu była widoczna, więc zrezygnowałem z tej opcji.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2012, o 20:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

kolego ... a czy pomyślałeś z czego wynika różnica świecenia ??

na pewno nie z multipleksowania a ze sposobu w jaki zapewne podłączyłeś wyświetlacze .... bo pewnie sterujesz je bezpośrednio z procka
a ten biedaczek ma twoim zdaniem wyrobić prądowo z zasilaniem 2ch wyświetlaczy ??

a wystarczą 3 tranzystorki i nagle wyświetlacze świeca jak trzeba i to wszystkie :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2012, o 20:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 maja 2012
Posty: 53
Lokalizacja: Białystok
Pomógł: 0

Co to to nie... Nie będą świecić jak te co są podłączone na stałe. Znam wytrzymałość prądową megi. Każdy segment zapalam jednym tranzystorem npn, plus jest podłączony na stałe. Dużo tranzystorów, ale myślę że warto.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2012, o 20:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

no ale po co .... przecież wystarczy podawać przez tranzystory + na wyświetlacze , a segmenty zapalać masą z pinów, na rany koguta
czemu tak sobie komplikujesz życie , zgaduję że tu poknociłeś bo schematu niema, multiplex zawsze dobrze działa i to nawet z 8 wyświetlaczami
że o matrycach 8x8 nie wspomnę i niema kłopotów ze świeceniem i wyświetlaniem czegokolwiek -- więc bez urazy :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2012, o 21:12 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27306
Lokalizacja: Szczecin
Pomógł: 1041

SunRiver ma rację kolego - zdecydowanie lepiej zrobić to poprzez multipleksowanie ale z buforowaniem za pomocą np tranzystorów itp...

Ok - no statycznie też można - ale fakt, że w tym celu musiałeś totalnie zmienić program .... w porównaniu tego do książki - tyle że sam widzisz - ty się orientujesz ale osoba postronna już nie za bardzo :( - tym bardziej że schematu nie ma ...

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2012, o 21:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 maja 2012
Posty: 53
Lokalizacja: Białystok
Pomógł: 0

Sam program w miarę szybko napisałem - dwie, trzy próby i chodzi, oprócz tego minusa. Chciałem coś zrobić od zera, może za szybko? - nie ważne. Chodziło mi o straty na impulsie, w końcu musi on być podzielony na tyle, ile jest cyfr, dobrze mówię? Dobra, napisze czytelniej program, zrobię schemat i dam znać wkrótce. Tymczasem przepraszam Panów za kłopot :)

A śmieją się ze mnie że moje pismo odręczne tylko ja jestem w stanie rozczytać - cóż chyba nie tylko pismo... ;)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2012, o 21:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

wiesz kolego , ja tez potrafię namotać strasznie wiec się nie martw.
Nie musisz więc przepraszać , po prostu im precyzyjniej zadasz pytanie tym precyzyjniejszą dostaniesz odpowiedź :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 maja 2012, o 13:49 

Pomógł: 0

Kwestia dobrania odpowiednich rezystorów, sam ostatnio z tym walczyłem projektując JumboLEDa, na wyświetlaczach 120mm, gdzie jeden segment jest złożony z bodajże 4-5ledów. Multiplexerowanie a świeci aż oczy bolą ;).



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO