Mündəricat:

Bir MCU Pin ilə bir çox açarı necə oxumaq olar: 4 addım
Bir MCU Pin ilə bir çox açarı necə oxumaq olar: 4 addım

Video: Bir MCU Pin ilə bir çox açarı necə oxumaq olar: 4 addım

Video: Bir MCU Pin ilə bir çox açarı necə oxumaq olar: 4 addım
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Noyabr
Anonim
Bir MCU Pin ilə Bir çox Anahtarı Necə Oxumaq olar
Bir MCU Pin ilə Bir çox Anahtarı Necə Oxumaq olar

Heç bir layihə (lər) lə məşğul olmusunuzmu və buna daha çox şeylər əlavə edərkən layihə böyüməyə və böyüməyə davam edirmi? Son bir layihədə bir tezlik ölçücü qurdum və beş funksiyalı bir siqnal generatoru/tezlik sintezatoru əlavə etdim. Tezliklə əlimdə olan pinlərimdən daha çox keçidlə yaraladım, bəs nə etmək lazımdır?

Ancaq tezliklə Funbox -da yeddi açar daha var idi (bəli, mənim funksiya generatorum dediyim budur … Bilirəm ki, yaradıcılığım yoxdur) və burada eyni şeyi necə edə biləcəyinizi göstərən qısa bir təlimat var. Hər hansı bir dəyişiklik qeydləri və ya xüsusi IC tələb etmir. Əslində, ayrı bir yarımkeçiricilərin necə yuvarlandığı bir mikro nəzarətçi tələb etmir. AVR -də bir pin istifadə edərək birdən çox açarı oxumaq/idarə etməyin bir yolu budur (və ya digər mikrokontroller… AVR -lərdən başqa başqa mikrokontrolörlərin olduğunu eşitmişəm, amma təsəvvür edə bilmirəm …).:)

Addım 1: Essentials (Həqiqətən deyil)

Bunu etmək üçün bir neçə komponentə ehtiyacınız olacaq. İdarə etməli olduğunuz çoxlu açarların olmasına kömək edir. Ayrıca bəzi müqavimətçilərə və ya ADC (Analog-Rəqəmsal Dönüşüm) olan bir mikro nəzarətçiyə və ya bir keçidin aktiv olduğunu və hansı açarın olduğunu göstərmək istədiyiniz başqa bir üsula ehtiyacınız olacaq.

İstəyirsinizsə, bunu göstərmək üçün bir gərginlik idarə olunan osilatördən istifadə edə bilərsiniz, bəlkə də yanıb sönən işıqlarla və ya alternativ olaraq səslə. Bu kitabda bir AVR istifadə etdiyimizi iddia edəcəyəm, ancaq dünyanızda sizi xoşbəxt edən hər şeyi edə bilərsiniz. Bob Ross üçün darıxıram.

Addım 2: Gərginlik Bölücü

Gərginlik Bölücü
Gərginlik Bölücü
Gərginlik Bölücü
Gərginlik Bölücü

Əslində, bunu edəcəyimiz yol bir gərginlik bölücü adlanan bir texnika və dövrə istifadə etməkdir. Gərginlik bölücüləri, təxmin etdiyiniz kimi, V,, in, gərginliyini müəyyən etdiyiniz bir dəyərə bölür. Gərginliyi kondansatörlər və induktorlar daxil olmaqla bir neçə komponentə bölmək olar, amma burada bunu yaxşı müqavimətlə edəcəyəm. Etdiyimiz Fikir, hər biri ayrı -ayrılıqda komponent üzərində gərginliyin düşməsinə səbəb olacaq iki komponenti ardıcıl olaraq qoymaqdır. Məntiqli deyiləmsə ilk şəkilə baxın. Dəmiryoldan dəmiryoluna 9V potensial fərq var. 9V ilə 0V arasında iki rezistor var. Bunların hər biri, ehtimal ki, V = IR -dən xatırladığınız kimi, müqavimətdən asılı olaraq özündə bir gərginlik düşməsi yaşayacaq. İki rezistor arasında bir gərginlik ölçüsü götürsəniz, ilk müqavimətdə nə qədər geriliyin düşdüyünə və 0V -dən əvvəl 2 -ci rezistorun üstündən nə qədər düşəcəyinə görə 9V ilə 0V arasında bir dəyər alacaqsınız. Bu vəziyyətdə bir rezistordakı gərginliyin düşməsini hesablamaq üçün sadə bir düstur var və belə görünür. Rezistor 1 (R1) üzərindəki gərginlik V1, rezistor iki (R2) üzərindəki gərginlik V2 olsun. Formatı artıq istifadə edə bilmədiyim üçün düstur üçün aşağıdakı şəkil 2 -yə baxın … Beləliklə, müqavimətli bölücümüzdə Vout gərginliyi V2 düsturumuzla təyin edilə bilər (çünki GND -ni 0V -ə istinad edəcəyik). Bunun bir pindən bir dəstə açar aşkarlanmasının nə əlaqəsi var? Yaxşı, səhifəni çevirin və sizə göstərim!

