Can someone tell my why my lights aren't working?

MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Can someone tell my why my lights aren't working?

Post by MDB1029 »

Just got the dimming expansion today and hooked everything up, loaded my code and my lights won't come on.

my whites are on channel 0 and my blues are on channel 1

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 <Humidity.h>
#include <DCPump.h>
#include <PAR.h>
#include <ReefAngel.h>

////// Place global variable code below here
int DaylightPWMValue=0;        // For cloud code

////// Place global variable code above here


void setup()
{
    // This must be the first line
    ReefAngel.Init();  //Initialize controller
    ReefAngel.Use2014Screen();  // Let's use 2014 Screen 
    // Ports toggled in Feeding Mode
    ReefAngel.FeedingModePorts = Port1Bit | Port4Bit;
    // Ports toggled in Water Change Mode
    ReefAngel.WaterChangePorts = Port1Bit | Port2Bit | Port3Bit | Port4Bit | Port5Bit;
    // Ports toggled when Lights On / Off menu entry selected
    ReefAngel.LightsOnPorts = 0;
    // Ports turned off when Overheat temperature exceeded
    ReefAngel.OverheatShutoffPorts = Port2Bit | Port3Bit;
    // Use T1 probe as temperature and overheat functions
    ReefAngel.TempProbe = T1_PROBE;
    ReefAngel.OverheatProbe = T1_PROBE;


    // Ports that are always on
    ReefAngel.Relay.On( Port1 );
    ReefAngel.Relay.On( Port4 );

    ////// Place additional initialization code below here
    

    ////// Place additional initialization code above here
}

void loop()
{
    ReefAngel.StandardHeater( Port2 );
if ( ReefAngel.Params.Temp[T1_PROBE] < (InternalMemory.HeaterTempOn_read() - 10)) { ReefAngel.Relay.On(Port3); };
if ( ReefAngel.Params.Temp[T1_PROBE] > (InternalMemory.HeaterTempOff_read() - 5)) { ReefAngel.Relay.Off(Port3); };
    ReefAngel.SingleATOLow( Port5 );
    ReefAngel.StandardLights( Port7,18,0,10,0 );
    ReefAngel.DayLights( Box1_Port1 );
    ReefAngel.Relay.Set( Box1_Port2, !ReefAngel.Relay.Status( Box1_Port1 ) );
    DaylightPWMValue=PWMSlopeHighRes(9,30,21,0,0,30,60,0);
 CheckCloud();
 ReefAngel.PWM.SetChannelRaw(0,DaylightPWMValue);
    ReefAngel.PWM.Channel1PWMParabola();
    ReefAngel.Relay.Set(Port8, now()%21600<10800);
    ////// Place your custom code below here
    

    ////// Place your custom code above here

    // This should always be the last line
    ReefAngel.Portal( "MDB1029" );
    ReefAngel.DDNS( "Reef" ); // Your DDNS is MDB1029-Reef.myreefangel.com
    ReefAngel.ShowInterface();
}

    void CheckCloud()
    {
      // ------------------------------------------------------------
      // Change the values below to customize your cloud/storm effect

      // Frequency in days based on the day of the month - number 2 means every 2 days, for example (day 2,4,6 etc)
      // For testing purposes, you can use 1 and cause the cloud to occur everyday
    #define Clouds_Every_X_Days 1

      // Percentage chance of a cloud happening today
      // For testing purposes, you can use 100 and cause the cloud to have 100% chance of happening
    #define Cloud_Chance_per_Day 100

      // Minimum number of minutes for cloud duration.  Don't use max duration of less than 6
    #define Min_Cloud_Duration 7

      // Maximum number of minutes for the cloud duration. Don't use max duration of more than 255
    #define Max_Cloud_Duration 18

      // Minimum number of clouds that can happen per day
    #define Min_Clouds_per_Day 1

      // Maximum number of clouds that can happen per day
    #define Max_Clouds_per_Day 2

      // Only start the cloud effect after this setting
      // In this example, start cloud after noon
    #define Start_Cloud_After NumMins(11,00)

      // Always end the cloud effect before this setting
      // In this example, end cloud before 9:00pm
    #define End_Cloud_Before NumMins(20,00)

      // Percentage chance of a lightning happen for every cloud
      // For testing purposes, you can use 100 and cause the lightning to have 100% chance of happening
    #define Lightning_Change_per_Cloud 100

      // Note: Make sure to choose correct values that will work within your PWMSLope settings.
      // For example, in our case, we could have a max of 5 clouds per day and they could last for 50 minutes.
      // Which could mean 250 minutes of clouds. We need to make sure the PWMSlope can accomodate 250 minutes
      // of effects or unforseen result could happen.
      // Also, make sure that you can fit double those minutes between Start_Cloud_After and End_Cloud_Before.
      // In our example, we have 510 minutes between Start_Cloud_After and End_Cloud_Before, so double the
      // 250 minutes (or 500 minutes) can fit in that 510 minutes window.
      // It's a tight fit, but it did.

      //#define printdebug // Uncomment this for debug print on Serial Monitor window
    #define forcecloudcalculation // Uncomment this to force the cloud calculation to happen in the boot process.

      // Add Random Lightning modes
    #define Calm 0    // No lightning
    #define Slow 1    // 5 seconds of slow lightning in the middle of a cloud for ELN style (slow response) drivers
    #define Fast 2    // 5 seconds of fast lightning in the middle of a cloud for LDD style (fast response) drivers
    #define Mega 3    // Lightning throughout the cloud, higher chance as it gets darker
    #define Mega2 4   // Like Mega, but with more lightning
      // Set which modes you want to use
      // Example:  { Calm, Fast, Mega, Mega2 } to randomize all four modes. 
      // { Mega2 } for just Mega2.  { Mega, Mega, Fast} for Mega and Fast, with twice the chance of Mega.
      byte LightningModes[] = {Mega2,Mega,Mega};

      // Change the values above to customize your cloud/storm effect
      // ------------------------------------------------------------
      // Do not change anything below here

      static byte cloudchance=255;
      static byte cloudduration=0;
      static int cloudstart=0;
      static byte numclouds=0;
      static byte lightningchance=0;
      static byte cloudindex=0;
      static byte lightningstatus=0;
      static int LastNumMins=0;
      static byte lightningMode=0;
      static boolean chooseLightning=true;

      static time_t DelayCounter=millis();    // Variable for lightning timing. 
      static int DelayTime=random(1000);      // Variable for lightning timimg.

      // Every day at midnight, we check for chance of cloud happening today
      if (hour()==0 && minute()==0 && second()==0) cloudchance=255;

    #ifdef forcecloudcalculation
      if (cloudchance==255)
    #else
        if (hour()==0 && minute()==0 && second()==1 && cloudchance==255)
    #endif
        {
          randomSeed(millis());    // Seed the random number generator
          //Pick a random number between 0 and 99
          cloudchance=random(100);
          // if picked number is greater than Cloud_Chance_per_Day, we will not have clouds today
          if (cloudchance>Cloud_Chance_per_Day) cloudchance=0;
          // Check if today is day for clouds.
          if ((day()%Clouds_Every_X_Days)!=0) cloudchance=0;
          // If we have cloud today
          if (cloudchance)
          {
            // pick a random number for number of clouds between Min_Clouds_per_Day and Max_Clouds_per_Day
            numclouds=random(Min_Clouds_per_Day,Max_Clouds_per_Day);
            // pick the time that the first cloud will start
            // the range is calculated between Start_Cloud_After and the even distribuition of clouds on this day.
            cloudstart=random(Start_Cloud_After,Start_Cloud_After+((End_Cloud_Before-Start_Cloud_After)/(numclouds*2)));
            // pick a random number for the cloud duration of first cloud.
            cloudduration=random(Min_Cloud_Duration,Max_Cloud_Duration);
            //Pick a random number between 0 and 99
            lightningchance=random(100);
            // if picked number is greater than Lightning_Change_per_Cloud, we will not have lightning today
            if (lightningchance>Lightning_Change_per_Cloud) lightningchance=0;
          }
        }
      // Now that we have all the parameters for the cloud, let's create the effect


      if (cloudchance)
      {
        //is it time for cloud yet?
        if (NumMins(hour(),minute())>=cloudstart && NumMins(hour(),minute())<(cloudstart+cloudduration))
        {
          DaylightPWMValue=ReversePWMSlope(cloudstart,cloudstart+cloudduration,DaylightPWMValue/40.95,0,180)*40.95;
          if (chooseLightning)
          {
            lightningMode=LightningModes[random(100)%sizeof(LightningModes)];
            chooseLightning=false;
          }
          switch (lightningMode)
          {
          case Calm:
            break;
          case Mega:
            // Lightning chance from beginning of cloud through the end.  Chance increases with darkness of cloud.
            if (lightningchance && random(ReversePWMSlope(cloudstart,cloudstart+cloudduration,100,0,180))<1 && (millis()-DelayCounter)>DelayTime)
            {
              // Send the trigger
              Strike();
              DelayCounter=millis();    // If we just had a round of flashes, then lets put in a longer delay
              DelayTime=random(1000);   // of up to a second for dramatic effect before we do another round.
            }
            break;
          case Mega2:
            // Higher lightning chance from beginning of cloud through the end.  Chance increases with darkness of cloud.
            if (lightningchance && random(ReversePWMSlope(cloudstart,cloudstart+cloudduration,100,0,180))<2)
            {
              Strike();
            }
            break;
          case Fast:
            // 5 seconds of lightning in the middle of the cloud
            if (lightningchance && (NumMins(hour(),minute())==(cloudstart+(cloudduration/2))) && second()<5 && (millis()-DelayCounter)>DelayTime)
            {
              Strike();

              DelayCounter=millis();    // If we just had a round of flashes, then lets put in a longer delay
              DelayTime=random(1000);   // of up to a second for dramatic effect before we do another round.
            }
            break;
          case Slow:
            // Slow lightning for 5 seconds in the middle of the cloud.  Suitable for slower ELN style drivers
            if (lightningchance && (NumMins(hour(),minute())==(cloudstart+(cloudduration/2))) && second()<5)
            {
              if (random(100)<20) lightningstatus=1;
              else lightningstatus=0;
              if (lightningstatus)
              {
                DaylightPWMValue=4095;
              }
              else
              {
                DaylightPWMValue=0;
              }
              delay(1);
            }
            break;
          default:
            break;
          }
        }
        else
        {
          chooseLightning=true; // Reset the flag to choose a new lightning type
        }

        if (NumMins(hour(),minute())>(cloudstart+cloudduration))
        {
          cloudindex++;
          if (cloudindex < numclouds)
          {
            cloudstart=random(Start_Cloud_After+(((End_Cloud_Before-Start_Cloud_After)/(numclouds*2))*cloudindex*2),(Start_Cloud_After+(((End_Cloud_Before-Start_Cloud_After)/(numclouds*2))*cloudindex*2))+((End_Cloud_Before-Start_Cloud_After)/(numclouds*2)));
            // pick a random number for the cloud duration of first cloud.
            cloudduration=random(Min_Cloud_Duration,Max_Cloud_Duration);
            //Pick a random number between 0 and 99
            lightningchance=random(100);
            // if picked number is greater than Lightning_Change_per_Cloud, we will not have lightning today
            if (lightningchance>Lightning_Change_per_Cloud) lightningchance=0;
          }
        }
      }

      // Write the times of the next cloud, next lightning, and cloud duration to the screen and into some customvars for the Portal.
      if (LastNumMins!=NumMins(hour(),minute()))
      {
        LastNumMins=NumMins(hour(),minute());
        /*ReefAngel.LCD.Clear(255,0,120,132,132);
         ReefAngel.LCD.DrawText(0,255,5,120,"C");
         ReefAngel.LCD.DrawText(0,255,11,120,"00:00");
         ReefAngel.LCD.DrawText(0,255,45,120,"L");
         ReefAngel.LCD.DrawText(0,255,51,120,"00:00"); */
        if (cloudchance && (NumMins(hour(),minute())<cloudstart))
        {
          int x=0;
          if ((cloudstart/60)>=10) x=11;
          else x=17;
          //ReefAngel.LCD.DrawText(0,255,x,120,(cloudstart/60));
          ReefAngel.CustomVar[3]=cloudstart/60; // Write the hour of the next cloud to custom variable for Portal reporting
          if ((cloudstart%60)>=10) x=29;
          else x=35;
          //ReefAngel.LCD.DrawText(0,255,x,120,(cloudstart%60));
          ReefAngel.CustomVar[4]=cloudstart%60; // Write the minute of the next cloud to custom variable for Portal reporting

        }
        //ReefAngel.LCD.DrawText(0,255,90,120,cloudduration);
        ReefAngel.CustomVar[7]=(cloudduration);    // Put the duration of the next cloud in a custom var for the portal
        if (lightningchance)
        {
          int x=0;
          if (((cloudstart+(cloudduration/2))/60)>=10) x=51;
          else x=57;
          //ReefAngel.LCD.DrawText(0,255,x,120,((cloudstart+(cloudduration/2))/60));
          ReefAngel.CustomVar[5]=(cloudstart+(cloudduration/2))/60;    // Write the hour of the next lightning to a custom variable for the Portal
          if (((cloudstart+(cloudduration/2))%60)>=10) x=69;
          else x=75;
          //ReefAngel.LCD.DrawText(0,255,x,120,((cloudstart+(cloudduration/2))%60)); // Write the minute of the next lightning to a custom variable for the Portal
            ReefAngel.CustomVar[6]=(cloudstart+(cloudduration/2))%60;
        }
      }   
    }

    void Strike()
    {
      int a=random(1,5);    // Pick a number of consecutive flashes from 1 to 4. 
      for (int i=0; i<a; i++)
      {
        // Flash on
        int newdata=4095;
        Wire.beginTransmission(0x40);      // Address of the dimming expansion module
        Wire.write(0x8+(4*1));             // 0x8 is channel 0, 0x12 is channel 1, etc.  I'm using channel 1.
        Wire.write(newdata&0xff);          // Send the data 8 bits at a time.  This sends the LSB
        Wire.write(newdata>>8);            // This sends the MSB
        Wire.endTransmission();
       
        int randy=random(20,80);    // Random number for a delay
        if (randy>71) randy=((randy-70)/2)*100;    // Small chance of a longer delay
        delay(randy);                // Wait from 20 to 69 ms, or 100-400 ms
       
        // Flash off.  Return to baseline.
        newdata=ReefAngel.PWM.GetChannelValueRaw(1);   // Use the channel number you're flashing here
        Wire.beginTransmission(0x40);    // Same as above
        Wire.write(0x8+(4*1));
        Wire.write(newdata&0xff);
        Wire.write(newdata>>8);
        Wire.endTransmission();
       
        delay(random(30,50));                // Wait from 30 to 49 ms
        wdt_reset();    // Reset watchdog timer to avoid re-boots
      }
    }

    byte ReversePWMSlope(long cstart,long cend,byte PWMStart,byte PWMEnd, byte clength)
    {
      long n=elapsedSecsToday(now());
      cstart*=60;
      cend*=60;
      if (n<cstart) return PWMStart;
      if (n>=cstart && n<=(cstart+clength)) return map(n,cstart,cstart+clength,PWMStart,PWMEnd);
      if (n>(cstart+clength) && n<(cend-clength)) return PWMEnd;
      if (n>=(cend-clength) && n<=cend) return map(n,cend-clength,cend,PWMEnd,PWMStart);
      if (n>cend) return (int) PWMStart;
    }

