Hallo Fabian,
das ist aber recht umständlich programmiert, und außerdem wirst du bei jedem Schweißvorgang den gleichen "Blitz-Ablauf" haben. Probier doch mal folgendes aus:
in die void setup( ) nimmst du folgende Zeile auf:
1
randomSeed(analogRead(0));
Pin 0 darf dabei nicht belegt sein, alternativ gibst du einen anderen Analog-Pin an.
Ich würde vorschlagen, eine eigene Funktion für das Schweißen zu schreiben, damit du die loop nicht unnötig vollmüllst.
Also:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void schweissen(int laenge, warte){ //mit laenge: anzahl "ein- und ausschalten" des Schweisslichts, warte: delay zwischen Schweissvorgaengen
for(int i=0; i<laenge;i++){
randOn = random(300); //zwischen "an- und ausschalten" des Schweisslichts sollen max. 300ms liegen
randOff = random(150); //zwischen "aus- und anschalten" des Schweisslicht würde ich eine kürzere Zeit nehmen, also 150
digitalWrite(LED,HIGH); //turns the LED on
delay(randOn);
digitalWrite(LED,LOW); //turns the LED off
delay(randOff);
}
delay(warte);
}
Diese Funktion musst du in der loop nur noch aufrufen. Also:
1
2
3
4
5
void loop(){
schweisslaenge = random(50); //fuer die laenge der Schweissvorgaenge (nicht in ms!)
schweisswarte = random(30000); //fuer die laenge der Wartezeiten, in ms
schweissen(schweisslaenge, schweisswarte);
}
Probiere ein bisschen mit den Werten in der schweissen( ) sowie der loop( ) rum. Bedenke, dass die Werte jeweils für den maximalen Zufallswert stehen.
Ich muss dazu sagen, dass ich den Code jetzt von der Leber weg geschrieben habe, ohne ihn im Arduino-Editor auszuprobieren. Wenn du fragen hast, kannst du mir sonst eine PN schreiben.
(mein dreckiges Hirn denkt sich bei den ganzen Variablennamen immer das 'w' weg...
)