Mündəricat:
- Addım 1: Nə lazımdır
- Addım 2: 5 telli Rezistiv Toxunma Paneli nədir?
- Addım 3: Kabel çəkmə
- Addım 4: Proqram İnkişafı
- Addım 5: Dövlət Maşını Göz Kırpma
- Addım 6: Düymə Blink
- Addım 7: Serial Rabitə
- Addım 8: Koordinatları oxumaq
- Addım 9: Təmizləmə
- Addım 10: Son Fikirlər
Video: 5 Telli Rezistiv Toxunma Sensoru: 10 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Salam Salam!
Bu saytda işləməyimdən bir müddət keçdi və göründüyü kimi çox şey dəyişdi! Nəhayət, başqa bir layihə üçün yenidən sükan arxasına keçməyə hazıram və düşünürəm ki, hər şeyi bir qədər dəyişməyin vaxtıdır!
Bir müddət 271828 -in Plaka və Topa əsaslanan bir layihəsini düşündüm, amma bitməmiş sensorlar və idarəetmə nəzəriyyəsi haqqında öyrənəcəyim çox şey var. Düşündüm ki, bir -iki şey öyrəndiyim müddətcə sizi də özümlə apara bilərəm!
Bu məqsədlə bu dərslərdəki məqsədim, daha cilalanmış dərslərimlə bir növ hibrid və layihənin özü üçün bir rekord olacaq. Hər bir fərdi dərs bu səyahətdə bir addım olacaq və keçmişdə yazdığım detalları, məsələn kod hazırlama (yeni tamamlanmış kod əvəzinə) və yolda atdığım səhv addımları ehtiva edəcək.
Bu yeni layihə üçün çox həyəcanlıyam və bunun nə qədər yaxşı işlədiyini görmək üçün ayrıldım!
Bu gün yalnız DP-32 ilə işləyən 5 telli sadə bir panel əldə edəcəyik.
Gəlin başlayaq!
Addım 1: Nə lazımdır
Bu təlimat tək bir sensorun işə salınması ilə əlaqədar olduğundan, bir mikro nəzarətçi və toxunma panelindən çox ehtiyacınız olmayacaq.
-
Mikro nəzarətçi.
DP32-ni daxili çörək taxtası ilə istifadə edirəm, çünki prototip hazırlamağı inanılmaz dərəcədə sadə edir
-
Müxtəlif tel və kabellər.
Dokunmatik panelin lent kabelindən istifadə edə bilərdim, amma yırtsa bütün panel yararsızdır. Bunun əvəzinə, quraşdırılmış kabeldəki gərginliyi azaltmaq üçün 6 telli bir kabel istifadə edirəm
-
Titulyar 5 telli rezistiv toxunma paneli!
4 telli rezistiv toxunma panelim var idi, amma bunun üçün lent kabeli qırıldı
Və bu qədər!
Addım 2: 5 telli Rezistiv Toxunma Paneli nədir?
4 telli toxunma paneli dərsliyimi oxumusunuzsa, rezistiv toxunma sensoru haqqında ümumi fikirlə tanış olacaqsınız, ancaq 5 telli və 4 telli panellər bir az fərqli işləyir.
Bu paneldən xoşum gəlir, çünki bütün tel izlərini görə bilərsiniz, nəyin nə etdiyini görməyi asanlaşdırırsınız. İlk şəkildə hər bir izi fərqli şəkildə rəngləmişəm. Yəqin ki, tellərin dördünün (çəhrayı, sarı, narıncı və bənövşəyi) hər birinin dörd küncdən birinə getdiyini görə bilərsiniz. Orta tel (qırmızı) çevik sensor panelinə gedir.
İkinci şəkildə, dörd teldən ikisini (sağdan yuxarı və aşağıdan sağa) yüksək gərginliyə (qırmızı ilə göstərilmişdir), digər ikisini (yuxarı sol və aşağı sol) aşağı səviyyəyə qoymuşuq. gərginlik (mavi ilə göstərilmişdir). Bu, bütün paneldə bir gərginlik gradienti yaradır. Bu vəziyyətdə, gradient X oxu boyunca gedir, buna görə daha yüksək bir gərginlik X oxu boyunca daha yüksək bir mövqeyi təmsil edir.
Barmağımızı panelə toxunduğumuzda, X oxu qradiyenti boyunca bir yerə bağlanan çevik sensoru sıxışdırır. Mikro nəzarətçimizdəki gərginlik sensorlar bu gərginliyi hiss edə bilər və barmağınızın X oxunda hara toxunduğunu söyləyə bilər!
Üçüncü şəkildə, Y oxu boyunca hiss etməyimiz üçün konfiqurasiyanın necə dəyişdiyini görə bilərsiniz. Bu şəkildə, 2-D məkanda barmağımızın hara toxunduğunu deyə bilərik!
Addım 3: Kabel çəkmə
Yəqin ki, yuxarıdakı şəkillərdə görə biləcəyiniz kimi, hər dörd küncümü öz rəqəmsal çıxış pininə bağladım. Bu, onları ayrı -ayrılıqda yüksək və ya aşağıya qoymağa imkan verəcək. Sensor pinim analog giriş pininə qoşulur. 5 telli bir toxunma ekranının 4 teldən fərqli olaraq ən yaxşı tərəfi odur ki, yalnız bir analoq pinə ehtiyacınız var, 4 telli isə 2 ədəd.
Əlbəttə ki, kabeliniz fərqli ola bilər, amma mənim kabellərim belədir:
Analog 0 (pin 6) Sensora (orta pin) qoşulur
Rəqəmsal 3 yuxarı sağa bağlanır (ən yuxarı pin)
Rəqəmsal 2, Üst Sola (ikinci ən çox pin) bağlanır
Rəqəmsal 1 Aşağı-Sola (ikinci alt-ən pin) qoşulur
Rəqəmsal 0, Sağdan Aşağıya (ən altdakı pin) bağlanır
Bir daha qeyd etmək lazımdır ki, mikrokontrolörlə panel arasında keçmək üçün 6 telli kabel istifadə edirəm. Bu kabelin üst pinini əlaqəsiz qoymuşam.
Addım 4: Proqram İnkişafı
Keçmişdə, ümumiyyətlə istifadə edə biləcəyiniz bir tamamlanmış proqram faylını atardım, bəlkə də hər şeyin nə olduğunu qısa bir şəkildə. Bundan xoşum gəlmir. Bu seriyanın inkişaf mərhələsindəki layihələr haqqında olmasını istəyirəm və bu məqsədlə bu proqramın əvvəldən sonuna qədər gerçək inkişafını daxil edəcəyəm.
Həmişə olduğu kimi, Digilent nüvəsi olan Arduino IDE -dən istifadə edəcəyəm. Hər bölmədə bir kod faylı, ekran görüntüsü, əlavələrin təsviri və əldə etməyə çalışdığımız şeylər olacaq.
Hal -hazırda, sadə bir gecikmə tərzi proqramı ilə başlayıram, nümunələr qovluğunda tapdığınız kimi eyni. Yazdığım uzun başlığı oxusanız, bu prosesin hər bir addımının proqramı son məqsədimizə yaxınlaşdırmaq üçün dəyişdirəcəyini görəcəksiniz.
Addım 5: Dövlət Maşını Göz Kırpma
İlk hərəkətim, gözləmə funksiyasını "delay ()" ə əsaslanan funksiyadan dövlət maşınına dəyişdirməkdir.
Keçid ifadələrini istifadə etməyənlər üçün, if ifadəsinə bənzər şəkildə işləyir. Bu (narıncı qutuda) "vəziyyət" dəyişənimizi sınayır (0 -dan başlayır). Sonra indiki vəziyyətimiz üçün işə keçər. Görürsünüz ki, 0 və 2 halları LED -i açmaq və söndürməkdən (1 -ci halda), 1 -ci və 3 -cü açarlar arasında gözləməkdən məsuldur.
Addım 6: Düymə Blink
Sonra, işığı yandırmaq üçün düymənin istifadə edilməsini istədim. Bunu həddindən artıq çətinləşdirmək əvəzinə, bütün əyalətləri bir dənə aşağı saldım (0 vəziyyəti 1-ə çevrilir və s.). Bunu edərkən, çıxış vəziyyətlərini və əyalətin özünü artırmağa diqqət edin (şəkil 3).
İkinci "gözləmə" vəziyyətini də sildim. Bu o deməkdir ki, düymə işığı bir saniyə yandırır və söndürüldükdən sonra düyməni yenidən basa bilərsiniz.
Diqqət yetirməyə dəyər ki, bu sistem bizim üçün düyməni avtomatik olaraq ləğv edir, çünki düymənin yenidən dövrəni tetikleyebileceği 0 vəziyyətinə dönməzdən əvvəl LED -in sönməsini gözləməliyik.
Addım 7: Serial Rabitə
Bu yeniləmə çox kiçikdir. İstədiyim tək şey Serial əlaqəsi qurmaq və mesaj göndərmək idi. İlk şəkildə, serial (serial) proqramına setup () funksiyasından başladığımı görə bilərsiniz. Dövlət maşınımızın içərisində, 1 və 3 -cü vəziyyətlərə, seriallar vasitəsilə kompüterə sadə mesajlar göndərəcək xətlər əlavə etdim.
Addım 8: Koordinatları oxumaq
Son addımın asan olması yaxşı haldır, çünki bu addım lal idi.
Başlamaq üçün, həm toxunma paneli, həm də düyməmiz üçün xüsusi vaxt dəyişənləri daxil olmaqla, toxunma panelimiz üçün dəyişənlər əlavə etdim. Bunun səbəbini bir az sonra görəcəksiniz.
Dövlət maşınını tamamilə yenidən yazdım. Koda baxmaq bir az qarışıqdır, buna görə də nə edildiyini göstərmək üçün bir blok diaqramı daxil etdim.
Diqqət etməli olduğunuz şeylər: İndi üç "gözləmə" addımı var. Dokunmatik panelin hər bir konfiqurasiyası üçün bir ölçmə etməzdən əvvəl gərginliklərin həll olunmasına icazə vermək üçün, digəri isə düyməni düzgün silmək üçün vaxt vermək üçün. Bu gözləmə addımları səbəbiylə həm düyməni, həm də toxunma panelinə öz vaxt dəyişənlərini vermək istədim.
Qeyd: DEBOUNCE_TIME sabit bir az aşağı ola bilər. Artırmaqdan çekinmeyin.
Addım 9: Təmizləmə
Bu layihə üçün kodun son versiyasına gəldik!
Başlamaq üçün, keçən vaxtı hesablamaq üçün loop_diff () adlı bir funksiya əlavə etdim. DP32 üçün daxili saat işarəsiz uzun və çox çətin olsa da, saatın bu kodun işləmə müddətində dönə biləcəyi ehtimalı var*. Bu vəziyyətdə, cari vaxtı btn_time və ya panel_time -da saxlanan vaxtdan çıxarmaq bizə qəribə bir şey verəcək, buna görə də loopların meydana gəldiyini aşkar etmək və buna uyğun davranmaq üçün loop_diff () yazdım.
Bir az xırda təmizlik də etmişəm. İndi istifadə edilməyən "state_time" dəyişənini sildim. LED_BUILTIN etiketindən (Arduino standartıdır) PIN_LED1 etiketinə (chipKit və DP32 üçün standartdır) keçdim. Serial vasitəsilə məlumatlarımızı Serial üzərindən daha təmiz edən prosesin başlaması və bitməsi ilə bağlı bütün mesajları da sildim.
*İllər əvvəl riyaziyyatı etmişəm və düşünürəm ki, millis () funksiyası üçün dəyişənin dönməzdən əvvəl bir həftə davamlı iş vaxtı kimi bir şey lazım olacaq.
Addım 10: Son Fikirlər
Və bu qədər!
Əgər izləmisinizsə, indi mikrokontrollerinizə bağlı işləyən bir toxunma paneli olmalıdır! Bu kiçik bir layihə idi, amma daha böyük bir layihənin bir hissəsidir. 271828 -in Plaka və Topu kimi bir şeyə çalışıram və bunun baş verməsinə qədər çox yolum var. Sizi bütün proses boyunca aparmağa çalışacağam və hər bir hissə öz kiçik layihəsi olmalıdır.
Bu mənim üçün bir öyrənmə prosesidir, buna görə fikirlərinizi və təkliflərinizi aşağıdakı şərhlərdə yazmaqdan çekinmeyin.
Təşəkkürlər, növbəti dəfə görüşəcəyik!
Tövsiyə:
Yalnız 3 hissədən ibarət asan, ucuz və etibarlı toxunma sensoru: 3 addım
Yalnız 3 Parçalı Asan, Ucuz və Etibarlı Toxunma Sensoru: Barmağınızla hər cür elektron cihazı nəzarət etmək olduqca faydalı ola bilər. Bu təlimatda sizə qüsursuz işləyən asan, lakin güclü bir sensorun necə qurulacağını göstərəcəyəm. Lazım olan yalnız standart bir tranzistor və iki
Toxunma sensoru necə edilir: 7 addım
Toxunma Sensoru Necə Hazırlanır: Salam dostum, bu gün BC547 tranzistorundan istifadə edərək sadə toxunma sensoru hazırlayacağam. Telə toxunduğumuz zaman LED parlayacaq və telə toxunmadıqca LED parlamayacaq. Gəlin başlayaq
Üç Toxunma Sensor Dövrü + Toxunma Taymeri Dövrü: 4 Addım
Üç Toxunma Sensorlu Dövrə + Toxunma Zamanlayıcısı Dövrü: Toxunma Sensoru, Toxunma Pimlərinə toxunma algıladıqda AÇIŞ edən bir dövrədir. Bu keçid əsasında işləyir, yəni yük yalnız sancaqlar üzərində toxunma zamanı AÇIQ olacaq.Burada sizə toxunmaq üçün üç fərqli yol göstərəcəyəm
Simsiz İşıqlandırılmış Rezistiv Toxunma Düyməsi: 5 addım
Simsiz İşıqlandırılmış Rezistiv Toxunma Düyməsi: Bu, RGB Led -i birləşdirən rezistiv toxunma düyməsi yaratmaq fikri ilə sadə bir layihədir. Bu düyməyə hər dəfə toxunduqda işıq yandırılacaq və lampanın rəngi tənzimlənə bilər. Portativ işıqlı bir toxunma düyməsi olaraq istifadə edilə bilər
Toxunma Sensoru və AC/DC işıqlarını idarə edən səs sensoru: 5 addım
Toxunma Sensoru və AC/DC İşıqlarını İdarə edən Səs Sensoru: Bu mənim ilk layihəmdir və bu iki əsas sensora əsaslanaraq işləyir, biri Sensor, ikincisi Səs sensoru, toxunma sensoruna toxunanda AC işığı dəyişəcək. AÇIQ, buraxsanız İşıq sönəcək və eyni