I would really appreciate any help you can give me
Image
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Can someone tell my why my lights aren't working?

Post by Sacohen »

First of all are you sure that your lights are able to be controlled by a third party controller?
What kind of lights are they?

What are on Port 7 and Box 1 Port 1, they are listed as lighting too?

Have the lights ever worked on the Dimming module or the PWM ports on the Relay?

I would remove all the code for the cloud and Lightning and get the lights working first them once they are working and set to the time you want go back in and add the cloud and Lightning code.
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

Sacohen wrote:First of all are you sure that your lights are able to be controlled by a third party controller?
What kind of lights are they?

What are on Port 7 and Box 1 Port 1, they are listed as lighting too?

Have the lights ever worked on the Dimming module or the PWM ports on the Relay?

I would remove all the code for the cloud and Lightning and get the lights working first them once they are working and set to the time you want go back in and add the cloud and Lightning code.
They are DIY I switched to LDD drivers from ELN drivers with this switch so they have been controlled by the RA for 6 months now just through the relay which doesn't support 0-5v.

Port 7 is my fuge light and not sure why but it always lists box1 port 1. I feel this is the problem but have been tinkering with it for an hour now and can't figure out how to make port 7 come on at 6pm and go off at 10am so i can
remove those lines. Some assistance on that would be great.

