Skip to content
2026.06.24.
  • F
  • X
  • LinkedIn
  • YouTube
  • Instagram
  • GitHub
TavIR

TavIR

Mikrokontroller világ

  • TavIR Tudástár
  • TavIR WebShop
  • TavIR Fórum
  • Hírek
  • Könyvek
    • Egyszerű elektronika – Kezdőlap
    • ESP8266/ESP32
    • Tippek
      • Tippek-trükkök (AVR)
      • Tippek-trükkök (ESP8266/ESP32)
  • +Gyorstippek
  • +Mélyvíz
  • +Témakereső
  • Kapcsolat
  • Főoldal
  • Könyv
  • Mit ne használjunk Arduino projektekben?
  • Külső prellmentesítés rotary-enkóderhez
  • Mit ne használjunk Arduino projektekben?

Külső prellmentesítés rotary-enkóderhez

Robert 2022.05.16.
160 rotary - Cseh Robert / TavIR - rotary,enkóder
Számos esetben lehet látni, hogy kapacitással és/vagy logikai IC-vel kezelik a prellt a rotary enkóderek esetén. A rotary enkóderek két pint-t használnak, az órajel és az elmozdulás-kivezetést. A kondenzátor és a felhúzó-ellenállás egy késleltető tagot alkot, így történik meg a prell-mentesítés.

Hardware megoldás

Ennek a megoldásnak a hátránya, hogyha gyors enkóder-jel érkezik, akkor az impulzusok kimaradhatnak, vagy a lassú felfutó jel miatt akár hibás eredményt is kaphatunk. A kondenzátor és a felhúzó ellenállás értékeit nem lehet ilyen módon ökölszabályok alapján beültetni, hogy a felhúzó 4k7…10k, a kondenzátor meg 100nF legyen. Sőt, akár a belső felhúzó is lehet, hogy elég….
 
160 rotary rc tag - Cseh Robert / TavIR - rotary,enkóder
Rotary-enkóder külső RC-taggal….
160 encoder arduino circuit schmitt trigger - Cseh Robert / TavIR - rotary,enkóder
Rotary-enkóder Schmidt-triggerrel…
 

Szoftveres megoldás

A szofveres prellmentesítés sokkal egyszerűbb és még forrasztani sem kell. Külön előny, hogy többféle enkóderhez könnyen illeszthető – függően a prell hosszától.
Az enkóderek kezelése során elegendő 4 állapot megkülönböztetése. Ebből a forgásirány könnyen meghatározható. Ha a prellmentsítés szoftverből kerül megvalósításra az egyes különféle prellhosszúságú enkóderek is könnyen illeszthetővé válnak, nem kell az elektronika hardware részében semmit sem módosítani. Az enkóder két kimenettel rendelkezik, mely az Arduino két lábát foglalja el. A bekötése egyszerű (mint az előző ábra – csak a prellmentesítő kondenzátorok nélkül).
Fontos! A külső felhúzóellenállások szkséges értéke 1…10kohm. Ha csak a belső felhúzóellenállásokat használjuk, a rendszer zavarérzékeny lesz!
Az enkóder működési diagrammja:
160 rotary encoder waveform - Cseh Robert / TavIR - rotary,enkóder
A legegyszerűbb enkóder kezelő Arduino kód:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// Class to interface Arduino to rotary encoders
// D Crocker, Escher Technologies Limited, October 2011.
// This code may be freely used for any purpose
// but is supplied without warranty.
//
// Declare a rotary encoder like this:
//
// RotaryEncoder encoder(leftPin, rightPin, pulsesPerClick);
//
// where pulsesPerClick is normally 4.
// Every 1 millisecond or so, call:
//
// encoder.poll();
//
// To find how much the encoder has moved since you last asked, do this:
//
// int movement = encoder.getChange();
class RotaryEncoder
{
  unsigned int state;
  int pin0, pin1;
  int ppc;
  int change;
unsigned int readState()
{
  return (digitalRead(pin0) == HIGH ? 1u : 0u)
       | (digitalRead(pin1) == HIGH ? 2u : 0u);
}
public:
  RotaryEncoder(int p0, int p1, int pulsesPerClick) :
  pin0(p0), pin1(p1), ppc(pulsesPerClick), change(0), state(0) {}
  void init();
  void poll();
  int getChange();
};
void RotaryEncoder::init()
{
  pinMode(pin0, INPUT);
  pinMode(pin1, INPUT);
  digitalWrite(pin0, 1);  // enable internal pullup
  digitalWrite(pin1, 1);  // enable internal pullup
  change = 0;
  state = readState();
}
void RotaryEncoder::poll()
{
  // State transition table
  static int tbl[16] =
  { 0, +1, -1, 0,
    // position 3 = 00 to 11, can't really do anythin, so 0
    -1, 0, -2, +1,
    // position 2 = 01 to 10, assume a bounce, should be 01 -> 00 -> 10
    +1, +2, 0, -1,
    // position 1 = 10 to 01, assume a bounce, should be 10 -> 00 -> 01
    0, -1, +1, 0
    // position 0 = 11 to 10, can't really do anything
  };
  unsigned int t = readState();
  int movement = tbl[(state << 2) | t];
  if (movement != 0)
  {
    change += movement;
    state = t;
  }
}
int RotaryEncoder::getChange()
{
  int r;
  noInterrupts();
  if (change >= ppc - 1)
  {
    r = (change + 1)/ppc;
  }
  else if (change <= 1 - ppc)
  {
    r = -((1 - change)/ppc);
  }
  else
  {
    r = 0;
  }
  change -= (r * ppc);
  interrupts();
  return r;
}

