Мазмуну:
- 1 -кадам: Райондук диаграмма
- 2 -кадам: Бөлүктөрдүн тизмеси
- 3 -кадам: Теория
- 4 -кадам: Программалык камсыздоо
Video: Жөнөкөй Ротари декодер: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бул көрсөтмө Arduino Uno R3 менен ырааттуу айлануучу коддогучту чечүүнүн жөнөкөй ыкмасын сүрөттөйт.
Компакт программалык процедуралар өткөөлдөрдүн санын эсептөө, контактты секирүүнү жок кылуу жана айлануу багытын аныктоо үчүн колдонулат. Кошумча компоненттер жана издөө таблицалары талап кылынбайт.
Коддун үзгүлтүксүз жана үзгүлтүксүз версиялары берилет.
Коддун үзгүлтүккө учуроо версиясы бир гана үзгүлтүк пинин талап кылат.
Сүрөттөр:
- Ачылган сүрөттө чогултулган кодер көрсөтүлгөн.
- Скриншот үзгүлтүккө учуроочу версиянын кодун жана коддогучтун огу саат жебеси боюнча жана сааттын жебесине каршы бурулганда көрсөтөт.
- Видеодо ылдам айлануу учурунда эсептөө көрсөтүлгөн.
1 -кадам: Райондук диаграмма
Коддогучтун туташуу схемасы fig.1де көрсөтүлгөн.
Өткөргүч зымдар түздөн -түз коддогуч казыктарына ширетилет.
Эгерде эсептөө багыты тескери болсо, эки көк зымды алмаштырыңыз.
2 -кадам: Бөлүктөрдүн тизмеси
Төмөнкү бөлүктөр https://www.aliexpress.com/ сайтынан алынды
- USB кабели менен 1 гана Arduino UNO R3.
- 1 гана кезектүү айлануучу кодер (EC11 же эквиваленти) которгуч менен.
- Биликке туура келген 1 гана баскыч.
- 3 гана Arduino эркектен эркекке секирүүчү зымдар.
3 -кадам: Теория
Кезектүү айлануучу коддогучтар ар бири 90 градуска жылдырылган эки чарчы толкунду пайда кылат.
Байланыш А менен Б байланыштын логикалык үлгүлөрү 1ден 6га чейинки позициялар аркылуу вал саат жебеси боюнча (CW) жана саат жебеси боюнча (CCW) бурулганда башкача болот.
Айлануу багытын аныктоонун жалпы методдоруна төмөнкүлөр кирет:
- аппараттык
- эгиз үзгүлтүктөр
- үлгү издөө таблицалары
Бул долбоор издөө столдорун талап кылбаган программалык камсыздоо ыкмасын колдонот. [1]
Багыты
Байланыш А менен Б байланыштарынын чыгуу моделдерин кароонун ордуна, Байланыш Ага көңүл буралы.
Эгерде биз Б контактинин үлгүсүн ар бир Байланыш А өтүүсүнөн кийин белгилесек:
- Байланыш А менен Б Байланышында кодер CW айландырылганда карама -каршы логикалык абалдары бар
- Байланыш А менен Б Байланыш кодекси CCW айландырылганда бирдей логикалык абалга ээ
Чыныгы код:
// ----- Саноолордун өтүшү
CurrentStateA = stateContactA (); if (CurrentStateA! = LastStateA) {CurrentStateB = digitalRead (ContactB); if (CurrentStateA == CurrentStateB) Count ++; if (CurrentStateA! = CurrentStateB) Count--; LastStateA = CurrentStateA; }
Бул ыкма төмөнкү артыкчылыктарды берет:
- издөө столдору талап кылынбайт
- бир гана үзгүлтүк сызыгы талап кылынат
Debounce
Бардык механикалык кодерлер "контакт секирүүдөн" жабыркашат.
Эгерде коммутатордун контакты таза иштебесе/бузулбаса, анда анын логикалык абалы которуштуруучу контакт чечилмейинче ЖОГОРУдан ТӨМӨНГӨ чейин термелет. Бул жалган эсепке алып келет.
Байланыштын секирүүсүн басуунун бир жолу - ар бир которуштуруучу контактка кичинекей конденсатор кошуу. Конденсатор жана аны менен байланышкан тартуучу резистор жогорку жыштыктарды эффективдүү кыскартуучу жана которгучтун чыңалуусунун кооз көтөрүлүшүнө/түшүшүнө мүмкүндүк берген интеграторду түзөт.
Бул ыкманын кемчилиги, эгерде коддогучтун огу тез бурулса, өтмөктөрдү өткөрүп жиберүү мүмкүн.
Программалык камсыздандыруу
Бул ыкма нөлгө коюлган эки эсептегичти (Ачык, Жабык) колдонот. [2]
Байланышта өтүү аныкталгандан кийин:
- Үзгүлтүксүз сурамжылоо Байланыш А.
- Ачык эсептегичти көбөйтүп, Байланыш А ЖОГОРУ болгондо, Жабык эсептегичти кайра коюңуз.
- Жабык эсептегичти көбөйтүп, А контакт АРЫЛГАНДА Ачык эсептегичти баштапкы абалга келтириңиз.
- Эсептегичтердин бири алдын ала белгиленген санга жеткенде циклден чыгыңыз. Биз кандайдыр бир байланыш секиргенден кийин туруктуу абал мезгилин натыйжалуу издеп жатабыз.
Чыныгы код:
// ----- Байланыштан чыгуу А.
while (1) {if (digitalRead (ContactA)) {// ----- ContactA is Open Closed = 0; // Бош карама -каршы интегратор Open ++; // Эгерде интеграциялоо (Ачуу> MaxCount) ЖОГОРУ кайтарылса; } else {// ----- ContactA жабык ачык = 0; // Бош карама -каршы интегратор Жабык ++; // Эгерде интеграциялоо (Жабык> MaxCount) ТӨМӨН кайтса; }}
Contact B менен Contact B өтмөлөрү дал келбегендиктен, В Байланышынан чыгуунун кажети жок.
Саноо
Механикалык "кармоо" сиздин эсебиңизди эффективдүү түрдө эки эсеге көбөйтөт, анткени эки чыкылдатуу ортосунда катталган (1 -сүрөттү караңыз).
"Кармалгандардын" саны төмөндө көрсөтүлгөндөй модулдук 2 арифметиканын жардамы менен аныкталышы мүмкүн.
Чыныгы код:
// ----- "кармалып тургандардын" саны
if (Count % 2 == 0) {Serial.print ("Count:"); Serial.println (Count / 2); }
Шилтемелер
Кошумча маалыматты бул жерден тапса болот:
[1]
howtomechatronics.com/tutorials/arduino/ro…
[2]
newbiehack.com/ButtonorSwitchDebounceinSof…
4 -кадам: Программалык камсыздоо
Бул долбоорго https://www.arduino.cc/en/main/software жеткиликтүү болгон Ardino Uno R3 IDE (интеграцияланган өнүктүрүү чөйрөсү) акыркы версиясы керек.
Кийинки эки Arduino эскизинин ар бирин жүктөп алыңыз (тиркелет)
- rotary_encoder_1.ino (сурамжылоо версиясы)
- rotary_encoder_2.no (үзгүлтүккө учураган версия)
Сиз каалаган версияны эки жолу чыкылдатыңыз жана экрандын көрсөтмөлөрүн аткарыңыз.
Ырахат…
Менин башка көрсөтмөлөрүмдү көрүү үчүн бул жерди басыңыз.
Сунушталууда:
Ротари CNC бөтөлкө плоттери: 9 кадам (сүрөттөр менен)
Ротари CNC бөтөлкө плоттери: Мен принтерде колдонулган кээ бир роликтерди алдым. Мен аларды CNC бөтөлкө плоттеринин айлануу огуна айландыруу идеясы менен келдим. Бүгүн мен бул роликтерден жана башка сыныктардан CNC бөтөлкө плоттерин кантип курууну бөлүшкүм келет
Кантип жөнөкөй DTMF (тон) телефон линиясын декодер кылыш керек: 3 кадам
Жөнөкөй DTMF (тон) телефон линиясын декодерди кантип жасоо керек: Бул DTMF сигналдарын негизинен каалаган телефон линиясында чечүүгө мүмкүндүк берген жөнөкөй долбоор. Бул окуу куралында биз MT8870D декодерин колдонуп жатабыз. Биз алдын ала курулган тон декодерди колдонуп жатабыз, анткени, ишениңиз, муну аракет кылуу менен артта оору
IR алуучуну кантип колдонуу керек (iR декодер): 6 кадам
IR алуучуну кантип колдонуу керек (iR декодер): Бул үйрөткүчтө мен ардуинодон iR алуучуну кантип колдонууну этап -этабы менен көрсөтөм. китепкананы кантип орнотууну, телевизордун алыстан башкаруу сигналын алууну жана бул сигналдын кодун чечүүнү көрсөтөт. IR кабылдагычы инфракызыл контексти куруу үчүн колдонулушу мүмкүн
Infrared NEC протоколунун коддоочу жана декодер тактасы: 5 кадам
Infrared NEC Protocol Encoder and Decoder Board: чийки модуляцияланган же демодуляцияланган NEC IR сигналын алат жана аны сериялык портко жөнөтүлгөн байтка айландырат. Сериялык берүү ылдамдыгы эки демейки ылдамдыктан тандалат. Демейки колдонуу режими байт менен буйрук тизмегин өткөрүп берет
Декодер визиттик картасы - QR коддуу жашыруун билдирүү: 6 кадам (сүрөттөр менен)
Декодердин визиттик картасы - QR коддуу жашыруун билдирүү: Жакшы визиткага ээ болуу байланыштарды сактоого, өзүңүздү жана бизнесиңизди таанытууга жана досторду табууга жардам берет. Алуучуну картаңызды активдүү которууну камтыган жеке визиттик карточканы түзүү менен, сиз аны эстеп калуу мүмкүнчүлүгүн арттырасыз