probleem met ds18b20 en relay

Hardware geleverd door Arduino
Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: probleem met ds18b20 en relay

Berichtdoor nicoverduin » 11 Feb 2015, 19:39

Dus dat lijkt goed te werken.... Eventueel in een loopje van mij part de temperaturen lezen en displayen waarbij je de sensoren opwarmt. Gewoon om uit te sluiten dat ze defect zijn oid.

Laat tevens je programma zien dat je gebruikt. Dat maakt lezen wat eenvoudiger.

Vervolgens alleen die relais gebruiken die daadwerkelijk in gebruik zijn. En dan relais voor relais uitbreiden. Het gaat erom dat je uitsluit wat goed is. Nu heb je nog een heleboel extra zaken erin zitten die nu niet in gebruik zijn wat allemaal verstorend werkt. Het gaat er mij om, om te lokaliseren of dit een hardware probleem is? Overbelasting van de voeding? fout in het programma enz enz.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Advertisement

Berichten: 16
Geregistreerd: 15 Sep 2014, 13:54

Re: probleem met ds18b20 en relay

Berichtdoor Roelof » 11 Feb 2015, 21:33

Oké zal het is proberen en dan zal ik het resultaat hier weer posten

Berichten: 16
Geregistreerd: 15 Sep 2014, 13:54

Re: probleem met ds18b20 en relay

Berichtdoor Roelof » 14 Feb 2015, 16:32

heb het geprobeerd via een loop en heb via serial uitgelezen en ze lopen allemaal mooi gelijk op.
Ik heb het geprobeert via Celsius naar Fahrenheit in een andere sketch en daar bij schakelt hij met 2 wel maar met 3 niet. kom er nu niet meer uit. allemaal alleen schakelen ze wel met 2 ook maar met 3 niet.

Berichten: 4079
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: probleem met ds18b20 en relay

Berichtdoor shooter » 14 Feb 2015, 17:52

programma ???
paul deelen
shooter@home.nl

Berichten: 16
Geregistreerd: 15 Sep 2014, 13:54

Re: probleem met ds18b20 en relay

Berichtdoor Roelof » 17 Feb 2015, 17:59

ik krijg via deze sketch de relais wel in werken maar in de sketch die ik wil gebruiken werkt hij niet
[ code2=cpp ]
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 14

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

DeviceAddress T8 = { 0x28, 0xC0, 0x40, 0x56, 0x06, 0x00, 0x00, 0x68 };//pomp1
DeviceAddress T9 = { 0x28, 0x27, 0x95, 0x0B, 0x06, 0x00, 0x00, 0x0D };//pomp2
DeviceAddress T10 = { 0x28, 0x52, 0xBC, 0x56, 0x06, 0x00, 0x00, 0x30 };//kast

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define LCD_WIDTH 16
#define LCD_HEIGHT 2

int relay1 = 29; // kastventilator 12V
int relay2 = 30; // kastventilator 12V
int relay3 = 31; // kastventilator 12V

void setup () {
Serial.begin(9600);
delay(1000);

pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);

sensors.begin();
sensors.setResolution(T8, 10);
sensors.setResolution(T9, 10);
sensors.setResolution(T10, 10);

lcd.begin(16,2); // initialize the lcd for 16 chars 2 lines, turn on backlight
}
void printTemperature(DeviceAddress deviceAddress)

{
//float Settemp= SettempX;
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) {
lcd.print("Er");
Serial.print("\nFout bij opvragen temperatuur ");
} else {
lcd.print(tempC,0); // (tempc,x) x = is you variable point, i.e ,0 is no decimal, ,1 is 1 decimal,etc,




}
}
void loop(void)

{
sensors.requestTemperatures(); // just before this menu runs, read temps
lcd.setCursor(1,1);
printTemperature(T8); // pomp1
lcd.setCursor(4,1);
//lcd.write(1);
lcd.setCursor(5,1);
printTemperature(T9); // pomp2
lcd.setCursor(8,1);
//lcd.write(1);
lcd.setCursor(9,1);
printTemperature(T10); // kast

float t8tempC = sensors.getTempC(T8);//pomp1 temp
float t9tempC = sensors.getTempC(T9);//pomp2 temp
float t10tempC = sensors.getTempC(T10);//Kast temp

if (t8tempC > 27) digitalWrite (relay1, LOW);
Serial.print("\npomp1 ");
if (t8tempC < 25) digitalWrite (relay1, HIGH);

if (t9tempC > 27) digitalWrite (relay2, LOW);
Serial.print("\npomp2 ");
if (t9tempC < 25) digitalWrite (relay2, HIGH);

if (t10tempC > 27) digitalWrite (relay3, LOW);
Serial.print("\nkast ");
if (t10tempC < 25) digitalWrite (relay3, HIGH);
}
[ /code2 ]

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: probleem met ds18b20 en relay

