PWM control channel levels
- Rodasphoto
- Posts: 187
- Joined: Wed Apr 10, 2013 2:48 pm
- Location: Athens, Ga
- Contact:
PWM control channel levels
I just built a radion pro clone and have 6 channels of lights and was wondering if there is a way to adjust each channel to my liking without having to load new code to the controller with preset values? Or is there a way to set the color temp by preset for instance 10K, 12k, 14k, etc.
Re: PWM control channel levels
There is no color temp preset, but you can play around with each channel using the portal or android app or web browser.
You can use this code to make things simpler:
You can use this code to make things simpler:
Code: Select all
ReefAngel.PWM.SetChannel(0,InternalMemory.PWMSlopeEnd0_read());
ReefAngel.PWM.SetChannel(1,InternalMemory.PWMSlopeEnd1_read());
ReefAngel.PWM.SetChannel(2,InternalMemory.PWMSlopeEnd2_read());
ReefAngel.PWM.SetChannel(3,InternalMemory.PWMSlopeEnd3_read());
ReefAngel.PWM.SetChannel(4,InternalMemory.PWMSlopeEnd4_read());
ReefAngel.PWM.SetChannel(5,InternalMemory.PWMSlopeEnd5_read());
Roberto.
- Rodasphoto
- Posts: 187
- Joined: Wed Apr 10, 2013 2:48 pm
- Location: Athens, Ga
- Contact:
Re: PWM control channel levels
So do I just change the internal memory to what I want using the portal or do I have to use both the portal and the code. The RA controller gets better and better the more I learn about it.
Re: PWM control channel levels
If you use the above code, you can simply go to the portal and change the settings.
You will see the controller changing the % as you apply the changes.
It will be picking up the end% of the memory settings, so make sure you change the end% in the portal.
You will see the controller changing the % as you apply the changes.
It will be picking up the end% of the memory settings, so make sure you change the end% in the portal.
Roberto.
- Rodasphoto
- Posts: 187
- Joined: Wed Apr 10, 2013 2:48 pm
- Location: Athens, Ga
- Contact:
Re: PWM control channel levels
So my sketch should look like this?
I have never coded anything in Arduino and am trying to make heads or tails of everything.
Code: Select all
#include <ReefAngel_Features.h>
#include <Globals.h>
#include <RA_Wifi.h>
#include <Wire.h>
#include <OneWire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <InternalEEPROM.h>
#include <RA_NokiaLCD.h>
#include <RA_ATO.h>
#include <RA_Joystick.h>
#include <LED.h>
#include <RA_TempSensor.h>
#include <Relay.h>
#include <RA_PWM.h>
#include <Timer.h>
#include <Memory.h>
#include <InternalEEPROM.h>
#include <RA_Colors.h>
#include <RA_CustomColors.h>
#include <Salinity.h>
#include <RF.h>
#include <IO.h>
#include <ORP.h>
#include <AI.h>
#include <PH.h>
#include <WaterLevel.h>
#include <ReefAngel.h>
////// Place global variable code below here
////// Place global variable code above here
void setup()
{
// This must be the first line
ReefAngel.Init(); //Initialize controller
// Ports toggled in Feeding Mode
ReefAngel.FeedingModePorts = Port5Bit | Port8Bit;
// Ports toggled in Water Change Mode
ReefAngel.WaterChangePorts = Port3Bit | Port4Bit | Port5Bit | Port6Bit | Port7Bit | Port8Bit;
// Ports toggled when Lights On / Off menu entry selected
ReefAngel.LightsOnPorts = Port3Bit | Port4Bit;
// Ports turned off when Overheat temperature exceeded
ReefAngel.OverheatShutoffPorts = Port3Bit | Port4Bit | Port5Bit | Port7Bit | Port8Bit;
// Use T1 probe as temperature and overheat functions
ReefAngel.TempProbe = T1_PROBE;
ReefAngel.OverheatProbe = T1_PROBE;
// Set the Overheat temperature setting
InternalMemory.OverheatTemp_write( 830 );
// Ports that are always on
ReefAngel.Relay.On( Port1 );
ReefAngel.Relay.On( Port8 );
////// Place additional initialization code below here
////// Place additional initialization code above here
}
void loop()
{
ReefAngel.StandardLights( Port2,9,0,21,5 );
ReefAngel.StandardLights( Port3,9,0,21,0 );
ReefAngel.StandardLights( Port4,9,0,21,0 );
ReefAngel.WavemakerRandom( Port5,30,100 );
ReefAngel.WavemakerRandom( Port6,30,100 );
ReefAngel.StandardHeater( Port7,778,781 );
ReefAngel.PWM.SetChannel(0,InternalMemory.PWMSlopeEnd0_read());
ReefAngel.PWM.SetChannel(1,InternalMemory.PWMSlopeEnd1_read());
ReefAngel.PWM.SetChannel(2,InternalMemory.PWMSlopeEnd2_read());
ReefAngel.PWM.SetChannel(3,InternalMemory.PWMSlopeEnd3_read());
ReefAngel.PWM.SetChannel(4,InternalMemory.PWMSlopeEnd4_read());
ReefAngel.PWM.SetChannel(5,InternalMemory.PWMSlopeEnd5_read());
////// Place your custom code below here
////// Place your custom code above here
// This should always be the last line
ReefAngel.Portal( "Rodasphoto" );
ReefAngel.ShowInterface();
}
void DrawCustomMain()
{
int x,y;
char text[10];
// Dimming Expansion
x = 15;
y = 2;
for ( int a=0;a<6;a++ )
{
if ( a>2 ) x = 75;
if ( a==3 ) y = 2;
ReefAngel.LCD.DrawText( COLOR_DARKGOLDENROD,DefaultBGColor,x,y,"Ch :" );
ReefAngel.LCD.DrawText( COLOR_DARKGOLDENROD,DefaultBGColor,x+12,y,a );
ReefAngel.LCD.DrawText( COLOR_DARKGOLDENROD,DefaultBGColor,x+24,y,ReefAngel.PWM.GetChannelValue(a) );
y += 10;
}
pingSerial();
// Parameters
#if defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 43, ReefAngel.Params,
ReefAngel.PWM.GetDaylightValue(), ReefAngel.PWM.GetActinicValue() );
#else // defined DisplayLEDPWM && ! defined RemoveAllLights
ReefAngel.LCD.DrawMonitor( 15, 43, ReefAngel.Params );
#endif // defined DisplayLEDPWM && ! defined RemoveAllLights
pingSerial();
// Main Relay Box
byte TempRelay = ReefAngel.Relay.RelayData;
TempRelay &= ReefAngel.Relay.RelayMaskOff;
TempRelay |= ReefAngel.Relay.RelayMaskOn;
ReefAngel.LCD.DrawOutletBox( 12, 84, TempRelay );
pingSerial();
// Date and Time
ReefAngel.LCD.DrawDate( 6, 122 );
pingSerial();
}
void DrawCustomGraph()
{
}