Paso 4: Programación con Arduino
Una vez que el cubo está conectado a su circuito prototipo, escribir algún código de prueba!Una función inteligente que desarrollé para realizar eficientemente la salida de los decodificadores es documentada por debajo y también se encuentra en el código adjuntado. Aquí es donde obviamente ocurre algún bit a bit de la magia negra.
/* //delay, this is the absoloute minimum time the light will be displayed./**
* Displays the anode column with the given number value; [0, 24].
*/
void displayNum(int num){
//constrain the argument to be between 0 and 24 inclusive.
num = constrain(num, 0, 24);
* AND: selects the bit, the bit at weight will be 1 if the pin is to be high
* >>: shifts the selected bit to the end of the word, making the value a 0 or 1
* first result is lsb
* digitalWrite: write the approptiate result (HIGH or LOW)
* to the appropriate decoder pin
*/
for(int weight=1, pin=0; pin < DECODER_BITS; weight*=2, pin++)
digitalWrite(decoderPins[pin] ,(num & weight) >> pin);
//ensures adequate delay for decoders as well.
delayMicroseconds(MICRO);
}
El resto del código que utiliza se une aquí también. Esto se divide en 4 piezas principales.
LEDs.h:
Contiene todas las definiciones de pines y arreglos de discos que contienen clavijas para iteraciones rápidas.
DisplayBasics.pde:
Contiene unas "formas básicas" en el cubo, para el uso en los patrones.
Patterns.pde:
Contiene patrones que puede mostrar el cubo. Cada uno se documenta en el código y se puede ver en el vídeo en el paso de la intro de este instructable.
LEDCubePCB.pde:
Esta es la versión final de mi código y sus funciones setup() y loop(). te darás cuenta que elegir cual patrón en reajuste basado en la posición del potenciómetro (siguiente paso discutido). Yo animaría a una mejor manera de cambiar los patrones, que también se discute en el siguiente paso.