Mit ne használjunk Arduino projektekben? – Tartalomjegyzék

  • Mit ne használjunk Arduino projektekben?
  • String osztály
  • SoftwareSerial
  • Felhúzóellenállások
  • Darlington tranzisztor
  • Külső prellmentesítés rotary-enkóderhez
Tags: rotary enkóder

Post navigation

Előző Az élet nevében! – Relévizsgálat
Következő Dezinformáció – a megtévesztés művészete

Kapcsolódó anyagok

Darlington tranzisztor Tranzisztor belső felépítése
  • Mit ne használjunk Arduino projektekben?

Darlington tranzisztor

2022.05.15.
Felhúzóellenállások 158 pullup - Cseh Robert / TavIR - rotary,enkóder
  • Mit ne használjunk Arduino projektekben?

Felhúzóellenállások

2022.05.03.
SoftwareSerial 157 softwareserial - Cseh Robert / TavIR - rotary,enkóder
  • Mit ne használjunk Arduino projektekben?

SoftwareSerial

2022.05.02.

Hírlevél

Hogy az újdonságokról első kézből értesülj:
→ Feliratkozás a Hírlevélre

Ingyenes tanfolyam

60 nap alatt Arduino - az ingyenes tanfolyam
→ Kattints ide és iratkozz fel!
60 nap alatt Arduino

Szeretnél egy lépéssel a többiek előtt járni?

Ne hagyd ki a legújabb tanfolyamokat, amik még csak most bontogatják szárnyaikat.

Legyél te az első! Tanfolyamok

Alkatrész-tár

→ TavIR WebShop
→ Tanulókészletek

Témakörök

  • Cikk (60)
  • Hír (45)
  • Könyv (39)
    • Egyszerű elektronika tippek (18)
    • ESP8266/ESP32 (2)
    • Mélyvíz (12)
    • Mit ne használjunk Arduino projektekben? (6)
  • OmegaFlux (2)
  • Tippek (60)
    • Gyorstippek (20)
    • Tippek-trükkök (AVR) (21)
    • Tippek-trükkök (ESP8266/ESP32) (5)

Fórum

  • Bascom/Arduino/Wiring frissítések :: Arduino IDE 2.3.9 és 2.3.10 tapasztalatok
  • Tovább a TavIR Fórumra...

