Page 2 of 2

Re: I/O expansion added to wizard.

PostPosted: Sat May 03, 2014 10:29 am
by Trevenator
Just ordered the Multi-Channel Water Level Expansion will use that to monitor the levels of my Cal - Alk - vinegar - vodka.
I already have the single Water Level Expansion on my ato.

Would still like a float switch on my skimmer cup and be able to shut it off and send a email when its full.

Re: I/O expansion added to wizard.

PostPosted: Sat May 03, 2014 11:40 am
by rimai
Open the enclosure. It will be written in the pcb.

Re: I/O expansion added to wizard.

PostPosted: Sat May 03, 2014 11:42 am
by rimai
For your skimmer cup, use this:
Code: Select all
ReefAngel.Relay.Set(Port1,ReefAngel.IO.GetChannel(0)); // Set port 1 according to I/O channel 0

Re: I/O expansion added to wizard.

PostPosted: Mon May 05, 2014 11:35 am
by Trevenator
rimai wrote:Open the enclosure. It will be written in the pcb.

It says reef angel plus main unit 2.1

Re: I/O expansion added to wizard.

PostPosted: Mon May 05, 2014 11:36 am
by rimai
I meant the I/O module.

Re: I/O expansion added to wizard.

PostPosted: Mon May 05, 2014 2:02 pm
by Trevenator
ok its I/O Expansion 2.0

Re: I/O expansion added to wizard.

PostPosted: Mon May 05, 2014 2:25 pm
by rimai
Yes, starting on 2.0 version, you can easily use any port as output too. You just need to code it so the module knows you are using as output.
You need to add this to the end of your code:
Code: Select all
void SetIOChannel(byte channel, byte value)
{
    Wire.beginTransmission(I2CIO_PCF8574);
    Wire.write(value<<channel);
    Wire.endTransmission();
}

Then, in your code, you can set any channel on the I/O module like this:
Code: Select all
SetIOChannel(0,1); // Set channel 0 to on

Re: I/O expansion added to wizard.

PostPosted: Fri May 16, 2014 4:17 pm
by Veeresh
Hi Roberto

My IO Expansion module rev is 2.2

I have added the following coding

void SetIOChannel(byte channel, byte value)
{
Wire.beginTransmission(I2CIO_PCF8574);
Wire.write(value<<channel);
Wire.endTransmission();
}


in the setup I called the following codes

// init IO port 1 to 3
// Testing phase

SetIOChannel(0,1); // Set channel 0 to on
SetIOChannel(1,1); // Set channel 1 to on
SetIOChannel(2,1); // Set channel 2 to on
SetIOChannel(3,0); // Set channel 3 to off
SetIOChannel(4,0); // Set channel 4 to off
SetIOChannel(5,0); // Set channel 5 to off


and in the loop



if (hour()>=0 && hour()< 17 )
{
unsigned long currentMillis = millis();

if ( currentMillis - previousMillis >= intervaltimer )
{
if (FanOffStatus == false)
{
FanOffStatus = true; // variable set to off the fan
previousMillis = currentMillis;
intervaltimer = 30000 ;
SetIOChannel(4,1); // Set channel 4 to on
SetIOChannel(5,0); // Set channel 5 to on

}
else
{
FanOffStatus = false; // variable set to on the fan
previousMillis = currentMillis ;
intervaltimer = 5000 ;
SetIOChannel(4,0); // Set channel 4 to on
SetIOChannel(5,1); // Set channel 5 to on

}


if (FanOffStatus == false)
{
ReefAngel.Relay.Off( Port3 );
}
else
{
ReefAngel.Relay.On( Port3 );
}

}

}



I'm just wanted to test the IO module to in port 4 and 5 to toggle between ON and OFF stage. and I noticed that all my port are at +5V including port 4 an 5. There is no toggling in voltage in port and 4 and 5. Looks like the RA is not IO module is set to OUTPOT module. Please advise

Re: I/O expansion added to wizard.

PostPosted: Fri May 16, 2014 5:43 pm
by rimai
I'll have to check when I get to the office.

Sent from my SM-G900P using Tapatalk

Re: I/O expansion added to wizard.

PostPosted: Fri May 23, 2014 10:40 pm
by rimai
I'm not so sure why it is not working for you.
This is what I tested:
Code: Select all
  if (millis()%2000<1000)
    SetIOChannel(0,1);
  else
    SetIOChannel(0,0);

Channel 0 goes high and low every second.