I am in the process of giving this last bit a whirl.
Image
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

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 <Humidity.h>
#include <DCPump.h>
#include <PAR.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
    ReefAngel.Use2014Screen();  // Let's use 2014 Screen 
    // Ports toggled in Feeding Mode
    ReefAngel.FeedingModePorts = Port1Bit | Port4Bit;
    // Ports toggled in Water Change Mode
    ReefAngel.WaterChangePorts = Port1Bit | Port2Bit | Port3Bit | Port4Bit | Port5Bit;
    // Ports toggled when Lights On / Off menu entry selected
    ReefAngel.LightsOnPorts = 0;
    // Ports turned off when Overheat temperature exceeded
    ReefAngel.OverheatShutoffPorts = Port2Bit | Port3Bit;
    // Use T1 probe as temperature and overheat functions
    ReefAngel.TempProbe = T1_PROBE;
    ReefAngel.OverheatProbe = T1_PROBE;


    // Ports that are always on
    ReefAngel.Relay.On( Port1 );
    ReefAngel.Relay.On( Port4 );

    ////// Place additional initialization code below here
    

    ////// Place additional initialization code above here
}

void loop()
{
    ReefAngel.StandardHeater( Port2 );
if ( ReefAngel.Params.Temp[T1_PROBE] < (InternalMemory.HeaterTempOn_read() - 10)) { ReefAngel.Relay.On(Port3); };
if ( ReefAngel.Params.Temp[T1_PROBE] > (InternalMemory.HeaterTempOff_read() - 5)) { ReefAngel.Relay.Off(Port3); };
    ReefAngel.SingleATOLow( Port5 );
    ReefAngel.PWM.Channel0PWMSlope();
    ReefAngel.PWM.Channel1PWMParabola();
    ReefAngel.Relay.Set(Port8, now()%21600<10800);
    ////// Place your custom code below here
    

    ////// Place your custom code above here

    // This should always be the last line
    ReefAngel.Portal( "MDB1029" );
    ReefAngel.DDNS( "Reef" ); // Your DDNS is MDB1029-Reef.myreefangel.com
    ReefAngel.ShowInterface();
}

 
Still no lights
Image
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

