Hallo lieben Foren Mitglieder,
ich hoffe hier etwas Hilfe zu bekommen, da ich noch nichts passendens gefunden habe, erstelle ich einen eigenen Post.
Mein Vorhaben:
Ich möchte mit einem ARDUINO NANO uC 4 LEDs steuern mittels PWM, idealerweise sollen alle viers LEDs mit der selben Frequent und LED angesteuert werden.
Desweiteren benötige ich ein Referenzsignal welches in Phase und Amplitude zu der jeweilgen Leuchtenden LED gleich ist und snychron an einem Ausgang liegt wenn die jeweilige LED bzw. der Port HIGH ist.
Mein problem nun:
wenn ich die LEDs nach und nach durchschalte, habe ich unterschiedliche Frequenzen obwohl ich alle mit der selben pwm ansteuern.
Hardware:
Arduino Nano
RGB und Infrarot LED
Woran könnte das liegen ?
Vielen Dank im Voraus
Ich Poste meinen Code mal für eine Farbe:
int analogpin = A1;
int ledpin = 11; //Blau
int ledpin1 = 5; //Gruen
int ledpin2 = 6; // Rot
int ledpin3 = 9; // Infrarot
int maxi = 1024; // 1024 entsprechen 5V
float wert = 0.0;
float Mittelwertblau = 0.0;
float Mittelwertgruen = 0.0;
float Mittelwertrot = 0.0;
float Mittelwertinfrarot = 0.0;
float Voltblau = 0.0;
float Voltgruen = 0.0;
float Voltrot = 0.0;
float Voltir = 0.0;
float gesamt = 0.0;
void setup()
{
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
pinMode(11,OUTPUT);
pinMode(A1,INPUT);
}
void loop()
{
start:
int p=0;
if (Serial.available()>0)
{
p = Serial.read();
p-=48;
Serial.println(p);
}else {goto start;}
switch(p)
{
//------------------------------------------Blau----------------------------------------------------//
case 1:
gesamt = 0.0; // setzt gesamt jedes mal wieder auf 0
analogWrite(5, LOW);
analogWrite(6, LOW);
analogWrite(9, LOW);
Serial.println("Blau ");
Serial.println("_______");
for(int i=0; i<=500; i++)
{
analogWrite(11, 127); // Duty Cycle von ca.75%
delay(1);
wert= analogRead(A1); //Einlesen der Werte
gesamt = wert + gesamt;
Mittelwertblau = gesamt / 500; // Mittelwert ausrechnen
}
//Serial.println("_______");
//Serial.println( Mittelwertblau); // Ausgeben des Mittelwerts
Voltblau= ( Mittelwertblau*5)/1024; //Spannungswert ausrechnen
Serial.print("Der Spannungswert der Farbe Blau ergibt[V]: "); // Ausgabe des Spannungswerts
Serial.println(Voltblau);
break;