Addım 3: Gərginlik Bölücü Nərdivan

Gərginlik Bölücü Nərdivan
Gərginlik Bölücü Nərdivan

İndi düşünək ki, hamımızın, bəlkə də altı və ya səkkiz və ya on altı, hamısı müqavimət vasitəsi ilə bağlıdır və hər biri bir keçid pininin vəziyyəti dəyişəndə gərginlik oxunur və gərginlik səviyyəsinə əsasən Hansı açarın yeni işə salındığını bilə bilərsiniz. Aşağıya baxın. Aşağıdakı şəkildə iki açar bloku bağladım. Ən çox blokda iki açar, ən aşağı blokda isə beş açar var. Ayrı bir keçid, ani, toxunma və s açarlarınızı eyni şəkildə bağlaya bilərsiniz. Diqqət etməli olduğunuz əsas şey, açarınızın bağlı olduğu rezistordur. Nümunəmdə, ölçmək asan olan bir keçiddən əvvəl və ya sonra səhv etməyən bir gərginlik boşluğu yaratmaq üçün növbəti müqavimətin müqavimətini demək olar ki, iki qat artırdım. Daha əvvəl fərq etməmisinizsə, yenidən baxın və köhnə dostumuzun müqavimətli gərginlik ayırıcısına qayıtdığımızı anlayın. İlk müqavimət, 10k ohm, 5V və 2 -ci rezistora - V -ni təyin edəcək rezistora bağlıdır.çıxmaq SWITCH_ADC pimi üçün hər bir keçid bağlıdır və buna görə də hər bir keçid SWITCH_ADC -də bağlı olan ADC pinindən oxunan xüsusi Vout gərginliyi ilə əlaqələndirilir. Sonra, hər bir keçiddən gözlənilən Voutu bu şəkildə təyin edin

Vout = Vin * (R2 / (R1 + R2))

bir keçid üçün:

Vout = 5V * (500 / (10000 + 500)) = 5 * 0.048 = 0.24V və ya 240 mV

iki keçid üçün:

Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V və ya ~ 900mV

və sair.. Yalnız müəyyən rezistorlarınız varsa R2 -ni öz dəyərlərinizlə əvəz etməkdən çekinmeyin … Burada əsas şey, açarlar arasındakı gərginlikdə kifayət qədər geniş bir boşluq saxlamaqdır ki, ADC -də hər hansı bir səhv marjı qazansın ' t sizi qonşu açardan gözlənilən gərginliyə qoyur. Etməyin ən asan yolu, bölücü nərdivanı qurmaq və ADC pininə bir multimetr/voltmetr qoymaq və hər pimi sıxmaq və hansı dəyərlərə sahib olduğunuzu görməkdir. Hesabladıqlarınıza çox diqqət yetirməlidirlər. Müəyyən bir rezistor istifadə edərək hər bir keçiddən gözlənilən bütün gərginlik dəyərlərini əldə etdikdən sonra, MCU'nun ADC pinini oxumasını və hansı açarın basıldığını müəyyən etmək üçün bunu bilinən dəyərlərlə müqayisə etməsini istəyə bilərsiniz. Məsələn, ADC pinində hər hansı bir dəyişiklik aşkar edildikdə çağırılacaq bir fasilə xidmət qaydası qeyd etdiyinizi söyləyin. Bu ISR -in içərisində ADC -ni oxuya və bu dəyəri keçid masanızla müqayisə edə bilərsiniz. 8 bitlik bir ADC dəyərindən istifadə edirsinizsə, gərginliyiniz 0 ilə 25 V arasında bir gərginliyə bərabər olacaq və 0V ilə 5V arasında olacaq. ADC -nin bu şəkildə qurulduğunu düşünürsən.

Addım 4: Xülasə

Beləliklə, indi açarlar üçün GPIO sancaqlarından necə qənaətcil istifadə etməyi bilməlisiniz. Nə vaxt GPIO pinləriniz tükənirsə və ya başlamağa çətin bir işiniz varsa və ya bir açar bankından istifadə edəcəyinizi başa düşürsünüzsə, müqavimətli bölücü GPIO sancaqlarınızı saxlamaq üçün getmək üçün bir yoldur. açar girişini aşkar etmək üçün güclü bir mexanizm.

Tövsiyə: