Jaki rezystor przed switchem i dlaczego 10K?
Jaki rezystor przed switchem i dlaczego 10K?
Witam (jestem totalnym nowicjuszem) mam od wczoraj arduino uno i nie mogę spać tylko cały czas o nim myślę :)
Tak jak napisałem jestem totalnym nowicjuszem w świecie elektroniki, ale czytam ile się da i staram się coś zrozumieć. Moje pytanie jest takie jak w temacie czyli - Dlaczego (w przykładzie na stronie arduino.cc) przed switchem daje się rezystor i dlaczego ma być 10k? przeczytałem na elektroda:
Podciąga poziom napięcia,tak żeby wejście nie 'wisiało' w powietrzu tylko posiadało ustalony stan logiczny.
Wyobraź sobie układ w którym za pomocą przycisku zwierasz wejście mikroprocesora do masy. W stanie zwartym na wejściu panuje napięcie 0V. Ale przy rozwarciu przycisku wejście nie jest nigdzie podłączone - wisi w powietrzu - a ze względu na wielką impedancje wejściową jest bardzo podatne na zbieranie wszelkich zakłóceń. W efekcie stan przy puszczonym przycisku będzie się zmieniać losowo - urządzenie będzie działać niepoprawnie.
Żeby uniknąć takiej sytuacji należy użyć rezystora podciągającego do zasilania - w ten sposób wymusisz na wejściu poziom logiczny 1.
Teraz stan logiczny na wejściu jest w pełni przewidywalny - wcisniesz przycisk masz '0', puścisz masz '1'
- i niby coś tam rozumie, ale niby... Może ktoś może jeszcze to rozjaśnić tak jakby dziecku swojemu tłumaczył i najważniejsze tzn dlaczego 10k, a nie np 100R? Dziękuję za pomoc....
dziękuję, Hubert
Tak jak napisałem jestem totalnym nowicjuszem w świecie elektroniki, ale czytam ile się da i staram się coś zrozumieć. Moje pytanie jest takie jak w temacie czyli - Dlaczego (w przykładzie na stronie arduino.cc) przed switchem daje się rezystor i dlaczego ma być 10k? przeczytałem na elektroda:
Podciąga poziom napięcia,tak żeby wejście nie 'wisiało' w powietrzu tylko posiadało ustalony stan logiczny.
Wyobraź sobie układ w którym za pomocą przycisku zwierasz wejście mikroprocesora do masy. W stanie zwartym na wejściu panuje napięcie 0V. Ale przy rozwarciu przycisku wejście nie jest nigdzie podłączone - wisi w powietrzu - a ze względu na wielką impedancje wejściową jest bardzo podatne na zbieranie wszelkich zakłóceń. W efekcie stan przy puszczonym przycisku będzie się zmieniać losowo - urządzenie będzie działać niepoprawnie.
Żeby uniknąć takiej sytuacji należy użyć rezystora podciągającego do zasilania - w ten sposób wymusisz na wejściu poziom logiczny 1.
Teraz stan logiczny na wejściu jest w pełni przewidywalny - wcisniesz przycisk masz '0', puścisz masz '1'
- i niby coś tam rozumie, ale niby... Może ktoś może jeszcze to rozjaśnić tak jakby dziecku swojemu tłumaczył i najważniejsze tzn dlaczego 10k, a nie np 100R? Dziękuję za pomoc....
dziękuję, Hubert
Re: Jaki rezystor przed switchem i dlaczego 10K?
Piszę bardzo zgrubnie i pomijam a nawet naginam kilka faktów.
Informatyka i elektronika cyfrowa bazuje na systemie dwójkowym, zero i jeden. W elektronice cyfrowej, za logiczne zero przyjmuje się stan, gdzie wejście mikrokontrolera ma taki sam potencjał jak masa (minus) zasilania a logiczne jedne równe jest napięciu zasilania. W praktyce nigdy nie będą to dokładnie równe wartości a pewien przedział, więc wygląda to np. tak: zero to napięcie z przedziału od 0V do 0,5V; jeden to napięcie od 4,5V do 5V. Ale zauważ że jest spory przedział, który nie jest stanem wysokim 1 ani stanem niskim 0; występujący pomiędzy 0,5V a 4,5V. Podciągnięcie wejścia do plusa zasilania spowoduje że na wejściu będzie napięcie ok. 5V. Jeśli naciśniesz przycisk prąd zacznie płynąć od zasilania do masy, także i od wejścia mikrokontrolera zostanie ładunek odebrany. Jeśli nie zastosujesz rezystora, naciskając przycisk zrobisz zwarcie, czyli puścisz maksymalny prąd jaki jest w stanie zapewnić źródło zasilania (I=U/R - gdzie R jest bardzo, bardzo małe, równe tylko oporowi ścieżki - prawo Ohma), a to zabija elektronikę. Rezystor służy ograniczeniu prądu do bardzo małej wartości, nieszkodliwej dla portu wejściowego mikrokontrolera.
Informatyka i elektronika cyfrowa bazuje na systemie dwójkowym, zero i jeden. W elektronice cyfrowej, za logiczne zero przyjmuje się stan, gdzie wejście mikrokontrolera ma taki sam potencjał jak masa (minus) zasilania a logiczne jedne równe jest napięciu zasilania. W praktyce nigdy nie będą to dokładnie równe wartości a pewien przedział, więc wygląda to np. tak: zero to napięcie z przedziału od 0V do 0,5V; jeden to napięcie od 4,5V do 5V. Ale zauważ że jest spory przedział, który nie jest stanem wysokim 1 ani stanem niskim 0; występujący pomiędzy 0,5V a 4,5V. Podciągnięcie wejścia do plusa zasilania spowoduje że na wejściu będzie napięcie ok. 5V. Jeśli naciśniesz przycisk prąd zacznie płynąć od zasilania do masy, także i od wejścia mikrokontrolera zostanie ładunek odebrany. Jeśli nie zastosujesz rezystora, naciskając przycisk zrobisz zwarcie, czyli puścisz maksymalny prąd jaki jest w stanie zapewnić źródło zasilania (I=U/R - gdzie R jest bardzo, bardzo małe, równe tylko oporowi ścieżki - prawo Ohma), a to zabija elektronikę. Rezystor służy ograniczeniu prądu do bardzo małej wartości, nieszkodliwej dla portu wejściowego mikrokontrolera.
Re: Jaki rezystor przed switchem i dlaczego 10K?
Bardzo dziękuję za odpowiedzi i pomoc... Ale jeszcze tylko jedna sprawa @cube - dlaczego 10k?
Re: Jaki rezystor przed switchem i dlaczego 10K?
ok teraz rozumie po prostu mi dzielenie nie wychodziło, wiem że proste, ale jakoś mi nie szło... teraz wszystko jasne:)
Re: Jaki rezystor przed switchem i dlaczego 10K?
Zapomnieliście koledze powiedzieć że zamiast rezystora można użyć funkcji PULLUP i rezystor niepotrzebny.
}
Kod: Zaznacz cały
Przycisk podłączasz jedną nóżką pod GND drugą pod cyfrowy pin arduino. W programie włączasz rezystor podciągający na ten pin:
pinMode(buttonPin, INPUT_PULLUP);
i potem sobie sprawdzasz:
[code]
byte buttonState = digitalRead(buttonPin);
if(buttonState == LOW)
{
// przysisk wcisniety
}
else
{
// przycisk puszczony
Re: Jaki rezystor przed switchem i dlaczego 10K?
hyena, czy to zadziała też na arduino pro mini (i klonach)?
czy przycisk zasilać 5V, czy lepiej 3V?
czy przycisk zasilać 5V, czy lepiej 3V?
Re: Jaki rezystor przed switchem i dlaczego 10K?
Szczerze lepiej dać rezystor, przy starcie nie wiesz jaki stan ma wejscie..przy rezystorze wiadomo..tak dla zasady, oszczednosc zadna a pewnosc masz.
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Re: Jaki rezystor przed switchem i dlaczego 10K?
Tak, pod warunkiem, że będą bazowały na tym samym mikrokontrolerze.czy to zadziała też na arduino pro mini (i klonach)?
To zależy od tego jakie napięcie oznacza w danym systemie stan wysoki.czy przycisk zasilać 5V, czy lepiej 3V?
Zazwyczaj GND mikrokontrolera to stan niski a VCC to stan wysoki.
Tak więc przycisk powinien być podciągnięty pod VCC czyli napięcie jakim jest zasilany mikrokontroler.
Szczerze lepiej dać rezystor, przy starcie nie wiesz jaki stan ma wejscie..przy rezystorze wiadomo..tak dla zasady, oszczednosc zadna a pewnosc masz.
Re: Jaki rezystor przed switchem i dlaczego 10K?
Tak, zadziała. Ustawienie wejścia jako INPUT_PULLUP działa na wszystkich arduino. To jest część składni języka arduino_C++
Jeżeli używasz INPUT_PULLUP nie podłączasz do zasilania! Jedną nóżkę przycisku do GND, drugą do wejścia arduino. Bez żadnego rezystora.
Głupoty gadasz. Jeśli ustawiasz wejście jako INPUT_PULLUP, to zawsze jak przycisk jest nie wciśnięty, mikrokontroler odczytuje jego stan jako logiczne 1. Zawsze.
Re: Jaki rezystor przed switchem i dlaczego 10K?
Sorry..pierwszy lepszy link
https://learn.sparkfun.com/tutorials/pull-up-resistors
https://www.eevblog.com/forum/microcont ... od-enough/
Proponuje poczytac.
Ja nie ufam wewnetrznemu pullup, ale jak kto woli.
Wysłane z mojego SM-G950F przy użyciu Tapatalka
https://learn.sparkfun.com/tutorials/pull-up-resistors
https://www.eevblog.com/forum/microcont ... od-enough/
Proponuje poczytac.
Ja nie ufam wewnetrznemu pullup, ale jak kto woli.
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Re: Jaki rezystor przed switchem i dlaczego 10K?
Głupoty gadasz.Szczerze lepiej dać rezystor, przy starcie nie wiesz jaki stan ma wejscie.
Rejestry PORT i DDR resetują się do stanu 0x00 więc wszystkie piny będą miały stan niski i będą ustawione jako wejścia.
Wystarczy do dokumentacji zajrzeć.
Re: Jaki rezystor przed switchem i dlaczego 10K?
Tego nie wiesz co autor miał na myśli..
Wystarczy ze odsunie button od uc na wiekszą odleglość, kiepskie zasilanie,zakłócenia i juz wejscie nie bedzie 1..szczególnie ze wisi w powietrzu..
Ogólna zasada jest taka,nie podlączone inputy up lub down..
Ale robta co chceta
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Wystarczy ze odsunie button od uc na wiekszą odleglość, kiepskie zasilanie,zakłócenia i juz wejscie nie bedzie 1..szczególnie ze wisi w powietrzu..
Ogólna zasada jest taka,nie podlączone inputy up lub down..
Ale robta co chceta
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Re: Jaki rezystor przed switchem i dlaczego 10K?
Po zabootowaniu się jakiegokolwiek urządzenia tak. Ale w trakcie nie masz pojęcia jaki stan będzieBob2462 pisze:Głupoty gadasz.Szczerze lepiej dać rezystor, przy starcie nie wiesz jaki stan ma wejscie.
Rejestry PORT i DDR resetują się do stanu 0x00 więc wszystkie piny będą miały stan niski i będą ustawione jako wejścia.
Wystarczy do dokumentacji zajrzeć.
Wysłane z mojego Neffos Y5s przy użyciu Tapatalka
Re: Jaki rezystor przed switchem i dlaczego 10K?
A teraz jeden z drugim mądrale szybko do dokumentacji i sprawdzać, co znaczy INPUT_PULLUP.
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
To jest ewidentna bezczelność!
Re: Jaki rezystor przed switchem i dlaczego 10K?
Ok, mądralo, widzę że siejesz agresją, nie chce mi sie z tobą dyskutować.
Autorowi polecam sprawdzić obie wersje samemu i wybrać co pasuje.
Nie znam projektu i nie wiadomo jak to ma wyglądać, w skrajnym przypadku możesz mieć problemy ze stanami nieustalonymi.
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Autorowi polecam sprawdzić obie wersje samemu i wybrać co pasuje.
Nie znam projektu i nie wiadomo jak to ma wyglądać, w skrajnym przypadku możesz mieć problemy ze stanami nieustalonymi.
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Re: Jaki rezystor przed switchem i dlaczego 10K?
Człowieku softwarowo możesz podbić up i down ale uruchomi się to dopiero po uruchomieniu urządzenia... W trakcie restartu może być różnieethanak pisze:A teraz jeden z drugim mądrale szybko do dokumentacji i sprawdzać, co znaczy INPUT_PULLUP.
Wysłane z mojego Neffos Y5s przy użyciu Tapatalka
Re: Jaki rezystor przed switchem i dlaczego 10K?
Ale jaki to ma negatywny wpływ na działanie programu i/lub na podłączony przycisk?
Re: Jaki rezystor przed switchem i dlaczego 10K?
Załaduj bootloader przez uart, podłącz tak sobie button (dodatkowo zrób przerwanie na tym pinie, a co),button przypisany do uruchamiania bootloadera..ma wpływ czy nie?
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Re: Jaki rezystor przed switchem i dlaczego 10K?
Czyli ogólnie nie ma żadnego wpływu, chyba że wynajdzie się taką wyjątkową sytuację, w której ma.
Re: Jaki rezystor przed switchem i dlaczego 10K?
Ehh..ok nie ma,koniec dyskusji;)
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Wysłane z mojego SM-G950F przy użyciu Tapatalka
Re: Jaki rezystor przed switchem i dlaczego 10K?
Dzięki wszystkim za pomoc, dyskusja zawrzała, ale twórczo :)
Mam jeszcze taki pomysł pod uwagę, będę oczywiście testował wszystkie podpowiedzi, ale czy jest sens, czy to by wystarczyło, gdyby wszystkie (mam ich 6) przyciski podpiąć pod jeden rezystor 10k ?
Mam jeszcze taki pomysł pod uwagę, będę oczywiście testował wszystkie podpowiedzi, ale czy jest sens, czy to by wystarczyło, gdyby wszystkie (mam ich 6) przyciski podpiąć pod jeden rezystor 10k ?
Re: Jaki rezystor przed switchem i dlaczego 10K?
Nie możesz tak zrobić, bo wtedy będziesz miał ze sobą połączone wszystkie piny i przy naciśnięciu obojętnie którego przycisku, stan niski (przy podciągnięciu to Vcc) będzie na wszystkich pinach.
Re: Jaki rezystor przed switchem i dlaczego 10K?
pytanie skasowałem, bo jest już na nie odpowiedź w odpowiedziach
Re: Jaki rezystor przed switchem i dlaczego 10K?
A gdybym podpinał +5 V (dla płytki 5V) zamiast gnd, czy to by działało poprawnie i nie byłoby szkody, ew. 3V ? i co wtedy z funkcją: INPUT_PULLUP?hyena pisze: ↑19 lis 2014, 04:53Zapomnieliście koledze powiedzieć że zamiast rezystora można użyć funkcji PULLUP i rezystor niepotrzebny.}Kod: Zaznacz cały
Przycisk podłączasz jedną nóżką pod GND drugą pod cyfrowy pin arduino. W programie włączasz rezystor podciągający na ten pin: pinMode(buttonPin, INPUT_PULLUP); i potem sobie sprawdzasz: [code] byte buttonState = digitalRead(buttonPin); if(buttonState == LOW) { // przysisk wcisniety } else { // przycisk puszczony
W innym projekcie, ktoś mi poradził tak zrobić (wtedy do 5V podłączyłem przycisk pod napięciem 3V - z tv) i chyba to zadziałało, a przynajmniej tak to wyglądało, że działa. ?
Re: Jaki rezystor przed switchem i dlaczego 10K?
Jeżeli chcesz, żeby zadziałało odwrotnie, to musisz podłączyć przycisk rezystorem do GND (może być rezystor 10k). I wtedy nie deklarujesz przycisku jako INPUT_PULLUP, tylko jako INPUT
Mała uwaga, nie kasuj pytań. Robi się bałagan w wątku.
Mała uwaga, nie kasuj pytań. Robi się bałagan w wątku.