Clouds/Lightning/Storms for 16 Channel PWM Expansion

Do you have a question on how to do something.
Ask in here.
dlplunkett44
Posts: 74
Joined: Mon Aug 05, 2013 3:16 am

Re: Clouds/Lightning/Storms for 16 Channel PWM Expansion

Post by dlplunkett44 »

So this is how I would write the values?

Code: Select all

//0 = White Far East
PWMChannel[0]=PWMParabolaHighRes(8,0,20,30,0,3276,0);  //80%
//1 = White Near East
PWMChannel[1]=PWMParabolaHighRes(8,5,20,35,0,3276,0);  //80%
//2 = White Near West
PWMChannel[2]=PWMParabolaHighRes(8,10,20,40,0,3276,0);  //80%
//3 = White Far West
PWMChannel[3]=PWMParabolaHighRes(8,15,20,45,0,3276,0);  //80%
//4 = Blue Far East
PWMChannel[4]=PWMParabolaHighRes(7,15,21,15,0,3276,0);  //80%
//5 = Blue Near East
PWMChannel[5]=PWMParabolaHighRes(7,20,21,20,0,3276,0);  //80%
//6 = Blue Near West
PWMChannel[6]=PWMParabolaHighRes(7,25,21,25,0,3276,0);  //80%
//7 = Blue Far West
PWMChannel[7]=PWMParabolaHighRes(7,30,21,30,0,3276,0);  //80%
//8 = OCW Far East
PWMChannel[8]=PWMParabolaHighRes(8,15,20,15,0,2457,0);  //60%
//9 = OCW Near East
PWMChannel[9]=PWMParabolaHighRes(8,20,20,20,0,2457,0);  //60%
//10 = OCW Near West
PWMChannel[10]=PWMParabolaHighRes(8,25,20,25,0,2457,0);  //60%
//11 = OCW Far West
PWMChannel[11]=PWMParabolaHighRes(8,30,20,30,0,2457,0);  //60%
//12 = Violets
PWMChannel[12]=PWMParabolaHighRes(8,15,20,30,0,2662,0);  //65%
//13 = Moonlight Far East
PWMChannel[13]=PWMParabolaHighRes(20,15,8,30,0,614,0);  //15%
//14 = Moonlight Near East and West
PWMChannel[14]=PWMParabolaHighRes(20,20,8,35,0,614,0);  //15%
//15 = Moonlight Far West
PWMChannel[15]=PWMParabolaHighRes(20,25,8,40,0,614,0);  //15%
   
CheckCloud();

ReefAngel.PWM.Set16Channel(0,PWMChannel[0]);
ReefAngel.PWM.Set16Channel(1,PWMChannel[1]);
ReefAngel.PWM.Set16Channel(2,PWMChannel[2]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[3]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[4]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[5]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[6]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[7]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[8]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[9]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[10]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[11]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[12]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[13]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[14]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[15]);
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Clouds/Lightning/Storms for 16 Channel PWM Expansion

Post by AlanM »

No, youre getting it backwards. The highres functions take percents as arguments and return values up to 4095. They dont take those values as arguments.
dlplunkett44
Posts: 74
Joined: Mon Aug 05, 2013 3:16 am

Re: Clouds/Lightning/Storms for 16 Channel PWM Expansion

Post by dlplunkett44 »

ok, so it should be like this, right?

Code: Select all

//0 = White Far East
PWMChannel[0]=PWMParabolaHighRes(8,0,20,30,0,80,0);  //80%
//1 = White Near East
PWMChannel[1]=PWMParabolaHighRes(8,5,20,35,0,80,0);  //80%
//2 = White Near West
PWMChannel[2]=PWMParabolaHighRes(8,10,20,40,0,80,0);  //80%
//3 = White Far West
PWMChannel[3]=PWMParabolaHighRes(8,15,20,45,0,80,0);  //80%
//4 = Blue Far East
PWMChannel[4]=PWMParabolaHighRes(7,15,21,15,0,80,0);  //80%
//5 = Blue Near East
PWMChannel[5]=PWMParabolaHighRes(7,20,21,20,0,80,0);  //80%
//6 = Blue Near West
PWMChannel[6]=PWMParabolaHighRes(7,25,21,25,0,80,0);  //80%
//7 = Blue Far West
PWMChannel[7]=PWMParabolaHighRes(7,30,21,30,0,80,0);  //80%
//8 = OCW Far East
PWMChannel[8]=PWMParabolaHighRes(8,15,20,15,0,60,0);  //60%
//9 = OCW Near East
PWMChannel[9]=PWMParabolaHighRes(8,20,20,20,0,60,0);  //60%
//10 = OCW Near West
PWMChannel[10]=PWMParabolaHighRes(8,25,20,25,0,60,0);  //60%
//11 = OCW Far West
PWMChannel[11]=PWMParabolaHighRes(8,30,20,30,0,60,0);  //60%
//12 = Violets
PWMChannel[12]=PWMParabolaHighRes(8,15,20,30,0,65,0);  //65%
//13 = Moonlight Far East
PWMChannel[13]=PWMParabolaHighRes(20,15,8,30,0,15,0);  //15%
//14 = Moonlight Near East and West
PWMChannel[14]=PWMParabolaHighRes(20,20,8,35,0,15,0);  //15%
//15 = Moonlight Far West
PWMChannel[15]=PWMParabolaHighRes(20,25,8,40,0,15,0);  //15%
   
CheckCloud();

ReefAngel.PWM.Set16Channel(0,PWMChannel[0]);
ReefAngel.PWM.Set16Channel(1,PWMChannel[1]);
ReefAngel.PWM.Set16Channel(2,PWMChannel[2]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[3]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[4]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[5]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[6]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[7]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[8]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[9]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[10]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[11]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[12]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[13]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[14]);
ReefAngel.PWM.Set16Channel(3,PWMChannel[15]);

if it is taking percents would it only have 100 levels of resolution or would it take 46.29% for example and convert that to 1896?
dlplunkett44
Posts: 74
Joined: Mon Aug 05, 2013 3:16 am

Re: Clouds/Lightning/Storms for 16 Channel PWM Expansion

Post by dlplunkett44 »

Also, as far as the new reversePWMSlope function goes, would this look good?

Code: Select all

int FastReversePWMSlope(long fcstart,long fcend,byte fPWMStart,byte fPWMEnd, byte fclength)
{
 long n=1000*elapsedSecsToday(now());
 fcstart*=60000;
 fcend*=60000;
 if (n<fcstart) return fPWMStart;
 if (n>=fcstart && n<=(fcstart+fclength)) return map(n,fcstart,fcstart+fclength,fPWMStart,fPWMEnd);
 if (n>(fcstart+fclength) && n<(fcend-fclength)) return fPWMEnd;
 if (n>=(fcend-fclength) && n<=fcend) return map(n,fcend-fclength,fcend,fPWMEnd,fPWMStart);
 if (n>fcend) return fPWMStart;
}
Thanks again for all your help!
AlanM
Posts: 263
Joined: Wed Jan 01, 2014 7:26 am

Re: Clouds/Lightning/Storms for 16 Channel PWM Expansion

Post by AlanM »

Sorry I went afk from this forum. Is it working for you now?
Post Reply