Trouble with Relay Boards and Mega 2560
i'm having trouble here , thought reach out first time on forum. i'm building simple solar tracker device turns rotating platform forward 15 degrees every hour, landing @ 180 degrees south @ noon each day. all have 4 relays. 1 advance forward energizing relay short time (<1 sec, or long takes platform move 15 degrees) 1 reverse @ end of day (sum of each forward advance), 1 energize alarm 4 seconds prior each forward or reverse motion, , fourth relay energizing dht11 controlled small cooling fan in charge controller housing. know there more elegant ways this…. forgive me have go 1 step @ time here.
my trouble these 2 relay boards. it's if coils energized, when disconnect jumpers , measure voltage @ digitalpins, i'm right on intention of code (write high 1 sec, every hour, else write low) meaning, have 5v out second. when measuring voltage in1 or in2 pins on relay board ground, odd voltages… 1.8v or 2.4v out. the relays audibly click when plug these jumper wires in. should mention led lights on relay board on, except 1 corresponding cooling fan.
could odd voltage 'coming out' of in1 , in2 grounding issue? possibly has jumper @ ry voc? i've read how these boards use 2nd 5v power source , maintain optical isolation. i'd rather stay away power source unless it's necessary.
this relay board i'm using. clear, have 2 of these hooked now.
also, when energize 12v power source alarm relay closes few seconds, regardless of time is. have thought code issue, dont see when applying 5v power via usb.
and…. idea size fuse use protect board? i've searched , have not found direct answer. there 1 amp automotive fuse between 12v power source , mega 2560.
ok….thank read , can offer guidance
my trouble these 2 relay boards. it's if coils energized, when disconnect jumpers , measure voltage @ digitalpins, i'm right on intention of code (write high 1 sec, every hour, else write low) meaning, have 5v out second. when measuring voltage in1 or in2 pins on relay board ground, odd voltages… 1.8v or 2.4v out. the relays audibly click when plug these jumper wires in. should mention led lights on relay board on, except 1 corresponding cooling fan.
could odd voltage 'coming out' of in1 , in2 grounding issue? possibly has jumper @ ry voc? i've read how these boards use 2nd 5v power source , maintain optical isolation. i'd rather stay away power source unless it's necessary.
this relay board i'm using. clear, have 2 of these hooked now.
also, when energize 12v power source alarm relay closes few seconds, regardless of time is. have thought code issue, dont see when applying 5v power via usb.
and…. idea size fuse use protect board? i've searched , have not found direct answer. there 1 amp automotive fuse between 12v power source , mega 2560.
ok….thank read , can offer guidance
code: [select]
#include <wire.h>
#include "rtclib.h"
#include "dht.h"
#define dhtpin 2
#define dhttype dht11
dht dht(dhtpin, dhttype);
rtc_ds1307 rtc;
void setup() {
serial.begin(9600);
serial.println("dht test");
dht.begin();
wire.begin();
rtc.begin();
if (! rtc.isrunning())
{
serial.println("rtc not running!");
rtc.adjust(datetime(__date__, __time__));
}
//assigning functions pins
pinmode(4, output); //tracker motor forward relay
pinmode(5, output); //tracker motor reverse relay
pinmode(6, output); //future tracker motor alarm relay
pinmode(7, output); //control box cooling fan relay
}
void loop() {
float h = dht.readhumidity();
float t = dht.readtemperature();
if (isnan(t) || isnan(h)) {
serial.println("failed read dht");
} else {
serial.print("humidity: ");
serial.print(h);
serial.print(" %\t");
serial.print("temperature: ");
serial.print(t);
serial.println(" *c");
}
datetime = rtc.now();
serial.print(now.year(), dec);
serial.print('/');
serial.print(now.month(), dec);
serial.print('/');
serial.print(now.day(), dec);
serial.print(" (");
serial.print(now.hour(), dec);
serial.print(':');
serial.print(now.minute(), dec);
serial.print(':');
serial.print(now.second(), dec);
serial.print(")");
serial.println();
serial.println();
delay(2000); //add 2 second delay accommodate slow sensor, before when reading temperature/humidity , time
//thermostat control
//lines immediatey following thermostat section enclosure cooling fan
//pin6 5v output cooling fan relay
if ((t) >= 30) //if temperature greater or equal 30c, or 86f
{
digitalwrite(7,high); //turn on cooling fan relay
}
else
{
digitalwrite(7,low); //otherwise cooling fan relay off
}
//clock timer motor control
//following lines clock control section forward , reverse action of motor, , alarm control
//the time set 24 hours
//0 sunday,1 monday.
//0 12am,1 1am
//pin 4 on short 'bursts' @ , between every hour between 9am , 5pm
//pin 4 on time equivalent 15 degrees (360deg/24hrs) clockwise rotation of tracker every 1 hour.
//estimating 1 second on time equivalent of 15 degrees
//pin 5 on @ 6pm 9 seconds return starting position.
//pin 6 on 4 seconds prior each forward or reversing motion
if (now.hour() == 9 & now.minute() == 0 & now.second() == 0)
{
digitalwrite(6,high); //energizes alarm relay
delay(4000); //for 4 seconds, then,
digitalwrite(4,high); //energizes relay 1 second @ 9am
delay(1000); //amount of time moving in forward direction
}
else if (now.hour() == 10 & now.minute() == 0 & now.second() == 0)
{
digitalwrite(6,high); //energizes alarm relay
delay(4000); //for 4 seconds, then,
digitalwrite(4, high); //energizes relay 1 second @ 10am
delay(1000);
}
else if (now.hour() == 11 & now.minute() == 00 & now.second() == 0)
{
digitalwrite(6,high); //energizes alarm relay
delay(4000); //for 4 seconds, then,
digitalwrite(4, high); //energizes relay 1 second @ 11am
delay(1000);
}
else if (now.hour() == 12 & now.minute() == 0 & now.second() == 0)
{
digitalwrite(6,high); //energizes alarm relay
delay(4000); //for 4 seconds, then,
digitalwrite(4, high); //energizes relay 1 second @ 12pm
delay(1000);
}
else if (now.hour() == 13 & now.minute() == 0 & now.second() == 0)
{
digitalwrite(6,high); //energizes alarm relay
delay(4000); //for 4 seconds, then,
digitalwrite(4, high); //energizes relay 1 second @ 1pm
delay(1000);
}
else if (now.hour() == 14 & now.minute() == 0 & now.second() == 0)
{
digitalwrite(6,high); //energizes alarm relay
delay(4000); //for 4 seconds, then,
digitalwrite(4, high); //energizes relay 1 second @ 2pm
delay(1000);
}
else if (now.hour() == 15 & now.minute() == 0 & now.second() == 0)
{
digitalwrite(6,high); //energizes alarm relay
delay(4000); //for 4 seconds, then,
digitalwrite(4, high); //energizes relay 1 second @ 3pm
delay(1000);
}
else if (now.hour() == 16 & now.minute() == 0 & now.second() == 0)
{
digitalwrite(6,high); //energizes alarm relay
delay(4000); //for 4 seconds, then,
digitalwrite(4, high); //energizes relay 1 second @ 4pm
delay(1000);
}
else if (now.hour() == 17 & now.minute() == 0 & now.second() == 0)
{
digitalwrite(6,high); //energizes alarm relay
delay(4000); //for 4 seconds, then,
digitalwrite(4, high); //energizes relay 1 second @ 5pm
delay(1000);
}
else if (now.hour() == 18 & now.minute() == 0 & now.second() == 0)
{
digitalwrite(6,high); //energizes alarm relay
delay(4000); //for 4 seconds, then,
digitalwrite(5, high); //energizes reversing relay total of forward time since 8am.
delay(9000); //sum of each forward movement delay time
}
else
{
digitalwrite(4, low); //de-energizes relay @ times other entered above
digitalwrite(5, low); //de-energizes reversing relay @ times other entered above
digitalwrite(6, low); //de-energizes alarm relay
}
}
5v usb isn't enough power run 4 relays.
usb maximum 500 ma.
usb maximum 500 ma.
Arduino Forum > Using Arduino > Project Guidance > Trouble with Relay Boards and Mega 2560
arduino
Comments
Post a Comment