Výpadek ds18b20
Výpadek ds18b20
Ahoj,
prosím o pomoc.
Jak v programu fixnout když mi vypadne dallasu?
jde o to, že když "odpojím" dallas, tak se mi vrátí teplota -127, problém je že na ni nejsem schopen reagovat.
např když bych vložil do programu:
if(dallas == -127){
serial.println("chyba");
}
if(dallas != -127){
serial.println("ok");
}
tak vždy se vrátí odpověď "ok" a to i když odpojím dallas z nepájivého pole
díky
prosím o pomoc.
Jak v programu fixnout když mi vypadne dallasu?
jde o to, že když "odpojím" dallas, tak se mi vrátí teplota -127, problém je že na ni nejsem schopen reagovat.
např když bych vložil do programu:
if(dallas == -127){
serial.println("chyba");
}
if(dallas != -127){
serial.println("ok");
}
tak vždy se vrátí odpověď "ok" a to i když odpojím dallas z nepájivého pole
díky
Re: Výpadek ds18b20
A jakého typu je proměnná dallas?? Pokud je to float, tak nelze rozumě použít operátory == a !=
zkus to třeba
if (dallas < -126) {
//reakce na chybu}
else{
//zpracování hodnoty}
zkus to třeba
if (dallas < -126) {
//reakce na chybu}
else{
//zpracování hodnoty}
Re: Výpadek ds18b20
ano je float.
to co jsi psal jsem tuším zkoušel ale pro jistotu vyzkouším znovu jak přijdu domů
to co jsi psal jsem tuším zkoušel ale pro jistotu vyzkouším znovu jak přijdu domů
Re: Výpadek ds18b20
tak vyzkoušeno a pořád se vždy vrátí OK
Re: Výpadek ds18b20
Kód: Vybrat vše
if(dallas == -127.00){
serial.print(dallas);
serial.println(":1chyba");
}
if(dallas < -126){
serial.print(dallas);
serial.println(":2chyba");
}
if(dallas > -126){
serial.print(dallas);
serial.println(":3asiOK");
}
-
- Příspěvky: 1033
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: Výpadek ds18b20
Že jsem tak smělý. dallas je co?
Opravdu má smysl diskutovat nad tím, proč podmínka nemá hodnotu jakou si přeji, když vůbec netuším, co se v proměnné dallas nalézá? Dej sem ten program a já ti řeknu, co v něm děláš za chybu. Jinak nemá cenu tady vést diskusi.
Opravdu má smysl diskutovat nad tím, proč podmínka nemá hodnotu jakou si přeji, když vůbec netuším, co se v proměnné dallas nalézá? Dej sem ten program a já ti řeknu, co v něm děláš za chybu. Jinak nemá cenu tady vést diskusi.
Re: Výpadek ds18b20
dallas- ds18b20
s kódem jsem teprve začal (navíc se s arduinem teprve učím):
Kód: Vybrat vše
#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
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// Addresses of 3 DS18B20s
uint8_t dallas[8] = { 0x28, 0x61, 0x64, 0x11, 0x83, 0xC0, 0x7F, 0xD8 };
void setup(void)
{
Serial.begin(9600);
sensors.begin();
}
void loop(void)
{
sensors.requestTemperatures();
printTemperature(dallas);
Serial.println();
delay(1000);
}
void printTemperature(DeviceAddress deviceAddress)
{
float dallas1 = sensors.getTempC(dallas);
if(dallas1 == -127){
Serial.println("chyba");
}
if(dallas1 != -127){
Serial.println("ok");
}}
Re: Výpadek ds18b20
Zkus dole vyměnit podmínky
if(dallas1 < -126)
{
Serial.println("chyba");
}
else
{
Serial.println("ok");
}
https://arze.cz - ARduino Zapojení Elektronika
-
- Příspěvky: 1033
- Registrován: 06 zář 2017, 20:04
- Reputation: 0
- Bydliště: Brno
- Kontaktovat uživatele:
Re: Výpadek ds18b20
Co je Dallas vím, šlo mi o význam v programu.dallas- ds18b20
Použil jsem Arduino NANO s AVR 1.8.4 a Arduino IDE 1.8.19.
Program ten tvůj, téměř beze změny, jen knihovny jsem musel střelit od oka, protože je nespecifikuješ. ovšem výsledek je :
Kód: Vybrat vše
09:33:13.837 -> chyba
09:33:13.837 -> -127.00
09:33:13.837 ->
09:33:15.572 -> chyba
09:33:15.572 -> -127.00
09:33:15.572 ->
Kód: Vybrat vše
#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
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// Addresses of 3 DS18B20s
uint8_t dallas[8] = { 0x28, 0x61, 0x64, 0x11, 0x83, 0xC0, 0x7F, 0xD8 };
void setup(void)
{
Serial.begin(9600);
sensors.begin();
}
void loop(void)
{
sensors.requestTemperatures();
printTemperature(dallas);
Serial.println();
delay(1000);
}
void printTemperature(DeviceAddress deviceAddress)
{
float dallas1 = sensors.getTempC(dallas);
if(dallas1 == -127){
Serial.println("chyba");
Serial.println(dallas1);
}
if(dallas1 != -127){
Serial.println("ok");
}}
Re: Výpadek ds18b20
Tak vida, v úvodu byl název proměnné dallas, teď už je to dallas1. Nebyla chyba v tom?
A taky se zkus zamyslet nad předáváním nodnot nebo odkazů funkci. Proč ji předáváš něco, s čím pak vůbec nepracuješ a použiješ globální proměnnou?
A taky se zkus zamyslet nad předáváním nodnot nebo odkazů funkci. Proč ji předáváš něco, s čím pak vůbec nepracuješ a použiješ globální proměnnou?
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host