Étape 6: Le code
Le code est conçu pour tout simplement s’assurer que tout fonctionne. Il ne fait comte de 0 à 99 et affiche ces valeurs sur les tubes nixie. L’octet envoyé et le registre à décalage est en fait deux segments de quatre bits qui racontent chaque puce 74141 quel numéro de lumière vers le haut. Pour cette raison, chacune des sorties possibles 100 est un nombre binaire distinct. Profitant de cela j’ai calculé l’équivalent décimal de chacun de ces 100 octets et mettre en place un tableau qui convertit la valeur décimale 0 - valeur 99 à l’octet appropriée. Ainsi, chacun des doit faire est de fournir le code avec un nombre à deux chiffres (la variable 'x') et elle sera affichée.J’ai inclus quelques commandes serial.print pour s’assurer que c’est tout le fonctionnement.
/ * une esquisse de conduire deux tubes nixie en utilisant deux puces SN74141 BCD et un seul registre à décalage SN74HC595N
développé à partir de tutoriels sur Adafruit.com et arduino.cc
l’esquisse provoquera deux tubes nixie compter de 0 à 99, mais vous pouvez la modifier pour créer n’importe quel nombre à deux chiffres et ont le tube nixie lafficher
Jeff gland 2013
Publié dans le domaine public
*/
mettre en place les chevilles pour la communication avec le registre à décalage
int latchPin = 8 ;
int clockPin = 12 ;
int dataPin = 11 ;
int x ; Créez une variable de comptage
créer un tableau qui traduit un octet approprié pour l’envoi vers le registre à décalage de nombres décimaux
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} ;
Nixes octets = 255 ; initier l’octet pour être envoyé à la Registre à décalage et définissez-la à blanc les Nixes
void setup() {}
pinMode (latchPin, sortie) ;
pinMode (dataPin, sortie) ;
pinMode (clockPin, sortie) ;
Serial.Begin(9600) ;
}
void loop() {}
Nixes = 255 ; créer un octet vide
updateShiftRegister() ; Envoyer l’octet vide pour le registre à décalage
Delay(500) ;
pour (x = 0; x < 100; x ++) {/ / compter de 0 à 99
Nixes = charTable [x] ; traduire en un octet à envoyer pour le registre à décalage
updateShiftRegister() ; Envoyer au registre à décalage
Delay(500) ;
Serial.Print ("x =") ;
Serial.println(x) ;
Serial.Print (« Nixes = ") ;
Serial.println(nixies);}
}
le processus d’envoi d’un octet pour le registre à décalage
void updateShiftRegister() {}
digitalWrite (latchPin, basse) ;
shiftOut (dataPin, clockPin, LSBFIRST, Nixes) ;
digitalWrite (latchPin, HIGH) ;
}