Мазмуну:
- 1 -кадам: Circuit
- 2 -кадам: Proof - Excel
- 3 -кадам: Arduino программалоо
- 4 -кадам: TinkerCAD микросхемалары
- 5 -кадам: "Ушунчалык узун жана бардык балыктар үчүн рахмат." (реф.1)
- 6 -кадам: Шилтемелер
Video: Arduino үчүн 6 баскыч үчүн 1 аналогдук киргизүүнү колдонуңуз: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Мен көп учурда кантип Arduino үчүн санариптик кириштерди алсам болот деп ойлончумун. Жакында мен бир нече санариптик кирүүлөрдү киргизүү үчүн аналогдук кирүүлөрдүн бирин колдоно алам деп ойлодум. Мен тез издөө жүргүздүм жана адамдар муну кайда кыла алаарын таптым, бирок бул бир эле убакта бир гана баскычты басууга мүмкүндүк берген. Мен симуляторду басуу үчүн каалаган баскычтардын айкалышына ээ болгум келет. Ошентип, TINKERCAD CIRCUITSтин жардамы менен мен муну ишке ашырууну чечтим.
Эмне үчүн мен бир убакта баскычтарды баскым келет? TinkerCad микросхемаларынын дизайнында көрсөтүлгөндөй, ал программанын ичинде ар кандай режимди тандоо үчүн DIP коммутаторлору үчүн колдонулушу мүмкүн.
Мен ойлоп тапкан схема Arduino жеткиликтүү 5V булагын колдонот жана 7 резистор менен 6 баскычты же өчүргүчтү колдонот.
1 -кадам: 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дин мүмкүнчүлүктөрүн колдонуу болду.
Мен коммутаторлордун мүмкүн болгон бардык айкалыштарын түздүм жана экилик үлгүлөрдү ырааттуу түрдө уюштурдум. "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 программалоо
Ардуинону кантип программалоо жөнүндө ойлоно баштаганымда, адегенде которгучтун күйүк же өчүк экенин аныктоо үчүн жеке чыңалуу диапазондорун орнотууну пландадым. Бирок, бир түнү төшөктө жатып, мен муну жасоо үчүн теңдеме таба алам деп ойлодум. Кантип? 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 микросхемалары Arduino микросхемаларын текшерүүнү абдан жеңилдетет. Ал бир нече электрдик объекттерди жана Arduino камтыйт, ал тургай Arduino -ны тестирлөөгө программалоого мүмкүндүк берет.
Менин схемамды текшерүү үчүн мен DIP коммутатордун жардамы менен 6 коммутаторду орнотуп, аларды резисторлорго байладым. Менин Excel жадыбалындагы чыңалуу мааниси туура экенин далилдөө үчүн, мен Arduinoго кирүүдө вольтметрди көрсөттүм. Мунун баары күтүлгөндөй иштеди.
Arduino программалоо иштегенин далилдөө үчүн, мен Arduino санариптик чыгууларын колдонуп, LEDлерге которгучтардын абалын чыгардым.
Мен ар бир коммутаторду мүмкүн болгон комбинацияга алмаштырдым жана "IT WORKS" деп сыймыктануу менен айтам !!!
5 -кадам: "Ушунчалык узун жана бардык балыктар үчүн рахмат." (реф.1)
Мен муну чыныгы жабдууларды колдонуу менен сынап көрө элекмин, анткени мен азыр жумуш үчүн бара жатам. Бирок, аны TinkerCAD схемалары менен далилдегенден кийин, ал иштейт деп ишенем. Кыйынчылык, мен көрсөткөн резисторлордун баалуулуктары резисторлор үчүн баардык стандарттык баалуулуктар эмес. Муну айланып өтүү үчүн, мен керектүү баалуулуктарды алуу үчүн потенциометрлерди жана резисторлордун комбинациясын колдонууну пландап жатам.
Менин көрсөтмөмдү окуганыңыз үчүн рахмат. Мен бул сиздин долбоорлоруңузга жардам берет деп үмүттөнөм.
Сураныч, эгер сиз ушул эле тоскоолдукту чечүүгө аракет кылсаңыз жана аны кантип чечкен болсоңуз, комментарий калтырыңыз. Мен муну кылуунун башка жолдорун үйрөнгүм келет.
6 -кадам: Шилтемелер
Мен анын булагына шилтеме бербестен, цитата келтирем деп ойлогон эмес белеңиз?
реф. 1: Адамс, Дуглас. Узак, жана бардык балыктар үчүн рахмат. (Автохикиктин Галактика боюнча көрсөтмөсүнүн 4 -китеби "үчилтиги")
Сунушталууда:
Баскыч (Баскыч); // An Arduino LCD оюну: 5 кадам (сүрөттөр менен)
Баскыч (Баскыч); // An Arduino ЖК оюну: Жакында Скауттарда мен Оюн Дизайнынын татыктуу бейджиги менен иштедим. Талаптардын бири үчүн, мен бул оюнду LED Rocker Game'ге негизделген Arduino менен кургам. Оюндун мааниси мүмкүн болгон эң көп упай топтоо. Т -дын башында
4 Аналогдук Киргизүүнү Колдонуучу 4 Түймө Оюн: 6 Кадам (Сүрөттөр менен)
4 Аналогдук Киргизүүнү Колдонуучу 4 Баскычтар Оюндары: Бул көрсөтмө бири-биринен көз карандысыз табылышы мүмкүн болгон бир нече баскычтар үчүн бир аналогдук киргизүү линиясын колдонууга багытталган. Бардык оюндар (8де
AVR микроконтроллери. Баскыч баскычын колдонуп LEDди өчүрүү. Баскыч баскычын чыгаруу: 4 кадам
AVR микроконтроллери. Баскыч баскычын колдонуп LEDди өчүрүү. Push Button Debouncing .: Бул бөлүмдө биз ATMega328PU үчүн үч LEDдин статусун баскычты которгучтун киргизүүсүнө ылайык алмаштыруу үчүн C программасын кантип жасоону үйрөнөбүз. Ошондой эле, биз "Switch Bounce" көйгөйүнүн чечилишин изилдедик. Адаттагыдай эле, биз
Аналогдук басымга сезгич баскыч: 4 кадам
Аналогдук басымга сезгич баскыч: Бүгүнкү күндө каалаган баада жана форма факторунда көптөгөн баскычтар жана тийүү өчүргүчтөрү бар. Тилекке каршы, эгер сиз аналогдук маалыматты алууну кааласаңыз, анда мүмкүнчүлүктөрүңүз чектелүү. Эгерде сыйымдуу сыдырма сиздин муктаждыгыңызга жооп бербесе, анда сиз
Баскыч интерфейси 8051 жана 7 сегменттеги баскыч сандарын көрсөтүү: 4 кадам (сүрөттөр менен)
Баскыч интерфейси 8051 жана 7 сегментте баскычтоп сандарын көрсөтүү: Бул үйрөткүчтө мен клавиатураны 8051 менен кантип интерфейстештирүү жана 7 сегменттеги дисплейде баскычтардын санын көрсөтүү жөнүндө айтып берейин