Go Down

Topic: Heartbeat (Read 3827 times) previous topic - next topic

volvodani

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

Code: [Select]

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
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

uwefed

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

volvodani

Genauso. Es ist ein Doppelblinken mit Fadeeffect also es sieht "lebendig" aus und nicht "digital".  :)
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

sth77

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?
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

GoingForGold


Müsste man korrekterweise Arduini sagen?


müsste man :)

volvodani

#5
Nov 21, 2011, 04:34 pm Last Edit: Nov 21, 2011, 06:38 pm by volvodani Reason: 1
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 : $) $)
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Udo Klein

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 ;)
Check out my experiments http://blog.blinkenlight.net

thewknd

#7
Mar 01, 2012, 08:34 pm Last Edit: Mar 01, 2012, 08:39 pm by thewknd Reason: 1
sieht toll aus

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

edit
und #include <MsTimer2.h> fehlt auch noch  ;)
duemilanove / OSX & WIN
Arduino & Teensy: http://bit.ly/13rbdtQ

Udo Klein

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

Danke für den Hinweis.
Check out my experiments http://blog.blinkenlight.net

Udo Klein

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.
Check out my experiments http://blog.blinkenlight.net

Go Up