Habe mich gestern hier angemeldet und hoffe, daß mir jemand weiterhelfen kann.
Bei der Programmierung eines funktionierendes Sketches mit Einbindung von Libraries, in diesem Falle der "One Wire" und "Dallas_Temperature" bekomme ich bei der Kompilierungs-Prüfung eine Reihe von Fehlern im Sketch angezeigt.
Bei der Suche in diesem Forum nach einem einfachem Sketch bin ich nicht fündig geworden, was nicht heißen soll das es hierzu bestimmt auch ein Anfänger-Thread existiert.
Mein Hauptproblem ist in diesem Falle die korrekte Einbindung von Libraries in denen selbst noch einige Code-Modifikationen notwendig sind.
"eine Reihe von Fehlern" in einem unbekannten Sketch unter Verwendung unbekannter Hardware und Verschaltung also.
Na, das ist doch eine unserer leichtesten Aufgaben
Kurzum: ohne bissel mehr Details kann Dir nicht geholfen werden. Wobei Du ja noch nicht mal ne Frage stellst - vielleicht willst Du uns einfach nur Dein Problem mitteilen? ]
WattihrVolt:
"Dallas_Temperature" bekomme ich bei der Kompilierungs-Prüfung eine Reihe von Fehlern im Sketch angezeigt.
Bevor Du Libraries "benutzen" kannst, mußt Du diese "installiert" haben, was unter Arduino darin besteht, dass Du die Library-Dateien an die passende Stelle auf der Festplatte kopierst und dann die Arduino-Software neu startest.
Die korrekte Installation einer Library testest Du am besten anhand eines der zur Library beigefügten Programmierbeispiele, die Du jeweils findest unter:
Datei - Beispiele - [Name der Library]
Es geht um den Arduino Uno, mit folgendem Beispiel-Sketch.
Nachtrag:
Bei Verwendung des Beispiel Sketches "simple" der Arduino IDE kommen folgende Fehlermeldungen:
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp:85:24: error: WConstants.h: No such file or directory
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp: In constructor 'OneWire::OneWire(uint8_t)':
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp:93: error: 'digitalPinToBitMask' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp:94: error: 'digitalPinToPort' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp:94: error: 'portInputRegister' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp: In member function 'uint8_t OneWire::reset()':
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp:127: error: 'delayMicroseconds' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp:134: error: 'delayMicroseconds' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp: In member function 'void OneWire::write_bit(uint8_t)':
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp:157: error: 'delayMicroseconds' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp:165: error: 'delayMicroseconds' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp: In member function 'uint8_t OneWire::read_bit()':
C:\Program Files (x86)\Arduino\libraries\OneWire\OneWire.cpp:185: error: 'delayMicroseconds' was not declared in this scope
// Data wire is plugged into port 2 on the Arduino #define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library
sensors.begin();
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print("Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
Serial.print("Temperature for the device 1 (index 0) is: ");
Serial.println(sensors.getTempCByIndex(0));
}
MfG
WattihrVolt
PS: Sorry, für meine noch etwas unqualifizierten Postings..... aber Aller Anfang ist eben schwer
Die Bibliothek ist veraltet.
Du musst in den betreffenden Dateien einfach
-WConstants.h
durch
-arduino.h ersetzen.
In deinem Falle wohl die oneWire.cpp.
Das Kochbuch brauchste dazu nicht.
Das Problem rührt daher, dass bei irgendeiner Version der IDE einiges geändert wurde. Unter anderem wurde eben diese WConstants.h in arduino.h umbenannt (vermutlich bei der Gelegenheit mit anderne zusammengeworfen oder so), und Bibliotheken, die für vorherige Versionen geschrieben wurden, einfach teilweise nicht aktualisiert wurden.
Das kommt immer wieder mal vor...