Skip to content
2025.11.07.
  • 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 (49)
  • Hír (35)
  • Könyv (34)
    • Egyszerű elektronika tippek (18)
    • ESP8266/ESP32 (1)
    • Mélyvíz (8)
    • Mit ne használjunk Arduino projektekben? (6)
  • Tippek (59)
    • Gyorstippek (20)
    • Tippek-trükkök (AVR) (21)
    • Tippek-trükkök (ESP8266/ESP32) (5)

TavIR WebShop

→ Tovább a TavIR WebShopba
4 csatornás kétirányú jelszintillesztő modul (digitális vonalakhoz, MOSFET)
4 csatornás kétirányú jelszintillesztő modul (digitális vonalakhoz, MOSFET)

Univerzális, 4 csatornás kétirányú jelszintillesztő modul, amely megbízható módon biztosítja a digitális [...]

Mérleg súlymérő cella (500g)
Mérleg súlymérő cella (500g)

A 500 g-os mérleg súlymérő cella egy kis méretű, mégis meglepően pontos terhelésérzékelő, [...]

USB-A - USB-A galvanikus leválasztó (1500V, isolátor, USB 2.0 izolátor, hi-speed/480Mbps)
USB-A - USB-A galvanikus leválasztó (1500V, isolátor, USB 2.0 izolátor, hi-speed/480Mbps)

Az USB-A - USB-A leválasztó a PC védelmét szolgálja, a statikus kisülés [...]

Arduino UNO R4 WiFi (ABX00087) - az eredeti, fejlett Wi‑Fi és Bluetooth funkcionalitású fejlesztőpanel
Arduino UNO R4 WiFi (ABX00087) - az eredeti, fejlett Wi‑Fi és Bluetooth funkcionalitású fejlesztőpanel

Az Arduino UNO R4 WiFi (ABX00087) egy 32‑bites fejlesztőpanel, amely beépített Wi‑Fi és Bluetooth modullal [...]

XKC‑Y25‑T12V érintésmentes folyadékszint‑érzékelő modul, kapacitív működéssel (5–12 V DC)
XKC‑Y25‑T12V érintésmentes folyadékszint‑érzékelő modul, kapacitív működéssel (5–12 V DC)

Az XKC‑Y25‑T12V egy érintkezés nélküli, kapacitív elven működő folyadékszint‑érzékelő, mely ideális zárt, [...]

LiPo akku (902040, 3.7V, 1000mAh)
LiPo akku (902040, 3.7V, 1000mAh)

Ez a 902040 típusú lítium-polimer (LiPo) akkumulátor kompakt megoldást kínál olyan hordozható [...]

12V digitális termosztát modul - beépíthető, tokos kivitelű hőmérséklet-szabályozó (W1209WK/W1209)
12V digitális termosztát modul - beépíthető, tokos kivitelű hőmérséklet-szabályozó (W1209WK/W1209)

A W1209WK digitális termosztát egy kompakt, intelligens hőmérséklet-szabályozó modul 12 V DC [...]

VEML6040 I2C RGBW színmérő modul (IIC)
VEML6040 I2C RGBW színmérő modul (IIC)

A VEML6040 I2C RGBW színmérő modul egy nagy pontosságú, négysávos (R–G–B–W) fényérzékelő, [...]

Elektromágneses lövedék gyorsító (DIY Coil Gun) készlet – Electromagnetic Gun DIY Kit
Elektromágneses lövedék gyorsító (DIY Coil Gun) készlet – Electromagnetic Gun DIY Kit

Ez az Elektromágneses lövedék-gyorsító DIY Készlet (más néven coil gun kit) olyan [...]

USB-A - USB-A galvanikus leválasztó (CH318T, 1500V, USB 2.0 izolátor, full speed (480Mbps), 400mA)
USB-A - USB-A galvanikus leválasztó (CH318T, 1500V, USB 2.0 izolátor, full speed (480Mbps), 400mA)

