Hallo an alle und ein glückliches 2017, Zuerst entschuldigen Sie bitte mein Deutsch, wenn es nicht 100% ist, aber ich bin nicht fließend in der deutschen Sprache Obwohl ich sehr gut verstehe und ein wenig spreche, wenn ich schreibe, habe ich Angst, dass ich benutzen muss Der Google-Übersetzer, ok, also jetzt für meine Frage.?, In der ursprünglichen "Herbie Livley Haus ATtiny Arduino Skizze" auf Pin 1 gibt es eine Flickering zufällige LED, die flackert bei verschiedenen Intensitäten zu simulieren, das Flackern eines TV, während auf Pins 0,2,3,4 und 5 gibt es LEDs, die nach dem Zufallsprinzip ein- und ausschalten, um das Ein- und Ausschalten unterschiedlicher Lichter im Haus zu simulieren, wie im folgenden Code zu sehen ist, wie für das flackernde Led an Pin 1 Simuliert das TV Ich möchte diesen Effekt mit 2 weitere flackernde LEDs, die auch flackern zufällig Intensitäten der insgesamt drei LEDs flackert zufällig zu verbessern, um die Wirkung eines Farbfernsehers zu schaffen Ich möchte, dass dies zu tun Ich Probabley für den Moment zu verbessern Haben zu lösen 2 der Hausleuchten, aber dies für den Moment ist kein Problem.,
/* Simulation "belebtes Haus für die Modellbahn" */
/* Version "Flimmern nur wenn die Pin-2 LED an ist */
byte pwmFlimmerPin=1; // PWM Pin für das "analoge" Flimmern
long flimmerStart,flimmerEnd; // Anfangs- und Endzeiten für das Flimmern
// LED Pins für das normale Blinken deklarieren
byte leds[] ={ 5, 4, 3, 2, 0};
// LED Blinktakt in Millisekunden für diese Pins
long ledtakt[]={6000, 8800, 13000, 20000, 20400};
// Variablen zum Merken von millis()-Zeiten beim Schalten/Blinken
long ledtime[sizeof(leds)];
void setup() {
// Serial.begin(9600);
// Alle verwendeten Pins auf OUTPUT setzen
pinMode(pwmFlimmerPin, OUTPUT);
for (int i=0;i<sizeof(leds);i++)
pinMode(leds[i], OUTPUT);
}
boolean milliSekundenTakt(int dauer, long &alterWert) {
// Parameter "dauer": Dauer einer Blinkphase (an bzw. aus)
// Parameter "alterWert": Variable zum Speichern des millis() Timers
// Rückgabewert: true wenn die Zeit bis zum nächsten Umschalten abgelaufen ist, sonst false
if (millis() - alterWert < dauer) return false;
while (millis() - alterWert >= dauer) alterWert+=dauer;
return true;
}
void blinkenImTakt() {
// Alle gleichmäßig blinkenden LEDs in ihrem eigenen Takt blinken lassen
for (int i=0;i<sizeof(leds);i++) // alle LEDs in einer Schleife durchgehen
{
if (milliSekundenTakt(ledtakt[i],ledtime[i])) // Takt für diese LED abgelaufen?
{
digitalWrite(leds[i],!digitalRead(leds[i])); // wenn ja ==> Umschalten
if (leds[i]==0 && digitalRead(leds[i])) // Pin-13 LED wurde gerade eingeschaltet
{
flimmerStart=millis()+2000; // Anfangszeit für das Flimmern setzen
flimmerEnd =millis()+15000; // Endzeit für das Flimmern setzen
}
// Serial.print("Pin ");Serial.print(leds[i]);Serial.print(" = ");Serial.println(digitalRead(leds[i]));
}
}
}
void flimmernPwmPin() {
// Die flimmernde LED im Zufallsmodus flimmern lassen
static long alterWert;
static int flimmerDauer=200;
static byte flimmerHelligkeit;
if (milliSekundenTakt(flimmerDauer,alterWert)) // Takt abgelaufen?
{
flimmerDauer=1+random(200); // neue Flimmerdauer als Zufallswert
if (millis()>flimmerStart && millis()<flimmerEnd)
flimmerHelligkeit=random(256); // neue Flimmerhelligkeit als Zufallswert
else
flimmerHelligkeit=0; // Flimmern aus wenn falsche Zeit zum Flimmern
analogWrite(pwmFlimmerPin, flimmerHelligkeit);
}
}
void loop() {
blinkenImTakt();
flimmernPwmPin();
}
Ich verstehe, dass dieser Effekt durch die Variable flimmernPwmPin erzeugt wird, dass die Blende der Flimmerzeit durch die FlimmerStart und FlimmerEnd Variablen definiert wird und die Intensität des Flimmerns mit der flimmerDauer Variable definiert ist und obwohl ich verschiedene Modifikationen des Arduino versucht habe Sketch "einschließlich der Erstellung einer flimmernPwmPin2, FlimmerStart2 und FlimmerEnd2 und FlimmerDauer2 Variablen und Wiederholung der Subroutine mit den benötigten Variationen haben absolut kein Glück hatte .. !!! Hoffen, dass jemand kann und sind bereit, mir mit der Skizze Modifikationen benötigt und wieder ein sehr, aber sehr gutes neues Jahr alle zu helfen.
PS Ich lasse die ursprüngliche Frage auf Englisch, also wenn mein Deutsch ist so schlecht, dass Sie vielleicht nicht verstehen, es zumindest in Englisch vielleicht werden Sie in der Lage, es zu verstehen ...
Hello to all and a happy 2017 , Firstly, please excuse my German, if it is not 100%, but I am not fluent in the German language Although I understand very well, and speak a little, when writing I am afraid I must use the google translator, ok, so now for my question.?, In the original "Herbie's Livley house ATtiny arduino sketch" on pin 1 there is a Flickering random led which flickers at diffrent intensitys to simulate the flickering of a TV, while on pins 0,2,3,4 and 5 there are leds which turn on and off randomly to simulate the turning on and off of diffrent lights in the house, as can be seen in the following code, as for the flickering Led on pin 1 which simulates the TV I would like to enhance this effect incorporating 2 more flickering leds which also flicker at random intensitys the total of the three leds flickering randomly so as to create the effect of a color TV I understand that to do this I Probabley for the moment have to loose 2 of the house lights but this for the moment is not a problem.,
/* Simulation "belebtes Haus für die Modellbahn" */
/* Version "Flimmern nur wenn die Pin-2 LED an ist */
byte pwmFlimmerPin=1; // PWM Pin für das "analoge" Flimmern
long flimmerStart,flimmerEnd; // Anfangs- und Endzeiten für das Flimmern
// LED Pins für das normale Blinken deklarieren
byte leds[] ={ 5, 4, 3, 2, 0};
// LED Blinktakt in Millisekunden für diese Pins
long ledtakt[]={6000, 8800, 13000, 20000, 20400};
// Variablen zum Merken von millis()-Zeiten beim Schalten/Blinken
long ledtime[sizeof(leds)];
void setup() {
// Serial.begin(9600);
// Alle verwendeten Pins auf OUTPUT setzen
pinMode(pwmFlimmerPin, OUTPUT);
for (int i=0;i<sizeof(leds);i++)
pinMode(leds[i], OUTPUT);
}
boolean milliSekundenTakt(int dauer, long &alterWert) {
// Parameter "dauer": Dauer einer Blinkphase (an bzw. aus)
// Parameter "alterWert": Variable zum Speichern des millis() Timers
// Rückgabewert: true wenn die Zeit bis zum nächsten Umschalten abgelaufen ist, sonst false
if (millis() - alterWert < dauer) return false;
while (millis() - alterWert >= dauer) alterWert+=dauer;
return true;
}
void blinkenImTakt() {
// Alle gleichmäßig blinkenden LEDs in ihrem eigenen Takt blinken lassen
for (int i=0;i<sizeof(leds);i++) // alle LEDs in einer Schleife durchgehen
{
if (milliSekundenTakt(ledtakt[i],ledtime[i])) // Takt für diese LED abgelaufen?
{
digitalWrite(leds[i],!digitalRead(leds[i])); // wenn ja ==> Umschalten
if (leds[i]==0 && digitalRead(leds[i])) // Pin-13 LED wurde gerade eingeschaltet
{
flimmerStart=millis()+2000; // Anfangszeit für das Flimmern setzen
flimmerEnd =millis()+15000; // Endzeit für das Flimmern setzen
}
// Serial.print("Pin ");Serial.print(leds[i]);Serial.print(" = ");Serial.println(digitalRead(leds[i]));
}
}
}
void flimmernPwmPin() {
// Die flimmernde LED im Zufallsmodus flimmern lassen
static long alterWert;
static int flimmerDauer=200;
static byte flimmerHelligkeit;
if (milliSekundenTakt(flimmerDauer,alterWert)) // Takt abgelaufen?
{
flimmerDauer=1+random(200); // neue Flimmerdauer als Zufallswert
if (millis()>flimmerStart && millis()<flimmerEnd)
flimmerHelligkeit=random(256); // neue Flimmerhelligkeit als Zufallswert
else
flimmerHelligkeit=0; // Flimmern aus wenn falsche Zeit zum Flimmern
analogWrite(pwmFlimmerPin, flimmerHelligkeit);
}
}
void loop() {
blinkenImTakt();
flimmernPwmPin();
}
I Understand that this effect is produced by the flimmernPwmPin variable, that the legth of the flickering time is defined by the FlimmerStart And FlimmerEnd Variables and the intensity of the flickering is defined with the flimmerDauer variable and although I have tried diffrent modifications to the "Arduino Sketch" including creating a flimmernPwmPin2, FlimmerStart2 and FlimmerEnd2 and FlimmerDauer2 Variables and repeating the subroutine with the needed variations have had absoloutley no luck..!!! Hoping that someone can and are willing to help me with the sketch modifications needed and again a very, but very good new year all.