Բովանդակություն:
- Քայլ 1. Պտտվող կոդավորիչի իմպուլսային հոսք
- Քայլ 2. Պտտվող կոդավորիչի տեղադրում
- Քայլ 3: Սխեմատիկ
- Քայլ 4: Կոդ
- Քայլ 5: Բացատրություն
- Քայլ 6: Արդյունք
Video: Rotary Encoder- ի ձեռնարկը Arduino- ի հետ. 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Պտտվող կոդավորիչը էլեկտրոնային բաղադրիչ է, որն ունակ է պտտելիս վերահսկել շարժումն ու դիրքը: Պտտվող կոդավորիչն օգտագործում է օպտիկական տվիչներ, որոնք կարող են իմպուլսներ առաջացնել, երբ պտտվող կոդավորիչը պտտվում է: Պտտվող կոդավորիչի կիրառումը սովորաբար որպես մեխանիկական կամ ռոբոտային շարժման մոնիտոր կարող է օգտագործվել նաև էկրանին ընտրացանկի ընտրության համար: Պտտվող կոդավորիչն ունի երկու ելք, որպեսզի կարողանա տարբերել բացասական (CW) և դրական (CCW) ռոտացիան և ունի նաև մեկ կոճակ:
Քայլ 1. Պտտվող կոդավորիչի իմպուլսային հոսք
Հետևյալ պտտվող կոդավորիչի կողմից առաջացած զարկերակային հոսքը նման է վերևի նկարին:
Քայլ 2. Պտտվող կոդավորիչի տեղադրում
Բացատրություն:
- GND GND
- + + 5 Վ
- Սեղմելիս պտտվող կոդավորիչի SW կոճակը
- DT Տվյալներ
- CLK Տվյալներ 2
DT կամ CLK կապումներից մեկը պետք է միացված լինի Arduino Uno- ի ընդհատվող ոտքին, կամ DT- ի և CLK- ի երկուսն էլ միացված են ընդհատման քորոցին:
Քայլ 3: Սխեմատիկ
- GND à GND Arduino Uno
- + à + 5V Arduino Uno
- SW à PIN 4 Arduino Uno
- DT à PIN 3 Arduino Uno
- CLK à PIN2 Arduino Uno
Քայլ 4: Կոդ
Հետևյալ ձեռնարկում, որը կօգտագործվի որպես ընդհատում, Arduino Uno- ի PIN 2 -ն է, մինչդեռ PIN 3 -ը օգտագործվում է միայն որպես սովորական մուտքագրում:
#սահմանել կոդավորողին0ՓինԱ 2 #սահմանել ծածկագրողինՊինԲ 3 #սահմանել կոդավորողին 0Btn 4 ինտ կոդավորողին 0Pos = 0; void setup () {Serial.begin (9600); pinMode (encoder0PinA, INPUT_PULLUP); pinMode (encoder0PinB, INPUT_PULLUP); pinMode (encoder0Btn, INPUT_PULLUP); attachInterrupt (0, doEncoder, CHANGE); } int valRotary, lastValRotary; void loop () {int btn = digitalRead (encoder0Btn); Serial.print (btn); Serial.print (""); Serial.print (valRotary); if (valRotary> lastValRotary) {Serial.print ("CW"); } if (valRotary {
Serial.print («CCW»);
} lastValRotary = valRotary; Serial.println (""); ուշացում (250); } void doEncoder () {if (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) {encoder0Pos ++; } else {encoder0Pos--; } valRotary = encoder0Pos/2.5; }
Վերոնշյալ ուրվագծի 10 -րդ տողում օգտագործվում է Arduino Uno կապում 2 -ի ընդհատումը միացնելու համար: «DoEncoder» գործառույթում հաշվարկվում է պտտվող կոդավորիչից: Եթե DT- ի և CLK- ի արժեքը (Arduino Uno- ի քորոցային ընդհատում) նույնն է, ապա «encoder0Pos» փոփոխականը կավելանա / կավելացվի, բացի այդ պայմանից, «encoder0Pos» փոփոխականը նվազեցվում է:
Քայլ 5: Բացատրություն
ValRotary արժեքը գործող քայլերի քանակի արժեքն է: ValRotary արժեքը ստացվում է պտտվող սենսորային կոդավորիչի ընթերցման արժեքից `բաժանված 2.5 -ի: Թեստից ստացվում է 2,5 արժեք, քանի որ պտտվող կոդավորիչի մեկ քայլը կարող է գերազանցել 1 -ը, ուստի բաժանեք 2,5 -ի `դրա արժեքի համար` ըստ perstep- ի և նաև ընթերցման հետաձգման ավելացման:
19 - 25 տողերում մի ծրագիր է ՝ որոշելու ՝ պտտվող պտտվող կոդավորիչը CW է, թե՞ CCW: 19 - 25 տողերի բացատրությունն այն է, երբ ընթացիկ պտտվող ծածկագրիչի ընթերցումը ավելի մեծ է, քան այն նախկին պտտվող տվյալները, որոնք այն ժամանակ արտահայտվում էին որպես CW: Եթե ընթացիկ ընթերցումը ավելի փոքր է, քան նախորդ ընթերցումը, ապա այն նշվում է որպես CCW:
Քայլ 6: Արդյունք
1 = պտտվողի մեկնարկի կոճակի արժեքը, երբ այն սեղմված չէ
Խորհուրդ ենք տալիս:
Timամաչափ Arduino- ի և Rotary Encoder- ի հետ ՝ 5 քայլ
Erամաչափ Arduino- ի և Rotary կոդավորիչի հետ. Կան մի քանի ծրագրեր, որոնք գրվել են իմ կողմից ՝ Արդուի համար
Happyնունդդ շնորհավոր Water Synthesizer- ի հետ MakeyMakey- ի և Scratch- ի հետ. 5 քայլ
Happyնունդդ շնորհավոր Water Synthesizer- ի հետ MakeyMakey- ի և Scratch- ի միջոցով. Ersաղիկների և երգելու փոխարեն կարող եք կառուցել այս տեղադրումը որպես մեծ անակնկալ ծննդյան տարեդարձերի համար
RGB- ի հետ կապը Arduino- ի հետ TinkerCad- ում. 4 քայլ
RGB- ի հետ կապը Arduino- ի հետ TinkerCad- ում. Այս ձեռնարկում դուք կսովորեք Arduino RGB- ի միջոցով ինտերֆեյսերի մասին: RGB լուսարձակը բաղկացած է երեք տարբեր լուսարձակից, անունից կարող եք կռահել, որ այդ LED- ները կարմիր, կանաչ և կապույտ են: Մենք կարող ենք ձեռք բերել շատ այլ գույներ ՝ այս գույները խառնելով: The
ԻՆՉՊԵՍ ՕԳՏԱԳՈՐԵԼ Թրթռումային սենսոր- VISUINO ձեռնարկը ARDUINO- ի հետ. 6 քայլ
ԻՆՉՊԵՍ ՕԳՏԱԳՈՐԵԼ Թրթռման սենսոր- VISUINO TUTORIAL ARDUINO- ի հետ. Այս ձեռնարկում մենք կօգտագործենք Vibration sensor, led, buzzer, resistor, Arduino Uno և Visuino ՝ թրթռման հայտնաբերման ժամանակ ազդանշան տալու համար: Դիտեք ցուցադրական տեսանյութ
ԻՆՉՊԵՍ ԿԱՐՈ ԵՆ ՀԵՏ ՀԵՏ ՀԵՏ չորության չորացման սենսոր `4 քայլ
ՈՐՊԵՍ ԿԱՐՈ ԵՆՔ ՀԵՏ ՀԵՏ ՀԱՎԱՔԱՈ ՍԵՆՍՈՐ. Ողջույն, այս ուսանելի ծրագրում ես ձեզ ցույց կտամ, թե ինչպես պատրաստել մի պարզ «ՀՈ DRՅԱՆ ՉՈՐՈ SԹՅԱՆ ՍԵՆՍՈՐ»: Սա իմ առաջին ուսանելի ներողությունն է իմ ծիծաղելի անգլերենի համար: Հողի չորությունը որոշվում է led ցուցիչով: led լույսը wi