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
'printValues' was not declared in this scope
02.12.2020, 07:54 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2020 07:56 von Gekko.)
Beitrag #1
'printValues' was not declared in this scope
Hallo habe den oben genannten Fehler im folgenden Example Scetch. Bin absoluter Anfänger und experimentiere gerade mit einem BME280 und Wemos D1 Mini herum.

Code:
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <stdio.h>
#include <Arduino.h>



#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C


unsigned long delayTime;

void setup() {
    Serial.begin(9600);
    Serial.println(F("BME280 test"));

    if (! bme.begin(0x77, &Wire)) {
        Serial.println("Could not find a valid BME280 sensor, check wiring!");
        while (1);
    }

    Serial.println("-- Default Test --");
    Serial.println("normal mode, 16x oversampling for all, filter off,");
    Serial.println("0.5ms standby period");
    delayTime = 5000;
    
    
    // For more details on the following scenarious, see chapter
    // 3.5 "Recommended modes of operation" in the datasheet
    
/*
    // weather monitoring
    Serial.println("-- Weather Station Scenario --");
    Serial.println("forced mode, 1x temperature / 1x humidity / 1x pressure oversampling,");
    Serial.println("filter off");
    bme.setSampling(Adafruit_BME280::MODE_FORCED,
                    Adafruit_BME280::SAMPLING_X1, // temperature
                    Adafruit_BME280::SAMPLING_X1, // pressure
                    Adafruit_BME280::SAMPLING_X1, // humidity
                    Adafruit_BME280::FILTER_OFF   );
                      
    // suggested rate is 1/60Hz (1m)
    delayTime = 60000; // in milliseconds
*/

/*    
    // humidity sensing
    Serial.println("-- Humidity Sensing Scenario --");
    Serial.println("forced mode, 1x temperature / 1x humidity / 0x pressure oversampling");
    Serial.println("= pressure off, filter off");
    bme.setSampling(Adafruit_BME280::MODE_FORCED,
                    Adafruit_BME280::SAMPLING_X1,   // temperature
                    Adafruit_BME280::SAMPLING_NONE, // pressure
                    Adafruit_BME280::SAMPLING_X1,   // humidity
                    Adafruit_BME280::FILTER_OFF );
                      
    // suggested rate is 1Hz (1s)
    delayTime = 1000;  // in milliseconds
*/

/*    
    // indoor navigation
    Serial.println("-- Indoor Navigation Scenario --");
    Serial.println("normal mode, 16x pressure / 2x temperature / 1x humidity oversampling,");
    Serial.println("0.5ms standby period, filter 16x");
    bme.setSampling(Adafruit_BME280::MODE_NORMAL,
                    Adafruit_BME280::SAMPLING_X2,  // temperature
                    Adafruit_BME280::SAMPLING_X16, // pressure
                    Adafruit_BME280::SAMPLING_X1,  // humidity
                    Adafruit_BME280::FILTER_X16,
                    Adafruit_BME280::STANDBY_MS_0_5 );
    
    // suggested rate is 25Hz
    // 1 + (2 * T_ovs) + (2 * P_ovs + 0.5) + (2 * H_ovs + 0.5)
    // T_ovs = 2
    // P_ovs = 16
    // H_ovs = 1
    // = 40ms (25Hz)
    // with standby time that should really be 24.16913... Hz
    delayTime = 41;
    */
    
    /*
    // gaming
    Serial.println("-- Gaming Scenario --");
    Serial.println("normal mode, 4x pressure / 1x temperature / 0x humidity oversampling,");
    Serial.println("= humidity off, 0.5ms standby period, filter 16x");
    bme.setSampling(Adafruit_BME280::MODE_NORMAL,
                    Adafruit_BME280::SAMPLING_X1,   // temperature
                    Adafruit_BME280::SAMPLING_X4,   // pressure
                    Adafruit_BME280::SAMPLING_NONE, // humidity
                    Adafruit_BME280::FILTER_X16,
                    Adafruit_BME280::STANDBY_MS_0_5 );
                      
    // Suggested rate is 83Hz
    // 1 + (2 * T_ovs) + (2 * P_ovs + 0.5)
    // T_ovs = 1
    // P_ovs = 4
    // = 11.5ms + 0.5ms standby
    delayTime = 12;
*/

    Serial.println();
}


void loop() {
    // Only needed in forced mode! In normal mode, you can remove the next line.
    bme.takeForcedMeasurement(); // has no effect in normal mode
    
    printValues();
    delay(delayTime);
}


void printValues() {
    Serial.print("Temperature = ");
    Serial.print(bme.readTemperature());
    Serial.println(" *C");

    Serial.print("Pressure = ");

    Serial.print(bme.readPressure() / 100.0F);
    Serial.println(" hPa");

    Serial.print("Approx. Altitude = ");
    Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
    Serial.println(" m");

    Serial.print("Humidity = ");
    Serial.print(bme.readHumidity());
    Serial.println(" %");

    Serial.println();
}

