Hallo zusammen,
ich arbeite seit einem Monat mit Arduino und stehe gerade vor einem Problem. Ich hab Probleme mit meinem Code. Wenn ich diesen so auf meinen Arduino hochlade erkennt der Farbsensor (ohne die Farbe rot davorzuhalten) Werte von 1400 - 1600. Wenn ich eine rote Kugel davorhalte gehen die Werte sofort auf 200 - 400 runter. Wenn dies der Fall ist (also die Werte unter 500 gelangen), soll mein Servo das Programm wie im Code geschrieben, abspielen.
Allerdings bewegt sich der Servo direkt wenn das Programm startet.
Kann mir hier jemand weiterhelfen?
Den Code für den Farbsensor habe ich hierher:
Den Code für den Servo habe ich selber geschrieben.
#include <Servo.h>
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define sensorOut 3
int frequency = 0;
Servo servoblau;
void setup()
{
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(sensorOut, INPUT);
// Setting frequency-scaling to 20%
digitalWrite(S0,HIGH);
digitalWrite(S1,LOW);
Serial.begin(9600);
servoblau.attach(10);
}
void loop()
{
// Setting red filtered photodiodes to be read
digitalWrite(S2,LOW);
digitalWrite(S3,LOW);
// Reading the output frequency
frequency = pulseIn(sensorOut, LOW);
// Printing the value on the serial monitor
Serial.print("Red= ");//printing name
Serial.print(frequency);//printing RED color frequency
Serial.print(" ");
delay(500);
if ("Red=" < 500)
servoblau.write(15); //Position 1 ansteuern
delay(1000); //Das Programm stoppt für 1 Sekunden
servoblau.write(100); //Position 2 ansteuern
delay(1000); //Das Programm stoppt für 1 Sekunden
servoblau.write(15); //Position 1 ansteuern
delay(1000); //Das Programm stoppt für 1 Sekunden
}