INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Drehgeber - Encoder - Wertebereich eingrenzen
12.03.2016, 14:30
Beitrag #1
Drehgeber - Encoder - Wertebereich eingrenzen
Hallo,
zunächst hat mir Arne bei einem winzigen Problem mit der Syntax beim Befehl constrain erfolgreich helfen können. Nun ergibt sich aber folgendes Problem:
Im sketch unten wird der Wertebereich mit constrain auf 30 bis 50 beschränkt. Offensichtlich wird im Hintergrund aber der "echte Wert" des Drehgebers weiter gezählt, denn wenn ich um 10 Schritte über die 50 hinausdrehe, muss ich auch wieder 11 Schritte zurück, um zur 49 zu gelangen. Ich will aber nicht 11 Schritte zurückdrehen müssen sondern nur einen. Wie kann dem "im Hintergrund mitlaufenden Zähler" die Min- und Max-werte beigebracht werden? Gibt es genauere Infos zur Lib Encoder.h in denen eventuell entsprechende Hinweise stehen? Eigenes googeln war leider nicht erfolgreich. Habt Dank
PHP-Code:
#include <Encoder.h>
    
Encoder Zaehler (56);
    
void setup()  
      {
        
Serial.begin(9600);
       }
    
void loop()
    {
      
int newZaehler=Zaehler.read();
      
newZaehler constrain(newZaehler,30,50);  
      
Serial.println(newZaehler);
    } 
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.03.2016, 11:38
Beitrag #2
RE: Drehgeber - Encoder - Wertebereich eingrenzen
Juhuu...Gelöst!
mit folgendem geänderten Sketch:
PHP-Code:
#include <Encoder.h>
    
Encoder Zaehler (56);
    
void setup()  
      {
        
Serial.begin(9600);
       }
    
void loop()
    {
    
      
int newZaehler=Zaehler.read();
      if(
newZaehler<30){Zaehler.write(30);}
      if(
newZaehler>50){Zaehler.write(50);}
      
newZaehler constrain(newZaehler,30,50);  
      
      
Serial.println(newZaehler);
    } 
Der Knackpunkt war der Befehl mit xxxx.write() --> steht in der Lib-BeschreibungBlush
Vielleicht kann jemand den Hinweis brauchen

------------------------------------------------------------------------------------------
Ein Teufelskreis: Kaum macht man es richtig,funktionierts!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.03.2016, 11:53
Beitrag #3
RE: Drehgeber - Encoder - Wertebereich eingrenzen
(14.03.2016 11:38)Nimes schrieb:  Juhuu...Gelöst!

warum hast Du im anderen thread nicht weitergenmacht sondern einen neuen eröffnet?

Code:
int newZaehler=Zaehler.read();
      newZaehler = constrain(newZaehler,30,50);      
      Zaehler.write(newZaehler) ;
      Serial.println(newZaehler);

sollte das auch ohne zusätzliche Abfragen erledigen.

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.03.2016, 12:38 (Dieser Beitrag wurde zuletzt bearbeitet: 14.03.2016 13:39 von Nimes.)
Beitrag #4
RE: Drehgeber - Encoder - Wertebereich eingrenzen
Code:
warum hast Du im anderen thread nicht weitergenmacht sondern einen neuen eröffnet?
Weil das aus meiner Sicht zwei Themen sind:
1.) Constrain --> Begrenzung der Anzeigewerte
2.) xxx.write() --> Überschreiben des Zählerwertes
Ich dachte auch an diejenigen, die in diesem Forum nach einer Lösung suchen. Unter dem Stichwort "Wertebereich eingrenzen" werden die Suchenden eher den Threat finden als unter "constrain - wie gehts richtig".

Aber dennoch vielen Dank für Deine Mühe und Hilfe!
Gute Zeit

------------------------------------------------------------------------------------------
Ein Teufelskreis: Kaum macht man es richtig,funktionierts!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  encoder clemens5555 17 385 20.10.2016 15:48
Letzter Beitrag: hotsystems
  LCD Menue mit u8glib und Encoder stefanch 1 354 04.06.2016 21:02
Letzter Beitrag: hotsystems
  Encoder auslesen Phil333 1 655 23.03.2016 21:40
Letzter Beitrag: hotsystems
  Rotary Encoder - Anschließen King2k7 10 1.137 18.01.2016 12:38
Letzter Beitrag: hotsystems
  Encoder s_fr 3 493 10.01.2016 19:41
Letzter Beitrag: hotsystems
  Rotary Encoder zählt nicht Rückwerts elmo 8 2.164 20.05.2015 20:05
Letzter Beitrag: elmo
  Rotary Encoder: schneller drehen > Wert mehr verändern Foto-Ralf 7 1.410 28.02.2015 15:50
Letzter Beitrag: HaWe
  Encoder enc 01 a BenWolf 3 1.046 23.09.2014 18:16
Letzter Beitrag: Thorsten Pferdekämper
  Encoder: Zahl mit einer Nachkommastelle erzeugen Cray-1 68 10.465 27.08.2014 16:33
Letzter Beitrag: Cray-1
  8 Channel PPM Encoder dante 2 1.812 17.01.2014 08:46
Letzter Beitrag: dante

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste