Hallo,
Ich habe seit dem Update auf die neuste Arduino Version ein problem mit meiner Libary und einer meiner Programmierungen. Da ich wusste, dass alle libarys gelöscht werden, habe ich alle Ordner auf einen Stick gezogen und später wieder eingefügt. Bei allen funktionerte alles, abgesehen von LiquidCrystal. Auch andere Versionen davon funktionierten nicht, kann mir jemand helfen?
Und vor allem: Was ist mein Fehler?
PS. Der error zeigt an:
probe1.1:10: error: 'POSITIVE' was not declared in this scope
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
^
exit status 1
'POSITIVE' was not declared in this scope
Ungültige Bibliothek C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal in C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal gefunden
Meine Programmierung(Ich weiß, dass sie schrecklich ist :/)
#include <OneWire.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
Time t;
OneWire ds(2);
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int Rate = 950;
int mL = 10000;
int Impuls = 0;
float DelValue = 0;
float Value = 0;
float TempValue = 0;
const int taste1 = 3;
const int taste2 = 4;
const int taste3 = 6;
const int taste4 = 5;
int taststatus1 = 0;
int taststatus2 = 0;
int taststatus3 = 0;
int taststatus4 = 0;
const int ledPin1 = 9;
const int ledPin2 = 11;
const int ledPin3 = 13;
int var = 0;
void setup()
{
Serial.begin(9600);
Wire.begin();
lcd.begin(20,4); //LCD starten
rtc.begin();
pinMode(ledPin1, OUTPUT); //ledPin1 als output setzen
pinMode(ledPin2, OUTPUT); //ledPin2 als output setzen
pinMode(taste1, INPUT); //taste1 als input setzen
pinMode(taste2, INPUT); //taste2 als input setzen
pinMode(taste3, INPUT); //taste3 als input setzen
pinMode(taste4, INPUT); //taste4 als input setzen
}
void loop()
{
//rtc.setTime(hh, mm, ss)
//c.setDate(DD, MM, YYYY)
t = rtc.getTime(); //Zeit erhalten
unsigned long currentMillis = millis();
Value = mL * 1;
Value = Value / Rate;
taststatus4 = digitalRead(taste4);
taststatus1 = digitalRead(taste1); //Werte erhöhen
if (taststatus1 == HIGH)
{
digitalWrite(ledPin1, HIGH);
var = var + 1;
} else if (taststatus4 == HIGH)
{
digitalWrite(ledPin1, LOW);
var = 0;
}
if (DelValue >= 10000)
{
digitalWrite(ledPin1, LOW);
var = 0;
}
if (var >= 1)
{
DelValue = DelValue + Value;
Impuls = Impuls + 1;
}
taststatus2 = digitalRead(taste2); //Werte senken
if (taststatus2 == HIGH)
{
digitalWrite(ledPin2, HIGH);
var = var - 1;
} else if (taststatus4 == HIGH)
{
digitalWrite(ledPin2, LOW);
var = 0;
}
if (DelValue <= 0)
{
digitalWrite(ledPin2, LOW);
var = 0;
}
if (var <= -1)
{
DelValue = DelValue - Value;
Impuls = Impuls - 1;
}
taststatus3 = digitalRead(taste3); //Werte zurücksetzen auf 0
if (taststatus3 == HIGH)
{
digitalWrite(ledPin3, HIGH);
Impuls = 0;
DelValue = 0;
}
else {
digitalWrite(ledPin3, LOW);
}
//Werte auf den seriellen Monitor projizieren
Serial.print("Impulse: "); //"Impulse:" auf der LCD anzeigen
Serial.print(Impuls);
Serial.print(" mL: "); //"mL:" auf der LCD anzeigen
Serial.println(DelValue);
lcd.setCursor(0,0); //Datum und Uhrzeit auf LCD projizieren
lcd.print(rtc.getDateStr());
lcd.print(" ");
lcd.print(rtc.getTimeStr());
lcd.setCursor(0,2); //Werte auf LCD projizieren
lcd.print(" mL: ");
if (DelValue <= 0){ //Variable auf LCD anzeigen und bei wert = oder < als 0 4 Leerzeichen anzeigen
lcd.print (" ");
lcd.print (DelValue);
}
else if(DelValue <= 10){ //Variable auf LCD anzeigen und bei wert = oder < als 10 3 Leerzeichen anzeigen
lcd.print(" ");
lcd.print(DelValue);
}
else if(DelValue <=100){ //Variable auf LCD anzeigen und bei wert = oder < als 100 2 Leerzeichen anzeigen
lcd.print(" ");
lcd.print(DelValue);
}
else if(DelValue <= 1000){ //Variable auf LCD anzeigen und bei wert = oder < als 1000 1 Leerzeichen anzeigen
lcd.print(" ");
lcd.print(DelValue);
}
else if(DelValue <= 10000){ //Variable auf LCD anzeigen und bei wert = oder < als 10000 0 Leerzeichen anzeigen
lcd.print(" ");
lcd.print(DelValue);
}
Serial.print (TempValue, 2);
}
MFG
PixelWalker