Paso 4: Programar el Arduino
int led1 = 13, led2 = 12, led3 = 11, led4 = 10, led5 = 9, led6 = 8, led7 = 7, led8 = 6;
Define todos los bolos.
Como dije en el comentario, define los pines. Ahora agregue (configuración):
void setup()
{
pinMode (led1, salida);
pinMode (led2, salida);
pinMode (led3, salida);
pinMode (led4, salida);
pinMode (led5, salida);
pinMode (led6, salida);
pinMode (led7, salida);
pinMode (led8, salida);
Serial.Begin(9600);
}
Esto sólo establece los modos de pin y comienza la conexión en serie. Recuerde que la velocidad en baudios debe ser coherente con el script de perl.
Más código:
bucles de int = 0, total = 0, avrg = 0;
Estas son tres variables que son de necesidad. Lazos es cuántas veces ha enrollado. En general es el pasado suman diez entradas. Avrg es total / bucles.
Añadir esto:
void loop()
{
int entrada;
Si (Serial.available() > 0)
{
entrada = Serial.read() - '0'; Toma de entrada
}
Si (entrada! = 0) lazos ++; se cerciora de que la entrada no es 0. Si es así, no se contará
total += entrada; Agrega la entrada general
avrg = total/bucles; ¡ Hace un promedio.
Los comentarios decir todo
Añadir:
Si (bucles == 10)
{
avrg--; Reduce avereage en uno. ¿Recuerde en el script de perl cómo aumentamos por uno?
Si (avrg > 0) {digitalWrite (LED 1, HIGH);}
Else {digitalWrite (LED 1, LOW);}
Si (avrg > 1) {digitalWrite (led2, HIGH);}
Else {digitalWrite (led2, LOW);}
Si (avrg > 2) {digitalWrite (LED 3, alto);}
Else {digitalWrite (LED 3, LOW);}
Si (avrg > 3) {digitalWrite (led4, HIGH);}
Else {digitalWrite (led4, LOW);}
Si (avrg > 4) {digitalWrite (led5, HIGH);}
Else {digitalWrite (led5, LOW);}
Si (avrg > 5) {digitalWrite (led6, HIGH);}
Else {digitalWrite (led6, LOW);}
Si (avrg > 6) {digitalWrite (led7, HIGH);}
Else {digitalWrite (led7, LOW);}
Si (avrg > 7) {digitalWrite (led8, HIGH);}
Else {digitalWrite (led8, LOW);} //Make el gráfico
lazos = 0;
total = 0;
Este código simplemente dice "cada diez lazos, Mostrar la media y restablecer todo. Los comentarios deben explicar.
Por último, añadir:
Serial.Print ("tratando de escribir:");
Serial.Print(avrg);
Serial.Print("\n");
}
}
Esto es incluido para propósitos de solución de problemas. Si no está encendido, puede ver si aún está tratando de iluminar.
Termine con el código de Arduino!