Berichtdoor nicoverduin » 17 Feb 2015, 19:05

Je moet ff de spaties weghalen tussen die vierkante haken. Dan ziet je listing er gelijk profi uit
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 16
Geregistreerd: 15 Sep 2014, 13:54

Re: probleem met ds18b20 en relay

Berichtdoor Roelof » 17 Feb 2015, 21:24

Wie weet er nu een oplossing.
met deze sketch werkte eerst alle 3 de relais goed. Nu blijft de 3 de relais aan terwijl de temp nog niet beruikt is. komt de temp op de ingestelde waarde dan schakelt het relais uit en daarna gaat het zwak knipperen.
wie weet de oplossing hier voor, het werkte eerst en nu weer niet.

cpp code
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 14

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

DeviceAddress T8 = { 0x28, 0xC0, 0x40, 0x56, 0x06, 0x00, 0x00, 0x68 };//pomp1
DeviceAddress T9 = { 0x28, 0x27, 0x95, 0x0B, 0x06, 0x00, 0x00, 0x0D };//pomp2
DeviceAddress T10 = { 0x28, 0x52, 0xBC, 0x56, 0x06, 0x00, 0x00, 0x30 };//kast

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define LCD_WIDTH 16
#define LCD_HEIGHT 2

int relay1 = 22; // kastventilator 12V
int relay2 = 23; // kastventilator 12V
int relay3 = 24; // kastventilator 12V


void setup () {
Serial.begin(9600);
delay(1000);

pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);


sensors.begin();
sensors.setResolution(T8, 10);
sensors.setResolution(T9, 10);
sensors.setResolution(T10, 10);

lcd.begin(16,2); // initialize the lcd for 16 chars 2 lines, turn on backlight
}
void printTemperature(DeviceAddress deviceAddress)

{
//float Settemp= SettempX;
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) {
lcd.print("Er");
Serial.print("\nFout bij opvragen temperatuur ");
} else {
lcd.print(tempC,0); // (tempc,x) x = is you variable point, i.e ,0 is no decimal, ,1 is 1 decimal,etc,




}
}
void loop(void)

{
sensors.requestTemperatures(); // just before this menu runs, read temps
lcd.setCursor(0,0);
printTemperature(T8); // pomp1
lcd.setCursor(0,1);
printTemperature(T9); // pomp2
lcd.setCursor(10,1);
printTemperature(T10); // kast

float t8tempC = sensors.getTempC(T8);//pomp1 temp
float t9tempC = sensors.getTempC(T9);//pomp2 temp
float t10tempC = sensors.getTempC(T10);//Kast temp

if (t8tempC > 27) digitalWrite (relay1, LOW);
if (t8tempC > 27) Serial.print("\nPomp 1 ALARM");
if (t8tempC < 25) digitalWrite (relay1, HIGH);

//

if (t9tempC > 27)digitalWrite (relay2, LOW);
if (t9tempC > 27) Serial.print("\nPomp 2 ALARM");

if (t9tempC < 25) digitalWrite (relay2, HIGH);

//
if (t10tempC > 27) digitalWrite (relay3, LOW);

if (t10tempC > 25) digitalWrite (relay3, HIGH);


}

Berichten: 4079
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: probleem met ds18b20 en relay

Berichtdoor shooter » 17 Feb 2015, 22:59

het programma gaat wel erg snel hoor.
begn eens met te zorgen dat als bijv t9 > 27 en de vlag van t9 is uit dan actie zoals pomp aan en vlag zetten.
als vlag aan staat dan niets doen
dan
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: probleem met ds18b20 en relay

Berichtdoor nicoverduin » 17 Feb 2015, 23:49

en als je relais vervangt voor alleen een LED?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 4079
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: probleem met ds18b20 en relay

Berichtdoor shooter » 18 Feb 2015, 09:50

in de snelle loop request je temperaturen
gelijk daarna zoek je ze op,
als te hoog dan pomp uit.
etc
dan ben je binnen 1 ms alweer terug bij die request.
dat is veel te snel.
begin eens met een delay na de request,
en bij t10temp staat een > en dat moet een < zijn.
paul deelen
shooter@home.nl

VorigeVolgende

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 10 gasten