Съдържание:
- Стъпка 1: Основните неща (не наистина)
- Стъпка 2: Делител на напрежение
- Стъпка 3: Стълба с делител на напрежение
- Стъпка 4: Обобщение
Видео: Как да прочетете много превключватели с един щифт за MCU: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:56
Били ли сте някога да се отдръпвате от даден проект (и) и проектът продължава да расте и да расте, докато добавяте още неща към него (ние го наричаме Feaping Creaturism)? В скорошен проект изграждах честотомер и добавих генератор на сигнали с пет функции/честотен синтезатор. Скоро се оказах с повече превключватели, отколкото ми бяха останали налични щифтове, така че какво да прави човек?
Скоро обаче имах още седем превключвателя на моя Funbox (да, така нарекох моя генератор на функции … Знам, нямам креативност) и ето кратка инструкция, която ви показва как можете да направите същото. Не изисква никакви регистри на смяна или специфични интегрални схеми. Всъщност не се изисква и микроконтролер, ако дискретните полупроводници са начинът, по който се търкаля. Ето един начин, по който можете да четете/управлявате множество превключватели, като използвате един щифт на вашия AVR (или друг микроконтролер … Чувал съм, че има и други микроконтролери освен AVR, но не мога да си представя …).:)
Стъпка 1: Основните неща (не наистина)
За да постигнете това, ще ви трябват няколко компонента. Помага да имате множество ключове, които трябва да управлявате. Ще ви трябват и някои резистори и или микроконтролер, който има ADC (аналогово-цифрово преобразуване), или по друг начин, по който искате да посочите, че е активиран превключвател и кой превключвател е бил.
Ако искате, можете да използвате осцилатор, управляван от напрежение, за да посочите това, може би с някои мигащи светлини или алтернативно със звук. В тази таблица ще се преструвам, че използваме AVR, но във вашия свят можете да се преструвате на всичко, което ви прави щастливи. Липсва ми Боб Рос.
Стъпка 2: Делител на напрежение
По същество начинът, по който ще направим това, е чрез използване на техника и верига, наречени делител на напрежение. Делителите на напрежение, както може би се досещате, разделят V,, in,, напрежението на определена от вас стойност. Можете да разделите напрежението с няколко компонента, включително кондензатори и индуктори, но тук ще го направя с добрия резистор. Идеята Това, което правим, е да поставяме два компонента в серия, които ще причинят, всеки поотделно, спад на напрежението в компонента. Погледнете първата снимка, ако нямам смисъл. Има потенциална разлика от 9V от релса до релса. Между 9V и 0V има два последователно резистора. Всеки от тях ще изпита спад на напрежението върху себе си, в зависимост от съпротивлението, както вероятно си спомняте от V = IR. Ако направите измерване на напрежение между двата резистора, ще получите някаква стойност между 9V и 0V, в зависимост от това колко напрежение е спаднало през първия резистор и колко остава да падне над втория резистор, преди 0V. В тази ситуация има ясна формула за изчисляване на спада на напрежението в резистор и изглежда така. Нека напрежението над резистор 1 (R1) да бъде V1, а напрежението над резистор два (R2) да бъде V2. Тъй като вече не мога да използвам форматиране, погледнете снимка 2 по -долу за формулата … Така че, в нашия резистивен делител, напрежението Vout може да бъде определено по нашата формула за V2 (тъй като ще се позоваваме на GND на 0V). Какво общо има това с това, че куп ключове се откриват от един щифт? Е, обърнете страницата и ще ви покажа!
Стъпка 3: Стълба с делител на напрежение
Да предположим, че имаме всичките си превключватели, може би шест или осем или шестнадесет, всички свързани чрез резистори, всеки от които действа като делител на напрежение, така че когато състоянието на щифта на превключвателя се промени, напрежението се отчита и въз основа на нивото на напрежение, ние може да знае кой ключ е току -що активиран. Погледнете по -долу. На снимката по -долу съм свързал два блока превключватели. Най-горният блок има два превключвателя, а най-долният блок има пет превключвателя. Можете да свържете отделните си превключватели, моментни, тактилни и т.н. превключватели по същия начин. Важното, което трябва да забележите, е резисторът, към който е свързан вашият превключвател. В моя пример почти удвоих съпротивлението на следващия резистор, за да създам напрежение, което е лесно да се измери и да не се сбърка с превключвателя преди или след. Ако не сте забелязали преди, погледнете отново и осъзнайте, че се връщаме към нашия стар приятел резистивния делител на напрежение. Първият резистор, 10k ohm, е свързан към 5V, а вторият резистор - резисторът, който ще определи Vнавън за щифт SWITCH_ADC, е свързан към всеки превключвател и следователно всеки превключвател е свързан с определено напрежение Vout, което може да се отчете от щифта ADC, свързан към SWITCH_ADC. След това определете очаквания Vout от всеки превключвател така
Vout = Vin * (R2 / (R1 + R2))
за превключвател едно:
Vout = 5V * (500 / (10000 + 500)) = 5 * 0.048 = 0.24V или 240 mV
за превключвател две:
Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V или ~ 900mV
и така нататък. Чувствайте се свободни да замените в собствените си стойности R2, ако имате само определени резистори под ръка … Ключовото тук е да поддържате достатъчно широка празнина в напрежението между превключвателите, така че всяка граница на грешка на ADC да спечели ' не ви поставя в напрежението, очаквано от съседен превключвател. Открих, че най -лесното нещо, което трябва да направите, е да изградите разделителната стълба и да поставите мултицет/волтметър върху щифта на ADC и да натиснете всеки щифт и да видите какви стойности получавате. Те трябва да са доста на място за това, което изчислявате. След като имате всички очаквани стойности на напрежение от всеки превключвател, използвайки определен резистор, тогава можете да накарате вашия MCU да прочете щифта на ADC и да го сравни с вашите известни стойности, за да определи кой превключвател е натиснат. Например, да речем, че сте регистрирали рутинна услуга за прекъсване, която ще се извиква всеки път, когато има открита промяна на щифта на ADC. Вътре в този ISR можете да прочетете ADC и да сравните тази стойност с таблицата за превключване. Ако използвате 8-битова стойност на ADC, вашето напрежение ще бъде преобразувано в число между 0 и 255, което съответства на напрежение между 0V и 5V. Това предполага, че ADC е конфигуриран по този начин.
Стъпка 4: Обобщение
Така че, сега трябва да знаете как да бъдете пестеливи при използването на GPIO щифтове за ключове. Всеки път, когато изчерпвате GPIO пиновете или едва ли имате такива за начало, или ако осъзнавате, че ще използвате група от ключове, резистивният разделител е начинът да запазите вашите GPIO пинове, като същевременно предоставяте здрав механизъм за откриване на комутационен достъп.
Препоръчано:
Как да прочетете множество аналогови стойности, използвайки един аналогов щифт: 6 стъпки (със снимки)
Как да прочетете множество аналогови стойности с помощта на един аналогов щифт: В този урок ще ви покажа как да четете множество аналогови стойности, използвайки само един аналогов входен щифт
Включена верига за изключване с UC. Бутон с едно натискане. Един щифт. Дискретен компонент .: 5 стъпки
Включена верига за изключване с UC. Бутон с едно натискане. Един щифт. Дискретен компонент.: Здравейте на всички, търсех верига за включване/изключване в мрежата. Всичко, което намерих, не беше това, което търсех. Говорих си сам, задължително има начин за това. Това ми беше необходимо. -Само един бутон за включване и изключване.-Трябва да използвам само
Ръководство за използване на Raspberry Pi с клавиатура с един щифт: 9 стъпки
Клавиатура с един щифт Raspberry Pi Ръководство за използване: ОТКАЗ ОТ ОТГОВОРНОСТ: ТОВА Е РЪКОВОДСТВО ЗА УПОТРЕБА ЗА ОТВОРЕН ИЗТОЧНИК ПРОДУКТ: ЕДИНИЧНАТА КЛАВИАТУРА. ТОВА НЕ Е ПРОЕКТ „Направи си сам“. АКО ИСКАТЕ ДА СЕ НАПРАВИТЕ ДОСКИТЕ, ФАЙЛОВЕТЕ НА ОРЛА МОЖЕ ДА СЕ НАМЕРАТ В КРАЯ НА УЧЕБНИКА. Какво представлява клавиатурата с един щифт? Клавиатура с един щифт
Клавиатура с един щифт 4 × 4: 10 стъпки
Клавиатура с един щифт 4 × 4: Всеки път, когато видя клавиатура, тя идва с много щифтове, това е голяма загуба на вашите щифтове Arduino, така че можем ли да пуснем клавиатура с един и само един щифт?. Отговорът е тук
100+ превключвателя в един щифт на Arduino: 6 стъпки (със снимки)
100+ превключвателя в един щифт на Arduino: Въведение Изчерпали ли сте входните щифтове? Не се притеснявайте, тук има решение без регистри за смяна. В това видео ще научим за свързването на повече от 100 превключвателя към един щифт на Arduino