Newbie: Hilfe 2 Ausgänge die iim Unterschiedlichen Takt Leds ansteuern

Hi Leute!

Ich bin noch ganz neu und hab

einen ganz simplen code:

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.
 */

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led1 = 10;
int led2 = 8;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led1, OUTPUT);   pinMode(led2, OUTPUT);      
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led1, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(25);               // wait for a second
  digitalWrite(led1, LOW);    // turn the LED off by making the voltage LOW
  delay(35);               // wait for a second

  digitalWrite(led2, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(25);               // wait for a second
  digitalWrite(led2, LOW);    // turn the LED off by making the voltage LOW
  delay(35);               // wait for a second
}

Es hängt auf 10 + 8 eine LED die ollen gleich schnell blinken

so weit so gut, evtl kann man den code optimieren um nicht für beide die Geschwindigkeit und delay extra editieren zu müssen

So nun kommt die Wahnsinnsaufgabe

auf port 7

soll jetzt eine 3. Led hin zu die aber zb nur alle 2 Minuten blinkt im Gegensatz zu dem extrem schnellen Flashen der ersten 2.

ich spiel mich schon ne Stunde rum

könnt es mir evtl. jemand reineditieren und den posten

danke tom

kapsreiter: ich spiel mich schon ne Stunde rum

Beeindruckend! ;) Aber hast du schon das Beispiel BlinkWithoutDelay entdeckt? Gewöhn dir nicht an, delays zu verwenden...

Hallo,

das alle Anfänger Bsp. mit delay anfangen ist schon blöd. Nimm millis und Du wirst keine Probleme mehr haben irgendwas unabhängig voneinander zu betreiben. Wenn du das einmal verstanden hast, ist alles weitere ein Kinderspiel.

tja lda muss ich dann weiter googeln

sorry ich kapier halt nur 50 % bin halt ein Liter und fang da erst langsam an

http://playground.arduino.cc/Learning/BlinkWithoutDelayDe

so den code im tut gefunden

nun blinken alle 3 Leds im gleichen tat gleichzeitig ;-)

hab halt null Ahnung wies nun weitergeht

würd jemand so nett sein

Ziel = Led 1 + Led 2 blinken mit 20 ms

Led 3 = 180.000 ms 3 Minuten

/* Blink without Delay

 Turns on and off a light emitting diode(LED) connected to a digital  
 pin, without using the delay() function.  This means that other code
 can run at the same time without being interrupted by the LED code.

 The circuit:
 * LED attached from pin 13 to ground.
 * Note: on most Arduinos, there is already an LED on the board
 that's attached to pin 13, so no hardware is needed for this example.


 created 2005
 by David A. Mellis
 modified 8 Feb 2010
 by Paul Stoffregen

 This example code is in the public domain.


 http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
 */

// constants won't change. Used here to 
// set pin numbers:
const int ledPin1 =  10;      // the number of the LED pin
const int ledPin2 =  8;      // the number of the LED pin
const int ledPin3 =  7;      // the number of the LED pin

// Variables will change:
int ledState = LOW;             // ledState used to set the LED
long previousMillis = 0;        // will store last time LED was updated

// the follow variables is a long because the time, measured in miliseconds,
// will quickly become a bigger number than can be stored in an int.
long interval = 1000;           // interval at which to blink (milliseconds)

void setup() {
  // set the digital pin as output:
  pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); pinMode(ledPin3, OUTPUT);      
}

void loop()
{
  // here is where you'd put code that needs to be running all the time.

  // check to see if it's time to blink the LED; that is, if the 
  // difference between the current time and last time you blinked 
  // the LED is bigger than the interval at which you want to 
  // blink the LED.
  unsigned long currentMillis = millis();

  if(currentMillis - previousMillis > interval) {
    // save the last time you blinked the LED 
    previousMillis = currentMillis;   

    // if the LED is off turn it on and vice-versa:
    if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;

    // set the LED with the ledState of the variable:
    digitalWrite(ledPin1, ledState);
      digitalWrite(ledPin2, ledState);
        digitalWrite(ledPin3, ledState);
  }
}

wär echt klasse

nun blinken alle 3 Leds im gleichen tat gleichzeitig ;-)

hab halt null Ahnung wies nun weitergeht

Beeindruckend, dass du 3 Leds am Blinken hast. Gut angepasst. Als nächstes musst du den Kommentar anpassen:

  • LED attached from pin 13 to ground.

Das kannst du auch auf Deutsch schreiben. Aber nicht so lassen, sonst nimmt dich keiner ernst.

Danach musst du raten, was das Ganze soll und wie es wohl funktioniert.

Die Zeile

long interval = 1000; // interval at which to blink (milliseconds)

ist ein guter Start. Da gibt es wohl nur ein "interval", also blinkt alles im 1 sec Rhythmus.

Wenn du rauskriegst, wie das Blinken zustandekommt, merkst du evtl. auch, was alles mehrfach da sein muss, damit du z.B.

long interval1=20; //  wird man kaum als Flimmern erkennen
long interval2=180000L; // arg langsam für einen ersten Test

auch unabhängig und gleichzeitig verwenden kannst.

Viel Spaß