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



Teraz jest 30 sty 2025, o 21:30


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
PostNapisane: 28 gru 2013, o 00:05 
Offline
Nowy

Dołączył(a): 27 gru 2013
Posty: 7
Pomógł: 0

Witam,
napisałem program który po wciśnięciu przycisku ma zmieniać stan na porcie PB0 diody. Ustawiłem przerwanie INT0 od zbocza opadającego. Wydaje mi się, że wszystko mam dobrze połączone:

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


Gdy wciskam przycisk to dioda nie zapala się i gaśnie na zmianę co wciśnięcie, tylko raz po wciśnięciu się zapala a po puszczeniu gaśnie, raz nie reaguje w ogóle na wciśnięcie, raz tylko mignie. Nie wiem gdzie popełniłem błąd, może przycisk mam uszkodzony, a może jest to spowodowane drganiami styków?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 00:57 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

Spróbuj sobie wyobrazić, ile razy może się wykonać procedura obsługi przerwania w Twoim programie, zanim na przycisku, a tym samym na pinie PB1 będzie stan ustalony 0 (GND). Druga sprawa, brak rezystora ograniczającego prąd diody LED może skutkować uszkodzeniem procka.

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 09:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2013
Posty: 39
Pomógł: 2

Witam
Nie bardzo zauważysz mignięcie bo po pierwsze czas zmiany stanu na pinie z diodą (czas mignięcia) jest tak szybki że dioda nie zdąży zaświecić. Dwa to trzeba dać rezystor zabezpieczający bo może dojść do uszkodzenia uC.
Moja rada jest taka (CHOĆ W PRZERWANIU NIE WOLNO/NIE ZALECA SIĘ TEGO ROBIĆ ze względu na "zabieranie" czasu), żeby sprawdzić czy wszystko jest ok to daj np.
Kod:
_delay_ms(300);
w obsłudze przerwania. Wtedy miganie będzie zauważalne.

_________________
:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 13:12 
Offline
Moderator
Avatar użytkownika

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

a ja ja jaaa jaj :( ... _delay w przerwaniu brrrr

proponuję obejrzeć TRZECIĄ część tego cyklu poradników

http://mirekk36.blogspot.com/2013/12/pr ... acego.html
http://mirekk36.blogspot.com/2013/12/pr ... sc-02.html

która się właśnie przygotowuje i może dzisiaj wieczorem albo jutro już się ukaże ;)

_________________
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: 28 gru 2013, o 19:09 
Offline
Nowy

Dołączył(a): 27 gru 2013
Posty: 7
Pomógł: 0

elektor18 napisał(a):
Witam
Nie bardzo zauważysz mignięcie bo po pierwsze czas zmiany stanu na pinie z diodą (czas mignięcia) jest tak szybki że dioda nie zdąży zaświecić. Dwa to trzeba dać rezystor zabezpieczający bo może dojść do uszkodzenia uC.
Moja rada jest taka (CHOĆ W PRZERWANIU NIE WOLNO/NIE ZALECA SIĘ TEGO ROBIĆ ze względu na "zabieranie" czasu), żeby sprawdzić czy wszystko jest ok to daj np.
Kod:
_delay_ms(300);
w obsłudze przerwania. Wtedy miganie będzie zauważalne.


Ale ja nie chcę żeby dioda migała po wciśnięciu klawisza i wywołaniu przerwania a żeby gdy zostanie on wciśnięty to żeby został zmieniony stan na pinie z diodą czyli żeby w dalszej części jak to będzie działać żebym mógł zamiast sterować diodą mógł sterować poprzez przekaźnik załączaniem jakiegoś urządzenia po otrzymaniu sygnału na PB1.
Piotrek_P napisał(a):
Spróbuj sobie wyobrazić, ile razy może się wykonać procedura obsługi przerwania w Twoim programie, zanim na przycisku, a tym samym na pinie PB1 będzie stan ustalony 0 (GND). Druga sprawa, brak rezystora ograniczającego prąd diody LED może skutkować uszkodzeniem procka.


Pewnie dużo razy.

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

żeby nie zgłaszało kolejnych przerwań od int0 gdy jest wykonywane już przerwanie. Działa trochę lepiej jednak tylko trochę.

@elektor18:
@Piotrek_P:
Rezystor 330 Ohm jest chyba wystarczający, prawda? Czy powinienem zastosować większy?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 19:40 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

330 może być, choć nie wiemy jaka to dioda LED ;) . Co do programu, to grzebanie w rejestrze przerwania w trakcie jego obsługi to kiepski pomysł :o Szczerze polecam poradniki Mirka, a co najmniej tematy na jego blogu, np. o drganiach styków i obsłudze przerwań.

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 19:58 
Offline
Nowy

Dołączył(a): 27 gru 2013
Posty: 7
Pomógł: 0

Właśnie obejrzałem 1cz poradnika o przerwaniach zaraz się wezmę za drugą część.

Dioda biała LED prąd bez rezystora to 4.35mA a z rezystorem 330 to 2.8mA.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 20:02 
Offline
Moderator
Avatar użytkownika

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

pompacki napisał(a):
Dioda biała LED prąd bez rezystora to 4.35mA


