Paso 5: El código
Este código simplemente hace un corte recto entre cadenas, pero me gustaría añadir un fundido o un Cruz-disolver en versiones posteriores...
Añadir el siguiente código para el microcontrolador:
const int geigerPin = 12; conectado para pulso del contador Geiger, conexión también motivos luces int = 1; contador para cuerdas int lights1 = 9; definir los pines de a que los LEDs están conectados int bright1 = 200; configurar el brillo, 0-255 void setup() {} int led = bajo;
lights2 int = 10;
int lights3 = 11;
int bright2 = 200;
bright3 int = 200;
Serial.Begin(9600); Use el serial para la depuración
pinMode (geigerPin, entrada); sets pasadores para entradas y salidas
pinMode (lights1, salida);
pinMode (lights2, salida);
pinMode (lights3, salida);
analogWrite (lights1, bright1); interruptor cadena 1
analogWrite (lights2, 0);
analogWrite (lights3, 0);
Serial.println("Setup");
}
void loop() {}
int val = digitalRead(geigerPin);
mientras que (val == LOW) {}
hacer lo que siempre sucede cuando no hay señal
Val = digitalRead(geigerPin);
}
tiene el inicio de un pulso, entonces, hacer algo apropiado
Alternar entre un LED para que puedan ver cosas de trabajo
digitalWrite (13, led);
LED =! conducido;
Serial.println("Low");
mientras que (val == HIGH) {}
esperar a pulso terminar, 100us es mucho tiempo para un Arduino
Val = digitalRead(geigerPin);
}
pulso final
luces ++; incrementar el contador de pasar a la siguiente cadena
Si (luces == 1) {}
analogWrite (lights1, bright1); activar cadena 1
analogWrite (lights2, 0);
analogWrite (lights3, 0);
Serial.println("lights1");
}
Si (luces == 2) {}
analogWrite (lights1, 0);
analogWrite (lights2, bright2); activar cadena 2
analogWrite (lights3, 0);
Serial.println("lights2");
}
Si (luces == 3) {}
analogWrite (lights1, 0);
analogWrite (lights2, 0);
analogWrite (lights3, bright3); activar cadena 3
Serial.println("lights3");
luces = 0; el contador de
}
Serial.println(Lights);
}
Enchufe, interruptor, encontrar una planta para decorar :)