relé nesepne

Odpovědět
Ilam
Příspěvky: 11
Registrován: 17 srp 2019, 19:38
Reputation: 0

relé nesepne

Příspěvek od Ilam » 14 říj 2020, 16:52

Potřebuji spínat relé podle teploty. Našel jsem úlohu zpracovanou, ale relé nesepne. Prosím o radu.
Díky.
#include <OneWire.h>
#include <DallasTemperature.h>

const int TEMP_THRESHOLD_UPPER = 25; // upper threshold of temperature, change to your desire value
const int TEMP_THRESHOLD_LOWER = 20; // lower threshold of temperature, change to your desire value

const int SENSOR_PIN = 2; // Arduino pin connected to DS18B20 sensor's DQ pin
const int RELAY_FAN_PIN = A5; // Arduino pin connected to relay which connected to fan

OneWire oneWire(SENSOR_PIN); // setup a oneWire instance
DallasTemperature sensors(&oneWire); // pass oneWire to DallasTemperature library

float temperature; // temperature in Celsius

void setup()
{
Serial.begin(9600); // initialize serial
sensors.begin(); // initialize the sensor
}

void loop()
{
sensors.requestTemperatures(); // send the command to get temperatures
temperature = sensors.getTempCByIndex(0); // read temperature in Celsius

if(temperature > TEMP_THRESHOLD_UPPER){
Serial.println("The fan is turned on");
digitalWrite(RELAY_FAN_PIN, HIGH); // turn on
} else if(temperature < TEMP_THRESHOLD_LOWER){
Serial.println("The fan is turned off");
digitalWrite(RELAY_FAN_PIN, LOW); // turn on
}

delay(500);

analytik
Příspěvky: 148
Registrován: 26 čer 2020, 12:48
Reputation: 0
Bydliště: Děčín

Re: relé nesepne

Příspěvek od analytik » 14 říj 2020, 17:29

Netuším, na jakém hardwaru to má pracovat a proč ovládáš výstup přes analogový vstup,
ale tipnu si, že tam chybí deklarace výstupního pinu - něco jako: pinMode(RELAY_FAN_PIN, OUTPUT);
Stejně bych však doporučil výstup přes digitální pin.

Ilam
Příspěvky: 11
Registrován: 17 srp 2019, 19:38
Reputation: 0

Re: relé nesepne

Příspěvek od Ilam » 14 říj 2020, 19:31

Kod jsem přeposlal tak jak je zveřejněn, jsem začáteční.
Díky za pomoc.

Ilam
Příspěvky: 11
Registrován: 17 srp 2019, 19:38
Reputation: 0

Re: relé nesepne

Příspěvek od Ilam » 14 říj 2020, 19:48

Pracuje to na desce Arduino NANO.

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: relé nesepne

Příspěvek od jankop » 14 říj 2020, 22:48

analytik píše:
14 říj 2020, 17:29
Netuším, proč ovládáš výstup přes analogový vstup
Nejedná se o analogový vstup, ale o univerzální I/O pin s možností využití A/D převodníku v režimu vstupu. Je to tedy také naprosto plnohodnotný výstup. Jinak máš pravdu, postrádám v sekci setup():

Kód: Vybrat vše

pinMode(RELAY_FAN_PIN, OUTPUT);

analytik
Příspěvky: 148
Registrován: 26 čer 2020, 12:48
Reputation: 0
Bydliště: Děčín

Re: relé nesepne

Příspěvek od analytik » 15 říj 2020, 06:44

To beru. Ale stačí letmý pohled na komentáře v sekci loop ke zhodnocení kvality celého kódu. Ať pošleš na výstup cokoli, vždy dostaneš "//turn on".

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: relé nesepne

Příspěvek od ondraN » 15 říj 2020, 07:44

No jo, to je to kopírování bloku :lol: Kód se změní ale na komentář už nedojde.

Ilam
Příspěvky: 11
Registrován: 17 srp 2019, 19:38
Reputation: 0

Re: relé nesepne

Příspěvek od Ilam » 15 říj 2020, 08:47

Děkuji, po doplnění je vše OK.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů