Мазмуну:

Arduino үчүн 6 баскыч үчүн 1 аналогдук киргизүүнү колдонуңуз: 6 кадам
Arduino үчүн 6 баскыч үчүн 1 аналогдук киргизүүнү колдонуңуз: 6 кадам

Video: Arduino үчүн 6 баскыч үчүн 1 аналогдук киргизүүнү колдонуңуз: 6 кадам

Video: Arduino үчүн 6 баскыч үчүн 1 аналогдук киргизүүнү колдонуңуз: 6 кадам
Video: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, Ноябрь
Anonim
Arduino үчүн 6 баскыч үчүн 1 аналогдук киргизүүнү колдонуңуз
Arduino үчүн 6 баскыч үчүн 1 аналогдук киргизүүнү колдонуңуз

Мен көп учурда кантип Arduino үчүн санариптик кириштерди алсам болот деп ойлончумун. Жакында мен бир нече санариптик кирүүлөрдү киргизүү үчүн аналогдук кирүүлөрдүн бирин колдоно алам деп ойлодум. Мен тез издөө жүргүздүм жана адамдар муну кайда кыла алаарын таптым, бирок бул бир эле убакта бир гана баскычты басууга мүмкүндүк берген. Мен симуляторду басуу үчүн каалаган баскычтардын айкалышына ээ болгум келет. Ошентип, TINKERCAD CIRCUITSтин жардамы менен мен муну ишке ашырууну чечтим.

Эмне үчүн мен бир убакта баскычтарды баскым келет? TinkerCad микросхемаларынын дизайнында көрсөтүлгөндөй, ал программанын ичинде ар кандай режимди тандоо үчүн DIP коммутаторлору үчүн колдонулушу мүмкүн.

Мен ойлоп тапкан схема Arduino жеткиликтүү 5V булагын колдонот жана 7 резистор менен 6 баскычты же өчүргүчтү колдонот.

1 -кадам: Circuit

Circuit
Circuit

Ардуинонун аналогдук кириштери бар, алар 0Vдан 5Vга чейин киргизүүнү кабыл алышат. Бул киргизүү 10-биттик чечимге ээ, бул сигнал 2^10 сегментке же 1024 эсептөөгө бөлүнгөнүн билдирет. Ушуга таянып, бир убакта басууга уруксат берип, аналогдук киришке киргизе алган нерселерибиздин көбү 10 кнопкадан 1 аналогдук кирүүгө туура келет. Бирок, бул идеалдуу дүйнө эмес. Өткөргүчтөрдө каршылык, тышкы булактардан келген ызы -чуу жана жеткилеңсиз күч бар. Ошентип, өзүмө көп ийкемдүүлүк берүү үчүн, мен муну 6 баскычка иштеп чыгууну пландаштырдым. Буга, жарым-жартылай, TinkerCAD микросхемаларынын 6-Switch DIP Switch объектиси болгон, бул тестирлөөнү жеңилдетет.

Менин дизайнымдагы биринчи кадам, ар бир баскыч, жеке басылганда, уникалдуу чыңалууну камсыздайт. Бул бардык резисторлордун бирдей баалуулугун жокко чыгарды. Кийинки кадам, каршылыктын маанилери, параллелдүү түрдө кошулганда, кандайдыр бир резистордун маанисиндей эле каршылыкка ээ боло албайт болчу. Резисторлор параллель туташканда, пайда болгон каршылыкты Rx = 1/[(1/R1)+(1/R2)] менен эсептесе болот. Ошентип, эгерде R1 = 2000 жана R2 = 1000, Rx = 667. Мен ар бир резистордун өлчөмүн эки эсе көбөйтүү менен, мен эч кандай комбинация үчүн бирдей каршылыкты көрбөйм деп ойлодум.

Ошентип, ушул убакка чейин менин схемамда ар биринин өзүнүн каршылыгы бар 6 өчүргүч болушу керек болчу. Бирок, бул схеманы аягына чыгаруу үчүн дагы бир резистор керек.

