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
Überflüssige Anweisung in einer Zählerschleife
25.03.2015, 11:56 (Dieser Beitrag wurde zuletzt bearbeitet: 25.03.2015 11:59 von do1xxy.)
Beitrag #1
Photo Überflüssige Anweisung in einer Zählerschleife
Hallo Gemeinde,

ich habe ein Problem mit der nachfolgend aufgeführten Zählerschleife.

Die Anweisung for (a=1;a<8;a++) steht in void setup() und void loop().
Nehme ich sie aus eine der beiden heraus, läuft der Zähler nicht mehr.

Was läuft in dem Sketch bzw. mit der Variablen a verkehrt?

Über Hilfe werde ich mich sehr freuen
Armin de DO1XXY

int Led1 = 2; //D4
int Led2 = 3; //D5
int Led3 = 4; //D6
int Led4 = 5; //D7
int Led5 = 6; //D8
int Led6 = 7; //D9
int Led7 = 8; //D10

unsigned char a;

void setup()
{
for(a=1;a<=8;a++) [/code]
pinMode(a,OUTPUT);
}

void loop()
{

for(a=1;a<=8;a++)
{
digitalWrite(a,HIGH);
delay(200); //delay 200ms

digitalWrite(a,LOW);
delay(200); //delay 200ms
}

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.03.2015, 12:04 (Dieser Beitrag wurde zuletzt bearbeitet: 25.03.2015 12:05 von tito-t.)
Beitrag #2
RE: Überflüssige Anweisung in einer Zählerschleife
hallo,
beim setup definierst du damit die 7 Pins als
pinMode(a,OUTPUT),

in der loop schaltest du ihre 7 Werte zyklisch mit
digitalWrite(a,HIGH);
bzw.
digitalWrite(a,LOW);
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.03.2015, 12:04
Beitrag #3
RE: Überflüssige Anweisung in einer Zählerschleife
...und wahrscheinlich sind die Pins ohne das pinMode auf INPUT geschaltet.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.03.2015, 12:45
Beitrag #4
RE: Überflüssige Anweisung in einer Zählerschleife
(25.03.2015 12:04)tito-t schrieb:  hallo,
beim setup definierst du damit die 7 Pins als
pinMode(a,OUTPUT),

in der loop schaltest du ihre 7 Werte zyklisch mit
digitalWrite(a,HIGH);
bzw.
digitalWrite(a,LOW);

Hallo Thorsten,

danke für die schnelle Antwort.

Lässt sich die Zuweisung in Setup in der Form umsetzen das ich schreibe PinMode(a=1, Output); PinMode(a=1, Output); usw? Mich stört die Zählfunktion im Setup. da ich sie nicht in einer weiteren Loop unterbringe.

Gruß
Armin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.03.2015, 12:48
Beitrag #5
RE: Überflüssige Anweisung in einer Zählerschleife
(25.03.2015 12:45)do1xxy schrieb:  Lässt sich die Zuweisung in Setup in der Form umsetzen das ich schreibe PinMode(a=1, Output); PinMode(a=1, Output); usw?
Klar, Du kannst das einzeln hinschreiben, aber das ist nicht sehr elegant.

Zitat:Mich stört die Zählfunktion im Setup. da ich sie nicht in einer weiteren Loop unterbringe.
Hä?

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.03.2015, 13:01
Beitrag #6
RE: Überflüssige Anweisung in einer Zählerschleife
WIll heißen dass ich in einer Subschleife über ein Empfängersignal einen Zähler mit der Schrittweite "1" aktivieren will.

Der Sketch dient dazu um mittels einer Fernsteuerung 7 LEDs schrittweise als Dot-Anzeige zu schalten um entsprechend 7 Funktionen aufrufen - aber eben jeweils nur eine.

Meine Vermutung ging dahin, dass die für mich nach Zähler aussehende Zählschleife in void setup das verhindert. Praktisch reagiert der Sketch so, dass wenn ich den zugewiesenen Eingang für das Signal von der Fernsteuereung mit einem Signal aktiviere der Zähler einmal komplett durchzählt. Dann wartet er auf die nächste Eingabe. Die Loop soll aber immer nur um den Wert 1 erhöhen.


Hier der Sketch:

//Zähler von 1 bis 7 für das Projekt Funktionsanwahl/

//int Led1 bis intLed7 gehören zum Zählersketch
int Led1 = 2; //D4
int Led2 = 3; //D5
int Led3 = 4; //D6
int Led4 = 5; //D7
int Led5 = 6; //D8
int Led6 = 7; //D9
int Led7 = 8; //D10


// - - - - - - - - - - - int-Dateiein aus dem RC-Sketch
int LED = 10; // Ausgang für Kontroll LED
int RCin = 12; // Signal aus dem Empfänger

byte valw = 75;
byte LEDon = 0;

unsigned long durationw;
// - - - - - - - - - - - Ende der Dateien aus dem RC-Sketch

// unsigned cahar a; gehört zum Zähler
unsigned char a;

void setup()
{
for(a=1;a<=8;a++) // solange a<8 ist, zählt erhöht die Schleife den Wert von a jeweils um "1"
pinMode(a,OUTPUT); //setzt die mit den Wert von "a" belegten Pin in Funktion Output

// - - - - - - - - - Begin der Setup-Dateien aus der RC-Abfrage
pinMode(RCin, INPUT);
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
// - - - - - - - - - Ende der Setup-Dateien aus der RC-Abfrage
}



void loop()
{


durationw = pulseIn(RCin, HIGH, 20000); // misst die Zeit in der an pwin ein Signal anliegt
valw = map(durationw, 1090, 1929, 0, 150); // setzt den Wertebereich 1090 bis 1929 in den Bereich 0 bis 150 um

if(valw < 30) // ist valw kleiner 30 gehe zu Unterprogramm
{
Unterprogramm();
}
}
void Unterprogramm()

{
if(LEDon == 0)
{
digitalWrite(LED, LOW); // LED aus bei aktivem Signal
LEDon = 1;
delay(500);

digitalWrite(LED, HIGH); // LED an als Dauerzustand
LEDon = 0;
delay(500);


}

for(a=1;a<=8;a++) // solange a<8 ist, zählt erhöht die Schleife den Wert von a jeweils um "1"
{
digitalWrite(a,HIGH); //LED HIGH entsprechend dem Wert der Variable a
delay(200); //delay 200ms

digitalWrite(a,LOW); //LED HIGH entsprechend dem Wert der Variable ja
delay(200); //delay 200ms
}

}

Gruß
Armin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.03.2015, 13:57
Beitrag #7
RE: Überflüssige Anweisung in einer Zählerschleife
(25.03.2015 13:01)do1xxy schrieb:  Meine Vermutung ging dahin, dass die für mich nach Zähler aussehende Zählschleife in void setup das verhindert.
Nein, das ist nicht das Problem. Du hast wahrscheinlich eher ein Problem wegen der vielen delays.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.03.2015, 14:25
Beitrag #8
RE: Überflüssige Anweisung in einer Zählerschleife
... na denn werde ich mal sehen dass ich diese herausnehme.

vy thnx
Armin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Sensorpositionierung mit einer Spindel Badger1875 5 209 05.11.2016 20:11
Letzter Beitrag: hotsystems
  Winkel einer Elipsenbahn messen und auswerten Nimes 2 304 09.09.2016 13:36
Letzter Beitrag: Nimes
  Serielle Eingabe zur Steuerung einer RGB-LED Tommy56 5 600 22.07.2016 18:32
Letzter Beitrag: Tommy56
  Modellzeit / Tag-Nacht Simulation auf einer Modellbahn MK.Matthias 14 3.652 23.05.2016 23:15
Letzter Beitrag: SkobyMobil
Lightbulb Steuerung einer Modellbahn mit Arduino und PC via ethernet nilsh 8 5.280 19.03.2015 18:10
Letzter Beitrag: Home38
  Bau einer lokalisierbaren Schutzweste IIHoffyII 5 1.954 18.08.2014 00:25
Letzter Beitrag: rkuehle
  Steuerung einer Junkers Gas Kombitherme Nibles 3 5.380 17.09.2013 12:16
Letzter Beitrag: Stefan
  Steuerung und Visualisierung einer Heizungsanlage profwebapps 2 7.276 17.08.2013 15:59
Letzter Beitrag: rkuehle

Gehe zu:


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