Forum: Mikrocontroller und Digitale Elektronik Rotary Encoder machen was sie wollen?!


von RH (Gast)


Lesenswert?

Hallo Zusammen,

zum Testen habe ich zwei Rotary Encoder Module (ich finde die exakt 
gleichen nicht mehr aber es handelt sich um etwa sowas: 
https://de.aliexpress.com/item/32527999742.html?spm=a2g0o.productlist.0.0.47c09c46RuArwA&s=p&algo_pvid=9c215404-09b7-4b89-bb82-08c039749a8d&algo_expid=9c215404-09b7-4b89-bb82-08c039749a8d-13&btsid=3c33345c-443a-44b6-b0e9-23ee6a25595b&ws_ab_test=searchweb0_0,searchweb201602_1,searchweb201603_53 
)
an einen NUCLEOF429ZI angeschlossen.

Nun machen die Knöpfe und Dreh-Encoder ab und zu was sie wollen. Beim 
drücken der Knöpfe wird teilweise mehrfaches Drücken erkannt (diese 
sollten ja eigentlich entprellt sein, zumindest sind auf den Dingern 
hinten ne menge Widerstände, etc. was ich mir nur als Hardware zum 
Entprellen erklären kann)

Beim Drehen der Encoder (auch bei sehr langsamen Drehen) kommt es 
teilweise zum überspringen einiger Schritte. Steht im CNT-Register 
zuerst 100, steht auf einmal 144 drin (in so einer Größenordnung in 
etwa).

Zum Aufbau:

Es handelt sich um quadrature Encoder, jeder Rastpunkt hat folglich 4 
Schritte zur Folge.

Bevor ich hier den ganzen Code etc. reinpacke, hat eventuell jemand 
schon einen Ansatz, bzw. sind das typische Probleme?

Sollte irgendetwas hilfreich sein, bin ich selbstverständlich gerne 
bereit dies zuzusenden!

MfG

von Oliver S. (oliverso)


Lesenswert?

RH schrieb:
> Nun machen die Knöpfe und Dreh-Encoder ab und zu was sie wollen. Beim
> drücken der Knöpfe wird teilweise mehrfaches Drücken erkannt (diese
> sollten ja eigentlich entprellt sein, zumindest sind auf den Dingern
> hinten ne menge Widerstände, etc. was ich mir nur als Hardware zum
> Entprellen erklären kann)

Eventuell ist das, was du dir erklären kannst, doch nicht das, was das 
Ding tatsächlich macht. Entprellschaltungen mit Widerständen sind - 
unüblich.

Zur Klärung des Sachverhaltes gibt es daher Datenblätter, in denen 
irgend jemand erklärt, wie er sich die Sache erklärt.

Und wenn dein Programm nachweislich so tut, als ob der Taster prellt, 
dann ist entweder dein Programm fehlerhaft, oder der Taster prellt.

Ich sach mal, beides.

Oliver

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

das könnten Pullup/Pulldown Widerstände sein. Wieso glaubst du, das 
diese zum entprellen sind? Wie ist denn dan die Beschaltung? Eine 
schnelle Skizze hilft mehr als Prosa-Schaltpläne.

Den "ganzen Code" brauchst du ja nicht einzustellen, aber halt die 
Einlese-Routine deines Encoders.

: Bearbeitet durch User
Beitrag #6132768 wurde von einem Moderator gelöscht.
von Einer K. (Gast)


Lesenswert?

RH schrieb:
> Bevor ich hier den ganzen Code etc. reinpacke, hat eventuell jemand
> schon einen Ansatz, bzw. sind das typische Probleme?

Meine Glaskugel sagt, das typische Problem ist:
Der µC hat ca 1/2 Dutzend Timer mit in der Hardware eingebauten Graycode 
Decodern.
Aber du legst es dir mit (Pin Change) Interrupts.

von RH (Gast)


Lesenswert?