So I got the lights on and it seems they are on at the right percentage but i am unable to change the percentage they are running any thoughts?
Image
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Can someone tell my why my lights aren't working?

Post by Sacohen »

Where are you trying to change the percentage that they are running?
You can't change the percentage from the Portal unless you have them set to the internal memory, which it doesn't look like you do.

They can only controlled by the Android app and possibly the U-App (I'm really not familiar with the U-App).
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

i am trying to change it with the android app
Image
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Can someone tell my why my lights aren't working?

Post by Sacohen »

You need to hold the selection for about 10 seconds and then a slider will come up that you change and then accept.
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

right it takes the adjustment but it doesn't actually change
Image
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

So, they are on. Not sure what percentage they are at but they definitely are not ramping down for when they are supposed to turn off.
Image
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Can someone tell my why my lights aren't working?

Post by Sacohen »

I'm having the same issue with my lights that I'm setting up now.
From what I've been able to determine is if the lights are on, but not full power there is either a reversed or bad ground.

I hope this helps.
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

Can you help me out with what a reversed ground is? What i need to look at for that?
Image
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Can someone tell my why my lights aren't working?

Post by Sacohen »

Basically the + of the RA dimming module is going to the - of the lights and the - of the RA is going to the + of the lights rather than + to + and - to - as it should.

A bad ground would be they are connected correctly, but there is a bad solder or connection and the circuit is not complete.
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

Thank you, i will check those things.
Image
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Can someone tell my why my lights aren't working?

Post by Sacohen »

Is it dim at a constant level?
Like 50% and won't go higher or lower.
I'm guessing a reversed + -.
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

It doesn't look like it is reversed unless i can't read the manual for the dimming expansion. Left side is the + terminals and the right 3 are the -?
Image
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Can someone tell my why my lights aren't working?

Post by Sacohen »

That's correct.
User avatar
cosmith71
Posts: 1437
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: Can someone tell my why my lights aren't working?

Post by cosmith71 »

It's hard to tell without knowing your memory values. Let's re-write the code with hard coded values. What are the times you want each to run, and what are the percentages (low and high) you want to use?

--Colin
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

cosmith71 wrote:It's hard to tell without knowing your memory values. Let's re-write the code with hard coded values. What are the times you want each to run, and what are the percentages (low and high) you want to use?

--Colin
I would like the whites to run from 10am to 8pm they are on channel 0, i am acclimating to the new power of the lights so i am wanting the low for them 0% and high 30%.

Blues can start and end 30 minutes longer on each end and I wanted to try them at 5% low and 30% high.

I also can't seem to add my fuge lights in here which are on port 7 and i want them running from 6 pm to 10am if you could help me out with that as well.

I appreciate your help
Image
User avatar
cosmith71
Posts: 1437
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: Can someone tell my why my lights aren't working?

Post by cosmith71 »

Try this. Note that the PWMParabola is going to ramp up much slower than PWMSlope, so your blues will ramp up slower.

Code: Select all

  ReefAngel.PWM.SetChannel(0,PWMSlope(10,0,20,0,0,30,60,0));  // Whites from 1000 to 2200 with a 60 minute ramp
  ReefAngel.PWM.SetChannel(1,PWMParabola(9,30,20,30,5,30,0));  // Blues from 0930 to 2230 on a parabola
  ReefAngel.StandardLights(Port7,18,0,10,0);  // Fuge light from 1800 to 1000
Once we get the lights working at the most basic level we can work on the extras.
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

I am going to add and upload this now. With the code this way, will I be able to change the %s from the internal memory or the app?
Image
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

Code: Select all

      ReefAngel.PWM.SetChannel(0,PWMSlope(10,0,20,0,0,30,60,0));  // Whites from 1000 to 2200 with a 60 minute ramp
      ReefAngel.PWM.SetChannel(1,PWMParabola(9,30,20,30,5,30,0));  // Blues from 0930 to 2230 on a parabola
      ReefAngel.StandardLights(Port7,18,0,10,0);  // Fuge light from 1800 to 1000
Is this missing a 0 at the end of the blue channel?
Image
User avatar
cosmith71
Posts: 1437
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: Can someone tell my why my lights aren't working?

Post by cosmith71 »

I don't believe so. PWMParabola takes one less argument than PWMSlope.

--Colin
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

I have this uploaded with the change. I know it doesn't change with the app but not sure if it will or not. I won't know if it is working correctly until i drive on my street after work and see the lights on or not.
Image
User avatar
cosmith71
Posts: 1437
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: Can someone tell my why my lights aren't working?

Post by cosmith71 »

You should be able to override the percentage with the app. Go to the "Dimming" page and long press the value to bring up a slider. Make sure it's the dimming page that show all 6 channels and not the main "controller" page that has temps, pH, etc on it.

If you want to use the memory locations to change max brightness, times, etc. then it won't work. Lets get the basics first and then we can do that.

--Colin
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

So the lights were shining down the street when i turned the corner at 15 past midnight. So still not working properly.

With the wiring, I have channel 0 going to 2 drivers which go to my white lights and channel 1 also goes to 2 drivers which go to my blue lights. Would this have some effect on why this is not working? I have checked over all the wiring and can't find anything wrong with it, not saying i am not missing something though.
Image
User avatar
cosmith71
Posts: 1437
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: Can someone tell my why my lights aren't working?

Post by cosmith71 »

2 drivers shouldn't be a problem. Up until recently I was running 4 per channel.

I think there is a hardware problem.

Do you have a voltmeter? Can you check the voltage across your PWM outputs on the dimming expansion? Need to know the voltage between channel 0 and ground, and channel 1 and ground, and the percentage they're supposed to be running at.

--Colin
MDB1029
Posts: 178
Joined: Wed Nov 12, 2014 3:10 pm
Location: An Oklahoman in Ohio

Re: Can someone tell my why my lights aren't working?

Post by MDB1029 »

Channel 0 - 11.9 v dc at 16%
Channel 1 - 11.12 v dc at 30%

This is on the 20V DC setting
Image
User avatar
cosmith71
Posts: 1437
Joined: Fri Mar 29, 2013 3:51 pm
Location: Oklahoma City

Re: Can someone tell my why my lights aren't working?

Post by cosmith71 »

Did you check on the dimming expansion? Should be less than 5v.
User avatar
Sacohen
Posts: 1833
Joined: Sun Apr 21, 2013 6:25 am
Location: Davie, FL

Re: Can someone tell my why my lights aren't working?

Post by Sacohen »

That doesn't seem correct.
First of all are you sure you have the jumpers on the dimming module set to 0-5v becuase you shouldn't be getting 11v out of it if you do.

Second of all 30% of 12v is 3.6v not 11.12v and 16% of 12v is 1.92v. 30% of 5v would be 1.5v and 16% of 5v would be 0.8v.

I hope you didn't fry your drivers by sending them 0-12v instead of 0-5v
Post Reply