Modellbahnsteuerung mit C++ und Adruino



  • Guten Morgen Zusammen,
    ich bin noch neu hier und noch nicht versiert mit C++.
    Ich möchte über einen Adruino meine Modellbahn steuern.
    nun bekomme ich aber eine Fehlermeldung, mit der ich nichts anfangen kann, da die Definition schon früher geschieht:

    void setup() {
    int i = 0;
    }

    void loop(){
    for (0; i < 5; i=i+1);
    if (i==5){
    delay(1000);
    digitalWrite(Signal_Gleis_5_Grun, LOW);
    digitalWrite(Signal_Gleis_5_Gelb, HIGH);
    delay(1000);
    digitalWrite(Signal_Gleis_5_Gelb, LOW);
    digitalWrite(Signal_Gleis_5_Rot, HIGH);
    }
    if (i==6){
    for(Fahrstrom_Gleis_5 = 255 ; Fahrstrom_Gleis_5 <= 0; Fahrstrom_Gleis_5--);
    analogWrite(10, Fahrstrom_Gleis_5);
    delay(50);
    i=0;
    digitalWrite(Fahrstrom_Gleis_5, LOW);
    }

    der Kompiler markiert mir diese Zeile:
    if (i==6){
    mit der Meldung:
    'i' was not declared in this scope

    was mache ich flasch?



  • Wo ist i definiert?

    for (0; i < 5; i=i+1); Was erwartest du davon?



  • @HaPeBe Das i in setup ist lokal. Das gilt nur in setup



  • @DirkB sagte in Modellbahnsteuerung mit C++ und Adruino:

    @HaPeBe Das i in setup ist lokal. Das gilt nur in setup

    Hallo Dirk,
    warum wird das i dann vorher akzeptiert? Im 1. Teil des Loop?



  • Eigentlich müsste es schon bei

    if(i==5) 
    

    krachen.

    Du deklarierst i nur im Schleifenkörper deiner for-Schleife. Da du die for-Anweisung mit einem ';' abschließt hat die Schleife gar keinen Schleifenkörper in dem etwas passieren könnte.



  • @HaPeBe sagte in Modellbahnsteuerung mit C++ und Adruino:

    warum wird das i dann vorher akzeptiert? Im 1. Teil des Loop?

    Wird es nicht. Vielleicht kannst du deine IDE/deinen Compiler nicht richtig bedienen.



  • Ist sicher die gammelige Arduino IDE. Von der kann ich nur abraten.


Log in to reply