Oliver S. schrieb:
> RH schrieb:
>> Nun machen die Knöpfe und Dreh-Encoder ab und zu was sie wollen. Beim
>> drücken der Knöpfe wird teilweise mehrfaches Drücken erkannt (diese
>> sollten ja eigentlich entprellt sein, zumindest sind auf den Dingern
>> hinten ne menge Widerstände, etc. was ich mir nur als Hardware zum
>> Entprellen erklären kann)
>
> Eventuell ist das, was du dir erklären kannst, doch nicht das, was das
> Ding tatsächlich macht. Entprellschaltungen mit Widerständen sind -
> unüblich.
>
> Zur Klärung des Sachverhaltes gibt es daher Datenblätter, in denen
> irgend jemand erklärt, wie er sich die Sache erklärt.
>
> Und wenn dein Programm nachweislich so tut, als ob der Taster prellt,
> dann ist entweder dein Programm fehlerhaft, oder der Taster prellt.
>
> Ich sach mal, beides.
>
> Oliver

Es sind natürlich nicht nur Widerstände, deshalb das "etc.". Auf der 
Rückseite sind ein paar Kondensatoren und Widerstände (bestimmt auch 
Pull-Ups).

NichtWichtig schrieb im Beitrag #6132768:
> typischer Fall von RTFM

Ein Datenblatt ist leider nicht vorhanden. Die Rotary-Encoder habe ich 
geschenkt bekommen.

Die Encoder sind über jeweils zwei Inputs und einem TIMER im Encoder 
Modus konfiguriert. Im Prinzip liegt es ja sehr nahe, dass Sie einfach 
nur schlecht entprellt sind und daher mehrere Drehzyklen erkannt werden.

von RH (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Meine Glaskugel sagt, das typische Problem ist:
> Der µC hat ca 1/2 Dutzend Timer mit in der Hardware eingebauten Graycode
> Decodern.
> Aber du legst es dir mit (Pin Change) Interrupts.

So kompliziert sind die Encoder nicht. Es handelt sich wie oben im Link 
zu sehen um ganz simple Drehknöpfe, die nur die jeweils richtigen 
Flanken zum erkennen der Drehrichtung und des Drehimpuls erzeugen. Also 
nichts mit absoluter Porsitionserkennung.

von Jens M. (schuchkleisser)


Lesenswert?

RH schrieb:
> quadrature Encoder, jeder Rastpunkt hat folglich 4
> Schritte zur Folge

Ähm, nö.
Ich bin beinah bereit zu wetten das jeder Rastpunkt entweder einen 
logischen Step oder gar nur einen halben macht.
Jedenfalls bedeutet "quadrature" nicht "4 Impulse pro Step".

Und ohne zumindest ein Foto beider Seiten der Platine behaupte ich mal 
das es sich nur um Pullups handelt, nicht um Entprellung.

von Michael B. (laberkopp)


Lesenswert?

RH schrieb:
> zwei Rotary Encoder Module

Wie kommt man auf die Idee, so etwas zu kaufen ?

Da steht KEINERLEI Produkbeschreibung dabei. Katze im Sack.

RH schrieb:
> diese sollten ja eigentlich entprellt sein,

Nein, sind sie nicht.

RH schrieb:
> Die Encoder sind über jeweils zwei Inputs und einem TIMER im Encoder
> Modus konfiguriert.

Der STM32F429 bietet ja Hardware-Quadrature-Decoder

> Im Prinzip liegt es ja sehr nahe, dass Sie einfach
> nur schlecht entprellt sind und daher mehrere Drehzyklen erkannt werden.

Es spielt bei richtiger Auswertung von Encodern keine Rolle, ob sie 
prellen.

Es liegt der Verdacht nahe, daß du sie, ebenso wie den pushbutton, nicht 
richtig auswertest.

von Einer K. (Gast)


Lesenswert?

RH schrieb:
> und einem TIMER im Encoder Modus

Ein dreifach Hoch auf die Salamitaktik!

Encoder ohne Schaltbild.
Ein Softwareproblem ohne Code.


Und so endet es dann hier auch für mich.

von Gereon (Gast)


Lesenswert?

Hallo

NichtWichtig schrieb im Beitrag #6132768:
> typischer Fall von RTFM

Hast du schon jemals irgend ein Modul was vorwiegend für Bastler und 
Tüftler gedacht ist in China in Massen zu geringsten Preisen produziert 
und auch in kleinsten Mengen Versand wird selbst bezogen und aus der 
Versandtasche geholt?

Man kann schon froh sein wenn überhaupt erwähnt wird um was es sich 
handelt.
Schon den genauen Typ muss man selbst herausfinden falls der überhaupt 
irgendwo erkennbar ist.
Ein Manual (Bedienungsanleitung, Datenblatt oder wenigsten Link dazu)?
lol

Man kann nur mit den groben Begriffen bzw. Bezeichnungen Googeln und 
hoffen das irgendjemand sich die Arbeit gemacht hat mehr herauszufinden.
Ganz professionell ;-) vergleicht man dazu erstmal Abbildung und Fotos 
von Modulen und hofft das Modul was man in der Hand hat den Modul 
entspricht zu den es Daten gibt. Zumindest ist dies erschreckend oft der 
Fall wenn auf den Modul nicht (nur) Silizium aufgelötet ist...

