Skip to content
2026.04.30.
  • 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 (58)
  • Hír (42)
  • Könyv (38)
    • Egyszerű elektronika tippek (18)
    • ESP8266/ESP32 (1)
    • 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

  • Apróhirdetés - csere-bere :: Re: Elajándékoznám mérnökhallgatónak ami a fotón látható!
  • Apróhirdetés - csere-bere :: Re: Elajándékoznám mérnökhallgatónak ami a fotón látható!
  • Apróhirdetés - csere-bere :: Elajándékoznám mérnökhallgatónak ami a fotón látható!

TavIR WebShop

→ Tovább a TavIR WebShopba
E22-900T22U USB LoRa modul
E22-900T22U USB LoRa modul

Az Ebyte E22-900T22U USB LoRa modul USB csatlakozású, LoRa szórt [...]

RGB LED-sor vezérlő (GLEDOPTO mini, 5V-24V, WLED, ESP32, MIC)
RGB LED-sor vezérlő (GLEDOPTO mini, 5V-24V, WLED, ESP32, MIC)

ESP32 WLED digitális LED szalagvezérlő mikrofonnal - címezhető WS2812B, WS2815, [...]

Mini servomotor körbeforgó (SG90; 360 fok)
Mini servomotor körbeforgó (SG90; 360 fok)

Az MG90S /körbeforgó egy 9 g-os, folyamatos forgású mikro szervómotor, [...]

6 in 1 kombinált soros illesztő
6 in 1 kombinált soros illesztő

USB-TTL, USB-RS232, USB-RS485, TTL-RS232, TTL-RS485 és RS232-RS485 konverzió egyetlen panelen [...]

JST-SH 1.0 csatlakozó 10 pin, 10cm kábel szerelt összekötő (1mm)
JST-SH 1.0 csatlakozó 10 pin, 10cm kábel szerelt összekötő (1mm)

Ha kompakt elektronikát építesz, előbb-utóbb eljön az a pillanat, amikor [...]

Csupalyuk shield Mega (Arduino Mega protoshield + 170 pontos mini breadboard)
Csupalyuk shield Mega (Arduino Mega protoshield + 170 pontos mini breadboard)

Ha Arduino Mega 2560-ra építesz, akkor ismerős a helyzet: már [...]

JOINT TECH - A1250 - 1.25 csatlakozó, 2 pin, 20cm, szerelt anya (1.25mm, micro, lengő)
JOINT TECH - A1250 - 1.25 csatlakozó, 2 pin, 20cm, szerelt anya (1.25mm, micro, lengő)

Amikor egy kompakt elektronikában már nem fér el kényelmesen a [...]

INMP441 I2S MEMS mikrofon modul (3,3 V / mindenirányú]
INMP441 I2S MEMS mikrofon modul (3,3 V / mindenirányú]

Ha digitális hangot szeretnél mikrokontrollerbe vagy egylapkás számítógépbe vinni külön [...]

Heltec - WiFi LoRa 32 V3 fehér ház/tok
Heltec - WiFi LoRa 32 V3 fehér ház/tok

Amikor a Heltec V3 panel már nem "csak egy fejlesztőpanel" [...]

DC-DC Step Down Buck Converter – 12V-ról 5V (8–20 V, max. 3 A, 15 W)
DC-DC Step Down Buck Converter – 12V-ról 5V (8–20 V, max. 3 A, 15 W)

DC-DC Step Down Buck Converter - 12V-ról 5V USB táp [...]

NeoPixel gyűrű RGB LED-sor (8x RGB LED, WS2812)
NeoPixel gyűrű RGB LED-sor (8x RGB LED, WS2812)

Képzeld el, hogy egyetlen apró gyűrűvel látványos fényjátékot csinálsz a [...]

NeoPixel gyűrű RGB LED-sor (24x RGB LED, WS2812)
NeoPixel gyűrű RGB LED-sor (24x RGB LED, WS2812)

Ez nem egy "LED modul". Ez az a látványos, kör [...]

  • Tovább a TavIR Fórumra...

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 hang hőmérő i2c i2clcd infravörös ISP JTAG kijelző LCD lm35 MOSFET motor pcb páratartalom Qualcomm Relé RTC telepítés tmp36 tranzisztor Történelem Uno wiring WOM Zener április 1 óra

Archívum

  • 2026. április (1)
  • 2026. március (5)
  • 2026. február (4)
  • 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...

Signetics WOM-25120: Egy alternatív adatarchitektúra újrafogalmazása a félvezetők korában (ChipTeszt!) WOM-25120 mérés
  • Hír

Signetics WOM-25120: Egy alternatív adatarchitektúra újrafogalmazása a félvezetők korában (ChipTeszt!)

2026.04.01.
ESP-IDF 6.0: nagy ugrás vagy fájdalmas nagytakarítás? 11123 ispidf 55 60 melyviz - Cseh Robert / TavIR - rotary,enkóder
  • Cikk
  • Mélyvíz

ESP-IDF 6.0: nagy ugrás vagy fájdalmas nagytakarítás?

2026.03.21.
ESP-IDF 6.0 laikus szemmel: mikor válts, mikor ne? Elektronikai munkaasztalon működő ESP32 mikrokontroller és kódoló laptop, amely az ESP-IDF firmware fejlesztés és beágyazott rendszer tanulás folyamatát szemlélteti.
  • Cikk

ESP-IDF 6.0 laikus szemmel: mikor válts, mikor ne?

2026.03.20.
Mit ünneplünk március 14-én? – A PI nap története és érdekességei Egy misztikus, matematikai és csillagászati témájú fantáziafestmény, amelyben a π (pi) számjegyei egy spirális galaxis formájában lebegnek az univerzumban, miközben egy tudós tanulmányozza azokat.
  • Hír

Mit ünneplünk március 14-én? – A PI nap története és érdekességei

2026.03.12.

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}