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: 97)

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
  Nachtwächter - Fehler im Sketch juergen001 15 289 Gestern 06:54
Letzter Beitrag: juergen001
  Leds dimmen ohne delay jennerlein 9 387 20.04.2018 02:04
Letzter Beitrag: Corvus
  Delay summiert sich auf Moe 7 465 26.02.2018 22:50
Letzter Beitrag: hotsystems
  Hilfe bei diesen Fehler MrMagoo 22 945 06.02.2018 20:03
Letzter Beitrag: hotsystems
  Buzzer ohne Delay Harry 9 735 23.01.2018 12:30
Letzter Beitrag: Tommy56
  <RCReceive.h> Fehler do1xxy 7 436 13.01.2018 13:21
Letzter Beitrag: do1xxy
  Arduino zu MySQL via Wifi Fehler beim compilieren Franzel007 21 1.073 05.01.2018 20:24
Letzter Beitrag: Tommy56
  Arduino Software Serial - Delay notwendig? Zipfel1 18 1.211 02.01.2018 11:59
Letzter Beitrag: Tommy56
  Neuling Fehler beim Kompilieren guenni71 6 801 26.11.2017 16:48
Letzter Beitrag: hotsystems
  M enue System zeigt Fehler rev.antun 11 914 23.11.2017 12:22
Letzter Beitrag: rev.antun

Gehe zu:


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