Hallo,
Ich habe mein DUO 4/1 Fahrzeug von 6 auf 12 Volt umgerüstet. Aber den 6 Volt Scheibenwischermotor wollte ich mit PWM in der Drehzahl beschränken. Das klappt auch, nur im Sketch habe ich in map von 0-1023 auf 0-255 runterskaliert. Trotzdem liegt der Wert, den ich in der folgenden "if" angeben muß, überhaupt nicht in dem Bereich 0-255. Auch nicht im 0-1023 Bereich? Eher höher?
Denn 450 entspricht ca 1/3 der Zeit HIGH.
Und 900 entspricht ca 2/3 der Zeit HIGH.
(Zusehen am Oszi)
Code:
//Konstanten
const int wischerPin = 0; // Wischermotor an Pin 0 Attiny angeschlossen
const int potiPin = A3 ; // Potenziometer am Pin 3 angeschlossen
const int LED = 1; //Kontrollleuchte Pin 1
// Variablen
int wischerSpeed = 0; // Variable für die Motorgeschwindigkeit
int potiVar = 0 ; // Variable zum speichern des Potentiometers
void setup()
{
pinMode(wischerPin, OUTPUT) ; //Setzt den WischerPin als Ausgang
pinMode(potiPin, INPUT) ; //Potipin als Eingang
pinMode(LED, OUTPUT); //Setzt den LEDPin als Ausgang
}
void loop()
{
potiVar = analogRead(potiPin) ; // Liest das Potentiometer aus
wischerSpeed = map(potiVar, 0, 1023, 0, 200); // Setzt den Bereich auf 0-255
if ((potiVar < 450) || (potiVar > 900)) //Unterhalb/Oberhalb soll Motor nicht laufen
{
digitalWrite(wischerPin, LOW); //Ist aus
digitalWrite(LED, HIGH); //deshalb Kontrolle an
}
else//sonst
{
analogWrite(wischerPin, wischerSpeed); // Variable Drehzahl mit PWM
digitalWrite(LED, LOW);
}
}
Danke, ich nehme jeden Fehlerhinweis dankend auf!
Achim
Lesezeichen