Hallo
Danke für die Infos.
Enable ist der PWM-Eingang
Wunderbar. Dann verwende ich die orginalen PWM-Leitungen zum NAND zur Drehrichtungsauswahl an PB4/5 des Mega8, unterbreche die orginalen Enableleitungen am IC1 und verbinde diese (irgendwie) direkt mit OC1A/B des Mega8. Dadurch werden PD4 und PD5 frei.
ausgenommen man will bremsen
Eben, bei sechs Leitungen kann man jede Halbbrücke einzeln ansteuern und die Motoren bei Bedarf kurzschliessen. Mit vier Leitungen und dem NAND kann ich dann immerhin unbestromt stehenbleiben. Die Schutzdioden dürften zusätzlich bremsend wirken, wenn die Ausgänge auf Z geschaltet sind.
Die Tasterlösung gefällt mir noch nicht wirklich. Ich bin noch unentschieden ob ich den Tasten-ADC des asuros wirklich für das Mikrofon opfern soll oder ob ich hier besser die sechs Tasten des asuro nachbilde. Möglicherweise kann man das Signal aus dem Verstärker-IC3(LM386) auch mit einem digitalen Eingang auswerten. (1-Bit-Sampling oder einstellbarer Schwellwert mit Poti als Ersatz für Ausgangsteiler R19/20).
Die StatusLed des ProBot (D5) ist LowCurrent, damit ist meine Anmerkung oben hinfällig. Die Vorwiderstände für die IR-LEDs (R12,D6-8 bzw. R13, D9-11) erscheinen mir ungünstig. Die verwendeten LEDs (TSUS520) haben eine typische Vorwärtsspannung von 1,3V (max. 1,7). Das ergibt (5V-3*1,3V)/150Ohm=0,007A pro Strang bei möglichen 150mA (Peek 300). Da scheint noch mehr Potentional vorhanden zu sein. Wellenlänge ist übrigends 950 nm.
In der Doku werden folgende Motorfunktionen beschrieben:
Code:
DRIVE_INIT()
Initialisiert den Antrieb. Bevor der Antrieb benutzt wird, muss diese Routine aufgerufen werden.
DRIVE_ON()
Setzt den Enable-Eingang des L293D auf High. Der Antrieb ist eingeschalten.
DRIVE_OFF()
Setzt den Enable-Eingang des L293 auf Low. Der Antrieb ist ausgeschalten.
DRIVE(left as byte, right as byte)
Timer1 PWM für den Antrieb:
Werte zwischen 1 bis 128 = rückwärts
Werte zwischen 128 bis 255 = forwärts
Wert 128 = Antrieb stopp
Motor_POWER(left as byte, right as byte)
Geschwindigkeit, Werte zwischen 1 und 255
Es muss zuvor mit MOTOR_DIR die Richtung vorgegeben werden.
MOTOR_DIR(left as byte, right as byte)
Gibt die Drehrichtung der Motoren für die Funktion MOTOR_POWER vor.
1 = vorwärts
0 = rückwärts
MOTOR_STOP()
Motor wird gestoppt, PWM wird auf 128 gesetzt.
Wird das MotorDir() reingerechnet? Gibt es öffentlichen Quellcode der ProBot-Lib?
Gruß
mic
Lesezeichen