
Zitat von
Richard
Kannst Du das etwas näher beschreiben? Du liest über ADC das Poti aus und legst den Gemessenen Wert auf den Enable Eingang des Treibers? Das wird so nicht gehen. Der Poti Wert gehört in ein OCRA oder OCRB Register und der Pin OCRA Oder OCRB gehört an den Enable Eingang. PWM Muss natürlich eingeschaltet sein. Oder hast Du es so gemacht und nur etwas ungenau beschrieben?
Gruß Richard
Ich hab den Wert des Potis ausgelesen und dann mit dem PWM Spektrum gemappt. Der Code war richtig, nur hab ich einen "falschen" Pin vom Arduino benützt welcher keine PWM unterstützt.
Es war auch nur ein Vorprojekt und zu schauen ob die Geschwindigkeitssteuerung funktioniert. Ich baue an einem autonomen Fahrzeug. Jedoch hab ich jetzt ein Ultraschallsensor dran welcher ab 100cm die Geschwindigkeit drosselt und die Motoren immer längsämer werden lässt je näher er einem Hinderniss zufährt.
Hier noch der Arduino Code:
Code:
#include "Ultrasonic.h"
int analogOutPin = 9;
int digitalPin = 7;
int trig = 12;
int echo = 13;
int var = 0;
int outputValue = 0;
Ultrasonic ultrasonic(12,13);
void setup() {
Serial.begin(9600);
pinMode(digitalPin, OUTPUT);
pinMode(analogOutPin, OUTPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
}
void loop() {
digitalWrite(7, HIGH);
(var) = (ultrasonic.Ranging(CM));
if ((var) > 100){
analogWrite(analogOutPin, 255);
}
else {
outputValue = map(var, 0, 100, 0, 255);
analogWrite(analogOutPin, outputValue);
}
Serial.println(outputValue);
delay(10);
}
Mfg Relaxed
Lesezeichen