Heartbeat

Ich braucht gerade mal eine LED die im Herzschlagtakt schlägt. Da ich keinen schönen Code gefunden habe schrieb ich mit mal eben selbst was. Im Array kann man die "Art"schön betimmen. Poste ich hier mal meinen Heartbeat via PWM an Pin 10

unsigned long lmillis;
byte i=0;
boolean up=true;
byte Fadearray[]={
     0,  2,  4,  8, 12, 20, 32, 44, 56, 68,
    80, 92,104,116,128,140,152,164,176,188,
   200,212,224,236,255,240,210,180,150,120,
    90, 60, 40, 25, 25, 40, 60, 90,120,150,
   180,210,240,255,230,205,180,155,130,105,
    80, 55, 30, 20, 16,  8,  4,  2,  0};

void setup(){
  pinMode(10,OUTPUT);
}

void loop(){
  if (millis()-lmillis>=11){
    if (i==58){
      up=false; 
      delay(550);
      i=0;
    }
    i++;
    analogWrite(10,Fadearray[i]);  
    lmillis=millis();
  }
}

Gruß Volvodani

Hab ich richtig verstanden. Du läßt das LED blinken wie die QRS-T-Welle des EKGs? Viele Grüße Uwe

Genauso. Es ist ein Doppelblinken mit Fadeeffect also es sieht "lebendig" aus und nicht "digital". :)

Ich habe mir den Effekt noch nicht angesehen, d. h. noch nicht auf einen meiner Arduinos (Frage an die Italiener: Müsste man korrekterweise Arduini sagen?) aufgespielt. Allerdings ist mir das delay(550) ein Dorn im Auge. Das Pulsieren wird über die millis gemacht und dann kommt solch eine harte Unterbrechung. Ich könnte mir vorstellen, das Array um 50 Elemente zu erweitern, die alle den Wert 0 haben. In diesem Zuge könnte man dann das delay () entfallen lassen.

Und noch eine kurze Frage: Was hat es mit der ominösen Variablen up auf sich? Sie wird mit True initialisiert und nach Ablauf der ersten Schleife auf False gesetzt, mehr passiert damit nicht. Ist das ein Überbleibsel aus einer Vorgänger-version des Sketches?

sth77: Müsste man korrekterweise Arduini sagen?

müsste man :)

Das Delay ist nur für euch da :-). Ich nehme das Array und lasse es durch Up(gesetzt durch die RTC) einmal durchlaufen und dann wartet es auf einen neuen Impuls (RTC gibt jede Sekunde 1 Impuls) was jeder draus macht ist jedem Überlassen. Es geht in erster Linie um das doppelpulsen : $) $)

Ich gebe jetzt auch eine Version "Herzschlag" Sketch zum Besten: http://blog.blinkenlight.net/experiments/removing-flicker/heartbeat/. Ist einen Tick aufwendiger weil es 20 LEDs bedient ;)

sieht toll aus

im Code Bereich auf deiner Seite fehlt ein Teil der for-Schleife.

edit
und #include <MsTimer2.h> fehlt auch noch :wink:

Mist, da ist irgendwas total daneben gegangen. Ich reparier das gleich.

Danke für den Hinweis.

Das Problem ist jetzt behoben. Keine Ahnung warum das daneben ging. Mein Code Repository war irgendwie kaputt inkl. Versionsverwaltung. Sowas ist mir noch nie passiert :( Jetzt ist aber wieder alles OK.