DHT11 values fly off the rails when activating 8 relays
hello everyone. 1st post here.
i have small project arduino uno r3, soft 1.6.13, 1 push button, 1 dht11 , strip of 8 relays.
everything works fine. when press button, 8 relays kick in. when release, 8 relays go sleep.
my problem dht. when relays disengaged, temperatures showing 20c , humidity @ 19%. when press button , engage relays, temperature increases instantly 24c , humidity 30%.
the ultimate goal trigger more , more relay temperature rises... 1 relay per deg celsius. , see it, have 4 relay problem here...
i've tested series of ifs , blowing on dht11, breath can temperature high enough trigger relays. thing when let cool slowly... temperature goes this: 30, 29, 28, 27 (1st relay shutting down), 26 (second relay), 22 (4 relays in snap turn off), 21, 20... never range 25, 24, 23... puzzles me.
here code:
here serie of ifs test it:
more research has lead me try relays 1 1. pin4 has increased 1 degc itself. , using more 5 leads same issue. tried 3 boards total. same results. tried other dht11s. same result.
i tried removing jumper in corner deactivating solenoids. temperature reading got normal , lights working relays should have been. put jumper in... tried connecting jd-vcc relay board atx power supply's 12v. apart relays clacking harder... no change. proceeded using 5v 1 of molex... same thing.
no matter do, once i've gotten dht sense hot activate many relays... skip 3-4 degc.
it seems inherent design problem way arduino works... more power drawn... more erratic readings. possible?
doing yet more research, stumbled across post: http://forum.arduino.cc/index.php?topic=83642.msg626948#msg626948 i've tried solutions has worked original op no avail. i've tried seggregating power , ground analog , digital pins... without success.
i've run out of ideas , i'm not experienced enough more ideas on own.
can please?
i have small project arduino uno r3, soft 1.6.13, 1 push button, 1 dht11 , strip of 8 relays.
everything works fine. when press button, 8 relays kick in. when release, 8 relays go sleep.
my problem dht. when relays disengaged, temperatures showing 20c , humidity @ 19%. when press button , engage relays, temperature increases instantly 24c , humidity 30%.
the ultimate goal trigger more , more relay temperature rises... 1 relay per deg celsius. , see it, have 4 relay problem here...
i've tested series of ifs , blowing on dht11, breath can temperature high enough trigger relays. thing when let cool slowly... temperature goes this: 30, 29, 28, 27 (1st relay shutting down), 26 (second relay), 22 (4 relays in snap turn off), 21, 20... never range 25, 24, 23... puzzles me.
here code:
code: [select]
#include <dht.h>
dht dht;
#define dht11_pin 11
int relaypin1 = 2; // in1 connected digital pin 2
int relaypin2 = 3; // in2 connected digital pin 3
int relaypin3 = 4; // in3 connected digital pin 4
int relaypin4 = 5; // in4 connected digital pin 5
int relaypin5 = 6; // in5 connected digital pin 6
int relaypin6 = 7; // in6 connected digital pin 7
int relaypin7 = 8; // in7 connected digital pin 8
int relaypin8 = 9; // in8 connected digital pin 9
void setup() {
// put setup code here, run once:
pinmode(12, input_pullup);
serial.begin(115200);
pinmode(relaypin1, output); // sets digital pin output
pinmode(relaypin2, output); // sets digital pin output
pinmode(relaypin3, output); // sets digital pin output
pinmode(relaypin4, output); // sets digital pin output
pinmode(relaypin5, output); // sets digital pin output
pinmode(relaypin6, output); // sets digital pin output
pinmode(relaypin7, output); // sets digital pin output
pinmode(relaypin8, output); // sets digital pin output
digitalwrite(relaypin1, high); // prevents relays starting engaged
digitalwrite(relaypin2, high); // prevents relays starting engaged
digitalwrite(relaypin3, high); // prevents relays starting engaged
digitalwrite(relaypin4, high); // prevents relays starting engaged
digitalwrite(relaypin5, high); // prevents relays starting engaged
digitalwrite(relaypin6, high); // prevents relays starting engaged
digitalwrite(relaypin7, high); // prevents relays starting engaged
digitalwrite(relaypin8, high); // prevents relays starting engaged
}
void loop() {
// put main code here, run repeatedly:
const int ctrlpin=14; // use whichever pin wish. i have used a0 maps d14.
pinmode(ctrlpin, output);
// read data
int chk = dht.read11(dht11_pin);
serial.print("temperature = ");
serial.println(dht.temperature);
serial.print("humidity = ");
serial.println(dht.humidity);
if (digitalread(12) == low) {
digitalwrite(relaypin1, low); // turn relay on
digitalwrite(relaypin2, low); // turn relay on
digitalwrite(relaypin3, low); // turn relay on
digitalwrite(relaypin4, low); // turn relay on
digitalwrite(relaypin5, low); // turn relay on
digitalwrite(relaypin6, low); // turn relay on
digitalwrite(relaypin7, low); // turn relay on
digitalwrite(relaypin8, low); // turn relay on
} else {
digitalwrite(relaypin1, high); // turn relay off
digitalwrite(relaypin2, high); // turn relay off
digitalwrite(relaypin3, high); // turn relay off
digitalwrite(relaypin4, high); // turn relay off
digitalwrite(relaypin5, high); // turn relay off
digitalwrite(relaypin6, high); // turn relay off
digitalwrite(relaypin7, high); // turn relay off
digitalwrite(relaypin8, high); // turn relay off
}
}
here serie of ifs test it:
code: [select]
if (dht.temperature > 20) {
digitalwrite(relaypin1, low);
}
if (dht.temperature > 21) {
digitalwrite(relaypin2, low);
}
if (dht.temperature > 22) {
digitalwrite(relaypin3, low);
}
if (dht.temperature > 23) {
digitalwrite(relaypin4, low);
}
if (dht.temperature > 24) {
digitalwrite(relaypin5, low);
}
if (dht.temperature > 25) {
digitalwrite(relaypin6, low);
}
if (dht.temperature > 26) {
digitalwrite(relaypin7, low);
}
if (dht.temperature > 27) {
digitalwrite(relaypin8, low);
}
more research has lead me try relays 1 1. pin4 has increased 1 degc itself. , using more 5 leads same issue. tried 3 boards total. same results. tried other dht11s. same result.
i tried removing jumper in corner deactivating solenoids. temperature reading got normal , lights working relays should have been. put jumper in... tried connecting jd-vcc relay board atx power supply's 12v. apart relays clacking harder... no change. proceeded using 5v 1 of molex... same thing.
no matter do, once i've gotten dht sense hot activate many relays... skip 3-4 degc.
it seems inherent design problem way arduino works... more power drawn... more erratic readings. possible?
doing yet more research, stumbled across post: http://forum.arduino.cc/index.php?topic=83642.msg626948#msg626948 i've tried solutions has worked original op no avail. i've tried seggregating power , ground analog , digital pins... without success.
i've run out of ideas , i'm not experienced enough more ideas on own.
can please?
"it seems inherent design problem way arduino works... more power drawn... more erratic readings. possible?" points source of problem, without knowing how have things connected , using power, it's bit hard know.
a drawing of connections , tell power supply parameters are.
paul
a drawing of connections , tell power supply parameters are.
paul
Arduino Forum > Using Arduino > Sensors > DHT11 values fly off the rails when activating 8 relays
arduino
Comments
Post a Comment