RFTM geht höchsten so das man sich umfassend informiert wie das Bauteil 
auf den Modul generell zu Funktionieren hat und entsprechend sein 
Programm (oder Hardware) ausgelegt oder in der Praxis einfach schon 
existierende Programme oder die ach so "bösen" Sketche nutzt und schaut 
ob die Module (Sensoren, Schalter, Geber...) so arbeiten wie sie es tun 
sollten.

Das ist aber schon eine ganz andere Hausnummer als einfach mal in die 
(nicht existente) Bedienungsanleitung aka Manual zu schauen.

So einfach ist es nicht, aber Hauptsache irgendwas in arroganter Art und 
Weise in den Raum geworfen...
Das ist Vorbildlich, das ist Niveau wie wir es in Forum unbedingt 
brauchen... (Oder doch nicht !?)

Gereon

von RH (Gast)


Angehängte Dateien:

Lesenswert?

Jens M. schrieb:
> Und ohne zumindest ein Foto beider Seiten der Platine behaupte ich mal
> das es sich nur um Pullups handelt, nicht um Entprellung.

Hier die Bilder der Vorder- und Rückseite.


Die Encoder habe ich über CubeMX folgen konfiguriert:
1
static void MX_TIM2_Init(void)
2
{
3
4
  /* USER CODE BEGIN TIM2_Init 0 */
5
6
  /* USER CODE END TIM2_Init 0 */
7
8
  TIM_Encoder_InitTypeDef sConfig = {0};
9
  TIM_MasterConfigTypeDef sMasterConfig = {0};
10
11
  /* USER CODE BEGIN TIM2_Init 1 */
12
13
  /* USER CODE END TIM2_Init 1 */
14
  htim2.Instance = TIM2;
15
  htim2.Init.Prescaler = 0;
16
  htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
17
  htim2.Init.Period = 2000;
18
  htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
19
  htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
20
  sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
21
  sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
22
  sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
23
  sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
24
  sConfig.IC1Filter = 10;
25
  sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
26
  sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
27
  sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
28
  sConfig.IC2Filter = 10;
29
  if (HAL_TIM_Encoder_Init(&htim2, &sConfig) != HAL_OK)
30
  {
31
    Error_Handler();
32
  }
33
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
34
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
35
  if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
36
  {
37
    Error_Handler();
38
  }
39
  /* USER CODE BEGIN TIM2_Init 2 */
40
41
  /* USER CODE END TIM2_Init 2 */
42
43
}

