Hallo Zusammen
vielen Dank für die tolle Hilfe.
Ich bin auch schon weitergekomen.
So kann ich den Wert den ich mittels Incrementalgeber verstellen will schon auf dem LCD ausgeben und dieser lässt sich auch höher und tiefer verstellen, ausserdem geht er auch ins negative.
Doch zwei Sachen fehlen Mir noch und zwar sollte :
- Dieser Wert mit zwei Stellen hinter dem Komma dargestellt werden können
- Die Schrittweite mit der der Wert erhöht wird ,mittels eines Tasters um den Faktor 100 erhöht werden können
alle meine Versuche das mittels anderen Variablen hinzubekommen sind gescheitert. Eventuell kann mir hier jemand helfen.
Vielen Dank im Vorraus Rudi
achso hier noch er Sketch wie ieser von mir umgestrickt woren ist.
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
float Impuleingang = 2;
const int Drehrichtung = 3;
int Drehrichtunstatus = 0;
volatile uint16_t counter;
char pbuf[20];
void setup() {
pinMode(Impuleingang, INPUT);
digitalWrite(Impuleingang, HIGH);
pinMode(Drehrichtung, INPUT);
digitalWrite(Drehrichtung, HIGH);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Incrementalgeber");
lcd.setCursor(0, 1);
lcd.print("Wert:");
attachInterrupt(0, count, FALLING );
}
void loop()
{
Drehrichtunstatus = digitalRead(Drehrichtung);
int lastcount=0xffff;
uint8_t sreg;
if (counter != lastcount)
{
sreg = SREG;
cli();
lastcount = counter;
SREG = sreg;
sprintf(pbuf, "%5d", lastcount);
lcd.setCursor(11, 1);
lcd.print(pbuf);
}
delay(100);
}
void count() {
if (Drehrichtunstatus == 1)
counter++;
if (Drehrichtunstatus == 0)
counter--;
}