Ich entwickle einen Prototyp, der einen Quadraturcodierer verwendet, um seine lineare Verschiebung zu messen. Der Encoder ist am Prototypgehäuse befestigt und hat ein Rad in der Welle. Wenn sich der Prototyp geradeaus bewegt, misst der Encoder den linearen Abstand. Alle Probleme bei der Umrechnung zwischen Linear- / Winkeleinheiten wurden behoben.
Der Grund für die Messung der Entfernung mit einem Encoder ist, dass ich jedes Mal wissen muss, dass der Prototyp genau 1 mm (1 Millimeter) zurückgelegt hat = 0,0393 Zoll). Jedes Mal, wenn sich der PIC um 1 mm bewegt, aktiviert er ein anderes System.
Bevor ich mit der Arbeit begonnen habe, habe ich den Encoder mit einem PIC (16F688) in den E / A-Ports gelesen. Es war ein bisschen in Ordnung, aber als ich dem PIC-Code einige Funktionen hinzufügte, fehlt dem PIC die Encoderanzahl, wenn die lineare Geschwindigkeit des Prototyps größer als ~ 45 mm / s ist.
I. Ich habe versucht, das IOC (Interrupt bei Änderung) von PortA zum Lesen des Quadratursignals (Kanäle A und B) zu verwenden, aber es war nicht effektiv.
Ich weiß, dass es dsPICs gibt, aber ich muss dies lösen in meinem Board und ich habe nur 14 Pins, um dies zu tun lol. Also habe ich diesen PIC16F1825 gefunden, der eine höhere (4x) Frequenz hat. Könnte das (meine niedrige PIC-Frequenz) mein Hauptproblem sein?
Ich habe darüber nachgedacht, die UPa> / UP-Signale LFLS7183 mit dem Timer / Zähler von PIC oder einem anderen zu verwenden Zähler-IC, so dass die Menge der Signalisierung an PIC reduziert würde. Funktioniert das? Welchen Zähler soll ich verwenden? Ich habe keine 8 Pins in meinem PIC, die ich verwenden könnte, wie in diesen http://goo.gl/2Wc3d.
Mein Encoder ist nicht mein Problem, das habe ich überprüft und es kann bis zu 76 Fuß / s für meinen Radradius verfolgen.