Акыркы резистордун 3 максаты бар. Биринчиден, ал Pull-Down каршылыгынын ролун аткарат. Резистор болбосо, эч кандай баскыч басылбаса, схема толук эмес болот. Бул Arduino аналогдук киришиндеги чыңалууга кандайдыр бир чыңалуу потенциалына калкып чыгууга мүмкүндүк берет. A Pull-Down каршылыгы негизинен чыңалууну 0 В.га түшүрөт. Экинчи максаты-бул чынжырдын токун чектөө. Ом мыйзамы V = IR же Чыңалуу = Ток Каршылыкка көбөйтүлгөн деп айтылат. Берилген чыңалуу булагы менен, чоңураак резистор ток кичине болорун билдирет. Ошентип, эгер 500В резисторго 5В сигнал берилсе, биз көрө алган эң чоң ток 0.01А же 10мА болмок. Үчүнчү максат - сигналдын чыңалуусун камсыздоо. Акыркы резистор аркылуу аккан жалпы ток: i = 5V/Rtotal болот, мында Rtotal = Rlast+{1/[(1/R1)+(1/R2)+(1/R3)+(1/R4)+ (1/R5)+(1/R6)]}. Бирок, анын тиешелүү баскычы басылган ар бир резисторго 1/Rx гана кирет. Жалпы токтун ичинен аналогдук кирүүгө берилген чыңалуу i*Rlast же i*500 болот.

2 -кадам: Proof - Excel

Далил - Excel
Далил - Excel

Бул схема менен уникалдуу каршылыктарга ээ болоорумду далилдөөнүн эң тез жана оңой жолу Excelдин мүмкүнчүлүктөрүн колдонуу болду.

Мен коммутаторлордун мүмкүн болгон бардык айкалыштарын түздүм жана экилик үлгүлөрдү ырааттуу түрдө уюштурдум. "1" мааниси которгучтун күйгүзүлгөнүн, боштуктун өчүрүлгөнүн билдирет. Электрондук жадыбалдын үстү жагында мен ар бир которгуч үчүн жана түшүүчү резистор үчүн каршылык маанилерин киргиздим. Мен ар бир комбинация үчүн эквиваленттүү каршылыкты эсептеп чыктым, бирок бардык резисторлор өчүк болгондон башка, анткени бул резисторлор аны камсыз кылган кубат булагы жок аффектке ээ болбойт. Ар бир комбинацияга көчүрүү жана чаптоо үчүн менин эсептөөлөрүмдү жеңилдетүү үчүн, мен ар бир которгучтун маанисин (0 же 1) анын тескери каршылык маанисине көбөйтүү менен бардык комбинацияларды эсептөөгө киргиздим. Муну өчүрүү өчүрүлгөн болсо, анын каршылыгын эсептөөдөн жок кылды. Жыйынтык теңдемесин таблицанын сүрөтүнөн көрүүгө болот, бирок Req = Rx + 1/(Sw1/R1 + Sw2/R2 + Sw3/R3 + Sw4/R4 + Sw5/R5 + Sw6/R6). Itotal = 5V / Req колдонуп, биз чынжыр аркылуу жалпы токту аныктайбыз. Бул төмөн түшүүчү резистор аркылуу өтүүчү жана бизге аналогдук кирүүбүзгө чыңалууну камсыз кылган ток. Бул Vin = Itotal x Rx катары эсептелет. Req маалыматтарын да, Вин маалыматтарын да карап чыгып, биз чынында эле уникалдуу баалуулуктарга ээ экенибизди көрө алабыз.

Бул жерде биздин схема иштей тургандай көрүнөт. Эми Arduino программасын кантип түзүүнү билүү.

3 -кадам: Arduino программалоо

Arduino программалоо
Arduino программалоо
Arduino программалоо
Arduino программалоо
Arduino программалоо
Arduino программалоо

Ардуинону кантип программалоо жөнүндө ойлоно баштаганымда, адегенде которгучтун күйүк же өчүк экенин аныктоо үчүн жеке чыңалуу диапазондорун орнотууну пландадым. Бирок, бир түнү төшөктө жатып, мен муну жасоо үчүн теңдеме таба алам деп ойлодум. Кантип? EXCEL. Excel диаграммадагы маалыматтарды эң жакшы жайгаштыруу үчүн теңдемелерди эсептөө мүмкүнчүлүгүнө ээ. Бул үчүн, мен өчүргүчтөрдүн (экилик) бүтүн маанисинин ошол мааниге туура келген чыңалуу киргизүүсүнүн теңдемесин каалайм. Менин Excel Жумуш китебимде, бүтүн сандын маанисин жадыбалдын сол жагына койдум. Эми менин теңдемемди аныктоо үчүн.

Бул жерде Excelдеги сызыктын теңдемесин кантип аныктоо боюнча тез үйрөткүч.

1) Эч кандай маалыматы жок уячаны тандаңыз. Эгерде сизде маалыматтар камтылган уяча болсо, Excel сиз тренд кылгыңыз келген нерсени табууга аракет кылат. Бул трендди орнотууну бир топ татаалдаштырат, анткени Excel сейрек туура божомолдойт.

