Potenciometri un rotējošie kodētāji no pirmā acu uzmetiena izskatās gandrīz identiski, taču tie darbojas dažādos veidos. Uzziniet, kā izmantot abus ar Arduino.

Starp elektroniskajiem lietotāja vadības komponentiem rotējošās pogas izceļas kā dažas no vispiemērotākajām lietošanā. Tie var papildināt skārienekrānus un citas ievades ierīces, kā arī labi darboties ar pogām un slēdžiem. Bet kā jūs varat pievienot pogu saviem DIY Arduino projektiem?

Jums ir divas galvenās iespējas: potenciometrs vai rotējošais kodētājs. Šie komponenti var izskatīties līdzīgi, taču metodes to izmantošanai ar tādu ierīci kā Arduino mikrokontrollera plate ir ļoti atšķirīgas. Redzēsim, kā viņi salīdzina viens ar otru.

Potenciometri vs. Rotējošie kodētāji

Lielākajai daļai potenciometru un rotējošo kodētāju, ar kuriem saskarsies DIY entuziasti, ir līdzīgs formas faktors. Tiem ir kubveida vai cilindriska pamatne ar pievienotām savienotāju kājām, kā arī apaļa vārpsta, kas pagriežas un ar izgriezumiem vāciņam, uz kura var sēdēt.

instagram viewer

Daži potenciometri izskatās citādi, piemēram, tie, kas ir garu slaidu veidā, piemēram, tie, kas atrodami mūzikas miksēšanas klājos. Tomēr, runājot par rotācijas veidu, no pirmā acu uzmetiena tie izskatās gandrīz identiski rotējošiem kodētājiem, tāpēc jums tiks piedots, ja domājat, ka tie ir vienādi.

Kas ir potenciometrs?

Potenciometrs būtībā ir mainīgs rezistors. Pagriežot vārpstu, pretestība potenciometra iekšpusē mainās, ļaujot lietotājam mainīt ķēdes īpašības, to nepārbūvējot. Potenciometri var būt gan analogie, gan digitālie, bet digitālie potenciometri atdarina analogos, un tas padara tos ļoti līdzīgus lietošanai.

Potenciometriem vienmēr ir noteikts sākuma un beigu punkts, kurā vārpstu vairs nevar pagriezt. Dažiem potenciometriem, pagriežot, ir nelīdzens sajūta, bet daudzi ir arī gludi, piemēram, tie, kas atrodami vecos stereosistēmās.

Neskatoties uz to, ka potenciometri ir analogi, tie labi darbojas ar mikrokontrolleriem. Jūs varat viegli uzstādiet potenciometru ar Raspberry Pi Pico vai Arduino.

Kas ir rotējošais kodētājs?

Rotējošie kodētāji nosaka to vārpstas stāvokli, izmantojot sensoru, lai nodrošinātu analogo vai digitālo signālu ierīcei, kurai tie ir pievienoti. Tas norāda ierīcei, kurā pozīcijā atrodas kodētājs. Līdzās rotējošajai vārpstai rotējošajos kodētājos parasti ir arī iebūvēta poga, kas tiek darbināta, nospiežot vārpstu uz leju.

Atšķirībā no potenciometriem, rotējošie kodētāji var griezties bez apstāšanās, un tiem gandrīz vienmēr ir taustes izciļņi katrā vārpstas pozīcijā. Daudzas mūsdienu automašīnas izmanto rotācijas kodētājus, lai kontrolētu savas izklaides sistēmas.

Kā lietot potenciometru ar Arduino

Pateicoties vienkāršajam dizainam, potenciometra lietošana ar Arduino ir vienkārša. Jūsu potenciometram ir trīs savienotāji: zemējums, izeja un vref. Zemējuma un vref tapas tiek savienotas attiecīgi ar jūsu Arduino GND un 5 V savienotājiem, savukārt potenciometra izejas tapa tiek savienota ar vienu no jūsu paneļa analogajām ieejām.

