PWM control channel levels

Expansion modules and attachments
Post Reply
User avatar
Rodasphoto
Posts: 187
Joined: Wed Apr 10, 2013 2:48 pm
Location: Athens, Ga
Contact:

PWM control channel levels

Post by Rodasphoto »

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.
Image
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: PWM control channel levels

Post by rimai »

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:

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.
User avatar
Rodasphoto
Posts: 187
Joined: Wed Apr 10, 2013 2:48 pm
Location: Athens, Ga
Contact:

Re: PWM control channel levels

Post by Rodasphoto »

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.
Image
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: PWM control channel levels

Post by rimai »

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.
Roberto.
User avatar
Rodasphoto
Posts: 187
Joined: Wed Apr 10, 2013 2:48 pm
Location: Athens, Ga
Contact:

Re: PWM control channel levels

Post by Rodasphoto »

So my sketch should look like this?

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()
{
}
I have never coded anything in Arduino and am trying to make heads or tails of everything.
Image
rimai
Posts: 12881
Joined: Fri Mar 18, 2011 6:47 pm

Re: PWM control channel levels

Post by rimai »

Yeap... looks good :)
Roberto.
Post Reply