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
Zähler über RC-Fernsteuerung
12.04.2015, 19:00
Beitrag #9
RE: Zähler über RC-Fernsteuerung
Hi,
Du musst da gar keine Schleife erstellen. Du musst nur die ganzen ifs in die Funktion loop verschieben.
Mal so zur Nomenklatur:
Das Ding, das "loop" heißt, ist keine Schleife, sondern eine Funktion. Die Funktion loop wird vom Hauptprogramm in einer Schleife aufgerufen. (Genau genommen ist es eine for-Schleife. Das kann man sehen, wenn man sich auf die Suche nach main.cpp macht.
Das Wort "if" leitet auch keine Schleife ein, sondern eine Verzweigung.
Sorry, das musste mal sein.
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
12.04.2015, 20:08 (Dieser Beitrag wurde zuletzt bearbeitet: 12.04.2015 20:17 von do1xxy.)
Beitrag #10
RE: Zähler über RC-Fernsteuerung
(12.04.2015 18:58)Eichner schrieb:  Hallo armin,
Sollen die if bedingungen mit der count schleife zusamen abgehandelt werden? Oder soll beim Count() Aufruf nur a um eins erhöht werden? Ich denke Du hast die geschwungene klammer zu früh gesetzt. Die hinter a=a+1.
Setze die geschwungene Klammer hinter die if Bedingungen und die Fehlermeldungen dürften weg sein.
Gruß Sven

Hallo Sven,
die if Bedingungen sollen zusammen mit dem Aufruf abgearbeitet werden. Ziel ist es mit dem Steuerknüppel der Fernsteuerung jeweils eine LED anzusteuern während die vorherige wieder deaktiviert wird.. Ich werde Deinen Vorschlag zuhause ausprobieren.

Danke auf jeden Fall für Deine unterstützung.
Armin

(12.04.2015 19:00)Thorsten Pferdekämper schrieb:  Hi,
Du musst da gar keine Schleife erstellen. Du musst nur die ganzen ifs in die Funktion loop verschieben.
Mal so zur Nomenklatur:
Das Ding, das "loop" heißt, ist keine Schleife, sondern eine Funktion. Die Funktion loop wird vom Hauptprogramm in einer Schleife aufgerufen. (Genau genommen ist es eine for-Schleife. Das kann man sehen, wenn man sich auf die Suche nach main.cpp macht.
Das Wort "if" leitet auch keine Schleife ein, sondern eine Verzweigung.
Sorry, das musste mal sein.
Gruß,
Thorsten

Hallo Thorsten,
bezogen auf Deine Richtigstellung bzgl. loop und if: wo Du recht hast, hast Du recht.

Wie bereits geschrieben, wenn ich morgen zuhause bin werde ich den Sketch ändern.
THNX aus Lüneburg
Armin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.04.2015, 20:21
Beitrag #11
RE: Zähler über RC-Fernsteuerung
(12.04.2015 20:08)do1xxy schrieb:  
(12.04.2015 18:58)Eichner schrieb:  Hallo armin,
Sollen die if bedingungen mit der count schleife zusamen abgehandelt werden? Oder soll beim Count() Aufruf nur a um eins erhöht werden? Ich denke Du hast die geschwungene klammer zu früh gesetzt. Die hinter a=a+1.
Setze die geschwungene Klammer hinter die if Bedingungen und die Fehlermeldungen dürften weg sein.
Gruß Sven

Hallo Sven,
die if Bedingungen sollen zusammen mit dem Aufruf abgearbeitet werden. Ziel ist es mit dem Steuerknüppel der Fernsteuerung jeweils eine LED anzusteuern während die vorherige wieder deaktiviert wird.. Ich werde Deinen Vorschlag zuhause ausprobieren.

Danke auf jeden Fall für Deine unterstützung.
Armin

(12.04.2015 19:00)Thorsten Pferdekämper schrieb:  Hi,
Du musst da gar keine Schleife erstellen. Du musst nur die ganzen ifs in die Funktion loop verschieben.
Mal so zur Nomenklatur:
Das Ding, das "loop" heißt, ist keine Schleife, sondern eine Funktion. Die Funktion loop wird vom Hauptprogramm in einer Schleife aufgerufen. (Genau genommen ist es eine for-Schleife. Das kann man sehen, wenn man sich auf die Suche nach main.cpp macht.
Das Wort "if" leitet auch keine Schleife ein, sondern eine Verzweigung.
Sorry, das musste mal sein.
Gruß,
Thorsten

Hallo Thorsten,
bezogen auf Deine Richtigstellung bzgl. loop und if: wo Du recht hast, hast Du recht.

Wie bereits geschrieben, wenn ich morgen zuhause bin werde ich den Sketch ändern.
THNX aus Lüneburg
Armin

Moin Sven,

der Tip von Dir war richtig. Der Counter zählt jetzt bei jedem Impuls bis zur gewünschten Endzahl hoch und bleibt dann dort stehen. Zwischendurch kann der Reset durchgeführt werden und alles geht auf Null. Bleibt ein einziges Problem dass zum Neustart die Spannung abgenommen werden muss. Da habe ich aber eine Ahnung woran das liegt.

Noch einmal meinen besten Dank und eine schöne Woche
Armin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.04.2015, 22:37
Beitrag #12
RE: Zähler über RC-Fernsteuerung
Hallo Armin,
schön das ich helfen konnte und danke für die Rückmeldung

Gruß Sven

Nichts auf der Welt ist unnütz, es kann im schlimmsten Fall immer noch als schlechtes Beispiel dienen.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.04.2015, 13:09
Beitrag #13
RE: Zähler über RC-Fernsteuerung - FERTIG
Hallo Sven und Thomas,

der Sketch ist dank Eurer Unterstützung fertig.

Damit auch andere Forenmitglieder etwas davon haben, hier der vollständige Sketch:
Code:
int Led1 = 2;
int Led2 = 3;
int Led3 = 4;
int Led4 = 5;
int Led5 = 6;
int u = 10;
int d = 11;
int led=750; //Verzögerung zwischen den Eingabeimpulsen

int RCPin = 12; // weist Pin 12 als Eingang für down und up zu

int a=1; // Wert für variable a

byte rcsignal  = 75; // Auswertung Dauert RC-Signal
unsigned long duration;  // Zeitvariable für den

void setup()

{
  pinMode(Led1, OUTPUT);
  pinMode(Led2, OUTPUT);
  pinMode(Led3, OUTPUT);
  pinMode(Led4, OUTPUT);
  pinMode(Led5, OUTPUT);
  pinMode(u, OUTPUT);
  pinMode(d, OUTPUT);


  pinMode(RCPin, INPUT);
}

void loop()  // Auswertung des Signales vom Empfänger

{



  duration = pulseIn(RCPin, HIGH, 20000);
  rcsignal = map(duration, 1090, 1929, 0, 150);

  if(rcsignal > 120)   // ist das Signal länger als 120ms gehe zur Zählerschleife (count)
  {
    count();
  }
  if(rcsignal < 30)   // ist das Signal kleiner 30ms gehe zur Resetschleife (reset)
  {
    reset();
  }

}
void count() // Zählerschleife für die Selektion der Statusausgänge 1 bis 5

{
  a=a+1;  


  if (a==1)// wenn a= 1 gehe zu Kanal 1
  {
    kanal1();
  }    

  if (a==2)// wenn a= 1 gehe zu Kanal 2
  {
    kanal2();
  }    

  if (a==3)// wenn a= 1 gehe zu Kanal 3
  {
    kanal3();
  }    

  if (a==4)// wenn a= 1 gehe zu Kanal 4
  {
    kanal4();
  }    

  if (a==5)// wenn a= 1 gehe zu Kanal 5
  {
    kanal5();
  }    

  if (a==6)// wenn a= 6 gehe zu Kanal 1

    a=0;
  {
    setup();
  }    
}
void kanal1()  

{// Kanal 1
  digitalWrite(Led1, HIGH);
  digitalWrite(Led2, LOW);
  digitalWrite(Led3, LOW);
  digitalWrite(Led4, LOW);
  digitalWrite(Led5, LOW);
  delay(led);
}

void kanal2()
{// Kanal2
  digitalWrite(Led1, LOW);
  digitalWrite(Led2, HIGH);
  digitalWrite(Led3, LOW);
  digitalWrite(Led4, LOW);
  digitalWrite(Led5, LOW);
  delay(led);
}

void kanal3()
{// Kanal 3
  digitalWrite(Led1, LOW);
  digitalWrite(Led2, LOW);
  digitalWrite(Led3, HIGH);
  digitalWrite(Led4, LOW);
  digitalWrite(Led5, LOW);
  delay(led);
}

void kanal4()
{// Kanal 4
  digitalWrite(Led1, LOW);
  digitalWrite(Led2, LOW);
  digitalWrite(Led3, LOW);
  digitalWrite(Led4, HIGH);
  digitalWrite(Led5, LOW);
  delay(led);
}

void kanal5()
{// Kanal 5
  digitalWrite(Led1, LOW);
  digitalWrite(Led2, LOW);
  digitalWrite(Led3, LOW);
  digitalWrite(Led4, LOW);
  digitalWrite(Led5, HIGH);
  delay(led);
}

void reset() // zurücksetzen des Zählers a=0 und alle Ausgänge auf Null setzen
{
  digitalWrite(Led1, LOW);
  digitalWrite(Led2, LOW);
  digitalWrite(Led3, LOW);
  digitalWrite(Led4, LOW);
  digitalWrite(Led5, LOW);

  a=0;
}

Die Delayzeit sollte 250ms nicht unterschreiten, da sonst der Eingang bei der Bewegung des Knüppels ein ähnliches Verhalten wie das Tastenprellen zeigt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.04.2015, 19:28
Beitrag #14
RE: Zähler über RC-Fernsteuerung
Hallo,
super sevice, das Du deinen fertigen Sketch noch mal einstellst.
nun noch was anderes, die Schreibweise um eine Variable um eins zu erhöhen lässt sich abkürzen. Anstatt a=a+1 geht auch a++
die Wirkung ist die gleiche. Geht auch mit -.

Gruß Sven

Nichts auf der Welt ist unnütz, es kann im schlimmsten Fall immer noch als schlechtes Beispiel dienen.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.04.2015, 20:44
Beitrag #15
RE: Zähler über RC-Fernsteuerung
(14.04.2015 19:28)Eichner schrieb:  Hallo,
super sevice, das Du deinen fertigen Sketch noch mal einstellst.
nun noch was anderes, die Schreibweise um eine Variable um eins zu erhöhen lässt sich abkürzen. Anstatt a=a+1 geht auch a++
die Wirkung ist die gleiche. Geht auch mit -.

Gruß Sven

Hallo Sven,

THNX für den Hinweis, wieder etwas dazugelernt. Ich merke dass ich mich langsam von den alten BASIC-Konventionen verabschieden muss.

Gruß
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
Video Canon EOS Trigger Box mit Menüsteuerung über Rotary Wampo 27 7.988 13.11.2016 23:13
Letzter Beitrag: Tommy56
  Benachrichtigungen bei Wassereinbruch über Twitter mit Arduino! drimrim 1 730 23.06.2016 07:15
Letzter Beitrag: drimrim
  Grillregelung über PID MarkoM 1 1.884 04.12.2015 04:43
Letzter Beitrag: Scherheinz
  Fernsteuerung mit RFM 12 B Tellen 9 2.042 06.09.2015 14:25
Letzter Beitrag: HaWe
  2 LEDs über serielle Schnittstelle steuern Bill 0 1.017 13.08.2015 16:04
Letzter Beitrag: Bill
Question [Problem] TFA Nexus über Arduino auf WeatherUnderground übertragen Alfonz_Ritzek 0 1.076 28.03.2015 10:42
Letzter Beitrag: Alfonz_Ritzek
Lightbulb LED Thermometer über WS2812b LED und Dallas DS18B20 Wampo 2 1.736 15.03.2015 17:45
Letzter Beitrag: Wampo
  Für eine Dartescheibe, einen Zähler entwerfen and1 2 1.560 17.01.2015 13:03
Letzter Beitrag: and1
  Lüftersteuerung über Taupunkt daruel 17 10.595 23.08.2014 19:26
Letzter Beitrag: apex
  RC-Fernsteuerung - Schaltunktionen halten do1xxy 5 2.233 19.08.2014 13:26
Letzter Beitrag: do1xxy

Gehe zu:


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