O żesz matko przenajświętsza :( .... a toś jak pan obliczył ?

nie dość że bez rezystora to jeszcze 4,35 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: 28 gru 2013, o 20:15 
Offline
Nowy

Dołączył(a): 27 gru 2013
Posty: 7
Pomógł: 0

mirekk36 napisał(a):
pompacki napisał(a):
Dioda biała LED prąd bez rezystora to 4.35mA


O żesz matko przenajświętsza :( .... a toś jak pan obliczył ?

nie dość że bez rezystora to jeszcze 4,35 mA ???


wpiąłem na stykówce diodę i między + od zasilacza 5V którym zasilam attiny a nóżkę diody wpiąłem miernik i taką mi wartość pokazało.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 20:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 cze 2013
Posty: 39
Pomógł: 2

pompacki napisał(a):
mirekk36 napisał(a):
pompacki napisał(a):
Dioda biała LED prąd bez rezystora to 4.35mA


O żesz matko przenajświętsza :( .... a toś jak pan obliczył ?

nie dość że bez rezystora to jeszcze 4,35 mA ???


wpiąłem na stykówce diodę i między + od zasilacza 5V którym zasilam attiny a nóżkę diody wpiąłem miernik i taką mi wartość pokazało.


Ten pomiar może byc średnim wynikiem z szybkiego zmieniania stanu na pinie i stąd taka niska wartość.

_________________
:)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 20:35 
Offline
Nowy

Dołączył(a): 27 gru 2013
Posty: 7
Pomógł: 0

elektor18 napisał(a):

Ten pomiar może byc średnim wynikiem z szybkiego zmieniania stanu na pinie i stąd taka niska wartość.



Ale ja to nie mierzyłem zasilając pinem z mikrokontrolera tylko gdzieś obok na stykówce wpiąłem osobno diodę katodę do - zasilacza, + zasilacza do czerwonego zacisku miernika, czarny zacisk miernika do anody diody i na mierniku ustawiłem 20mA i mi pokazało 4.35 z drobnym wahaniem. Może źle odczytałem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 20:45 
Offline
Moderator
Avatar użytkownika

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

pompacki napisał(a):
Może źle odczytałem?


Panie kolego , panie kolego ......

ty nic nie odczytuj tylko weź w łapki prawo OHMA czyli I = U/R i oblicz rezystor a nie opowiadaj takich kosmicznych opowieści :(

1. przyjmiemy że biała dioda LED ma spadek napięcia 3V
2. zasilanie to 5V
3. założymy że chcemy aby przez diodę LED płynął prąd np 9 mA
4. zatem zgodnie z wzorem R = U/I podstawiamy wartości:

(5V - 3V) / 0,009 mA = 222,22 ohm

a więc spokojnie możesz dać rezystor 220 ohm

ZAPAMIĘTAJ to sobie raz na zawsze - a nie tam jakieś przedziwne pomiary miernikiem ....

_________________
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: 28 gru 2013, o 21:10 
Offline
Nowy

Dołączył(a): 27 gru 2013
Posty: 7
Pomógł: 0

Myślałem, że najlepiej jest po prostu zmierzyć jaki pobór prądu ma dioda? Ale jeśli poprawnie należy po prostu założyć napięcie spadku i w taki sposób wyliczać, to będę tak robił na przyszłość.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 23:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

pompacki napisał(a):
Myślałem, że najlepiej jest po prostu zmierzyć jaki pobór prądu ma dioda?

...początek dobry, tylko nie ten parametr.
Gdy nie znasz spadku napięcia na diodzie, to zakładasz że ma np.:2,5V. Obliczasz mniej więcej rezystor ograniczający prąd i po podłączeniu tego zestawu pod zasilacz mierzysz spadek napięcia na diodzie. Po tym zabiegu liczysz odpowiednio rezystor dla danej diody i napięcia.
Dioda jak smok wawelski - weźmie ile jej dasz, ale może od tego pęknąć :P .

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2014, o 15:37 
Offline
Nowy

Dołączył(a): 27 gru 2013
Posty: 7
Pomógł: 0

Dobrze, to będę tak robił na przyszłość.
Tylko mam takie pytanko bo piszesz, że diody biorą prąd ile się im da. Jednak dlaczego w takim razie na mierniku jak miałem podpiętą samą diodę i zasilacz zrobiony ze starej ładowarki z parametrami wyjściowymi 4.9V 250mA to mi pokazało 4,35mA a nie to 250mA.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sty 2014, o 15:44 
Offline
Moderator
Avatar użytkownika

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

pompacki napisał(a):
Tylko mam takie pytanko bo piszesz, że diody biorą prąd ile się im da. Jednak dlaczego w takim razie na mierniku jak miałem podpiętą samą diodę i zasilacz zrobiony ze starej ładowarki z parametrami wyjściowymi 4.9V 250mA to mi pokazało 4,35mA a nie to 250mA


Proponuję ci zrobić taki mały test - po którym sam sobie odpowiesz na to pytanie i się czegoś nauczysz przy okazji:

1. podłącz diodę LED bez rezystora do bateryjki pastylkowej np CR2032 i zmierz prąd i obserwuj jak świeci

2. podłącz tę samą diodę LED bez rezystora do +5V z zasilacza komputerowego (ale już nie musisz mierzyć prądu i obserwuj z bezpiecznej odległości)

Uwaga! nie wykonuj tego ćwiczenia w odwrotnej kolejności bo jak wykonasz najpierw pkt. nr 2 to już nie będziesz miał diody żeby sprawdzić pkt. nr 1 ;)

no chyba że masz więcej diod na stracenie ...


a później zacznij powoli czytać na temat elektroniki ze szczególnym uwzględnieniem zagadnień związanych z rezystancją .... także rezystancją źródeł zasilania .... zobaczysz - wtedy sporo ci się poukłada w głowie.

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 

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