Paso 6: El código
El código está diseñado para simplemente asegurarse de que todo está funcionando. Todo lo que hace es contar de 0 a 99 y muestra estos valores en los tubos nixie. El byte enviado para el registro de desplazamiento es realmente dos poco cuatro segmentos que cada chip 74141 lo que a la luz el número hacia arriba. Debido a esto, cada una de las posibles 100 salidas es un número binario distinto. Aprovechando esto calculó el equivalente decimal de cada uno de los 100 bytes y establecer una matriz que convierte el decimal 0 - 99 valor del byte correspondiente. Así, todo lo que tiene que hacer es proporcionar el código con un número de dos dígitos (la variable 'x') y se mostrará.He incluido algunos comandos serial.print para asegurarse de que está trabajando.
/ * un boceto para dos tubos de nixie utilizando dos chips SN74141 BCD y un único registro de cambio de SN74HC595N
desarrollado a partir de los tutoriales en Adafruit.com y arduino.cc
el bosquejo hará dos tubos nixie contar de 0 a 99 pero se puede cambiar para crear cualquier número de dos dígitos y el tubo de nixie mostrarlo
Jeff glande 2013
Liberado al dominio público
*/
configurar los pines para comunicación con el registro de desplazamiento
int latchPin = 8;
clockPin INT = 12;
int dataPin = 11;
int x; crear una variable de conteo
crear una matriz que se traduce a números decimales en un byte apropiado para enviar al registro de desplazamiento
int [] charTable = {0,128,64,192,32,160,96,224,16,144,8,136,72,200,40,168,104,232,24,152,4,132,68,196,36,164,100,228,20,148,12,140,76,204,44,
172,108,236,28,156,2,130,66,194,34,162,98,226,
18,146,10,138,74,202,42,170,106,234,26,154,6,134,70,198,38,166,102,230,22,150,14,142,78,206,46,174,110,238,30,158,1,129,
65,193,33,161,97,225,17,145,9,137,73,201,41,169,105,233,25,153};
nixies bytes = 255; iniciar el byte para ser enviada al registro de desplazamiento y que en blanco las nixies
void setup() {}
pinMode (latchPin, salida);
pinMode (dataPin, salida);
pinMode (clockPin, salida);
Serial.Begin(9600);
}
void loop() {}
nixies = 255; crear un byte en blanco
updateShiftRegister(); enviar los bytes en blanco para el registro de desplazamiento
Delay(500);
para (x = 0; x < 100; x ++) {/ / contar de 0 a 99
nixies = charTable [x]; se traducen en un byte a enviar al registro de desplazamiento
updateShiftRegister(); enviar al registro de desplazamiento
Delay(500);
Serial.Print ("x =");
Serial.println(x);
Serial.Print ("nixies =");
Serial.println(nixies);}
}
el proceso de enviar un byte en el registro de desplazamiento
void updateShiftRegister() {}
digitalWrite (latchPin, bajo);
shiftOut (dataPin, clockPin, LSBFIRST, nixies);
digitalWrite (latchPin, HIGH);
}