Paso 5: Enchufe todo y cargar firmware
Ahora su corazón de ocho bits debería ser ahora listo para enchufar y cargar un firmware. El esbozo adjunto sólo pulsos el corazón hacia arriba y hacia abajo. Si ha copiado mi diseño y escribir su propio bosquejo tenga en cuenta que he seleccionado resistencias con menor ohm de los LEDs pueden manejar durante un largo período de tiempo. Así que si dejas cualquier LED en durante un largo período de tiempo hay una buena oportunidad a soplarlo. Regla simple: mantenerlo en movimiento y mantenga menos de 1/3 lit y _should_ estar bien (al menos esa es mi comprensión, corregirme si me equivoco).
Sketch de Arduino de corazón 8 bits:
Latido del corazón de 8 bits
Un bosquejo para ejecutar en el corazón de 8 bits con sincronización personalizada madas
y matriz de LED personalizable para fácil reordenamiento, como necesitaba.
Por: PuZZleDucK
Licencia: GPL3
Fecha: 28/01/2014
arraySize int = 17; Número de LEDs en tu corazón... más me amas.
int ledArray [17] = {4,3,2, A0, A1, A2, A3, A4, A5, 12, 11, 10, 9, 8, 7, 6, 5}; Tenga en cuenta el estilo 'europeo' de a partir de las 4.
tiempo volátil = 0; Loco de la sincronización...
void setup() {/ / Just set todos nuestros pernos de salida
para (int i = 0; i < arraySize; i ++) {}
pinMode (ledArray [i], salida);
}
}
void loop() {}
tiempo ++; Índice de tiempo de avance
Si (tiempo == L 2147483647) {}
tiempo == 0; Al final, cerca del principio.
}
Usando matematica modula a oposición LEDs
digitalWrite (ledArray [arraySize ((time-1) % arraySize) -1], alto);
digitalWrite (ledArray [tiempo % arraySize], HIGH);
Delay(50); Usted puede pensar 100 podría ser más romántico, pero he encontrado 50 para ser un buen balance entre aburrido y la inducción de convulsiones.
digitalWrite (ledArray [arraySize ((time-1) % arraySize) -1], bajo);
digitalWrite (ledArray [tiempo % arraySize], LOW);
} //loop
Usé esto para depurar... Rezo para que nunca lo necesitará.
pero si lo haces es genial como esta: blinkN (tiempo % arraySize, arraySize de % de tiempo + 1); Este parpadeará cada pin a su vez con su propio número de orden.
void blinkN (int pin, int count) {}
para (int i = 0; i < cuenta; i ++) {}
digitalWrite (pin, HIGH);
Delay(100); Usted puede pensar que 50 sería más rápido... pero no puedo contar que rápido: p
digitalWrite (pin, LOW);
Delay(100);
}
} //blinkN