#include <Servo.h> //bibliothek zur ansteuerung von servomotor einbinden
Servo servoMotor; //erzeugt eine Servo-motor-objekt
int winkel =0; //variable die den winkel enthält
void setup()
{
servoMotor.attach (9); //steuerleitung muss an pin 9 servoMotor
pinMode (11, OUTPUT); //pin 11 als ausgang für die steuerung Potentiometer
Serial.begin (9600); // serielle kommunikation mit rechner starten
}
void loop ()
{
int PotiWert = analogRead (0); //analogen Wert auslesen
Serial.print ("Poti = "); //auf dem seriellen Monitor ausgebn
Serial.println (PotiWert); //"
delay (100); //warte 100ms
int MotorWert = PotiWert /4; // Für Motorsteuerung in Wertebereich 0 bis 255 anpassen
analogWrite (9, MotorWert); // auf analogen pin 9 schreiben
if (PotiWert == 0) //wenn LDR 0
{
winkel = 0;
servoMotor.write (winkel); //servo motor auf 0°
}
if (PotiWert == 127) //wenn LDR 127
{
winkel = 22;
servoMotor.write (winkel); //servoMotor auf 22°
}
if (PotiWert == 255) //wenn LDR 255
{
winkel = 45;
servoMotor.write (winkel); //servoMotor auf 45°
}
if (PotiWert == 383) //wenn Ldr 383
{
winkel = 67;
servoMotor.write (winkel); //servoMotor auf 67°
}
if (PotiWert == 511) //wenn ldr auf 511
{
winkel = 90;
servoMotor.write (winkel); //servoMotor auf 90°
}
if (PotiWert == 639) //wenn ldr auf 639
{
winkel =112;
servoMotor.write (winkel); //servoMotor auf 112°
}
if (PotiWert == 767) //wenn ldr auf 767
{
winkel = 135;
servoMotor.write (winkel); //sevoMotor auf 135°
}
if (PotiWert == 895) //wenn ldr auf 895
{
winkel = 157;
servoMotor.write (winkel); //servoMotor auf 157°
}
if (PotiWert == 1023) //wnn ldr auf 1023
{
winkel = 180;
servoMotor.write (winkel); //servoMotor auf 180°
}
}
Ich war mal so frei, den Sketch einfach mal hier reinzukopieren. Der Sketch wird wohl nicht so funktionieren, wie du dir das vorstellst: Zum einen fragst du einen Analogwert an Pin 0 ab, das dürfte wohl eher A0 sein. Den Wert über die serielle Schnittstelle auszugeben erfüllt ja schon mal einen Teil der Aufgabenstellung. Aber hast du tatsächlich ein Poti angeschlossen? Oder eher einen Spannungsteiler aus Festwiderstand und LDR? In dem Fall ist die Variablenbezeichnung Potiwert sehr ungünstig gewählt.
Das analogWrite erschließt sich mir nicht, an Pin 9 hängt doch der Servo, der über servoMotor.write angesteuert werden soll. Das versuchst du zumindest mit deinen if-Abfragen, wertest aber neben 0, 127, 255, 383, 511, 637, 967 und 1023 keine Zwischenwerte aus! Spricht irgendwas gegen die Nutzung der map()-Funktion?
Hast du noch den passenden Schaltplan bzw. ein Foto vom Aufbau parat?