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!
źródło
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 .
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ą:
Na pinie 3 zmierzysz,
HIGH
a przycisk musi być podłączony do pinu i ziemi. Wewnętrzny rezystor podciągający I / 0 ma wartość 50k.źródło
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.
źródło