sroudix
Goto Top

Was not declared in this scope

Hallo, ich das Spiel: Senso (Simon Says) für die Schule programmieren, allerdings komme ich grade absolut nicht weiter, ich hoffe es kann mir jemand helfen. Wenn ich das Programm checken lasse kommt die Meldung: 'digitalRead' was not declared in this scope
Das ist mein aktueller Code:

#include "Funktionen.h" 

int LEDS[4] = {2, 3, 4, 5};                       //LEDS deklarieren
int Taster[4] = {50, 51, 52, 53};                 //Taster deklarieren
int ranNum1 = 0;                                  //Zufallszahl deklarieren


int TasterStatus = 0;                             //TasterStatus auf 0 setzen

void Warteschleife()                              //Funktion Warteschleife
{
    int TasterStatus = digitalRead(50);           //TasterStatus bekommt 0 oder 1 Signal vom Taster auf Pin 50
    Serial.print(TasterStatus);

    while (TasterStatus == HIGH)                  //While Schleife damit sich der Vorgang wiederholt
    {

        digitalWrite(2, HIGH);                    //LED 2 HIGH
        digitalWrite(3, HIGH);                    //LED 3 HIGH
        digitalWrite(4, HIGH);                    //LED 4 HIGH
        digitalWrite(5, HIGH);                    //LED 5 HIGH
        delay(500);                               //500ms warten
        digitalWrite(2, LOW);                     //LED 2 LOW
        digitalWrite(3, LOW);                     //LED 3 LOW
        digitalWrite(4, LOW);                     //LED 4 LOW
        digitalWrite(5, LOW);                     //LED 5 LOW
        delay(500);                               //500ms warten

        if (digitalRead(50) == LOW)               //wenn Taster 50 betätigt wird
        {
            break;                                //While schleife Ende
        }
    }
    StarteSpiel();                                //Startet Funktion: StarteSpiel
}

void StarteSpiel()                                //Funktion StarteSpiel
{

    digitalWrite(2, LOW);                         //LED 2 LOW
    digitalWrite(3, LOW);                         //LED 3 LOW
    digitalWrite(4, LOW);                         //LED 4 LOW
    digitalWrite(5, LOW);                         //LED 5 LOW
    Runde1();                                     //Startet Funktion: Runde1
}

void Runde1()                                     //Funktion Runde1
{
    int Status = 0;                               //Status auf 0 setzen
    int merker[10];                               //merker mit 10 Runden deklarieren
    int zaehler = 0;                              // anzahl der gemerkten leds 
    for (int i = 0; i < 10; i++)                  //hochzählen bis 10
    {
        for (int i = 0; i < zaehler; i++)         // durchlaufen der vorherigen erfolgreichen runden
        {
            merker[i];
        }

        //start der hinzukommenden runde
        ranNum1 = random(2, 6);                   //zufällige Zahl zwischen 2 und 5 generieren

        digitalWrite(ranNum1, HIGH);              //zufällige LED der Runde HIGH
        delay(500);                               //500ms warten
        digitalWrite(ranNum1, LOW);               //zufällige LED der Runde LOW
        delay(500);                               //500ms warten

        switch (ranNum1)
        {
         case 2:
            if(digitalRead(53) == LOW)            //wenn Taster 53 gedrückt wird
            {
                digitalWrite(2, HIGH);            //LED 2 HIGH
                delay(500);                       //500ms warten
                digitalWrite(2, LOW);             //LED 2 LOW
                delay(500);                       //500ms warten
                merker[i] = ranNum1;              //Merker merkt sich die zufällige Zahl
                zaehler++;                        //Zaehler geht eine Zahl hoch
                Status = 1;                       //Status wird auf 1 gesetzt
            }
            
            break;                                //Bricht case 2

         case 3:
            if(digitalRead(52) == LOW)            //wenn Taster 52 gedrückt wird
            {
                digitalWrite(3, HIGH);            //LED 3 HIGH
                delay(500);                       //500ms warten
                digitalWrite(3, LOW);             //LED 3 LOW
                delay(500);                       //500ms warten
                merker[i] = ranNum1;              //Merker merkt sich die zufällige Zahl
                zaehler++;                        //Zaehler geht eine Zahl hoch
                Status = 1;                       //Status wird auf 1 gesetzt
            }
            
            break;                                //Bricht case 3 ab

         case 4:
            if(digitalRead(51) == LOW)            //wenn Taster 51 gedrückt wird
            {
                digitalWrite(4, HIGH);            //LED 4 HIGH
                delay(500);                       //500ms warten
                digitalWrite(4, LOW);             //LED 4 LOW
                delay(500);                       //500ms warten
                merker[i] = ranNum1;              //Merker merkt sich die zufällige Zahl
                zaehler++;                        //Zaehler geht eine Zahl hoch
                Status = 1;                       //Status wird auf 1 gesetzt
            }
            
            break;                                //Bricht case 4 ab

         case 5:
            if(digitalRead(50) == LOW)            //wenn Taster 50 gedrückt wird
            {
                digitalWrite(5, HIGH);            //LED 5 HIGH
                delay(500);                       //500ms warten
                digitalWrite(5, LOW);             //LED 5 LOW
                delay(500);                       //500ms warten
                merker[i] = ranNum1;              //Merker merkt sich die zufällige Zahl
                zaehler++;                        //Zaehler geht eine Zahl hoch
                Status = 1;                       //Status wird auf 1 gesetzt
            }
            
            break;                                //bricht Case 5 ab
         

         default:
            break;                                //bricht Switch ab
        }
        if (Status == 0)                          //wenn Status 0 ist
        {
            break;                                //brich for Schleife ab
        }
    }
    if (Status == 0)                              //wenn Status 0 ist
    {
        return;                                   //brich Runde 1 ab
    }
}    

Content-ID: 666960

Url: https://administrator.de/forum/was-not-declared-in-this-scope-666960.html

Ausgedruckt am: 15.04.2025 um 09:04 Uhr

godlie
godlie 21.05.2021 um 09:57:06 Uhr
Goto Top
Hallo,

naja kann es sein das du digitalRead in deiner Funktionen.h nicht definiert hast?
Poste mal den Inhlat der header Datei