Hallo zusammen, guten Abend,
könnt ihr mir nochmal bitte beim modifizieren von meinem Script helfen?
Momentan kann ich die Geschwindigkeit vom Motor mit einem Potentiometer "regeln/einstellen". Ich brauche aber nur zwei Geschwindigkeiten. Der Motor dreht die ganze Zeit mit der Höchstgeschwindigkeit und nur ab und an drehe ich den Motor mit dem Potentiometer langsamer.
Gerne würde ich das Potentiometer durch einen Schalter oder ähnlichem ersetzen mit der Funktion: beim Schalter drücken reduziert sich die Geschwindeigkeit auf eine definierbare Geschwindigkeit und beim loslassen wird wieder die Höchstgeschwindigkeit X erreicht.
Also nur während ich den Schalter drücke ist die Geschwindigkeit reduziert. Keine feste Zeitspanne sondern nur bei Betätigung.
Ich habe folgendes Script im Einsatz:
// Defin pins
int reverseSwitch = 2; // Push button for reverse
int driverPUL = 7; // PUL- pin
int driverDIR = 6; // DIR- pin
int spd = A0; // Potentiometer
// Variables
int pd = 500; // Pulse Delay period
boolean setdir = LOW; // Set Direction
void setup() {
pinMode (driverPUL, OUTPUT);
pinMode (driverDIR, OUTPUT);
pinMode (reverseSwitch, INPUT_PULLUP);
}
void loop() {
pd = map((analogRead(spd)),500,1023,500,3);
if (digitalRead(reverseSwitch)) setdir=0; else setdir=1;
digitalWrite(driverDIR,setdir);
digitalWrite(driverPUL,HIGH);
delayMicroseconds(pd);
digitalWrite(driverPUL,LOW);
delayMicroseconds(pd);
}
A0 wäre dann der neue Schalter, der dann die Geschwindigkeit bei Betätigung reduzieren soll.
Vielen Dank vorab für eure Hilfe.