So wie sie dort konfiguriert sind beobachte ich momentan nur das 
CNT-Register und kann die besagten Probleme feststellen.

Arduino Fanboy D. schrieb:
> Ein dreifach Hoch auf die Salamitaktik!
>
> Encoder ohne Schaltbild.
> Ein Softwareproblem ohne Code.
>
> Und so endet es dann hier auch für mich.

Wie ich am Anfang bereits erwähnt habe bin ich bereit alles hinzuzufügen 
was benötigt wird. Da ich allerdings nicht weiß was wirklich von 
Bedeutung ist, wollte ich nicht direkt den Beitrag mit unnötigem Zeug 
schwämmen.

Michael B. schrieb:
> Wie kommt man auf die Idee, so etwas zu kaufen ?

Ich ganricht, habe sie geschenkt bekommen.

von Karl M. (Gast)


Lesenswert?

RH schrieb:
> Hier die Bilder der Vorder- und Rückseite.

Super und wo ist der Schaltplan von dem Ding?

Denn kannst Du doch einfach erstellen.

von Gereon (Gast)


Lesenswert?

Michael B. schrieb:
> Da steht KEINERLEI Produkbeschreibung dabei. Katze im Sack.

Das ist aber Standard, nenne den TO und mir preislich faire(!) 
Alternativen die letztendlich derartige Module (Platinenfarbe ist 
eventuell anders und oft noch ein großes Logo zusätzlich aufgedruckt) 
mit einer umfassenden und guten Produktbeschreibung anbieten.
Apotheken wie Adafruit, Conrad (Der dahinsiechende Patient wird ja 
endlich bald erlöst sein min. 15 Jahre zu spät...) und selbst Reichelt 
sind einfach keine Alternativen da diese unverschämte Preisaufschläge 
von mehreren 100% nehmen.

Es bleibt für die meisten Bastler nur bei der Katze im Sack, da genau 
die gleichen Katzen (eventuell nur etwas schön gemacht) ohne Sack nicht 
nur etwas teurerer sind sondern das vielfache kosten.
Man braucht (will) ja nur selten ein Modul sondern viel verschiedene, 
gerne auch mal auf Vorrat und da ist es schon ein Unterschied ob man für 
ein bestimmtes Modul 1,29Euro inklusive Versand oder 4,99Euro ohne 
Versand ausgibt - diese Unterschiede sind ganz Real und nicht erfunden 
(Bitte jetzt nicht auf die genauen Werte schauen es ist nur das Prinzip 
dahinter gemeint).

Gereon

von Jens M. (schuchkleisser)


Lesenswert?

Gereon schrieb:
> Hast du schon jemals irgend ein Modul was vorwiegend für Bastler und
> Tüftler gedacht ist in China in Massen zu geringsten Preisen produziert
> und auch in kleinsten Mengen Versand wird selbst bezogen und aus der
> Versandtasche geholt?

Das ist genau falschrum gedacht:
Weil "das Volk" solchen Schrott kauft, wird er gebaut.
Wenn man bei ebay LEDs kauft, steht mittlerweile in der Beschreibung 
"Datenblatt liegt vor", aber es ist nicht verlinkt und man bekommt es 
auch nicht auf Nachfrage: "Alles wichtige steht im Angebot".
Aber die meisten Leute haben keinen Plan von dem Zeug, kaufen es und 
irgendwie tut das auch, also verkauft man es.

Gleiches mit den Modulen in der sog. "Arduno-Welt". Es gibt gut 
Anbieter, die Pläne veröffentlichen, Datenblätter schreiben und support 
leisten, und es gibt die "5 Boards mit Versand für 1,19€" wo man 
hierzulande nicht mal einen der verbauten Chips bekommt, selbst ohne 
Versand.
Aber der Kram wird gekauft, in Massen, und so sind selbst 10ct Gewinn 
pro Stück profitabel.

