Мазмуну:

5-Wire Resistive Touch Sensor: 10 кадам
5-Wire Resistive Touch Sensor: 10 кадам

Video: 5-Wire Resistive Touch Sensor: 10 кадам

Video: 5-Wire Resistive Touch Sensor: 10 кадам
Video: Термопара Устройство Неисправности Лайфхаки по ремонту 2024, Июль
Anonim
5-зымга туруштук берүүчү сенсор
5-зымга туруштук берүүчү сенсор

Салам Салам!

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

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

Ушул максатта, менин бул үйрөткүчтөргө болгон максатым - бул менин эң жылтыратылган сабактарымдын ортосундагы гибрид жана долбоордун өзү үчүн рекорд. Ар бир жеке үйрөткүч бул саякаттын бир кадамы болот жана мен буга чейин түшүндүрүп келген деталдарды камтыйт, мисалы кодду иштеп чыгуу (жөн эле толтурулган коддун ордуна) жана мен жолдо алып жүргөн жаңылыштыктар.

Мен бул жаңы долбоорго абдан толкунданып жатам жана анын канчалык жакшы иштегенин көрүү үчүн кубанып кеттим!

Бүгүн биз жөн эле 5-зымдуу сенсордук панелди DP-32 менен иштейбиз.

Кел, баштайлы!

1 -кадам: Сизге эмне керек

Сизге эмне керек
Сизге эмне керек

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

  • Микроконтроллер.

    Мен DP32ну нан панели менен колдонуп жатам, анткени ал прототиптөөнү абдан жөнөкөй кылат

  • Түрдүү зымдар жана кабелдер.

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

  • Титулдук 5 зымдуу резистивдүү сенсордук панель!

    Менде 4 зымдуу резистивдүү сенсордук панель бар болчу, бирок анын тасмасы сынды

Жана бул!

2-кадам: 5 зымдуу каршылаш сенсордук панель деген эмне?

5 зымдуу каршылаш сенсордук панель деген эмне?
5 зымдуу каршылаш сенсордук панель деген эмне?
5 зымдуу каршылаш сенсордук панель деген эмне?
5 зымдуу каршылаш сенсордук панель деген эмне?
5 зымдуу каршылаш сенсордук панель деген эмне?
5 зымдуу каршылаш сенсордук панель деген эмне?

Эгерде сиз менин 4 зымдуу сенсордук панелдик окуу куралымды окуган болсоңуз, анда сиз резистивдүү сенсордун жалпы идеясы менен таанышасыз, бирок 5 зымдуу панелдер жана 4 зымдуу панелдер бир аз башкача иштейт.

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

Экинчи сүрөттө, биз төрт зымдын экөөнү (жогорку оң жана асты-оң) жогорку чыңалууга (кызыл түстө көрсөтүлгөн) койдук, калган экөө (жогорку сол жана төмөнкү сол) төмөнгө коюлган чыңалуу (көк түстө көрсөтүлгөн). Бул бүт панелдеги чыңалуу градиентин түзөт. Бул учурда, градиент X огу боюнча жүрөт, ошондуктан жогорку чыңалуу X огу боюнча жогорку абалды билдирет.

Биз манжабызды панельге тийгизгенибизде, бул ийкемдүү сенсорду басат жана X огунун градиенти боюнча бир жерге туташат. Биздин микроконтроллердеги чыңалуу сенсорлору бул чыңалууну сезе алат жана манжаңыз X огунда кайда тийип жатканын айтып берет!

Үчүнчү сүрөттө, конфигурациянын Y огу боюнча сезүүгө мүмкүнчүлүк берүү үчүн кандай өзгөргөнүн көрө аласыз. Ошентип, биз 2-D мейкиндигинде манжабыз кайда тийип жатканын айта алабыз!

3 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү

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

Сиздин зым, албетте, айырмаланышы мүмкүн, бирок менин зымым төмөнкүчө:

Аналог 0 (пин 6) сенсорго туташат (орто пин)

Санарип 3 Жогорку Оңго туташат (эң жогорудагы пин)

Санарип 2 Жогорку-Солго туташат (экинчи эң жогорку пин)

Санарип 1 Төмөн-Солго туташат (экинчи ылдыйкы пин)

Санарип 0 Төмөн-Оңго туташат (эң ылдыйкы пин)

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

4 -кадам: Программалык камсыздоону иштеп чыгуу

Программалык камсыздоону иштеп чыгуу
Программалык камсыздоону иштеп чыгуу

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

Адаттагыдай эле, мен Digilent ядросу менен Arduino IDE колдоном. Ар бир бөлүмдө код файлы, скриншот, ошондой эле толуктоолордун сүрөттөлүшү жана биз жетишүүгө аракет кылып жаткан нерселер камтылат.

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

5 -кадам: Мамлекеттик машина көзүн ирмейт

Мамлекеттик машина көз ирмем
Мамлекеттик машина көз ирмем

Менин биринчи кадамым - blink функциясын "delay ()" негизиндеги функциядан мамлекеттик машинага өзгөртүү.

Көчүрмөлөрдү колдонууга көнбөгөндөр үчүн, ал if-операторуна окшош иштейт. Бул (кызгылт сары кутуда) биздин "абал" өзгөрмөнү сынайт (ал 0дөн башталат). Андан кийин ал биздин учурдагы абалга келет. Сиз 0 жана 2 учурда LEDди күйгүзүү жана өчүрүү үчүн жооптуу экенин көрөсүз (тиешелүүлүгүнө жараша), ал эми 1 жана 3 учурлар которгучтардын ортосунда күтүү үчүн жооптуу.

6 -кадам: Кнопканы басуу

Кнопка баскычы
Кнопка баскычы
Кнопка баскычы
Кнопка баскычы
Кнопка баскычы
Кнопка баскычы

Андан кийин, мен баскычты жарыкты өчүрүү үчүн колдонууну кааладым. Муну өтө татаалдаштыруунун ордуна, мен бардык штаттарды бирден ылдый жылдырдым (0 мамлекет 1 абалга айланат, ж.б.). Муну кылып жатканда, чыгуу абалдарын, ошондой эле штаттын өзүн көбөйтүү үчүн этият болуңуз (3 -сүрөттү караңыз).

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

Белгилей кетчү нерсе, бул система биз үчүн баскычты автоматтык түрдө жокко чыгарат, анткени биз 0 абалына кайтып келүүдөн мурун, LEDдин өчүшүн күтүшүбүз керек, ал жерде баскыч циклди кайра иштете алат.

7 -кадам: Сериялык байланыш

Сериялык байланыш
Сериялык байланыш
Сериялык байланыш
Сериялык байланыш

Бул жаңыртуу өтө кичине. Менин кылгым келгени - сериялык байланыш түзүү жана билдирүүлөрдү жөнөтүү. Биринчи сүрөттө, мен Serialди setup () функциясында баштаганымды көрө аласыз. Биздин мамлекеттик машинанын ичинде мен 1 жана 3 штаттарга компьютерге сериялык аркылуу жөнөкөй билдирүүлөрдү жөнөтүүчү линияларды коштум.

8 -кадам: Координаттарды окуу

Координаттарды окуу
Координаттарды окуу
Координаттарды окуу
Координаттарды окуу
Координаттарды окуу
Координаттарды окуу
Координаттарды окуу
Координаттарды окуу

Акыркы кадамдын оңой болгону жакшы, анткени бул кадам жупуну болчу.

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

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

Белгилей кетчү нерселер: Азыр үч "күтүү" кадамы бар. Сенсордук панелдин ар бир конфигурациясы үчүн, өлчөөнү жүргүзүүдөн мурун чыңалуулардын чечилишине, ал эми баскычка туура чыгууга убакыт берүү. Бул күтүп жаткан кадамдар, эмне үчүн мен баскычты да, сенсордук панелди дагы өз убакыт өзгөрмөлөрүн бергим келди.

Эскертүү: DEBOUNCE_TIME константасы бир аз төмөн болушу мүмкүн. Аны көбөйтүүдөн тартынба.

9 -кадам: тазалоо

Тазалоо
Тазалоо
Тазалоо
Тазалоо
Тазалоо
Тазалоо

Биз бул долбоордун кодунун акыркы версиясына келдик!

Баштоо үчүн мен өткөн убакытты эсептөө үчүн loop_diff () деп аталган функцияны коштум. DP32 үчүн ички саат белгисиз узун жана бул өтө күмөн болсо да, бул коддун иштөө убактысында сааттын айлануусу мүмкүн*. Мындай учурда, btn_time же panel_time үнөмдөлгөн убакыттан учурдагы убакытты алып салуу бизге кызыктай бир нерсе берет, ошондуктан мен loop_diff () деп жазып, циклдар качан пайда болгонун аныктап, ошого жараша мамиле кылам.

Мен дагы кичине тазалоо иштерин жүргүздүм. Мен азыр колдонулбаган "state_time" өзгөрмөсүн алып салдым. Мен LED_BUILTIN тегинен (бул Arduino стандарты) PIN_LED1 тегине (chipKit жана DP32 үчүн стандарттуу) которулду. Мен ошондой эле процессти баштоо жана аяктоо жөнүндө Serial аркылуу бардык билдирүүлөрдү алып салдым, бул биздин маалыматтарды Serial аркылуу алда канча таза кылат.

*Мен математиканы көп жылдар мурун жасадым, жана millis () функциясы үчүн өзгөрмөлүү цикл башталганга чейин бир жума тынымсыз иштөө убактысы талап кылынат деп ойлойм.

10 -кадам: Акыркы ойлор

Акыркы ойлор
Акыркы ойлор

Жана бул!

Эгер сиз ээрчип жүргөн болсоңуз, анда сиздин микроконтроллерге туташкан жумушчу сенсордук панели болушу керек! Бул кичинекей долбоор болчу, бирок бул чоңураак долбоордун бир бөлүгү. Мен 271828дин Плитасы жана Топу сыяктуу бир нерсеге карай иштеп жатам, мен буга чейин бир топ жолум бар. Мен сизди бүт процессте алып кетүүгө аракет кылам жана ар бир бөлүк өзүнүн кичинекей долбоору болушу керек.

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

Рахмат, эмкиде жолугабыз!

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