Цифровий підручник з читання - обчислення значення резистора


9

Посібник з цифрового читання Arduino Digital Read проводить проводку простої кнопки. Мої запитання зосереджені навколо резистора.

Для чого потрібен резистор?

Я думаю, що я це розумію, але виправте мене, якщо я помиляюся. Щоб переконатися, що вхідний штифт читає низький сигнал і не пливе, нам слід підключити штифт до землі, коли кнопку не натискати. Коли кнопка буде натиснута, у нас буде 5В сигнал, що надходить як на штифт, так і на землю. Закон про напругу Кірхгофа говорить, що загальна напруга в замкнутому циклі повинна дорівнювати нулю, тому ми маємо мати справу з цим 5 В, що протікає безпосередньо на землю. Ось чому ми кладемо резистор між кнопкою і землею.

Як було обрано значення резистора?

Це те, що мені незрозуміло. Закон Ома говорить, що ...

resistance = voltage / current

Це 5В живлення, і специфікація Arduino Uno говорить, що штир забезпечує 40 мА постійного струму. Тому..

resistance = 5V / 0.04A = 125 Ohms

У підручнику Digital Read Serial , чому ми маємо 10K Ом резистор? Це шлях надмірності, правда? Що призводить до іншого питання: Чи можете ви коли-небудь поставити занадто великий опір, якщо ваша єдина мета - знищити напругу?

Заздалегідь дякую за будь-які відгуки!

Відповіді:


6

Ви дуже близькі. Резистор є, щоб діяти як резистор, що знищується; Якщо вхідний штифт плаває, це лише антена, яка збирає випадкову статику. Ключове значення полягає в тому, що при подачі позитиву (натисканням кнопки) позитивне джерело повинно "перекрити" резистор, що вниз, щоб вхідний штифт був позитивним.

Якби не було опору, то вхідним штифтом було б зчитування посеред прямого шляху, який не сприяє позитивному чи негативному. Окрім прямого короткого, який би відбувався, Який стан ардуїно читав би, я підозрюю, що це буде випадковою або деякою властивістю джерела живлення; Це, мабуть, все-таки буде читати грунт.

За допомогою резистора сигнал зчитується безпосередньо підключеним до позитивного перед опором навантаження. Таким чином, ви обов'язково отримаєте високий сигнал.

Точний розмір резистора мало наслідків. Занадто мало, і ви витрачаєте струм, але занадто великий опір ефективно просто відключає землю знову. Існує дуже широкий діапазон значень, який буде добре працювати між ними.

Я хотів би зазначити, що коли ардуїновий штифт встановлений у режим введення, він ефективно подаватиме струм. Це може бути модельовано в серії з резистором 100 мегаом. див. http://arduino.cc/en/Tutorial/DigitalPins для детальної інформації.


2
Ключовим тут є те, що якщо ви не використовуєте резистор, коли перемикач закритий, ви обмежили +5 вольт на землю. Прямий короткий заряд перевантажить джерело живлення і відключить захисний ланцюг від джерела живлення, що призведе до відключення всього Arduino. Ви хочете, щоб резистор був достатньо високим, щоб тримати струм низьким. Зазвичай я використовую резистор 100k, який достатньо для витягування вхідного сигналу до 0 вольт, коли перемикач відкритий, і дозволяє лише текти .00005 pas, тривіальна кількість струму. 10k резистор також працює, але це дозволяє текти в 10 разів більше струму.
Duncan C

2

Для чого потрібен резистор?

Входи Arduino мають дуже високий опір. Таблиця даних Atmega328 говорить про 100 МОм для АЦП. Такі високі значення є хорошими, але мають і недолік для боротьби з паразитарними ефектами (опір, індуктивність, ємність). Такі ефекти також можна використовувати як датчики ємності .

Як було обрано значення резистора?

Резистор повинен мати довільне значення, тобто менший, ніж вхідний опір. 10k і вище корисні для відключення витоку входу.

Однак ви також можете залишити резистор, коли використовуєте внутрішні підтягувальні резистори. У цьому випадку ви маєте справу з негативною логікою:

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

На штифті 3 ви вимірюєте, HIGHі кнопку потрібно підключити до шпильки та землі. Внутрішній підтягуючий резистор I / 0 має значення 50k.


1

Ви вже отримали пару хороших відповідей на те, для чого потрібен розсувний резистор.

Підводячи підсумок, вам потрібно підключити вхід до землі, щоб вхід не плавав напів випадковим чином між високим і низьким. Ви використовуєте резистор, щоб при закритті вимикача не створювати короткого замикання між джерелом живлення + 5 В та землею.

Ще один момент. Входи Arduino включають додатковий внутрішній, програмно-керований навантажувальний резистор. Якщо ви спочатку встановите штифт як вхід, а потім напишіть ВИСОке значення до цього порту, він активує підтягуючий резистор. Це змушує штифт читати як ВИСОКИЙ, коли до нього нічого не підключено.

Потім ви можете підключити свій перемикач до землі замість + 5В. Потім вам потрібно змінити логіку коду, щоб трактувати значення ВИСОКОГО як не натиснене, а значення НИЗКОЕ як натиснене. Це дозволяє вам трохи спростити електропроводку, оскільки не потрібен зовнішній резистор.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.