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
delay Fehler
09.03.2014, 14:08
Beitrag #1
delay Fehler
Hallo, ich habe schon versucht meinen Fehler selbst zu lösen, aber trotz Buch und Internet, komme ich nicht weiter.
Ich habe einen originalen Arduino Uno und einen SainSmart Uno.
Die Ausgabe von Texten auf einem Display habe ich hinbekommen, aber bekomme keinen Temperatursensor ausgelesen.

Hab mir einen DS18B20 besorgt und nach einer Anleitung,im "parasitären Betrieb" aus dem Net angeklemmt.

Sketch:

#include <OneWire.h>
#include <DallasTemperature.h>

// 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);

// arrays to hold device address
DeviceAddress insideThermometer;

void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");

// locate devices on the bus
Serial.print("Locating devices...");
sensors.begin();
Serial.print("Found ");
Serial.print(sensors.getDeviceCount(), DEC);
Serial.println(" devices.");

// report parasite power requirements
Serial.print("Parasite power is: ");
if (sensors.isParasitePowerMode()) Serial.println("ON");
else Serial.println("OFF");

// assign address manually. the addresses below will beed to be changed
// to valid device addresses on your bus. device address can be retrieved
// by using either oneWire.search(deviceAddress) or individually via
// sensors.getAddress(deviceAddress, index)
//insideThermometer = { 0x28, 0x1D, 0x39, 0x31, 0x2, 0x0, 0x0, 0xF0 };

// Method 1:
// search for devices on the bus and assign based on an index. ideally,
// you would do this to initially discover addresses on the bus and then
// use those addresses and manually assign them (see above) once you know
// the devices on your bus (and assuming they don't change).
if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0");

// method 2: search()
// search() looks for the next device. Returns 1 if a new address has been
// returned. A zero might mean that the bus is shorted, there are no devices,
// or you have already retrieved all of them. It might be a good idea to
// check the CRC to make sure you didn't get garbage. The order is
// deterministic. You will always get the same devices in the same order
//
// Must be called before search()
//oneWire.reset_search();
// assigns the first address found to insideThermometer
//if (!oneWire.search(insideThermometer)) Serial.println("Unable to find address for insideThermometer");

// show the addresses we found on the bus
Serial.print("Device 0 Address: ");
printAddress(insideThermometer);
Serial.println();

// set the resolution to 9 bit (Each Dallas/Maxim device is capable of several different resolutions)
sensors.setResolution(insideThermometer, 9);

Serial.print("Device 0 Resolution: ");
Serial.print(sensors.getResolution(insideThermometer), DEC);
Serial.println();
}

// function to print the temperature for a device
void printTemperature(DeviceAddress deviceAddress)
{
// method 1 - slower
//Serial.print("Temp C: ");
//Serial.print(sensors.getTempC(deviceAddress));
//Serial.print(" Temp F: ");
//Serial.print(sensors.getTempF(deviceAddress)); // Makes a second call to getTempC and then converts to Fahrenheit

// method 2 - faster
float tempC = sensors.getTempC(deviceAddress);
Serial.print("Temp C: ");
Serial.print(tempC);
Serial.print(" Temp F: ");
Serial.println(DallasTemperature::toFahrenheit(tempC)); // Converts tempC to Fahrenheit
}

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");

// It responds almost immediately. Let's print out the data
printTemperature(insideThermometer); // Use a simple function to print out the data
}

// function to print a device address
void printAddress(DeviceAddress deviceAddress)
{
for (uint8_t i = 0; i < 8; i++)
{
if (deviceAddress[i] < 16) Serial.print("0");
Serial.print(deviceAddress[i], HEX);
}
}

Ich bekomme immer den Fehler:
C:\Users\X\Documents\Arduino\OneWire\DallasTemperature.cpp:
259: error: `delay`was not declared in this scope

Der Sketch ist stammt aus einer Library und nicht von mir, aber irgendwas mach ich falsch, mein Buch hat mir da irgendwie auch nicht weiter geholfen, vielleicht kann mir hier jemand weiterhelfen. Ich verzweifel so langsam, immer mehr.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.03.2014, 21:46
Beitrag #2
RE: delay Fehler
Hallo crazy-devil,

hzast du die Dallas - Library auch im Verzeichnis "libraries" der IDE abgelegt? Und auch nur dort?
Der Sketch wird bei mir ohne Probleme übersetzt. Anbei noch die Lib die ich benutze.
Grüße Ricardo


Angehängte Datei(en)
.zip  DallasTemperature.zip (Größe: 21,58 KB / Downloads: 61)

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.03.2014, 23:23
Beitrag #3
RE: delay Fehler
Ich glaube ich hab mir da mit den Libraries selbst ein Bein gestellt.
Da das nicht so funktioniert hatte wie ich wollte hab ich die total wirr und manche doppelt entpackt.

Im Arduino Programm bekomm ich sie angezeigt bei den Libraries.

Können meine doppelt und dreifach Bibliotheken das Problem sein?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.03.2014, 21:23
Beitrag #4
RE: delay Fehler
Ich danke dir, mein Problem ist gelöst.
Ich habe die Arduino-Software neu installiert, die Onewire-und die Dallas Library über Arduino integriert.
Funktioniert einwandfrei
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Fehler in meinem Programm Franz54 7 161 01.12.2016 23:58
Letzter Beitrag: hotsystems
  Fehler im Programmablauf binderj1 14 354 10.10.2016 10:29
Letzter Beitrag: StephanBuerger
  Fehler beim Kompilieren binderj1 5 295 03.10.2016 21:27
Letzter Beitrag: hotsystems
Smile Simpler Fehler bei MAP? malsehen 8 229 02.10.2016 19:46
Letzter Beitrag: malsehen
  Fehler beim Speichern von Projekten Manni66 16 687 23.08.2016 10:05
Letzter Beitrag: hotsystems
  Delay nurmili 2 219 10.07.2016 16:55
Letzter Beitrag: nurmili
  Ausgabe druckt immer 2 Werte anstatt nur einen. Finde den Fehler nicht TimeMen 24 740 02.07.2016 14:18
Letzter Beitrag: hotsystems
  Problem mit Delay und Millis funnyzocker 1 459 26.06.2016 09:54
Letzter Beitrag: hotsystems
  Adafruit SD-master / logger shield: Fehler beim 2. Kompilieren kl-ing 3 337 06.06.2016 16:07
Letzter Beitrag: Bitklopfer
  Fehler beim Kompilieren Rudi 4 897 05.02.2016 19:46
Letzter Beitrag: Rudi

Gehe zu:


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