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
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
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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
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.
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.
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.
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?
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
2 Leitungen (plus Masse) lassen sich doch locker mit dem Scope messen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.