Project 04

Hello,

I was just playing around after finishing this project and see if I was able to make some random color mixing.
It took me some time to google, re-calculate and some trials and errors but i guess it is working fine now.
Just curious what you think about it.
Probably there is still room for improvement.

Regards,
Ruud

/*Begining of Auto generated code by Atmel studio */
#include <Arduino.h>
const int start_stop_button = 5;
unsigned long millis();
//unsigned long previous_time = 0;
int red = 0;
int green = 0;
int blue = 0;
int start_stop_button_status = 0;
int start_stop_button_previousscan = 0;
int period_time = 0;
boolean start = false;
float redfact = 0;
float greenfact = 0;
float bluefact = 0;
float radsec =(57.29577951*2.777777778);// 360/(2*pi)*(1000/360) from millisec to sec and degrees to radians

void setup() {
	// put your setup code here, to run once:
	pinMode(start_stop_button,INPUT);
	Serial.begin(9600);
}
void loop() {
	// put your main code here, to run repeatedly:

	int start_stop_button_status = digitalRead(start_stop_button);
	int brightness = analogRead(A0)/4;
	int period_time=1+analogRead(A5)/17; //from 1 to 61 sec per sinus wave for red
	
	if(start_stop_button_status != start_stop_button_previousscan)
	if (start_stop_button_status == HIGH)
	{start = !start ; }//previous_time = millis();}
	if(start==true){
		//previous_time=100+previous_time;
		redfact=float	((1+sin((millis())/(radsec*period_time)))/2);		//scaling from -1/1 sinus to 0/1
		greenfact=float	((1+sin((millis())/(radsec*period_time*1.1)))/2);  	//create some offset for green and blue
		bluefact=float	((1+sin((millis())/(radsec*period_time*0.85)))/2);
		//	red=random(0,brightness);green=random(0,brightness);blue=random(0,brightness);}
		red=redfact*brightness; red=constrain(red,0,255);
		green=greenfact*brightness; green=constrain(green,0,255);
	blue=bluefact*brightness; blue=constrain(blue,0,255);	}
	if(start==false){red=0;green=0;blue=0;}
	
	analogWrite(9,red);analogWrite(10,green);analogWrite(11,blue);
	{start_stop_button_previousscan=start_stop_button_status;}
		
if(start==true){
	Serial.print("millis = ");
	Serial.print(millis());
	Serial.print(" brightness % = ");
	Serial.print(float(analogRead(A0)/10.23));
	Serial.print(" ");
/*	Serial.print(millis())-previous_time);
	Serial.print(" ");
*/	Serial.print(" period_time = ");
	Serial.print(period_time);
	Serial.print(" ");
		Serial.print(redfact);
		Serial.print(" ");
		Serial.print(greenfact);
		Serial.print(" ");
		Serial.print(bluefact);
		Serial.print(" ");
		Serial.print(" red = ");
		Serial.print(red);
		Serial.print(" green = ");
		Serial.print(green);
		Serial.print(" blue = ");
	Serial.print(blue);
	Serial.println();}
	//delay(pow(period_time,2));
}