Disculpa, esto es lo que voy haciendo y se podria decir que lo consegui, dejo el codigo para ver que me recomiendan o como lo puedo mejorar, la idea como dije es tener dos leds, uno verde y otro rojo, pero que salga el 70% rojo y el resto verde, aleatoriamiente.
Con la funcion random supongo que sale con el porcentaje que me dijiste, y vi que siempre se repite la misma rutina cada vez que lo reinicio al arduino.
Luego hice otro programa sin radom, mas que nada la rutina que haria siempre consiguiendo asi el porcentaje querido, pero bueno, no soy experto en arduino y a lo mejor me equivoque en algo o hay una manera mejor de resolverlo gracias.
//Programa Aleatorio Semaforo Led
long numero;
int LED=2;
int LED2=4;
int PUL=7;
void setup() {
Serial.begin(9600);
pinMode(LED2,OUTPUT);
pinMode(LED,OUTPUT);
digitalWrite(LED,LOW);
digitalWrite(LED2,LOW);
}
void loop() {
while(digitalRead(PUL)==0);//Repite este ciclo hasta que ve un 1, y luego continua
numero = random(1,3);//guardamos un numero al azar elegido por arduino en la variable "numero"
if (numero==1){
digitalWrite(LED,HIGH);//si el numero es 1, enciende el led1
}
else{
digitalWrite(LED2,HIGH);//si no es 1 enciende el led 2
}
delay(2000);//espera 2 segundos y apago los leds y se repite el ciclo
digitalWrite(LED,LOW);
digitalWrite(LED2,LOW);
}
el otro codigo
//Programa Aleatorio Semaforo Led
long numero;
int LED=2;
int LED2=4;
int PUL=7;
void setup() {
pinMode(LED2,OUTPUT);
pinMode(LED,OUTPUT);
digitalWrite(LED,LOW);
digitalWrite(LED2,LOW);
}
//Bucle principal
void loop() {
while(digitalRead(PUL)==0);//Repite este ciclo hasta que ve un 1, y luego continua
digitalWrite(LED,HIGH);
delay(2000);
digitalWrite(LED,LOW);
while(digitalRead(PUL)==0);
digitalWrite(LED,HIGH);
delay(2000);
digitalWrite(LED,LOW);
while(digitalRead(PUL)==0);
digitalWrite(LED2,HIGH);
delay(2000);
digitalWrite(LED2,LOW);
while(digitalRead(PUL)==0);//Repite este ciclo hasta que ve un 1, y luego continua
digitalWrite(LED,HIGH);
delay(2000);
digitalWrite(LED,LOW);
while(digitalRead(PUL)==0);//Repite este ciclo hasta que ve un 1, y luego continua
digitalWrite(LED,HIGH);
delay(2000);
digitalWrite(LED,LOW);
while(digitalRead(PUL)==0);//Repite este ciclo hasta que ve un 1, y luego continua
digitalWrite(LED,HIGH);
delay(2000);
digitalWrite(LED,LOW);
while(digitalRead(PUL)==0);
digitalWrite(LED2,HIGH);
delay(2000);
digitalWrite(LED2,LOW);
while(digitalRead(PUL)==0);
digitalWrite(LED2,HIGH);
delay(2000);
digitalWrite(LED2,LOW);
while(digitalRead(PUL)==0);//Repite este ciclo hasta que ve un 1, y luego continua
digitalWrite(LED,HIGH);
delay(2000);
digitalWrite(LED,LOW);
while(digitalRead(PUL)==0);//Repite este ciclo hasta que ve un 1, y luego continua
digitalWrite(LED,HIGH);
delay(2000);
digitalWrite(LED,LOW);
while(digitalRead(PUL)==0);
digitalWrite(LED2,HIGH);
delay(2000);
digitalWrite(LED2,LOW);
}