INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Verschiedene Blinktakte aufschalten
14.10.2013, 08:44
Beitrag #1
Verschiedene Blinktakte aufschalten
Hallo Forum,

ich bitte um Hilfe bei einem Verständnisproblem in Richtung C / IDE :

Ich möchte meine Ausgänge ( mehrere, später über I2C ) mit verschiedenen
Takten verschalten als UND-Verknüpfung.

Die Idee ist im Arduino unterschiedliche Takte zu erzeugen und diese nach
Vorwahl auf den vorgewählten Ausgang zu geben.

Meine Denkweise ist ( noch ) zu stark in Richtung SPS-Programmierung
wo ich z.B. meinen Merker / Eingang mit dem Blinktakt per UND verknüpfe.

Vielen Dank im voraus

Gruß

olmuk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.10.2013, 11:15
Beitrag #2
RE: Verschiedene Blinktakte aufschalten
Hallo Olmuk,

willkommen im Forum! Wo siehst du Probleme? So viel anders ist die Programmierung hier auch nicht. Während bei einer SPS immer das Eingangsfeld gelesen wird, dann verarbeitet und schließlich das Ausgangsfeld geschrieben wird, bist du hier freier, was die Abarbeitung angeht, du bestimmst den Ablauf selbst. Also ich habe noch kein leichter zu erlerndndes System gesehen. Wo hängt es?

Gruß, Stefan . . . . . . //Wo mein Kölbchen dampft, da bin ich unverkrampft.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.10.2013, 11:33
Beitrag #3
RE: Verschiedene Blinktakte aufschalten
Hallo Stefan,

es klemmt, das ich sonst beim Einschalaten HIGH oder LOW auf dem OUTPUT zuweise.
Bei "meiner" UND-Verknüpfung ist es dann : Variable(Blinktakt) && Statusvariable(Setzen oder nicht) = OUTPUT, oder ?

Mache ich mich verständlich ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.10.2013, 20:23
Beitrag #4
RE: Verschiedene Blinktakte aufschalten
ich fürchte nein - ich weiß noch immer nicht, was du genau meinst. Huh

Gruß, Stefan . . . . . . //Wo mein Kölbchen dampft, da bin ich unverkrampft.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.10.2013, 21:58
Beitrag #5
RE: Verschiedene Blinktakte aufschalten
..hoffentlich blamiere ich mich nicht bis auf die Knochen...

Also :

Aufgrund einer Auswahl soll z.B die LED 1 angesteuert werden, aber nicht dauerhaft, sondern
mit dem z.B. Takt 2 ( xx Hz ).
Wie sieht der Code hierzu aus ?

Ich kenne bisher nur die Zuweisung eines Ausganges mit OUTPUT und wenn es blinken soll
halt mit delay oder millis.

Ich möchte aber verschiedene Takte zur Verfügung stellen und bei Anwahl eines Ausganges
den enstprechenden Takt verknüpfen = blinken
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.10.2013, 08:16
Beitrag #6
RE: Verschiedene Blinktakte aufschalten
nein - natürlich nicht - du hast also nur keine Idee, wie du es machen kannst. Ausnahmsweise zeige ich dir jetzt eine einfache Möglichkeit, wie es ohne Einbindung von Bibliotheken geht:

Code:
unsigned long nowtime;
unsigned long lasttime = 0;
boolean Ausgang1 = 13;   //board-led
boolean takt1;

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

void loop()
{
  nowtime = millis();
  if (nowtime >= lasttime + 1000)
    {                                // 1 mal pro Sekunde >> 0,5Hz  
      lasttime = millis();            
      digitalWrite(Ausgang1,takt1);  // Ausgang setzen
      takt1 = !takt1;                 // Inhalt invertieren
    }
}

Gruß, Stefan . . . . . . //Wo mein Kölbchen dampft, da bin ich unverkrampft.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.10.2013, 09:06
Beitrag #7
RE: Verschiedene Blinktakte aufschalten
Ich habe hie noch ein kleinen Beispiel ausgegraben, in dem drei LEDs mit verschiedenen Taktraten blinken. Vielleicht hilft dir das.

Gruss
René

Code:
const int led1 = 8;
const int led2 = 9;
const int led3 = 10;

void setup() {
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
}


void blinkLed1() {
  const unsigned long waitTime = 5000;  
  static unsigned long oldTime = 0;
  static int state = LOW;
  
  if (oldTime + waitTime < millis()) {
   if (state == LOW) state = HIGH; else state = LOW;
   oldTime = millis();
   digitalWrite(led1,state);
  }  
}

void blinkLed2() {
  const unsigned long waitTime = 500;  
  static unsigned long oldTime = 0;
  static int state = LOW;
  
  if (oldTime + waitTime < millis()) {
   if (state == LOW) state = HIGH; else state = LOW;
   oldTime = millis();
   digitalWrite(led2,state);
  }  
}


void blinkLed3() {
  const unsigned long waitTime = 5000;  
  static unsigned long oldTime = 0;
  static int state = LOW;
  
  if (oldTime + waitTime < millis()) {
   if (state == LOW) state = HIGH; else state = LOW;
   oldTime = millis();
   digitalWrite(led3,state);
  }  
}


void loop() {
  blinkLed1();  
  blinkLed2();
  blinkLed3();
}

Der Hobbyelektroniker wagt sich an die Arduinoprogrammierung auf Video und auf seiner Webseite
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.10.2013, 09:17
Beitrag #8
RE: Verschiedene Blinktakte aufschalten
@ Stefan :
Erst mal vielen Dank - warum eigentlich Ausnahmsweise ?

Ich habe es verstanden und es hilft mir ( tue mich halt mit der Hochsprache noch etwas weh ).
Nun kann ich ja dann den takt1 durch eine Variable ersetzen die ich an anderer Stelle mit dem
vorgewählten Takt beschreibe.

@Rene :
Das bringt mich auf eine Idee - vielen Dank :
Ich hinterlege nicht die Zuordnung Takte zu Ausgang, sondern die Taktfrequenz bzw die millis
und vergleiche dann zu jedem Ausgang wann die waitTime abgelaufen ist ( vielleicht eleganter )

Nochmals Danke

Gruß olmuk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Verschiedene Positionen über array? paq 2 713 23.07.2015 08:11
Letzter Beitrag: Thorsten Pferdekämper
  aufteilung von code in verschiedene dateien User17 3 5.619 28.03.2014 17:35
Letzter Beitrag: rkuehle

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste