// Change these two numbers to the pins connected to your encoder.
// Best Performance: both pins have interrupt capability
// Good Performance: only the first pin has interrupt capability
// Low Performance: neither pin has interrupt capability
Encoder myEnc(5, 6);
// avoid using pins with LEDs attached
void loop() {
long newPosition = myEnc.read();
if (newPosition != oldPosition) {
oldPosition = newPosition;
Serial.println(newPosition);
}
}>
und das die Fehlermeldung:
</var/folders/dv/qxy9s8h55klgv5qmpg4k573w0000gn/T//ccT21rgt.ltrans0.ltrans.o: In function Encoder::isr0()': /Users/mithrarabet/Documents/Arduino/libraries/Encoder/Encoder.h:734: undefined reference to Encoder::interruptArgs'
/Users/mithrarabet/Documents/Arduino/libraries/Encoder/Encoder.h:734: undefined reference to Encoder::interruptArgs' /var/folders/dv/qxy9s8h55klgv5qmpg4k573w0000gn/T//ccT21rgt.ltrans0.ltrans.o: In function Encoder::isr1()':
/Users/mithrarabet/Documents/Arduino/libraries/Encoder/Encoder.h:737: undefined reference to Encoder::interruptArgs' /Users/mithrarabet/Documents/Arduino/libraries/Encoder/Encoder.h:737: undefined reference to Encoder::interruptArgs'
collect2: error: ld returned 1 exit status
Mehrere Bibliotheken wurden für "Encoder.h" gefunden
Benutzt: /Users/mithrarabet/Documents/Arduino/libraries/Encoder
exit status 1
Fehler beim Kompilieren für das Board Arduino/Genuino Uno.>
Bitte stelle die Sketches ( und Fehlermeldungen ) in Codetags ( Button </> links oben ). Sonst sind sie nur schlecht zu lesen. Und auch URL's solltest Du als Link einfügen. ( Edit: Wie von Gregor gemacht ). Das macht es den Helfern wesentlich einfacher.
Es macht wenig Sinn, eine Variable, die per 'digitalRead' gefüllt wird ( 0/1 ) als double zu definieren.
Hast Du denn schon die Softwarebeispiele von Sensitec ausprobiert? Wenn der Hersteller schon was mitliefert, sollte das doch immer der erste Schritt sein.
Tut mir leid, ich bin neu im Forum und wusste nicht wie das geht, vielen Dank für den Hinweis!
Ja, die Softwarebeispiele von Sensitec habe ich schon ausprobiert. Mit der Software "Analog_Plotter" bekomme ich Sinus- und Cosinussignale ausgegeben und über die andere kann ich den iC-TW2 einstellen.
Ich möchte nun Längen und Winkel messen, habe nur leider noch nicht so viel Erfahrung im programmieren.
DrDiettrich:
Warum soll unbedingt dieses Zähler-IC benutzt werden?
Weil er den Sensor aus seinen Kit ausprobieren möchte.
Allerdings sollten die zugehörigen Bsp. funktionieren?
Die Signale A/B deuten auf "normale" Drehgebersignale hin.
Ich hätte jetzt auch nur den Link wie in #6 gepostet.
Oder du suchst nach einer Rotary Lib.
Ob die dir aber bei dem IC wirklich weiterhilft weiß ich nicht recht. Denn der IC möchte wohl vorher noch parametriert werden. Das ist nichts für nebenbei. Wenn du sowas noch nie gemacht hast, brauchst viel Zeit dich einzuarbeiten. Wenn ich du wäre würde erstmal versuchen die Bsp. zum laufen zubekommen.
#define pinA PD5
#define pinB PD7
#define pinZ PD2
bool B = 0;
bool A = 0;
int Z = 0;
int a_merke = LOW;
int b_merke = LOW;
int laenge;
int encoderWert=0;
void setup() {
Serial.begin(9600);
pinMode(pinZ, INPUT);
pinMode(pinA, INPUT);
pinMode(pinB, INPUT);
}
void loop() {
A = digitalRead(pinA);
B = digitalRead(pinB);
Z = digitalRead(pinZ);
if ((A == HIGH) && (a_merke == LOW)) {
if (B == HIGH) {
encoderWert++;
} else {
encoderWert--;
}
laenge = encoderWert * 5;
Serial.println (laenge);
}
a_merke = A;
delay(100);
}
Hallo,
Vielen Dank für eure ganzen Antworten !
Ich habe jetzt diesen Code geschrieben, womit ich meine Signale zählen kann. Leider klappt es nicht so gut mit dem Vorwärts und Rückwärts... Kann mir da jemand weiterhelfen?
dein delay ist hier tötlich. Damit es richtig zählt arbeite den Link in #6 durch. Sonst wird das nichts.
Wenn du das ignorierst kann dir niemand helfen.