Samouczek Digital Read Serial - obliczanie wartości rezystora

9

Samouczek Arduino Digital Read Serial poprowadzi Cię przez okablowanie prostego przycisku. Moje pytania koncentrują się wokół rezystora.

Dlaczego potrzebny jest rezystor?

Myślę, że to rozumiem, ale poprawcie mnie, jeśli się mylę. Aby upewnić się, że pin wejściowy odczytuje niski sygnał i nie unosi się, powinniśmy podłączyć pin do uziemienia, gdy przycisk nie jest wciśnięty. Kiedy przycisk zostanie wciśnięty, będziemy mieli sygnał 5 V przepływający zarówno do pinu, jak i do ziemi. Prawo napięcia Kirchhoffa mówi, że całkowite napięcie w zamkniętej pętli musi wynosić zero, więc mamy do czynienia z tym 5V, które płynie bezpośrednio do ziemi. Dlatego umieszczamy rezystor między przyciskiem a masą.

Jak wybrano wartość rezystora?

Nie jestem tego pewien. Prawo Ohma stanowi, że ...

resistance = voltage / current

Jest to zasilanie 5 V, a specyfikacja Arduino Uno mówi, że pin zapewnia 40 mA prądu stałego. Więc..

resistance = 5V / 0.04A = 125 Ohms

W cyfrową seryjny tutorialu, dlaczego mamy rezystor 10K omów? To zdecydowanie przesada, prawda? Co prowadzi do kolejnego pytania: czy kiedykolwiek możesz postawić zbyt duży opór, jeśli jedynym celem jest zniszczenie napięcia?

Z góry dziękuję za wszelkie opinie!

Rip Leeb
źródło

Odpowiedzi:

6

Jesteś bardzo blisko. Rezystor służy jako rezystor obniżający; Jeśli pin wejściowy się unosi, jest to tylko antena odbierająca losowe zakłócenia. Kluczem jest to, że gdy dodatni jest dostarczany (przez naciśnięcie przycisku), dodatnie źródło musi „przytłoczyć” rezystor obniżający, aby pin wejściowy odczytał dodatnią wartość.

Gdyby nie było oporu, wówczas pin wejściowy czytałby w środku prostej ścieżki, która nie faworyzuje dodatniego ani ujemnego. Oprócz bezpośredniego zwarcia, które miałoby miejsce, w którym stanie przeczytałby arduino, podejrzewam, że byłby losowy lub posiadał jakąś właściwość zasilacza; Prawdopodobnie nadal czytałby o ziemi.

Za pomocą rezystora sygnał jest odczytywany bezpośrednio podłączony do dodatniego, przed rezystancją obciążenia. W ten sposób na pewno uzyska sygnał WYSOKI.

Dokładny rozmiar rezystora nie ma większego znaczenia. Zbyt mały i marnujesz prąd, ale zbyt duży opór to po prostu ponowne odłączenie uziemienia. Istnieje bardzo szeroki zakres wartości, które będą dobrze działać między nimi.

Chciałbym zauważyć, że kiedy styk arduino jest ustawiony na tryb wejściowy, to skutecznie nie dostarcza prądu. Można go modelować szeregowo z rezystorem 100 megaOhm. szczegółowe informacje można znaleźć na stronie http://arduino.cc/en/Tutorial/DigitalPins .

BrettAM
źródło
2
Kluczową kwestią jest to, że jeśli nie używasz rezystora, gdy przełącznik jest zamknięty, zwarcie +5 woltów do masy. Bezpośrednie zwarcie spowoduje przeciążenie zasilacza i wyzwolenie obwodu ochronnego na zasilaczu, powodując wyłączenie całego Arduino. Potrzebujesz rezystora o wystarczająco wysokiej impedancji, aby utrzymać niski przepływ prądu. Zwykle używam rezystora 100k, który jest wystarczający, aby podnieść sygnał wejściowy do 0 woltów, gdy przełącznik jest otwarty, i pozwala tylko na przepływ 0,00005 pasów, trywialną ilość prądu. Rezystor 10k również działa, ale pozwala to na przepływ 10 razy więcej prądu.
Duncan C
2

Dlaczego potrzebny jest rezystor?

Wejścia Arduino mają bardzo wysoką rezystancję. Dane techniczne Atmega328 mówią o 100 MOhm dla ADC. Tak wysokie wartości są dobre, ale mają też tę wadę, że radzą sobie z efektami pasożytniczymi (rezystancja, indukcyjność, pojemność). Takie efekty można również wykorzystać jako czujniki pojemnościowe .

Jak wybrano wartość rezystora?

Rezystor musi mieć dowolną wartość, która jest mniejsza niż rezystancja wejściowa. 10k i więcej są dobre do wyłączania wycieku wejściowego.

Możesz jednak pominąć rezystor, gdy używasz wewnętrznych rezystorów podciągających. W tym przypadku masz do czynienia z logiką negatywną:

pinMode(3, INPUT);
digitalWrite(3, HIGH);

Na pinie 3 zmierzysz, HIGHa przycisk musi być podłączony do pinu i ziemi. Wewnętrzny rezystor podciągający I / 0 ma wartość 50k.


źródło
1

Otrzymałeś już kilka dobrych odpowiedzi na pytanie, dlaczego potrzebny jest rezystor obniżający.

Podsumowując, musisz podłączyć sygnał wejściowy do uziemienia, aby nie dopuścić do przesunięcia sygnału wejściowego w sposób losowy między wartością wysoką a niską. Używasz rezystora, aby po zamknięciu przełącznika nie powodować zwarcia między zasilaniem + 5 V a masą.

Ale inna sprawa. Wejścia Arduino obejmują opcjonalny wewnętrzny rezystor pull-up kontrolowany programowo . Jeśli najpierw skonfigurujesz pin jako wejście, a następnie zapiszesz WYSOKA wartość do tego portu, aktywuje on rezystor podciągający. To powoduje, że pin odczytuje jako WYSOKI, gdy nic nie jest z nim połączone.

Następnie możesz podłączyć przełącznik do uziemienia zamiast + 5 V. Następnie musisz zmienić logikę kodu, aby traktować WYSOKĄ wartość jako nie naciśniętą, a NISKĄ wartość jako wciśniętą. Pozwala to nieco uprościć okablowanie, ponieważ nie potrzebujesz zewnętrznego rezystora.

Duncan C.
źródło