TavIR WebShop

→ Tovább a TavIR WebShopba
USB A HUB galvanikus leválasztással (CH318T, 1500V, USB 2.0 izolátor, full speed (480Mbps), 400mA, 3x USB-A)
USB A HUB galvanikus leválasztással (CH318T, 1500V, USB 2.0 izolátor, full speed (480Mbps), 400mA, 3x USB-A)

A CH318T USB-A galvanikus leválasztó HUB számítógép és USB perifériák [...]

NeoPixel mini RGB LED (1x RGB LED, WS2812B)
NeoPixel mini RGB LED (1x RGB LED, WS2812B)

A NeoPixel mini RGB LED (1x RGB LED, WS2812B) egy [...]

LED - 3W LED modul (fehér)
LED - 3W LED modul (fehér)

A LED - 3W LED modul (fehér) nagy fényerejű, 3 [...]

0-50A AC/DC precíziós árammérő szenzor (ACS758-50B)
0-50A AC/DC precíziós árammérő szenzor (ACS758-50B)

A 0-50A AC/DC precíziós árammérő szenzor (ACS758 chipkészlet) Hall-effektusos, analóg [...]

Csupalyuk, 2 oldalas, lyukgalván NyÁK lap (5cm*7cm)
Csupalyuk, 2 oldalas, lyukgalván NyÁK lap (5cm*7cm)

A Csupalyuk, 2 oldalas, lyukgalván NyÁK lap (5cm*7cm) forrasztható prototípus [...]

Hangfelismerő modul (SU-03T)
Hangfelismerő modul (SU-03T)

A SU-03T offline hangfelismerő modul előre beállított hangparancsokat ismer fel [...]

RA-01SH (LoRa; 868Mhz, uFl) modul
RA-01SH (LoRa; 868Mhz, uFl) modul

A Ra-01SH uFL csatlakozóval SMT modul egy SX1262 alapú LoRa [...]

XL1262-SMT (SX1262) 868 MHz LoRa modul
XL1262-SMT (SX1262) 868 MHz LoRa modul

Az XL1262-SMT (SX1262/868 MHz) LoRa modul kis méretű, felületszerelt rádiós [...]

Címezhető LED-szalag (2m, fehér, 100LED/m, WS2812B, IP30)
Címezhető LED-szalag (2m, fehér, 100LED/m, WS2812B, IP30)

A Címezhető LED-szalag (2m, fehér, 100LED/m, WS2812B, IP30) 5 V-os, [...]

6x AA elem/akkutartó (Arduino tápdugóval)
6x AA elem/akkutartó (Arduino tápdugóval)

A 6x AA elem/akkutartó (Arduino tápdugóval) 6 darab AA méretű [...]

Potméter modul (10k)
Potméter modul (10k)

A Potméter modul (10k) egy forgatógombos, 10 kΩ-os analóg kezelőszerv [...]

AVR-Duino / Pro Mini (328)
AVR-Duino / Pro Mini (328)

A AVR-Duino / Pro Mini (328) kis méretű, Arduino-kompatibilis ATmega328 [...]

Címkék

alappanel Arduino Arduino nap Arduino nap 2023 art AVR biztosíték darlington dióda eeprom egyszerű elektronika elem ellenállás ESP Espressif Systems flash Forrasztás ft232 fusebit hőmérő i2c i2clcd infravörös ISP JTAG kijelző LCD lm35 MOSFET motor nyák pcb páratartalom Relé RTC telepítés tmp36 tranzisztor Történelem Uno wiring WOM Zener április 1 óra

