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
Fehlermeldung 'class DS3231' has no member named 'lostPower'
12.10.2019, 13:12
Beitrag #1
Fehlermeldung 'class DS3231' has no member named 'lostPower'
Hi, ich bekomme immer wieder diese Fehlermeldung beim Versuch, eine RTC DS3231 in meinen Code (und meine Schaltung einzubinden). Falls jemand den Fehler in meinem Code entdeckt, bitte sagt Bescheid.

Ich benutze folgende Librabry: http://www.rinkydinkelectronics.com/library.php?id=73

Der Code:
Code:
#include <Wire.h>
#include <DS3231.h>
#include <OneButton.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>

DS3231  rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);

#define DHTTYPE DHT11
#define DHTPIN 9
DHT dht (DHTPIN, DHTTYPE);

int sensorPin = A3;
int sensorValue = 0;
int percentValue = 0;

const int  buttonPin = 8;
int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int lastButtonState = 0;     // previous state of the button

void setup(){
  lcd.begin(16, 2);
  lcd.clear();

  pinMode(buttonPin, INPUT);
  Serial.begin(9600);

  delay(3000);

  dht.begin();
  //Serial.println(F("DHTxx test!"));

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }
   //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));  
  
}


void loop(){

  DateTime now = rtc.now();

  buttonState = digitalRead(buttonPin);
  if (buttonState != lastButtonState) {
    lcd.clear();
    // if the state has changed, increment the counter
    if (buttonState == HIGH) {
      // if the current state is HIGH then the button went from off to on:
      buttonPushCounter++;
      Serial.println("on");
      Serial.print("number of button pushes: ");
      Serial.println(buttonPushCounter);
    } else {
      // if the current state is LOW then the button went from on to off:
      Serial.println("off");
    }
    // Delay a little bit to avoid bouncing
    delay(50);
  }
  // save the current state as the last state, for next time through the loop
  lastButtonState = buttonState;
  buttonPushCounter = buttonPushCounter %=4;

  sensorValue = analogRead(sensorPin);
  //Serial.print("\n\nAnalog Value: ");
  //Serial.print(sensorValue);
  
  percentValue = map(sensorValue, 1023, 200, 0, 100);
  Serial.print("\nSoilMoisture.: ");
  Serial.print(percentValue);
  Serial.println("%");
  

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  float f = dht.readTemperature(true);
  
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  //float hif = dht.computeHeatIndex(f, h);
  //float hic = dht.computeHeatIndex(t, h, false);

  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F("°C "));
  Serial.println();
  //Serial.print(f);
  //Serial.print(F("°F  Heat index: "));
  //Serial.print(hic);
  //Serial.print(F("°C "));
  //Serial.print(hif);
  //Serial.println(F("°F"));
  
if (buttonPushCounter == 0) {
  lcd.setCursor(6, 1);
   if (now.hour() < 10) {
    lcd.print("0");
  }
  lcd.print(now.hour(), DEC);
  lcd.print(':');
   if (now.minute() < 10) {
    lcd.print("0");
  }
  lcd.print(now.minute(), DEC);
  lcd.print(':');
  if (now.second() < 10) {
    lcd.print("0");
  }
  lcd.print(now.second(), DEC);
  }
if (buttonPushCounter == 1) {
  lcd.setCursor(6, 1);
  lcd.print(now.day(), DEC);
  lcd.print('/');
  lcd.print(now.month(), DEC);
  lcd.print('/');
  lcd.print(now.year(), DEC); }
if (buttonPushCounter == 2) {  
  int chk = dht.read(DHTPIN);
  lcd.setCursor(0,0);
  lcd.print("Temp: ");
  lcd.print(t);
  lcd.print((char)223);
  lcd.print("C");
  lcd.setCursor(0,1);
  lcd.print("Humidity: ");
  lcd.print(h);
  lcd.print("%");
  delay(1000); }
if (buttonPushCounter == 3) {
  lcd.setCursor(0, 0);
  lcd.print("Soil M.: ");
  lcd.print(percentValue);
  lcd.print("%");
  delay(1000);
  lcd.clear(); }

if (now.second() == 59){
  delay(1000);
  lcd.clear(); }

  
  delay(1);
}

Die Fehlermeldung:
Code:
C:\Users\jonas\OneDrive\Dokumente\Arduino\sketch_biotopneu\sketch_biotopneu.ino:​ In function 'void setup()':

sketch_biotopneu:46:11: error: 'class DS3231' has no member named 'lostPower'

   if (rtc.lostPower()) {

           ^

sketch_biotopneu:49:9: error: 'class DS3231' has no member named 'adjust'

     rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

         ^

sketch_biotopneu:49:49: error: 'DateTime' was not declared in this scope

     rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

                                                 ^

C:\Users\jonas\OneDrive\Dokumente\Arduino\sketch_biotopneu\sketch_biotopneu.ino:​ In function 'void loop()':

sketch_biotopneu:61:3: error: 'DateTime' was not declared in this scope

   DateTime now = rtc.now();

   ^

sketch_biotopneu:121:8: error: 'now' was not declared in this scope

    if (now.hour() < 10) {

        ^

sketch_biotopneu:124:13: error: 'now' was not declared in this scope

   lcd.print(now.hour(), DEC);

             ^

sketch_biotopneu:138:13: error: 'now' was not declared in this scope

   lcd.print(now.day(), DEC);

             ^

sketch_biotopneu:163:5: error: 'now' was not declared in this scope

if (now.second() == 59){

     ^

exit status 1
'class DS3231' has no member named 'lostPower'
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.10.2019, 13:25
Beitrag #2
RE: Fehlermeldung 'class DS3231' has no member named 'lostPower'
Es sieht danach aus, dass die verwendete Library nicht zu deinem Sketch passt.

Verwende lieber ein Beispiel aus der Library die du einsetzt.

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
  Fehlermeldung bei Sketch upladen Tellen 9 375 10.02.2020 09:33
Letzter Beitrag: Tellen
  plötzlich merkwürdige Fehlermeldung beim Übersetzen Jan99 4 225 30.01.2020 16:45
Letzter Beitrag: Tommy56
  Multi-Timer-Class Gorathan 7 496 03.12.2019 11:26
Letzter Beitrag: Gorathan
  Verschiede Adressen für DS3231 daja64 6 378 21.11.2019 20:14
Letzter Beitrag: Tommy56
  I2C: Arduino DUE -- DS3231: Merkwürdiges Problem GuaAck 9 778 16.11.2019 22:39
Letzter Beitrag: hotsystems
  Fehlermeldung (wegen BME 280 Sensor?) Schneggl 3 389 26.10.2019 09:28
Letzter Beitrag: Tommy56
  undefined reference und non-class type in template class BennIY 3 514 03.10.2019 18:41
Letzter Beitrag: Tommy56
  Anfänger: Fehlermeldung expected primary-expression before Reiseeck 5 1.080 31.05.2019 12:09
Letzter Beitrag: amithlon
  Fehlermeldung Gerd42 6 828 07.05.2019 21:17
Letzter Beitrag: hotsystems
  Fehlermeldung was not declared Harry 5 951 03.04.2019 12:45
Letzter Beitrag: Harry

Gehe zu:


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