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
Temperatursensor
12.12.2016, 11:03 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2016 11:10 von Bitklopfer.)
Beitrag #1
Temperatursensor
Hallo an alle,

ich arbeite mich gerade in die Entwicklungsumgebung von Arduino ein und habe folgendes Problem.

Hardware: Arduino Uno
Sensor: Temperatursensor DS18S20

ich habe mir den Sketch Alarm runtergeladen und wollte den Sensor über den Seriellen Monitor auslesen. Das funktioniert auch so weit ganz gut.

Jetzt möchte ich aber das der Sensor wenn dieser unter 20 Grad fällt oder über 30 Grad geht, das meine LED auf Pin 13 aufleuchtet.

Allerdings funktioniert es nicht. Dodgy
kann mir jemand helfen ? Wäre echt super...

Hier der Sketch den ich verwände:

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

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 4

// 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 addresses
DeviceAddress insideThermometer, outsideThermometer;
int LEDPin = 13;

void setup(void)

{
  pinMode(LEDPin,OUTPUT);
  // start serial port
  Serial.begin(9600);
  

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

  // search for devices on the bus and assign based on an index.
  
  if (!sensors.getAddress(outsideThermometer, 1)) Serial.println("Unable to find address for Device 1");

  // show the addresses we found on the bus

  
  Serial.print("Device 1 Address: ");
  printAddress(outsideThermometer);
  Serial.println();

  Serial.print("Device 1 Alarms: ");
  printAlarms(outsideThermometer);
  Serial.println();
  
  Serial.println("Setting alarm temps...");


  
  // alarm when temp is higher than 30C
  sensors.setHighAlarmTemp(outsideThermometer, 30);
  
  // alarn when temp is lower than 20C
  sensors.setLowAlarmTemp(outsideThermometer, 20);
  

  
  Serial.print("New Device 1 Alarms: ");
  printAlarms(outsideThermometer);


  Serial.println();
}

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

// function to print the temperature for a device
void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  Serial.print("Temp C: ");
  Serial.print(tempC);
  Serial.print(" Temp F: ");
  Serial.print(DallasTemperature::toFahrenheit(tempC));
}

void printAlarms(uint8_t deviceAddress[])
{
  char temp;
  temp = sensors.getHighAlarmTemp(deviceAddress);
  
  Serial.print(temp, DEC);
  Serial.print("C/");
  Serial.print(DallasTemperature::toFahrenheit(temp));
  
  temp = sensors.getLowAlarmTemp(deviceAddress);
  Serial.print(temp, DEC);
  Serial.print("C/");
  

}

// main function to print information about a device
void printData(DeviceAddress deviceAddress)
{
  
  printAddress(deviceAddress);
  Serial.print(" ");
  printTemperature(deviceAddress);
  Serial.println();
}

void checkAlarm(DeviceAddress deviceAddress)
{
  if (sensors.hasAlarm(deviceAddress))
  {
    
    Serial.print("ALARM: ");
    digitalWrite(LEDPin,LOW);
    printData(deviceAddress);
    
  }
}

void loop(void)
{
  // call sensors.requestTemperatures() to issue a global temperature
  // request to all devices on the bus
  Serial.print("Requesting temperatures...");
  
  sensors.requestTemperatures();
  Serial.println("DONE");
  
  // Method 1:
  // check each address individually for an alarm condition
    checkAlarm(outsideThermometer);
}  // diese Klammer gehört wohl noch hierher...lgbk


Danke nochmalRolleyes

#### ..ähm sowas gehört zum Programmieren dazu..
ja und Code Tags sind auch gerne gesehen.
mfg
bk Mod.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2016, 12:52
Beitrag #2
RE: Temperatursensor
Ich vermisse in deinem Sketch die "Auswertung" in der du die Temperaturen prüfst und je nach Wert die Led schaltest.
Das kannst du über eine if-Anweisung erledigen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2016, 13:39
Beitrag #3
RE: Temperatursensor
(12.12.2016 12:52)hotsystems schrieb:  Ich vermisse in deinem Sketch die "Auswertung" in der du die Temperaturen prüfst und je nach Wert die Led schaltest.
Das kannst du über eine if-Anweisung erledigen.