Arduino potenciometra kods

Jūsu Arduino potenciometra kods sākas ar pamata uzstādīt() un cilpa () veidne, ko redzēsit, veidojot jaunu failu Arduino IDE. Vispirms pievienojiet a const int mainīgais koda sākumā, lai reģistrētu katla analogo kontaktu savienojumu — šajā gadījumā A0.

konststarpt potenciometrs = A0;

Pēc tam, uzstādīt() funkcija ir vienkārša: jums vienkārši jādeklarē potenciometra tapa kā ievade. Varat arī izveidot seriālo savienojumu, ja vēlaties nosūtīt datus uz datoru diagnostikai.

nederīgsuzstādīt(){
pinMode (potenciometrs, INPUT);
Seriāls.sāciet(9600);
}

Pēc tam ir pienācis laiks iestatīt cilpa () funkciju. Sāciet, izveidojot starpt mainīgais, izmantojot analogRead() funkcija, lai saglabātu potenciometra pozīciju. Pēc tam jūs varat izmantot karte () funkcija, lai samazinātu attiecīgās vērtības lielumu — šajā piemērā lai atbilstu PWM specifikācijām, piemēram, lai kontrolētu gaismas diodes spilgtumu. Pievienojiet nelielu aizkavi, lai nodrošinātu stabilitāti.

nederīgscilpa(){
starpt potenciometerValue = analogRead (potenciometrs);
karte (potenciometerValue, 0, 1023, 0, 255);
Seriāls.println(potenciometrsVērtība);
kavēšanās (10);
}

Tagad, kad jums ir sava potenciometra pozīcija, varat to izmantot kopā ar citām koda daļām. Piemēram, an ja paziņojums labi darbotos, lai aktivizētu kodu, kad potenciometrs atrodas noteiktā pozīcijā.

konststarpt potenciometrs = A0;

nederīgsuzstādīt(){
pinMode (potenciometrs, INPUT);
Seriāls.sāciet(9600);
}

nederīgscilpa(){
starpt potenciometerValue = analogRead (potenciometrs);
karte (potenciometerValue, 0, 1023, 0, 255);
Seriāls.println(potenciometrsVērtība);
kavēšanās (10);
}

Kā izmantot rotējošo kodētāju ar Arduino

Rotējošiem kodētājiem ir nepieciešams sarežģītāks kods nekā potenciometriem, taču ar tiem joprojām ir diezgan viegli strādāt. Jūsu rotējošajam kodētājam ir piecas tapas: zemējums, VCC, pogas tapa (SW), izeja A (CLK) un izeja B (DT). Zemējuma un VCC tapas tiek savienotas attiecīgi ar jūsu Arduino zemējuma un 5 V savienotājiem, savukārt SW, CLK un BT tapas tiek savienotas ar atsevišķiem Arduino digitālajiem savienotājiem.

Arduino rotējošā kodētāja kods

Lai padarītu mūsu kodu vienkāršāku un vieglāk lietojamu, mēs izmantosim SimpleRotary Arduino bibliotēku, ko izveidoja MPgrams vietnē GitHub. Pirms sākat strādāt ar kodu, pārliecinieties, vai šī bibliotēka ir instalēta.

Līdzīgi kā potenciometra kods, jūs varat sākt savu rotējošā kodētāja skriptu ar pamata Arduino uzstādīt() un cilpa () funkciju veidne. Sāciet, deklarējot SimpleRotary bibliotēku un piešķirot kodētāja tapas šādā secībā; CLK, DT un SW.

#iekļauts 
SimpleRotary rotācijas(1,2,3);

Jums nekas nav jāpievieno savam uzstādīt() funkciju, ja vien nevēlaties izmantot seriālo monitoru, lai diagnosticētu savu rotācijas kodētāju.

nederīgsuzstādīt(){
Seriāls.sāciet(9600);
}

