Мазмұны:

5 сымды резистивті сенсор сенсоры: 10 қадам
5 сымды резистивті сенсор сенсоры: 10 қадам

Бейне: 5 сымды резистивті сенсор сенсоры: 10 қадам

Бейне: 5 сымды резистивті сенсор сенсоры: 10 қадам
Бейне: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Шілде
Anonim
5 сымды резистивті сенсор сенсоры
5 сымды резистивті сенсор сенсоры

Сәлем Сәлем!

Бұл сайтта жұмыс істегеніме біраз уақыт болды, және көп нәрсе өзгерді! Мен, ақырында, басқа жоба үшін рульге отыруға дайынмын, және менің ойымша, жағдайды сәл өзгертуге уақыт келді!

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

Осы мақсатта менің бұл оқулықтардағы мақсатым - менің анағұрлым жылтыратылған оқулықтарым мен жобаның рекорды арасындағы гибрид болады. Әрбір жеке оқулық осы саяхаттың бір қадамы болады және мен бұрын түсіндірген кодты әзірлеу (жай ғана толтырылған кодтың орнына) мен осы жолда жасаған қателіктерім сияқты мәліметтерді қамтиды.

Мен бұл жаңа жобаға өте қуаныштымын және оның қаншалықты жақсы жұмыс істейтінін көру үшін мен қуандым!

Бүгін біз жай ғана DP-32 жұмыс істейтін 5 сымды сенсорлық тақтаны аламыз.

Бастайық!

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) сенсорға қосылады (орта штырь)

Digital 3 жоғарғы оң жаққа қосылады (ең жоғарғы түйреуіш)

Digital 2 жоғарғы сол жаққа қосылады (екінші ең жоғарғы түйреуіш)

Сандық 1 төменгі-сол жаққа қосылады (төменгі ең төменгі түйреуіш)

Сандық 0 төменгі оң жаққа қосылады (ең төменгі түйреуіш)

Тағы бір айта кетерлігі, мен микроконтроллер мен панельдің арасына өту үшін 6 сымды кабельді қолданамын. Мен бұл кабельдің жоғарғы түйреуішін қосылмай қалдырдым.

4 -қадам: Бағдарламалық қамтамасыз етуді әзірлеу

Бағдарламалық қамтамасыз етуді әзірлеу
Бағдарламалық қамтамасыз етуді әзірлеу

Бұрын мен сіз үшін әдетте аяқталған бағдарламалық жасақтама файлын тастайтын едім, мүмкін бәрі не істейтіні туралы қысқаша ақпарат. Маған бұл ұнамайды. Мен бұл серия әзірленіп жатқан жобалар туралы болғанын қалаймын, сондықтан мен осы бағдарламалық жасақтаманың басынан аяғына дейін нақты дамуын қосамын.

Әдеттегідей, мен Digilent ядросы бар Arduino IDE қолданамын. Әр бөлімде код файлы, скриншот, сонымен қатар толықтырулар мен біз қол жеткізуге тырысатын нәрсе болады.

Дәл қазір мен мысалдар қалтасынан тапқандай кешіктіру стилінің қарапайым бағдарламасынан бастаймын. Егер сіз мен жазған ұзақ тақырыпты оқысаңыз, онда бұл процестің әр қадамы бағдарламаны түпкі мақсатымызға жақындату үшін өзгертетінін көресіз.

5 -қадам: Мемлекеттік машинаның жыпылықтауы

Мемлекеттік машинаның жыпылықтауы
Мемлекеттік машинаның жыпылықтауы

Менің бірінші қадамым - жыпылықтау функциясын «delay ()» функциясына негізделген күй машинасына өзгерту.

Мәліметтерді ауыстыруға үйренбегендер үшін ол if-операторына ұқсас жұмыс істейді. Бұл (қызғылт сары қорапта) біздің «күй» айнымалысын тексереді (ол 0 -ден басталады). Содан кейін ол біздің қазіргі күйімізге сәйкес келеді. Сіз 0 және 2 жағдайында жарық диодты қосуға және өшіруге жауап беретінін көресіз (сәйкесінше), ал 1 және 3 жағдай қосқыштар арасында күтуге жауап береді.

6 -қадам: Жыпылықтау түймесі

Жыпылықтау түймесі
Жыпылықтау түймесі
Жыпылықтау түймесі
Жыпылықтау түймесі
Жыпылықтау түймесі
Жыпылықтау түймесі

Содан кейін мен жарықты жыпылықтау үшін түймені қолданғанын қалаймын. Мұны күрделендірудің орнына мен барлық штаттарды бір-бірден төмен түсірдім (0 күй 1 күйге айналады және т.б.). Бұл әрекетті орындау кезінде шығыс жағдайларын, сондай -ақ күйді ұлғайту үшін абай болыңыз (3 суретті қараңыз).

Мен екінші «күту» күйін де жойдым. Бұл түйме жарықты бір секундқа қосады дегенді білдіреді және сіз оны өшіргеннен кейін бірден басуға болады.

Айта кетейік, бұл жүйе біз үшін түймені автоматты түрде өшіреді, себебі біз 0 күйіне оралмас бұрын жарықдиодты өшіруді күтуіміз керек, онда түйме циклді қайтадан іске қосады.

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 плитасы мен допы сияқты жұмыс істеймін, мен бұған дейін ұзақ жол жүруім керек. Мен сізді бүкіл процесте алып кетуге тырысамын, және әр бөлік өзінің жеке жобасы болуы керек.

Бұл мен үшін оқу процесі, сондықтан төмендегі түсініктемелерде өз ойларыңыз бен ұсыныстарыңызды қалдырыңыз.

Рахмет, келесі жолы кездескенше!

Ұсынылған: