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



Teraz jest 26 mar 2026, o 02:46


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 11 kwi 2016, o 20:49 
Offline
Nowy

Dołączył(a): 11 kwi 2016
Posty: 6
Pomógł: 0

Witam
Po pierwsze jako nowy członek forum chciałbym się ze wszystkimi serdecznie przywitać :)

Zmajstrowałem sobie taki mały programik odpowiadający za zmianę trybów świecenia kilku diód pod wpływem wciśnięcia klawisza na Atmega8 i nie wiedzieć czemu, napotkałem na błąd w najmniej oczekiwanym przeze mnie miejscu.

W 17 wierszu pliku modes.c pojawia się błąd o treści:
Error napisał(a):
left shift count >= width of type [enabled by default]


Domyślam się, że to chodzi o niezgodność rozmiarów zmiennych po lewej i prawej stronie przypisania, ale nie mam pojęcia czemu tak się stało w przypadku tego programu. Jest to niepierwszy program wykonany przeze mnie używając takiego przesunięcia bitowego (w gruncie rzeczy nieskomplikowanego :) ) i nigdy się nic nie psuło.

Po załadowaniu takiego programu do kontrolera miga tylko dioda oznaczona LED2.
Gdybym zamienił owy wiersz na "PORTC ^= 0b00101010;" to wszystko działa jak trzeba.

Jeszcze mam problem z diodą LED0, która jest podłączona do portu PB0. Nie świeci dostatecznie wyraźnie, a zmierzone napięcie między pinem PB0, a GND i jest tylko około 2,5V. Czym to może być spowodowane? Do każdego pinu C użytego w programie jest podpięte po 2 diody LED szeregowo i rezystor 100 Ohm.
Napięcie zasilania wynosi dokładnie 5V i nie ma żadnych odchyłek.

Czy jest to możliwe, że kontroler został w jakikolwiek sposób przeciążony? Dla diód LED1,2,3 podciągnąłem je przez tranzystor, żeby nie płynął tak duży prąd przez atmegę.

Z góry dziękuję za sugestie.
Gdyby jednak taki temat się gdzieś przewinął, a ja niedokładnie szukałem to z góry przepraszam i proszę o link ;)

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


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


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: 11 kwi 2016, o 21:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

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

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


Przecież stworzyłeś już makra:
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: 14 minutach ]

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


Co robi pierwsz linijka?
A co to jest LED0? ;)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2016, o 21:32 
Offline
Moderator
Avatar użytkownika

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

Uzupełniając to co słusznie powiedział kolega anshar wyżej, twoja linijka

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


po rozwinieciu przez preprocesor, dla kompilatora wygląda tak ;)

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


teraz lepiej chyba widzisz babolka hmm ? i nie dziwisz się już chyba, że coś nieteges w kodzie.


Autor postu otrzymał pochwałę

_________________
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: 11 kwi 2016, o 21:44 
Offline
Nowy

Dołączył(a): 11 kwi 2016
Posty: 6
Pomógł: 0

Jejuuuu... To nie zauważyłem, że przecież ja to już sobie podwójnie przesuwam :)

Dziękuję wam obojgu za cenne uwagi. Wszystko działa jak trzeba i aż trochę wstyd mi, że musiałem się takiej błahej rzeczy dowiedzieć na forum ;)

Jeszcze mam jedno małe pytanko. Dlaczego diody połączone do zasilania poprzez tranzystor słabiej świecą kiedy mrugają (bez względu na częstotliwość), niż to ma miejsce przy ciągłym świeceniu? W przeciwieństwie do tych, które zasilane są bezpośrednio z portów atmegi.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2016, o 21:50 
Offline
Moderator
Avatar użytkownika

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

plusqam napisał(a):
Jeszcze mam jedno małe pytanko. Dlaczego diody połączone do zasilania poprzez tranzystor słabiej świecą kiedy mrugają (bez względu na częstotliwość), niż to ma miejsce przy ciągłym świeceniu? W przeciwieństwie do tych, które zasilane są bezpośrednio z portów atmegi.