also nicht "Die Händler sind alle Scheiße die liefern nix" sondern "Die 
Händler reagieren auf das was der MArkt will. Die Händler die Dokumente 
liefern verkaufen nix, also lassen sie's, und die die billigsten Ramsch 
mit Gewinn produzieren können tun's".
Schließlich will jeder nur Geld.

von RH (Gast)


Lesenswert?

Gereon schrieb:
> So einfach ist es nicht, aber Hauptsache irgendwas in arroganter Art und
> Weise in den Raum geworfen...
> Das ist Vorbildlich, das ist Niveau wie wir es in Forum unbedingt
> brauchen... (Oder doch nicht !?)

Danke! Ich habe allgemein schon des öfteren miterlebt wie hier im Forum 
statt konstruktiver Kritik, bzw. Hilfe, nur negative Kommentare 
abgelassen werden und sonst nichts. In einem Forum kann man ja nicht 
erwarten, dass jeder Experte ist. Dazu kommt, dass jeder mal seine 
ersten Schritte getan hat. Ich bitte ja nur um Hilfe für ein Problem bei 
dem ich nicht weiter komme. Es ist keiner gezwungen hier seinen Senf 
hinzuzugeben.

von Jens M. (schuchkleisser)


Lesenswert?

Gereon schrieb:
> sind einfach keine Alternativen da diese unverschämte Preisaufschläge
> von mehreren 100% nehmen.

Merket auf. :D

Was ist mit WEEE, Steuern, Zoll, Lagerhaltung in DE, Support, und dem 
fehlenden Versandkostenbetrug durch die Chinapost?
Es gibt Produkte die man teuer verkauft weil man es kann, aber dieser 
Kleinmist gehört nicht dazu.

Gereon schrieb:
> da ist es schon ein Unterschied ob man für
> ein bestimmtes Modul 1,29Euro inklusive Versand oder 4,99Euro ohne
> Versand ausgibt

Dann bezahle mit deiner eigenen Zeit, kaufe billig und erstelle deine 
notwendigen Unterlagen selber. Inklusive evtl. notwendiger Modifikation 
an den Modulen (Stichwort DS3231 & Ladestrom in Knopfzelle z.B.).
Mach ich auch und fahre gut damit.
Aber bei bestimmten Sachen muss es auch mal Pololu oder Adafruit sein, 
einfach weil die Schaltpläne und original-Chips liefern.

von Klaus B. (forrestjump)


Lesenswert?

meine Erfahrungen mit Drehencodern sind diese:

Autoradio Grundig WKC Lautstärkeregelung macht was sie will.
Da es mal funktioniert hat, tippe ich auf Verschleiß in demselben.
Ausgelötet, Encoder aufgemacht, gereinigt, eingebaut, Funktion wieder 
vorhanden.  Aber nur für ein paar Monate, da fing das Spiel wieder von 
vorn an. Dito jetzt Lüftersteuerung beim PKW. Bis man die gewünschte 
Drehzahl des Propellers eingestellt hat, brauchts einige Umdrehungen. 
Also Mist, diese Dinger. Das gleiche bei einem MP3 Player.
Bei drehintensiven Anwendungen würd ich als Frustschutz lieber zu einem 
optisch abtastenden Encoder greifen, ähnlich dem Mausrad.   Gibt es die 
überhaupt?

von Gereon (Gast)


Lesenswert?

Hallo

Jens M. schrieb:
> Dann bezahle mit deiner eigenen Zeit, kaufe billig...


das mache ich auch, ich kann Datenblätter nutzen, kenne die meisten 
Fallstricke und mir ist auch bekannt (bzw. weis wie man gezielt nach der 
Information dazu sucht) was an Außenbeschaltung notwendig ist.