platfomrio.ini sieht so aus

Code:
[env:d1_mini]
platform = espressif8266
board = d1_mini
framework = arduino
library =
    Adafruit_Sensor.h
    Adafruit_BME280.h
    Wire.h
    SPI.h

Kann ich mir nicht erklären Programmiere mit Visual Studio Code.

Viele Grüße
Gekko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.12.2020, 08:19
Beitrag #2
RE: 'printValues' was not declared in this scope
Setze die Funktion "printValues()" mal vor das Setup.
Da kann der Compiler etwas nicht erkennen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.12.2020, 10:05 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2020 10:24 von Gekko.)
Beitrag #3
RE: 'printValues' was not declared in this scope
(02.12.2020 08:19)hotsystems schrieb:  Setze die Funktion "printValues()" mal vor das Setup.
Da kann der Compiler etwas nicht erkennen.

ok Funktioniert jetzt, bekomme nur ab und zu Artefakte in der Ausgabe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.12.2020, 10:19
Beitrag #4
RE: 'printValues' was not declared in this scope
(02.12.2020 10:05)Gekko schrieb:  Die Fehlermeldung ist weg, allerdings bekomme ich jetzt auch keine Ausgabe. :/

Das ist doch schon mal eine gute Sache.
Und warum nichts angezeigt wird, liegt wohl am Sketch. Da musst du suchen.

Zitat:platformio habe ich auch angepasst:
platformio kenne ich nicht, kann also dazu nichts sagen.

Zitat:Was bedeutet der letzte Eintrag? Hard resetting via rts pin ?

Da wird der ESP nach dem Flashen resettet.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.12.2020, 10:26 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2020 10:27 von Gekko.)
Beitrag #5
RE: 'printValues' was not declared in this scope
Code:
Temperature = 20.50 *C
Pressure = 1014.96 hPa
Approx. Altitude = -14.22 m
H�+���� = 56.01 %

Temperature = 20.52 *C
Pressure = 1014.99 hPa
Approx. Altitude = -14.49 m
Humidity = 55��␂*j

TempeV��ɕ = 20.53 *C
Pressure = 1014.98 hPa
Approx. Altitude = -14.44 m
Humidity = 55.96 %

Temperature = 20.55 *C
Pressure = 1014.98 hPa
Approx. Altitude = -14.36 m
Humidity = 55.91 %

Hast du eine Ahnung wie das zustande kommt ? War wohl auch nur am Anfang so.
Jetzt zeigt er ganz normale Zahlen an.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.12.2020, 10:37
Beitrag #6
RE: 'printValues' was not declared in this scope
Nimm mal eine höhere Datenrate: zum Beispiel "Serial.begin(115200);"
seriellen Monitor anpassen nicht vergessen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.12.2020, 10:47
Beitrag #7
RE: 'printValues' was not declared in this scope
(02.12.2020 10:37)hotsystems schrieb:  Nimm mal eine höhere Datenrate: zum Beispiel "Serial.begin(115200);"
seriellen Monitor anpassen nicht vergessen.

Vielen Dank habe ich gemacht, funktioniert jetzt echt sehr gut. Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.12.2020, 10:50
Beitrag #8
RE: 'printValues' was not declared in this scope
(02.12.2020 10:47)Gekko schrieb:  
(02.12.2020 10:37)hotsystems schrieb:  Nimm mal eine höhere Datenrate: zum Beispiel "Serial.begin(115200);"
seriellen Monitor anpassen nicht vergessen.

Vielen Dank habe ich gemacht, funktioniert jetzt echt sehr gut. Smile

Prima und danke für die Rückmeldung.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  variable or field declared void Harry 10 2.671 21.02.2020 22:54
Letzter Beitrag: MicroBahner
  'SS_FLASHMEM' was not declared in this scope mitch_m 1 1.675 11.08.2019 15:08
Letzter Beitrag: Tommy56
  Fehlermeldung was not declared Harry 5 2.169 03.04.2019 12:45
Letzter Beitrag: Harry
  analogReadResolution(16); / not declared Mathias 3 4.769 23.10.2015 20:23
Letzter Beitrag: Bitklopfer
  Fehlermeldung : was not declared wuwuwu 5 13.085 22.12.2014 00:17
Letzter Beitrag: Bitklopfer
  CAP1188 - 'SPCR' was not declared in this scope Bensen 4 4.705 24.11.2014 20:56
Letzter Beitrag: Bensen
  Fehler 'TextFinder' was not declared in this scope AlBundy 3 5.167 26.09.2014 12:57
Letzter Beitrag: Thorsten Pferdekämper
  i2cLCD : 'POSITIVE' was not declared in this scope bommel 10 20.535 27.04.2014 16:07
Letzter Beitrag: bommel

Gehe zu:


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