Ay, casi que dejemos lo del botón a un lado....
En fin, acabo de ponerme con ello, te paso el código y un pequeño video para que lo veas:
CODE
char option = 'b';
int rojo = 9; // LED connected to digital pin 9
int verde = 6; // LES conestao al digital pin 8
int azul = 5; // LES conestao al digital pin 7
int valrojo = 255; // variable to store the read value
int valverde = 122; // variable to store the read value
int valazul = 61; // variable to store the read value
boolean first_time = true;
void setup(){
Serial.begin(9600);
pinMode(rojo, OUTPUT); // sets the pin as output
pinMode(verde, OUTPUT);
pinMode(azul, OUTPUT);
}
void loop(){
//si existe datos disponibles los leemos
if (Serial.available()>0){
option=Serial.read();
if (option == 'a'){
first_time = true;
}
}
if (option=='a'){
if (first_time == true){
valrojo = 255;
valverde = 122;
valazul = 61;
first_time = false;
}
valrojo = (valrojo+15)%256;
valverde = (valverde+15)%256;
valazul = (valazul+15)%256;
}
if (option == 'b'){
valrojo = 122;
valverde = 122;
valazul = 122;
}
analogWrite(rojo, valrojo);
analogWrite(verde, valverde);
analogWrite(azul, valazul);
delay(75);
}
Con este código, ya no necesitas botón, se realiza a través de la conexión serie de arduino con el pc
Video
Como puedes ver, solo tienes que abrir el monitor serie de arduino, y según mandes "a" o "b" se pondrá en arealizar la secuencia de colores o se quedará parado. Simple ¿no?
Y si me das un par de minutos te mando tambien el código para controlarlo desde un script de python....
EDITO:
Ya esta. Estos serían los scripts para habilitar y deshabilitar el movimiento de las lucecitas:
send_a.py
CODE
import serial
import time
com = serial.Serial()
com.port = 'COM8'
com.baudrate = 9600
com.timeout = 1
com.setDTR(False)
com.open()
try:
com.write('a')
com.close()
except:
pass
send_b.py
CODE
import serial
import time
com = serial.Serial()
com.port = 'COM8'
com.baudrate = 9600
com.timeout = 1
com.setDTR(False)
com.open()
try:
com.write('b')
com.close()
except:
pass
Ojo, necesitas tener python27 instalado junto con Pyserial, ah y el puerto con puede que en tu caso no sea "COM8" ya que te lo asigna el pc compruebalo desde el terminal IDE de arduino para saber cual es