Aber ich bin schon "sehr" lange im Hobby, mein Beruf ist im E-Technik 
Bereich,  habe schon sehr viel in der "Vor Modulzeit" (als China 
tatsächlich noch eine VR war ;-) und Japan in viel geringeren Maße das 
China von heute) gebastelt (und geflucht, aber auch dadurch gelernt) und 
könnte mir auch die teuren Anbieter leisten, was ich aber aus Prinzip 
nicht mache, warum die so teuer sind (angeblich sein müssen) ist mir 
ehrlich gesagt S...egal - überraschender weise muss ich auch für mein 
Geld arbeiten und handele genauso wie es "Die Großen" vormachen und 
nutze was der Markt und die augenblicklichen Möglichkeiten hergeben aus, 
eigentlich sogar nicht mal maximal sondern nutze den ->etwas<- teuren 
(das ist auch fair - er leistet dafür etwas und hat einen 
Arbeitsaufwand) "deutschen Chinamann".

Und mit all den (erarbeiteten) Vorteilen die du und ich haben und auch 
vermutlich bei dir ähnlichen oder sogar noch besseren finanziellen 
Voraussetzungen greifen wir zur die für uns preiswertesten und 
einfachsten Variante.

Und da soll ein Neuling, oft noch Schüler, der junge Erwachsene, 
Berufsanfänger, frischer Familienvater (die frischen Familienmütter sind 
im Hobby trotz allen Genderträumereien leider nur im Promillebereich 
vertreten), derjenige der die erste "eigene" Wohnung bezieht, mäßig 
bezahlte einfache Arbeiter oder Angestellte mit Lohnsteuerklasse 1 usw. 
halt ein großer Teil die sich für diesen "Quatsch" ;-) interessiert in 
die "Apotheke" gehen und aus lauter Fairness und Mitleid die horrenden 
Preise bezahlen ?!
Doof müsste er (sie) sein, denn genau wie wir "alten Säcke" wissen auch 
diese Menschen ganz genau oder sogar noch besser wie es die "Großen" 
(Firmen, Konzerne, Unternehmen...) machen: Die gegeben Möglichkeiten 
ausnutzen und sich nicht "vera..en" lassen selbst wenn es sich streng 
genommen nicht um ein "vera...schen" handeln sollte sondern an den 
Umständen liegt.

Gereon

von NichtWichtig (Gast)


Lesenswert?

2 Leitungen (plus Masse) lassen sich doch locker mit dem Scope messen.

von MaWin (Gast)


Lesenswert?

Klaus B. schrieb:
> Autoradio Grundig WKC Lautstärkeregelung macht was sie will.
> Da es mal funktioniert hat, tippe ich auf Verschleiß in demselben.
> Ausgelötet, Encoder aufgemacht, gereinigt, eingebaut, Funktion wieder
> vorhanden.  Aber nur für ein paar Monate, da fing das Spiel wieder von
> vorn an. Dito jetzt Lüftersteuerung beim PKW. Bis man die gewünschte
> Drehzahl des Propellers eingestellt hat, brauchts einige Umdrehungen.
> Also Mist, diese Dinger. Das gleiche bei einem MP3 Player.

vaillant ecovit exclusiv vkk 226/4 RaumtempModul: der verbaute Bourns 
PEC11S 9215F N0015 (den es natürlich nicht mehr zu kaufen gibt) springt 
munter rauf und runter. "Devices are tested using standard noise 
reduction" und die steht im Datenblatt, hätte man beachten sollen

https://www.bourns.com/docs/Product-Datasheets/PEC11R.pdf

> Bei drehintensiven Anwendungen würd ich als Frustschutz lieber zu einem
> optisch abtastenden Encoder greifen, ähnlich dem Mausrad.   Gibt es die
> überhaupt?

Ja.

NichtWichtig schrieb:
> 2 Leitungen (plus Masse) lassen sich doch locker mit dem Scope
> messen.

Richtig. Wenn es da auf beiden Kanälen bei Drehbewegung rauscht, obwohl 
noch kein Quadraturübergang stattfand, lässt er sich nicht decodieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.