LED Flackern lassen und Dimmen mit Poti

Moin Leute,
ich habe gerade angefangen mich mit dem Arduino zu beschäftigen und habe mir dazu ein kleines Projekt überlegt um etwas in das Thema einzusteigen.

Ziel wäre es für mich einen LED Flackern zu lassen und mit einem Poti diese gleichzeitig zu dimmen.

Ich bekomme diese entweder nur gedimmt oder das Flackern hin.

Könnte mir dabei jemand mal auf die Sprünge helfen?

Ist mein erster Code, daher bitte nicht wundern :cold_sweat:

 int led2 = 3;
 int poti;      
 int Helligkeit;
 int flackern;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);   
       poti= 0;
       pinMode( led2 , OUTPUT);  

}

void loop() {
  // put your main code here, to run repeatedly:

 poti = analogRead(A2); 

 Serial.print( "Wert des Potis:" );
 Serial.print( poti );
 Serial.println("");

Helligkeit = (3 , map ( poti , 0 , 1023 , 0 , 255 ) );
flackern = (Helligkeit,random(120)+135);


analogWrite(led2,flackern);


 delay(random(100));

}

Was soll diese Zeile bewirken?

flackern = (Helligkeit,random(120)+135);

Die wirft Dir doch schon der Compiler mit lautem Protest um die Ohren.

Gruß Tommy

Hi Tommy,

da wollte ich den wert von Helligkeit in die Variable von flackern rein laufen lassen.

War mehr ein test… hab aber auch nix gebracht wie sich zeigte

ne fehler habe ich beim Kompilieren nicht bekommen

Tommy56:
Die wirft Dir doch schon der Compiler mit lautem Protest um die Ohren.

Nöö, die Syntax ist voll ok!
Nörgelt nur leise rum.
Da muss man schon explizit hinhören.

warning: left operand of comma operator has no effect

Die Logik dahinter, ist kaputt.
Also: Es tut nicht das, was es soll.

ne fehler habe ich beim Kompilieren nicht bekommen

Iss klar...
Warnungen nicht aktiviert.

Ok, er interpretiert das wohl als Komma-Operator. Aber sinnlos ist es trotzdem.
Du musst versuchen, den Wert vom Pin eher zufällig zu ändern. Das ist Flackern.
Ich weiß nicht, was Du da noch mit einer Helligkeit willst.

Höchstens Hell => random(150,255), mitte random(60,150) und dunkel random(0,60)

Die Werte sind nur geraten.

Gruß Tommy

Edit: combie war schneller. Ich hatte es auch schon gemerkt, dass es ja da den Komma-OPerator gibt.

const byte led2  {3};


void setup() 
{
  Serial.begin(9600);   
  pinMode( led2 , OUTPUT); 
}

void loop() 
{
 uint32_t poti   = analogRead(A2);
 uint32_t zufall = random(40,255);
 
 uint32_t flackerwert = map(poti*zufall,0,255UL*1023UL,0,255);
 analogWrite(led2,flackerwert);

 /*
 Serial.print( "Wert des Potis: " );
 Serial.print( poti );
 Serial.println("");
 
 Serial.print( "Zufall: " );
 Serial.print( zufall );
 Serial.println("");

 Serial.print( "Flacker Wert : " );
 Serial.print( flackerwert );
 Serial.println("");
 
 Serial.println("--");
*/
 
 delay(random(50,200));
}

Hi

Dazu hatte ich auch Mal was kreiert:
Re: LEDs verschieden flackern lassen #2
Das soll Mal die vier Ecken eines Elektro-Quad (500W, 36V) verschieden flackern/blinken lassen.
Die Einzel-Blink-Zyklen sind in je einem Array einstellbar - Länge nur vom Speicherplatz begrenzt.

Ist allerdings NUR Blinken/Flackern - Dimmen (also PWM) ist nicht enthalten - und ohne Poti.
... immerhin flackert's ...

MfG

Ich danke euch!

Der Code von combie ist genau das was ich erreichen wollen, super danke!
Ich werde ihn mir aber nochmal in ruhe ansehen und versuchen in selber nochmal nachzubauen.

postmaster-ino, hört sich auch gut an und werde ich mir auch noch mal ansehen.

Wie gesagt ich will mich damit etwas beschäftigen und aller Anfang ist schwer :smiley:

euch noch einen schönen Abend!