// Forum: https://forum.arduino.cc/t/algorithm-using-serial-communication/1187592
// This Wokwi project: https://wokwi.com/projects/381016354608842753
int timer = 300;
int i;
byte led1 = 8;
byte led2 = 9;
byte led3 = 10;
byte led4 = 11;
byte led5 = 12;
byte led6 = 13;
int flag = 0;
const byte st = A5;
void setup() {
Serial.begin(9600);
randomSeed(analogRead(0)); // para generar una nueva semilla
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(st, INPUT);
}
void loop() {
if (digitalRead(st) == 1) {
flag = !flag;
}
if (flag == 1) {
if (Serial.available()) {
char data = Serial.read();
if (data == 'a') {
for (i = 8; i <= 13; i++) {
digitalWrite(i, HIGH);
delay(900);
}
for (i = 8; i <= 13; i++) {
digitalWrite(i, LOW);
delay(900);
}
}
if (data == 'b') {
for (i = 13; i >= 8; i--) {
digitalWrite(i, HIGH);
delay(900);
}
for (i = 13; i >= 8; i--) {
digitalWrite(i, LOW);
delay(900);
}
}
if (data == 'c') {
int rnd = random(14); // ponemos hasta 14 ya que nunca se llega a 14
digitalWrite(rnd, HIGH);
delay(timer);
digitalWrite(rnd, LOW);
delay(timer);
}
}
}
else {
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
}