Skip to content
2026.04.18.
  • 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
Mini fém/golyóscsapágyas servomotor (MG90S/360 )
Mini fém/golyóscsapágyas servomotor (MG90S/360  )

Az MG90S 360 fokos szervomotor egy apró méretű, fém fogaskerekes [...]

GPS modul (NEO-M9N) kerámiaantennával
GPS modul (NEO-M9N) kerámiaantennával

Ha olyan GNSS modult keresel, amit mikrokontrolleres projektbe is könnyen [...]

Eredeti Arduino UNO Q (4GB, QRB2210, STM32U585)
Eredeti Arduino UNO Q (4GB, QRB2210, STM32U585)

Az Arduino UNO Q (ABX00173, 4 GB RAM / 32 [...]

M3 műanyag anya
M3 műanyag anya

Az M3 műanyag anya praktikus választás, ha könnyű szereléshez keresel [...]

RS232-Bluetooth adapter D-SuB9 apa (vezeték nélküli kapcsolat régi soros eszközökhöz)
RS232-Bluetooth adapter D-SuB9 apa (vezeték nélküli kapcsolat régi soros eszközökhöz)

Van egy megbízható, régebbi RS232-es eszközöd, de eleged van a [...]

AVR-Duino / Nano (328+CH340)
AVR-Duino / Nano (328+CH340)

Egyszerű, kicsi, és rögtön munkára fogható Ha egy kompakt, jól [...]

NodeMCU ESP32 / NodeMCU32 terminal-adapter (30/38pin)
NodeMCU ESP32 / NodeMCU32 terminal-adapter (30/38pin)

Az ESP32 38 pin terminal adapter egy praktikus bővítőpanel azokhoz [...]

uSD/microSD kártya (2GB) (uSD/SD adapter és tok)
uSD/microSD kártya (2GB) (uSD/SD adapter és tok)

Ez a 2 GB-os microSD kártya nem a "mindent rámentek" [...]

Tilt (ütés/rezgés/vibráció; SW-420) fekvő kapcsoló (5db/pack)
Tilt (ütés/rezgés/vibráció; SW-420) fekvő kapcsoló (5db/pack)

Egyszerű megoldás, ha azt szeretnéd, hogy a projekted "észrevegye" a [...]

Krokodil csipesz - BNC kábel (oszcilloszkóphoz)
Krokodil csipesz - BNC kábel (oszcilloszkóphoz)

Ne a csatlakozással szenvedj - mérj végre gyorsan és egyszerűen [...]

BME280 (nyomás, pára és hőfok) kombinált szenzor
BME280 (nyomás, pára és hőfok) kombinált szenzor

Ha olyan szenzort keresel, amellyel egyszerre mérhetsz hőmérsékletet, páratartalmat és [...]

RS232–TTL UART szintillesztő modul (DSUB-9, 4 csatorna, 3.3V/5V)
RS232–TTL UART szintillesztő modul (DSUB-9, 4 csatorna, 3.3V/5V)

Kösd össze a régi RS232 eszközeidet a mai mikrokontrolleres fejlesztéseiddel [...]

  • 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}