Bo źle podłączyłeś te diody i tranzystory ? Ale jak myślisz ? jeśli nie pokazujesz schematu to znaczy - że co ? że to zagadka ? czy coś na ząb dla jasnowidza ? ;)

Jak pokażesz schemat to będzie można ci pomóc

_________________
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: 11 kwi 2016, o 21:57 
Offline
Użytkownik

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

a jakie kolega dał tranzystory ??

pewnie bipolarne PNP .... a może jednak NPN tylko ze odwrotnie w obwodzie plusa VCC ??
bo jak mosfety ... to pewnie bez klucza ...

hmmm... zginęła mi szklana kula i w sumie nie wiem jak pomóc w tej chwili :)


w sumie powinieneś mieć tak dla NPN :

Obrazek

a tak dla PNP

Obrazek



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

Dołączył(a): 09 gru 2014
Posty: 1540
Pomógł: 269

plusqam napisał(a):
Do każdego pinu C użytego w programie jest podpięte po 2 diody LED szeregowo i rezystor 100 Ohm.

A nie lepiej połączyć te diody rówolegle zgodnie ze schematem kolegi SunRiver?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2016, o 22:22 
Offline
Użytkownik

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

anshar napisał(a):
A nie lepiej połączyć te diody rówolegle zgodnie ze schematem kolegi SunRiver?


nie takie proste trzeba by sobie policzyć :)

że 2 ledy to będzie .... potrzebować prądu chwila ..

Ic = 2x15mA = 30mA = 0,030A


wiec rezystor dla ledów powinien mieć rezystancję :

RC = (VCC – VLED) / IC = (5 – 2) / 0.030 = 100 Om

a cała ta konstrukcja pochłonie :


P = (VCC – VLED) x IC = (5 – 2) x 0.030 = 0.09W

na jedną parę ... ledów :)

co by wyglądało np tak:

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2016, o 22:32 
Offline
Nowy

Dołączył(a): 11 kwi 2016
Posty: 6
Pomógł: 0

Widzę, że temat coraz bardziej zajmuje was :)

Tak to jakoś wygląda
Obrazek

Chyba mogłem sobie darować te wszystkie bajery począwszy od atmegi ;)

I rozumiem, że do bazy powinienem podciągnąć większym rezystorem niż 2k... 4,7k?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2016, o 22:38 
Offline
Użytkownik

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

W sumie żle te diody połaczyłeś :) można , ale taki będzie właśnie ich efekt działania
i takiego czegoś się spodziewałem , przepnij jak pokazałem wyżej i zobacz :)

4K7 - do wręcz 10K ale to sprawdzisz doświadczalnie dla tranzystora BC337 rezystor 4K7 jest odpowiedni


Autor postu otrzymał pochwałę


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

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Tranzystory to trochę nie tak są podłączone ...
Zobacz na przykład SunRivera.

--
Pozdrawiam,
Robert

------------------------ [ Dodano po: kilkunastu sekundach ]

I nie zdążyłem ... :cry:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2016, o 22:48 
Offline
Użytkownik

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

To musisz sobie też policzyć dla twojego tranzystora jaki jest prąd bazy wymagany by tranzystor
był w pełni otwarty co liczysz z wzoru :

IC = hFE x IB

dla powyższego przykładu

IB = IC / hFE = 0.075 / 100 = 0.00075 A (0.75 mA) (prąd bazy)
a to skutkuje :

tym że rezystor na bazie liczysz z wzoru RB = (VPORT – VBE) / IB

RB = (4.2 – 0.7) / 0.00075 = 4666.66 Om
czyli damy 4K7 :)

:)

ale 4K7 do 10K to taki pewny zakres :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2016, o 22:48 
Offline
Nowy

Dołączył(a): 11 kwi 2016
Posty: 6
Pomógł: 0

Działa bez zarzutu :) Jeszcze raz wielkie dzięki za pomoc i ciepłe powitanie.



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: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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