Hallo,
okay, habe verstanden. Wie die Optik täuschen kann.
Danke @ all
Programm funktioniert jetzt übrigens wie gewünscht mit eingefügtem
val = val/2;
Elektrisch lag es an meiner Beschaltung.
Hab es noch verbessert. Ab Poti Mittelstellung nach links oder rechts herum erfolgt die Richtungsänderung und die Laufgeschwindigkeit ändert sich dazu spiegelverkehrt.
// Arduino Mega 2560
int LED = 1;
int analogPin = 7; // Poti am analog pin A7
int val = 0; // Potiwert speichern in val
int Speed = 0; // Lauflichtgeschwindigkeit
void setup()
{
Serial.begin(9600);
DDRK = 255; // Port.K komplett Ausgang
PORTK = 255; // Port.K alle Ausgänge Ein
delay(200);
PORTK = 0; // Port.K alle Ausgänge Aus
delay(500);
}
void loop()
{
val = analogRead(analogPin); // analogen Potiwert einlesen
val = val/2; // und halbieren, sonst wird es zu langsam
Serial.println(val, DEC);
if (val >= 256)
{
Speed = 512-val;
}
else
{
Speed = val;
}
Serial.println(Speed, DEC);
if (LED < 1) {LED = 128;} // Prüfung ob kleinstes Bit erreicht
if (LED > 128) {LED = 1;} // Prüfung ob höchstes Bit erreicht
PORTK = LED; // Port.K wird neu gesetzt
if (val >= 256) {LED = LED << 1;} // rechts herum
if (val <= 255) {LED = LED >> 1;} // links herum
delay(Speed);
}