Alles Super es funktioniert Rolleyes

Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2016, 14:37
Beitrag #4
RE: Temperatursensor
(12.12.2016 13:39)Obermuda schrieb:  Alles Super es funktioniert Rolleyes

Danke

Mit dem geposteten Sketch ?
Oder mit Änderungen, dann diese bitte posten.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
15.12.2016, 10:45
Beitrag #5
RE: Temperatursensor
Es gibt nichts ärgerliches in einem Forum, wenn jemand die Lösung nicht postet.Angry
Aus solchen Postings kann niemand etwas lernen und sie dienen dem eigentlichen Sinn des Forums absolut NICHT.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.01.2017, 11:37 (Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2017 13:07 von Bitklopfer.)
Beitrag #6
RE: Temperatursensor
Sorry habe ich vergessen. Hier die Auflösung

Code:
#include <GSM_Shield.h>

#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 4
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer, outsideThermometer;
int LEDPin = 13;



void setup(void)

{
  pinMode(LEDPin,OUTPUT);
  Serial.begin(9600);
  sensors.begin();
  
  
  Serial.print("Found ");
  Serial.print(sensors.getDeviceCount(), DEC);
  Serial.println(" devices.");
  if (!sensors.getAddress(outsideThermometer, 1)) Serial.println("Unable to find address for Device 1");
  
  Serial.print("Device 1 Address: ");
  printAddress(outsideThermometer);
  Serial.println();

  Serial.print("Device 1 Alarms: ");
  printAlarms(outsideThermometer);
  Serial.println();
  
  Serial.println("Setting alarm temps...");
  sensors.setHighAlarmTemp(outsideThermometer, 25);
  sensors.setLowAlarmTemp(outsideThermometer, 10);
  Serial.print("New Device 1 Alarms: ");
  printAlarms(outsideThermometer);
  
  Serial.println();
}
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    if (deviceAddress[i] < 16) Serial.print("0");
    Serial.print(deviceAddress[i], HEX);
      }
}

void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  Serial.print(tempC);
  }
void printAlarms(uint8_t deviceAddress[])
{
  char temp;
  temp = sensors.getHighAlarmTemp(deviceAddress);
  
  Serial.print(temp, DEC);
  Serial.print("C/");
  Serial.print(DallasTemperature::toFahrenheit(temp));
  
  temp = sensors.getLowAlarmTemp(deviceAddress);
  Serial.print(temp, DEC);
  Serial.print("C/");
  }
void printData(DeviceAddress deviceAddress)
{
  printTemperature(deviceAddress);
  Serial.println();
}
void checkAlarm(DeviceAddress deviceAddress)
{
  if (sensors.hasAlarm(deviceAddress))
  {
    Serial.print("ALARM: ");
    printData(deviceAddress);
    pinMode(LEDPin,HIGH);
    delay(3000);
    }
  else
  pinMode(LEDPin,LOW);
  delay(3000);
  printData(deviceAddress);
}




void loop(void)
{
    sensors.requestTemperatures();
     checkAlarm(outsideThermometer);
}

....Code Tags...tststs.... lgbk
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Temperatursensor DS18B20 direkt auslesen Igom 9 177 26.03.2020 19:21
Letzter Beitrag: hotsystems
  Digitaler und analoger Temperatursensor unterschiedlich Pit 3 2.686 16.01.2016 19:05
Letzter Beitrag: Pit
Question Arduino Temperatursensor in exel datei loggen Tom 2 3.836 12.07.2015 10:30
Letzter Beitrag: rkuehle
  Temperatursensor Programmierung Anton11 6 4.780 29.05.2015 09:55
Letzter Beitrag: fraju
  Temperatursensor SHT75 um 3 Grad ungenau Cray-1 4 3.176 26.01.2015 14:45
Letzter Beitrag: RMR
  KTY Temperatursensor mit einem I2C Display auslesen. Einsteiger94 2 2.642 27.10.2014 21:09
Letzter Beitrag: Bitklopfer
  433 MHz Temperatursensor mit einem Arduino Uno auslesen Freddy 1 12.277 16.12.2013 00:10
Letzter Beitrag: rkuehle

Gehe zu:


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