2) "Киргизүү" өтмөгүн тандап, "Таркатуу" диаграммасын тандаңыз.

3) Диаграмма кутусуна оң баскыч менен чыкылдатып, "Дайындарды тандоо …" дегенди басыңыз. Бул "Маалымат булагын тандоо" терезеси пайда болот. Маалыматты тандоону улантуу үчүн Кошуу баскычын басыңыз.

4) Ага Серия Атын бериңиз (Милдеттүү эмес). X-Axis диапазонун өйдө жебени чыкылдатып, андан кийин Чыңалуу маалыматын тандоо менен тандаңыз. Y-огунун диапазонун өйдө жебени чыкылдатып, анан бүтүн маалыматтарды тандоо менен тандаңыз (0-63).

5) Маалымат пункттарын оң баскыч менен чыкылдатыңыз жана "Тренд сызыгын кошуу…" дегенди тандаңыз. Трендди карасак, 2 -даража такыр дал келбей турганын көрөбүз. Мен 3 орденин тандадым жана бул алда канча так экенин сездим. "Теңдемени диаграммада көрсөтүү" үчүн кутучаны белгилеңиз. Акыркы теңдеме азыр диаграммада көрсөтүлөт.

6) Бүттү.

Макул. Arduino программасына кайтуу. Эми бизде теңдеме бар болгондуктан, Arduino программалоо оңой. Коммутатордун позициясын билдирген бүтүн сан 1 коддун сапында эсептелет. "Биток" функциясын колдонуу менен, биз ар бир биттин баасын түшүнө алабыз жана ошону менен ар бир баскычтын абалын биле алабыз. (СҮРӨТТӨРДҮ КӨРҮҢҮЗ)

4 -кадам: TinkerCAD микросхемалары

TinkerCAD микросхемалары
TinkerCAD микросхемалары

Эгерде сиз TinkerCAD схемаларын текшере элек болсоңуз, азыр жасаңыз. КҮТҮҮ !!!! Менин көрсөтмөмдү окуп бүтүп, анан текшерип көрүңүз. TinkerCAD микросхемалары Arduino микросхемаларын текшерүүнү абдан жеңилдетет. Ал бир нече электрдик объекттерди жана Arduino камтыйт, ал тургай Arduino -ны тестирлөөгө программалоого мүмкүндүк берет.

Менин схемамды текшерүү үчүн мен DIP коммутатордун жардамы менен 6 коммутаторду орнотуп, аларды резисторлорго байладым. Менин Excel жадыбалындагы чыңалуу мааниси туура экенин далилдөө үчүн, мен Arduinoго кирүүдө вольтметрди көрсөттүм. Мунун баары күтүлгөндөй иштеди.

Arduino программалоо иштегенин далилдөө үчүн, мен Arduino санариптик чыгууларын колдонуп, LEDлерге которгучтардын абалын чыгардым.

Мен ар бир коммутаторду мүмкүн болгон комбинацияга алмаштырдым жана "IT WORKS" деп сыймыктануу менен айтам !!!

5 -кадам: "Ушунчалык узун жана бардык балыктар үчүн рахмат." (реф.1)

Мен муну чыныгы жабдууларды колдонуу менен сынап көрө элекмин, анткени мен азыр жумуш үчүн бара жатам. Бирок, аны TinkerCAD схемалары менен далилдегенден кийин, ал иштейт деп ишенем. Кыйынчылык, мен көрсөткөн резисторлордун баалуулуктары резисторлор үчүн баардык стандарттык баалуулуктар эмес. Муну айланып өтүү үчүн, мен керектүү баалуулуктарды алуу үчүн потенциометрлерди жана резисторлордун комбинациясын колдонууну пландап жатам.

Менин көрсөтмөмдү окуганыңыз үчүн рахмат. Мен бул сиздин долбоорлоруңузга жардам берет деп үмүттөнөм.

Сураныч, эгер сиз ушул эле тоскоолдукту чечүүгө аракет кылсаңыз жана аны кантип чечкен болсоңуз, комментарий калтырыңыз. Мен муну кылуунун башка жолдорун үйрөнгүм келет.

6 -кадам: Шилтемелер

Мен анын булагына шилтеме бербестен, цитата келтирем деп ойлогон эмес белеңиз?

реф. 1: Адамс, Дуглас. Узак, жана бардык балыктар үчүн рахмат. (Автохикиктин Галактика боюнча көрсөтмөсүнүн 4 -китеби "үчилтиги")

Сунушталууда: