Як я можу використовувати 12 В вхід на цифровому штифті Arduino?


38

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

EDIT: Система призначена для використання в автомобілі. Чи потрібно було б якось знизити ампераж автомобільного акумулятора, щоб не підірвати компоненти?


3
ампераж автомобіля не має значення - компоненти використовують лише стільки струму, скільки потрібно. Автомобільний акумулятор здатний подавати сотні Ампер, таких як необхідний для стартера. Це не означає, що завжди протікають сотні амперів і це може пошкодити речі. :)
KyranF

Відповіді:


44

Гарні новини! Це буде дешево! :-)

Простий дільник резистора знизить 12 В до 5 В, яке може Arduino перетравити. Вихідна напруга може бути розрахована як

VOUT=R2R1+R2VIN

Значення резисторів в діапазоні 10 кОм - хороший вибір. Якщо ваш R2 дорівнює 10 кОм, то R1 повинен бути 14 кОм. Зараз 14 кОм - це не стандартне значення, але 15 кОм - це. Ваша вхідна напруга складе 4,8 В замість 5 В, але Arduino побачить це як високий рівень. У вас також є невеликий простір, якщо 12 В має бути занадто високим. Навіть 18 кОм все одно дасть вам достатньо високий 4,3 В, але тоді вам доведеться почати думати про 12 В трохи занадто низько. Чи буде напруга все ж розглядатися як висока? Я б дотримувався 15 кОм.

редагувати
Ви згадуєте автомобільне середовище, і тоді вам потрібен додатковий захист. Автомобіль 12 В ніколи не буває 12 В, але більшу частину часу вищий, максимум на кілька вольт вище номінальних 12 В. (насправді номінал більше схожий на 12,9 В, на 2,15 В на клітинку.) Ви можете розмістити 5 В діод паралельно R2, і це повинно відключити будь-яку напругу, вищу, ніж стабілітрона 5 В. Але напруга стабілітрона змінюється залежно від струму, і при низькому вхідному струмі резистори дають вам відключитися при менших напругах. Кращим рішенням було б встановити діод Шоткі між входом Ардуїно та 5 В напругою. Тоді будь-яка вхідна напруга вище приблизно 5,2 В призведе до того, що діод Шоткі буде проводити, а вхідна напруга буде обмежена 5,2 В. Для цього вам дійсно потрібен діод Шотткі, звичайний діод PN має значення 0.

Кращий
оптопар Майкла - хороша альтернатива, хоча і трохи дорожча. Ви часто будете використовувати оптопар, щоб ізолювати вхід від виводу, але ви також можете використовувати його для захисту вводу, як вам потрібно тут.

введіть тут опис зображення

Як це працює: вхідний струм освітлює внутрішній інфрачервоний світлодіод, який викликає вихідний струм через фототранзистор. Співвідношення між вхідним і вихідним струмом називається CTR для коефіцієнта передачі струму. CNY17 має мінімум CTR 40%, що означає , що необхідно 10 мА вхід для 4 мА виходу. Перейдемо до входу 10 мА. Тоді R1 повинен бути (12 В - 1,5 В) / 10 мА = 1 кОм. Вихідний резистор повинен буде спричинити падіння напруги 5 В на 4 мА, тоді це повинно бути 5 В / 4 мА = 1250 Ом. Краще мати трохи більше значення, напруга все одно не знизиться більше ніж на 5 В. 4,7 кОм обмежить струм приблизно 1 мА.

Vcc - це джерело напруги 5 V, Vout надходить на вхід Arduino. Зверніть увагу, що вхід буде інверсованим: він буде низьким, якщо 12 В присутній, високим, коли його немає. Якщо цього не хочеться, ви можете поміняти положення виходу оптрона і підтягуючого резистора.

редагувати 2
Як рішення оптрону не вирішує проблему перенапруги? Дільник резистора є співвідноснометричним: вихідна напруга - це фіксований коефіцієнт входу. Якщо ви розрахували 5 В на 12 В в, то 24 В в дасть 10 В. Не в порядку, значить, діод захисту.

У ланцюзі оптопарів видно, що права частина, яка підключається до вхідного штифта Arduino, взагалі не має напруги, що перевищує 5 В. Якщо оптрона увімкнена, тоді транзистор буде проводити струм, я використовував 4 мА у прикладі вище. 1,2 кОм спричинить падіння напруги 4,8 В через Закон Ома (опір поточного часу = напруга). Тоді вихідна напруга буде 5 В (Vcc) - 4,8 В через резистор = 0,2 В, це низький рівень. Якщо струм буде меншим, падіння напруги також буде меншим, а вихідна напруга зросте. Наприклад, струм 1 мА призведе до падіння 1,2 В, а вихід буде 5 В - 1,2 В = 3,8 В. Мінімальний струм дорівнює нулю. Тоді у вас немає напруги на резисторі, а вихід буде 5 В. Це максимум.

Що робити, якщо напруга на вході стане занадто високою? Ви випадково підключите батарею 24 В замість 12 В. Тоді світлодіодний струм подвоїться, утворюючи від 10 мА до 20 мА. 40% CTR спричинить вихідний струм 8 мА замість обчислених 4 мА. 8 мА через резистор 1,2 кОм було б падінням 9,6 В. Але від джерела напруги 5 В це було б негативно, а це неможливо; Ви не можете опуститись нижче 0 V. Тому хоча оптопар хотів би намалювати 8 мА, резистор обмежить це. Максимальний струм через нього - це коли повні 5 В перетинають його. Тоді вихід буде дійсно 0 В, а струм 5 В / 1,2 кОм = 4,2 мА. Тож незалежно від джерела живлення, який ви підключаєте, вихідний струм не вийде вище за це, і напруга залишиться між 0 В і 5 В. Подальшого захисту не потрібно.