The cilpa () funkcija ir cits stāsts. Kodētāja vārpstas griešanās noteikšana sākas ar a rotary.rotate() funkcijas izsaukums, kas piešķirts an starpt mainīgs. Ja rezultāts ir 1, kodētājs griežas pulksteņrādītāja virzienā. Ja rezultāts ir 2, kodētājs griežas pretēji pulksteņrādītāja virzienam. Rezultāts vienmēr būs 0, ja kodētājs nav pagriezies kopš pēdējās pārbaudes.

Tu vari izmantot ja paziņojumus, lai aktivizētu citu kodu atkarībā no kodētāja rotācijas virziena.

nederīgscilpa(){
starpt encoderRotation;
encoderRotation = rotary.rotate();

if (encoderRotation == 1) {
Serial.println("pulksteņrādītāja virzienā");
}

if (encoderRotation == 2) {
Serial.println("pretpulksteņrādītājvirzienā");
}
}

Jums arī jāpievieno kodētāja pogas kods cilpa () funkciju. Šis process ir ļoti līdzīgs, izņemot to, ka izmantosit rotary.push() funkcija, nevis rotary.rotate().

nederīgscilpa(){
starpt encoderButton;
encoderButton = rotary.push();

if (encoderButton == 1) {
Serial.println("poga nospiesta");
}
}

Šis skripts ir diezgan vienkāršs, un jūs varat darīt daudz, lai padarītu to par savu. Ir vērts iepazīties ar SimpleRotary projekta dokumentāciju, lai pārliecinātos, ka izmantojat visas tā galvenās funkcijas. Kad kodētāja kods ir izveidots kopā, tam vajadzētu izskatīties šādi.

#iekļauts 
SimpleRotary rotācijas(1,2,3);

nederīgsuzstādīt(){
Seriāls.sāciet(9600);
}

nederīgscilpa(){
starpt encoderRotation;
encoderRotation = rotary.rotate();

if (encoderRotation == 1) {
Serial.println("pulksteņrādītāja virzienā");
}

if (encoderRotation == 2) {
Serial.println("pretpulksteņrādītājvirzienā");
}

starpt encoderButton;
encoderButton = rotary.push();

if (encoderButton == 1) {
Serial.println("poga nospiesta");
}
}

Kā projektiem izvēlēties potenciometrus un rotācijas kodētājus

Kā redzat, rotējošie kodētāji un potenciometri darbojas diezgan atšķirīgi. Abi šie komponenti sniedz jaunus veidus, kā kontrolēt savus elektronikas projektus, bet kuru izvēlēties?

Potenciometri ir pieejami par pieņemamu cenu un viegli lietojami, taču tie nodrošina tikai ierobežotu ievades diapazonu. Tas padara tos par lieliskiem, ja vēlaties kontrolēt gaismas diodes spilgtumu vai palielināt un samazināt jaudu, kas tiek izmantota konkrētiem komponentiem, un citus līdzīgus uzdevumus.

Rotējošie kodētāji nodrošina daudz plašāku darbības jomu nekā potenciometri. Spiedpogas iekļaušana nozīmē, ka tie ir lieliski piemēroti izvēlnes vadības sistēmām, kā tas ir redzams daudzās mūsdienu automašīnās. Šāda veida komponenti ir kļuvuši ļoti populāri mehāniskās tastatūras ēkas telpā. Jūs pat varat izveidot nelielu makropad ar iebūvētu kodētāju.

Līdzīgs izskats, dažādas sastāvdaļas

Ņemot vērā visu šo informāciju, jums vajadzētu būt gatavam sākt elektronikas projektu ar potenciometru vai rotējošo kodētāju. Šie komponenti var sniegt jums daudz kontroles pār jūsu izveidotajām shēmām, taču jums ir jāpārliecinās, vai esat izvēlējies pareizo opciju savam projektam.