Archívum

  • 2026. június (2)
  • 2026. május (3)
  • 2026. április (2)
  • 2026. március (5)
  • 2026. február (3)
  • 2026. január (3)
  • 2025. december (2)
  • 2025. november (2)
  • 2025. október (3)
  • 2025. augusztus (3)
  • 2025. július (7)
  • 2025. június (4)
  • 2025. május (6)
  • 2025. április (3)
  • 2025. március (3)
  • 2025. február (1)
  • 2025. január (6)
  • 2024. december (5)
  • 2024. november (5)
  • 2024. október (6)
  • 2024. szeptember (5)
  • 2024. augusztus (4)
  • 2024. július (3)
  • 2024. június (1)
  • 2024. május (3)
  • 2024. március (1)
  • 2024. február (2)
  • 2024. január (1)
  • 2023. december (5)
  • 2023. szeptember (2)
  • 2023. augusztus (6)
  • 2023. július (2)
  • 2023. június (1)
  • 2023. május (1)
  • 2023. április (10)
  • 2023. február (1)
  • 2022. szeptember (2)
  • 2022. július (1)
  • 2022. május (6)
  • 2022. április (1)
  • 2022. március (2)
  • 2022. január (3)
  • 2021. december (1)
  • 2021. november (4)
  • 2021. október (2)
  • 2021. szeptember (1)
  • 2021. július (1)
  • 2021. május (2)
  • 2021. április (1)
  • 2021. március (2)
  • 2020. szeptember (1)

Eddig nem olvasott...

Arduino IDE 2.3.10 – végre javították a 2.3.9 veszélyes cache-hibáját Arduino cache hiba megoldva. Megoldva?
  • Hír

Arduino IDE 2.3.10 – végre javították a 2.3.9 veszélyes cache-hibáját

2026.06.12.
Arduino IDE 2.3.9 – ha a régi program fut tovább… Arduino 2.3.9 - cache error
  • Hír

Arduino IDE 2.3.9 – ha a régi program fut tovább…

2026.06.02.
Arduino IDE 2.3.9 – gyorsabb fordítás, de figyelj a cache-re Arduino IDE 2.3.9 megjelent - 2026. 05. 26.
  • Hír

Arduino IDE 2.3.9 – gyorsabb fordítás, de figyelj a cache-re

2026.05.26.
ESP32 család – Hát én immár kit válasszak? EPS kiválasztási stratégia
  • Cikk
  • ESP8266/ESP32

ESP32 család – Hát én immár kit válasszak?

2026.05.15.

Információk

Cégadatok-impresszum | Használati feltételek
Adatvédelmi irányelvek | Kapcsolat

Elérhetőség

Ügyfélszolgálat: +36 (20) 99-23-781
E-mail: avr (kukac)tavir (pont) hu
Iroda/telephely: 1181 Budapest, Szélmalom utca 13.
Copyright © TavIR Minden jog fenntartva | DarkNews by AF themes.
TavIR
Adatvédelem kezelése

To provide the best experiences, we and our partners use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us and our partners to process personal data such as browsing behavior or unique IDs on this site and show (non-) personalized ads. Not consenting or withdrawing consent, may adversely affect certain features and functions.

Click below to consent to the above or make granular choices. Your choices will be applied to this site only. You can change your settings at any time, including withdrawing your consent, by using the toggles on the Cookie Policy, or by clicking on the manage consent button at the bottom of the screen.

Funkcionális Always active
A technikai tárolás vagy hozzáférés szigorúan szükséges az előfizető vagy felhasználó által kifejezetten kért konkrét szolgáltatás használatának lehetővé tételének jogos céljához, vagy kizárólag a közlés elektronikus hírközlő hálózaton keresztüli továbbításának céljához.
Beállítások
A technikai tárolás vagy hozzáférés a jogos célból szükséges, hogy olyan beállításokat tároljunk, amelyeket az előfizető vagy a felhasználó nem kért.
Statisztika
Kizárólag statisztikai célokra használt technikai tároló vagy hozzáférés. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
A technikai tárolás vagy hozzáférés felhasználói profilok létrehozásához szükséges hirdetések küldéséhez, illetve a felhasználó nyomon követéséhez egy vagy több weboldalon hasonló marketingcélokból.
Statistics

Marketing

Features
Always active

Always active
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
Beállításkezelés
{title} {title} {title}