Якщо ви очікуєте перенапруги, вам доведеться перевірити, чи може світлодіод оптопару переносити підвищений струм, але 20 мА не буде проблемою для більшості оптронів (вони часто оцінюються на максимум 50 мА), і крім того, це подвійне вхідна напруга, яка, мабуть, не відбудеться IRL.


Система призначена для використання в автомобілі. Чи потрібно було б якось знизити струм акумулятора автомобіля, щоб не підірвати компоненти? Я в цьому новачок. Спасибі
DW

@DW Ух-о, машина! :-(. Я
оновлю

@DW - Ні, ємність акумулятора автомобіля не має значення. Струм визначатиметься напругою (12 В) і опором (загалом 25 кОм). Тоді згідно із Законом Ома струм складе 12 В / 25 кОм = 0,5 мА. Не має значення, акумулятор типу 40 Ач або 400 Ач; резистори більше не дозволять.
stevenvh

Це чудово. Спасибі за вашу допомогу. Просто цікаво, але чи щось подібне буде працювати? robotshop.com/ca/productinfo.aspx?pc=RB-Spa-750&lang=en-US
DW

2
@stevenvh Дякую Стіву. Я з нетерпінням чекаю повернення на користь того, хто є новим в електроніці, коли я впевнений у цьому. Спасибі
DW

15

Хорошим способом ізоляції сигналу 12В комутатора було б передача його через опто-з'єднувач. Схема буде налаштована аналогічно наступному.

введіть тут опис зображення

Vi на діаграмі представляє 12В у вашій схемі, що перемикається вашим комутатором (S1). Виберіть R1, щоб обмежити струм через D1 частину оптового з’єднувача до рівня, який знаходиться в межах рейтингів компонента, який ви вибрали.

Муфти Opto - це не найшвидші компоненти у світі, особливо найдешевші, але у випадку повільної дії, як перемикач, керований людиною, швидкість зчеплення не викликає особливих проблем.


15

Ви також можете використовувати діод і резистор наступним чином:

схематичний

імітувати цю схему - Схематично створено за допомогою CircuitLab

Я б зробив резистор чимось досить жорстким, інакше ви будете з цього ланцюга витрачати багато енергії. Краса цієї схеми (порівняно з дільником напруги) полягає в тому, що їй не байдуже, чи є ваша початкова напруга 12 В, 14 В або 15 В: це буде 5 В (фактично 5,2-5,3 В залежно від діода) незалежно від вхідна напруга.


це досить розумно, +1 за незалежність напруги!
Флоріан Кастеллан

5
Обережно з перенапругою на контактному абсолютному максимальному значенні. Наприклад, таблиця даних ATmega32u4: Напруга на будь-якому штирі щодо землі (8): -0,5 В до VCC + 0,5 В. Якщо використовувати звичайний діод, напруга буде більше, ніж VCC + 0,5 В, якщо використовувати що-небудь менше 170 кОм резистора. Я думаю, що діоди Шоткі найбезпечніші для цього.
кіберпонк

13

Для незалежності напруги використовуйте резистор для регулювання струму, а Zener для регулювання напруги, наприклад:

схематичний

імітувати цю схему - Схематично створено за допомогою CircuitLab

З резистором 30 К, це видасть 4,99 В і використовувати лише близько 234uA @ 12Vin.
У цьому випадку:
R1 споживає 234uA x (12V - 4,99 В) = 1,64 мВт
D1 споживає 234uA x 4,99 В = 1,17 мВт

Загальне споживання електроенергії: 2,81 мВт (при високому вході)


Для чого-небудь видимого я б використовував світлодіодний + резисторний подільник послідовно, щоб подати сигнал 5В на 12В і поставити ценеровий діод паралельно нижній половині дільника та світлодіоду для захисту від перенапруги. Таким чином світлодіод загоряється, коли у вас є вхідний сигнал і надає візуальний зворотній зв'язок.
Госвін фон Бредерлоу

@GoswinvonBrederlow Ви можете, будь ласка, намалювати схему світлодіод / діод / резистор?
шипля

У наведеній схематичній схемі встановіть R1 до 770 Ом і додайте 330Ohm і червоний світлодіод паралельно до діода Зенера. Тоді на вході 12 В ~ 9 мА буде протікати світлодіод, і ви отримаєте вихідний сигнал 5 В. Якщо напруга на вході збільшиться, хоча діод станера обмежить вихідний сигнал до 5,1 В і захистить як ардуїно, так і світлодіод.
Госвін фон Бредерлоу

-2

Трохи пізно, але у своєму автомобілі я використовую LM7805. Працює чудово і коштує дешево.


1
Не так дешево, як 2 резистора або резистор і діод.
Трейд Дейва

7
@TonNies Ви неправильно поставили питання. OP не шукає напруги живлення для свого контролера. Це більше про кондиціонування сигналу.
Ariser

1
Нічого поганого у використанні LM7805 для перенесення 12В сигналів.
chugadie

1
@chugadie: Але дуже незвичний і відносно «дорогий» підхід до надмірного рівня, якщо все, що ви хочете, - це звести 12 В на один IO-контакт.
Rev1.0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.