Immer die 1023..

Ich habe den Fehler in meinem programm gefunden: ähnlich wie bei der Übertragung über Rs232 habe ich dem ADC Wert zu wenig Speicher reserviert. So wurde der Wert in ein Byte „gequetscht“.. Nach dem das behoben ist, funktioniert das Programm wie gewollt. Aber nur solang die Motoren mit maximal einem Viertel der Höchstgeschwindigkeit drehen. Wenn sie sich nämlich schneller drehen, kommt der ADC mit messen bei allen vier Rädern nicht mehr nach und verschluckt sich. Um trotdem höchstgeschwindigkeit zu fahren, muss ich wohl die Auflösung der Drehscheiben reduzieren. Also Zähne abschneiden. Mal schauen, ob mir noch etwas besseres einfällt..

5 Gedanken zu „Immer die 1023..

  1. Hallo Lennart!
    Nun bin ich wieder auf dem Stand der Dinge, zumindest soweit, wie Dein Blog reicht.
    Zu der Drehzahlmessung habe ich einen Vorschlag, der meiner alten Erfahrung mit der TTL-Logik (einzelen Chips mit Gattern und Flipflops) entstammt, also eine elektronische Lösung sozusagen. Du könntest einen Schmitt-Trigger zunächst hinter die Lichtschranke schalten, um aus den Analogwerten einen Digitalwert, also „an“ oder „aus“ zu erzeugen. Damit wird Dein AD-Wandler an dieser Stelle überflüssig. Mit den Pulsen kannst Du in einen Binärzähler mit drei Flipflops in Reihe gehen (oder direkt einen Viererzäher, den es auf einem Chip gibt, ggf. sogar programmierbar). Dann hast Du Deine Zählpulse in Originalgeschwindigkeit und um die Faktoren zwei, vier und acht verringert. Wenn Du von diesen vier Zählerausgängen über einen Multiplexer einen an Deine Steuerung weitergibst, kannst Du bei einer Drehzahl, die Deiner Zählgrenze nahe kommt, einen Gang hochschalten, und nur noch jeden zweiten übernehmen, was Du ja in Deiner Programmierung berücksichtigen kannst. Das heißt, Du musst von Deiner Steuerung zwei Bit an den Multiplexer, bzw. alle vier, da die Räder ja im Großen und Ganzen ähnlich schnell drehen werden, schicken, mit denen Du auswählen kannst, ob Du die Originalzählung, oder eine reduzierte übernimmst. (Alternativ könntest Du auch den Wert am Ende des Zählers abnehmen und per elektronischer Steuerung regeln, wo die Lichtschrankenpulse in den Zähler reingehen.) Alles klar? Ich kann Dir die IC-Typen, die es schon in den 70ern gab, rauszusuchen versuchen.
    Gruß und Kopf hoch,
    Jan

    • Hallo Lennart!
      Gestern habe ich mit einem Kollegen gequatscht, der sich gerade einen Hexakopter zusammenbastelt und der sich Deine Seite auch schon angesehen hat. Er schlug den Timerchip NE555 vor, um damit die Drehgeschwindigkeit der Räder zu messen (http://de.wikipedia.org/wiki/NE555). Ich habe ihn schon gefragt, ob er einen Schaltplan hat. Ich habe sogar noch ein paar von diesen Chips auf dem Dachboden gefunden, sie sind aber wohl Pfennigskram.
      Gruß,
      Jan

      • Moin Jan!
        Der NE555 sieht ja spannend aus. Wär ja cool wenn dein Kollege da wirklich noch Schaltpläne hätte. Ich hab auch nochmal in Richtung externen (schnelleren) ADC nachgedacht, lohnt sich preislich aber wohl auch nicht.
        Erstmal,
        Lennart

    • So wie der Frequenzwandler mit dem NE555 funktioniert, könntest Du bei langsamen Geschwindigekiten Probleme bekommen, vermute ich. Mit einer monostabilen Kippstufe werden aus den Eingangspulsen Impulse mit immer gleicher Länge erzeugt, die einen Kondensator laden, der sich gelichzeitig über einen Widerstand wieder entlädt. Damit stellt sich in Abhängigkeit von der Anzahl der Pulse pro Zeiteinheit eine Spannung ein, die man mit einem AD-Wandler abfragen kann. Bei einer sehr geringen Frequenz könnte es passieren, dass der Kondensator schneller wieder entladen wird, als der nächste Puls kommt, und dann hat man wieder eine Wechselspannung. Da wäre mein erster Vorschlag dann besser.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.