A CH318T alapú USB 2.0 nagysebességű galvanikus leválasztó modul célja, hogy biztonságos [...]

Akril tok ESP32‑S3 4,3 hüvelykes 800×480 kijelzős fejlesztőpanelhez – LVGL HMI kompatibilis
Akril tok ESP32‑S3 4,3 hüvelykes 800×480 kijelzős fejlesztőpanelhez – LVGL HMI kompatibilis

Ez az akrilház (plexi tok) kifejezetten az ESP32‑S3 alapú, 4,3 hüvelykes, 800×480 [...]

LM35D / LM35DZ lineáris, analóghőmérséklet‑érzékelő modul
LM35D / LM35DZ lineáris, analóghőmérséklet‑érzékelő modul

Ez az LM35D / LM35DZ típusra épülő hőmérséklet‑érzékelő modul egyszerű, megbízható és [...]

Fórum

  • Ami máshova nem besorolható... :: Re: Melyik humanoid robot gyártó lesz a piacvezető 2030-ban?
  • Ami máshova nem besorolható... :: Melyik humanoid robot gyártó lesz a piacvezető 2030-ban?
  • Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei) :: Re: DC servo motor szabalyzo
  • Tovább a TavIR Fórumra...

Címkék

alappanel Arduino Arduino nap Arduino nap 2023 art atmel AVR billentyűzet biztosíték darlington dióda eeprom egyszerű elektronika elem ellenállás ESP Espressif Systems flash Forrasztás ft232 fusebit hang hőmérő i2c i2clcd infravörös ISP JTAG kijelző LCD lm35 megvilágítás microchip MOSFET motor pcb páratartalom Relé RTC telepítés tmp36 tranzisztor Uno Zener óra

Archívum

  • 2025. október (3)
  • 2025. augusztus (3)
  • 2025. július (7)
  • 2025. június (4)
  • 2025. május (6)
  • 2025. április (5)
  • 2025. március (4)
  • 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 (3)
  • 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 (2)
  • 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...

A digitális idő paradoxonja: az óraátállítás árnyoldalai Ködös kertben analóg és digitális óra, köztük egy végtelen jelet formázó fényív, alatta automata locsoló rendszer – az őszi óraátállítás kettőzött időpontját szimbolizálva.
  • Cikk
  • Mélyvíz
  • Tippek

A digitális idő paradoxonja: az óraátállítás árnyoldalai

2025.10.23.
Qualcomm-Arduino: amikor a nyílt hardver találkozik az ipari óriással Közelkép egy Arduino UNO Q mikrokontroller panelről, amelyen jól látható a Qualcomm Dragonwing logó és a nyomtatott áramkörök részletei. AI-alapú beágyazott rendszerekhez és prototípusfejlesztéshez ideális.
  • Hír

Qualcomm-Arduino: amikor a nyílt hardver találkozik az ipari óriással

2025.10.08.
Arduino UNO Q – Az új korszak kezdete: Linux és valós idejű vezérlés egy lapon Egy futurisztikus megvilágítású Arduino UNO Q fejlesztőlap, középpontban egy Qualcomm QRB2210 chip, kék alaplapon mikrokontrolleres és IoT-alkalmazásokhoz optimalizált alkatrészekkel. AI és IoT fejlesztésekhez készült hardver.
  • Hír

Arduino UNO Q – Az új korszak kezdete: Linux és valós idejű vezérlés egy lapon

2025.10.07.
Teker Ed, te tekered? – Az enkóder Illusztrált forgó enkóder modul Arduino fejlesztőkörnyezetben, számítógéppel és elektronikai munkapaddal. Oktatási és DIY elektronikai célokra.
  • Cikk
  • Gyorstippek

Teker Ed, te tekered? – Az enkóder

2025.08.23.

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
Manage your privacy

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
Manage options
{title} {title} {title}