Simple utilisateur-réglable DIY Nixie horloge (4 / 25 étapes)

Étape 4: le code

Le code que j’ai utilisé dans cette version de l’horloge est prélevé dans le matériau de l’open source disponible sur le site Web Arduinix , et j’ai vraiment vous suggère d’aller chercher Brad Lewis "Paresse four" projets impressionnants (il est un membre d’instructables trop).

J’ai modifié le code pour n'utiliser qu’un seul pilote de nixie au lieu de deux, étant donné que je n’avez pas besoin d’exécuter plus de 6 chiffres, et je préfère sauver les pilotes. Il y a un paramètre que vous pouvez modifier si vous avez des problème avec vos écrans, c’est le retard, mais 2 ms fonctionne très bien pour moi. Vous pouvez essayer ms 3 ou 4 mais plus cligno-les chiffres, puisque le logiciel doit passer par tous les chiffres avant d’allumer un chiffre encore une fois.

Ampoule Arduinix 6 - prend également en charge heure et min. de temps ensemble. / / Ce code exécute une installation six ampoule et affiche une configuration d’horloge de prototype. NOTE : le retard est configuré pour les ampoules de nixie IN-17. / / original code par Jeremy Howa / / www.robotpirate.com / / www.arduinix.com / / 2008 / 2009 / / code modifié par Andrea Biffi www.andreabiffi.com de travailler avec un seul SN74141 / / / / dernière modification: Nov 2013 / / / / SN74141 : vrai tableau //D C B A # //L,L,L,L 0 //L,L,L,H 1 //L,L,H,L 2 //L,L,H,H 3 //L,H,L,L 4 //L,H,L,H 5 //L , H, H, L 6 //L,H,H,H 7 //H,L,L,L 8 //H,L,L,H 9 #define faux DEBUG_ON / / SN74141 int ledPin_0_a = 2 ; int ledPin_0_b = 3 ; int ledPin_0_c = 4 ; int ledPin_0_d = 5 ; Anod pins int ledPin_a_1 = 8 ; int ledPin_a_2 = 9 ; int ledPin_a_3 = 10 ; int ledPin_a_4 = 11 ; int ledPin_a_5 = 12 ; int ledPin_a_6 = 13 ; void setup() {pinMode (ledPin_0_a, sortie); pinMode (ledPin_0_b, sortie); pinMode (ledPin_0_c, sortie); pinMode (ledPin_0_d, sortie); pinMode (ledPin_a_1, sortie); pinMode (ledPin_a_2, sortie); pinMode (ledPin_a_3, sortie); pinMode (ledPin_a_4, sortie); pinMode (ledPin_a_5, sortie); pinMode (ledPin_a_6, sortie); / / NOTE: / / mise à la terre sur tiges d’analog0 et d’entrée analogique 1 volonté régler l’heure et mn pinMode (A0 ENTRÉE) ; définir l’analog0 virtuel pin (pin 0 sur les entrées analogiques) digitalWrite (A0, élevé) ; définir broche analogique entrée 0 comme une traction vers le haut de résistance. pinMode (entrée, A1) ; ensemble l’axe virtuel analogique d’entrée 1 (broche 1 sur les entrées analogiques) digitalWrite (A1, élevé) ; broche 1 entrée analogique fixé une traction vers le haut de résistance. Si (DEBUG_ON) {Serial.begin(9600);}} / / / / DisplayNumberSet / / usage : croisement anod nombre et nombre d’ampoule, cette fonction / / recherche la table de vérité et ouvre les aboutissants correctes de l’arduino / / pour éclairer les nombres donnés à cette fonction. Sur une configuration d’ampoule 6 nixie. / / / void DisplayNumberSet (int anod, int num1) {int anodPin ; int a, b, c et d; / / set defaults. un = 0; b = 0; c = 0; d = 0; / / affiche un zéro. anodPin = ledPin_a_1; / / par défaut sur le premier anod. / / sélectionner quel anod au feu. commutateur (anod) {case 0: anodPin = ledPin_a_1 ; break ; case 1: anodPin = ledPin_a_2 ; break ; case 2: anodPin = ledPin_a_3 ; break ; case 3 : anodPin = ledPin_a_4 ; rupture ; case 4: anodPin = ledPin_a_5 ; rupture ; cas 5: anodPin = ledPin_a_6 ; rupture ; } / / Charge l’a, b, c et d d’envoyer au commutateur SN74141 IC (1) (num1) {case 0: un = 0; b = 0; c = 0; d = 0; break ; case 1: a = 1; b = 0; c = 0; d = 0; break ; case 2: un = 0; b = 1; c = 0; d = 0; break ; case 3: un = 1; b = 1; c = 0; d = 0; break ; case 4 : un = 0; b = 0; c = 1; d = 0; break ; cas 5: a = 1; b = 0; c = 1; d = 0; break ; case 6: a = 0; b = 1; c = 1; d = 0; break ; cas 7: a = 1; b = 1; c = 1; d = 0; break ; cas 8: a = 0; b = 0; c = 0; d = 1; break ; 9-affaire: a = 1; b = 0; c = 0; d = 1; break ; } / / Ecrire à broches de sortie. digitalWrite (ledPin_0_d, d) ; digitalWrite (ledPin_0_c, c) ; digitalWrite (ledPin_0_b, b) ; digitalWrite(ledPin_0_a, a) ; Allumez cette anod. digitalWrite (anodPin, HIGH) ; Retard / / NOTE: À la différence de bulbes Nixie, vous devrez peut-être modifier / / ce délai pour régler la vitesse de mise à jour des bulbes. Si vous / / n’attendez pas longtemps assez l’ampoule sera dim ou s’allume pas du tout / / vouloir définir ce retard juste pour que vous ayez / / nice lumineux sortie encore assez rapide pour que vous pouvez multiplexer avec / / plus ampoules (2ms est standard). Delay(2) ; Coupez cette anod. digitalWrite (anodPin, basse) ; } / / / / / / / DisplayNumberString / / usage : en passant un tableau qui est de 6 éléments long affichera les numéros / / sur une configuration d’ampoule 6 nixie. / / / void DisplayNumberString (int * tableau) {/ / 1 (1 ampoule) de la Banque DisplayNumberSet(0,array[0]); / / 2 (ampoule 2) de la Banque DisplayNumberSet(1,array[1]); / / 3 (ampoule 3) de la Banque DisplayNumberSet(2,array[2]); / / 4 (ampoule 4) de la Banque DisplayNumberSet(3,array[3]); / / 5 (ampoule 5) de la Banque DisplayNumberSet(4,array[4]); / / 6 (ampoule 6) de la Banque DisplayNumberSet(5,array[5]);} / / Defines MINS long = 60 ; 60 secondes en un minimum de longue heures = 60 * mn ; 60 minutes dans une heure. longues journées = 24 * heures ; 24 heures par jour. > Note : changer le 24 à 12 pour le moment non militaire. longue duree = 0 ; Temps de quand nous avons commencé. ensembles de temps par défaut. horloge commencera à 12:59 / / NOTE : nous commençons secondes à 0 nous n’avez pas besoin d’une horloge set / / les valeurs que vous voyez ici serait que vous modifiez / / si vous avez ajouté une entrées de réglage de l’horloge au Conseil d’administration. long clockHourSet = 12 ; clockMinSet long = 59 ; int HourButtonPressed = false ; int MinButtonPressed = false ; / / / / / / / void loop() {/ / Get millisecondes. DUREE = millis(); / / Get temps en secondes. longtemps = (runTime) / 1000 ; Remplacez cette valeur par vitesse haut ou ralentir l’horloge, valeur égale au nombre de plus petit tels que 10, 1 ou 100 pour le débogage int hourInput = digitalRead(14) ; int minInput = digitalRead(15) ; Si Serial.println (DEBUG_ON) (hourInput) ; Si (hourInput == 0) HourButtonPressed = true ; Si (minInput == 0) MinButtonPressed = true ; Si (HourButtonPressed == true & & hourInput == 1) {clockHourSet ++ ; HourButtonPressed = false ; } Si (MinButtonPressed == true & & minInput == 1) {clockMinSet ++ ; MinButtonPressed = false ; } / / Set time basé sur décalage... hbump long = 60 * 60 * clockHourSet ; mbump long = 60 * clockMinSet ; temps + = mbump + hbump ; Convertir : jours, heures, minutes, secondes longues journées = temps / jours ; temps = jours * jours ; longues heures = temps / heures ; temps = heures * heures ; longues minutes = temps / mn ; temps = minutes * mn ; secondes de temps = temps ; Obtenir les valeurs de l’ordre de haute et basse des heures, minutes, secondes. int lowerHours = h % 10 ; int upperHours = heu - lowerHours ; int lowerMins = minutes % 10 ; int upperMins = minutes - lowerMins ; int lowerSeconds = secondes % 10 ; int upperSeconds = s - lowerSeconds ; Si (upperSeconds > = 10) upperSeconds = upperSeconds / 10 ; Si (upperMins > = 10) upperMins = upperMins / 10 ; Si (upperHours > = 10) upperHours = upperHours / 10 ; Remplissez le tableau numéro permettant d’afficher sur les tubes. int NumberArray [6] = {0,0,0,0,0,0} ; NumberArray [0] = upperHours ; NumberArray [1] = lowerHours ; NumberArray [2] = upperMins ; NumberArray [3] = lowerMins ; NumberArray [4] = upperSeconds ; NumberArray [5] = lowerSeconds ; Affichage. DisplayNumberString (NumberArray) ; }

Pour graver le code à l’EI Atmega, j’ai utilisé Arduino. Juste enlever la puce de l’Arduino, insérez votre Atmega8 (ou mieux), changer le Conseil d’administration et port série sous le menu « Outils », coller mon code et téléchargez-la. Sortez de l’IC et insérer dans la douille sur le plateau de l’horloge. Veuillez noter que votre IC Atmega pourriez avoir besoin pour être brûler avec bootloader avant de télécharger le code, vous pouvez trouver les instructions sur cette page. J’ai utilisé un programmeur de USBtinyISP, mais vous pouvez acheter IC déjà brûlé avec le bootloader.

Articles Liés

Nixie horloge logement

Nixie horloge logement

IntroductionBeaucoup d'instructables sur tubes Nixie s'intéressent à l'électronique. J'ai été paresseux et acheté le mien. C'était quand même une fraction du prix des tubes.À cet effet cette instructable n'est pas tellement un comment, mais plus un p
Ventilateur de poche simple vitesse réglable

Ventilateur de poche simple vitesse réglable

Salut!Dans ce Instructable, je va vous montrer comment faire un ventilateur de poche vitesse réglable de quelques bon marché et facile de trouver des matériaux. Je sais que cela a été fait avant, mais il ne ressemble pas à n'importe qui a fait cela t
Limbe Nixie horloge

Limbe Nixie horloge

c'est mon premier instructable et j'espère vous plaira. J'ai lu ce site pendant un certain temps maintenant et j'ai décidé de publier mon projet. Je suis non indigènes anglophone Veuillez excuser mes fautes de langue.Ce projet s'inspire d'une précéde
Chêne & acrylique Nixie horloge

Chêne & acrylique Nixie horloge

J'ai toujours été fasciné par la façon dont les choses fonctionnent, ce qui les rend tique et il est devenu une obsession coûteuse de démonter des choses. Je n'ai jamais très bien faire les choses bien, manque la patience du processus pour obtenir de
Nixie horloge

Nixie horloge

tout ce dont vous avez besoin sont-certaines ampoules Nixie (les obtenir sur ebay, Nous fournions les vêtements d'aso)-une horloge électronique (différentes offres sur les marchés electrinic) pour accéder aux ampoules (avec l'instruction)-un bloc d'a
LiDAR simple utilisant le télémètre laser Uni-T UT390b, Arduino et Turbo Pascal

LiDAR simple utilisant le télémètre laser Uni-T UT390b, Arduino et Turbo Pascal

Salut!Il y a quelques jours, j'ai acheté un télémètre laser (Uni-T UT390b, f.e.http://www.dx.com/de/p/uni-t-ut390b-45m-laser-dist...) pour réaliser un simple LiDAR. Le télémètre a une précision de +/-2mm et est capable de mesurer des distances jusqu'
Simple chien réglable en hauteur haies

Simple chien réglable en hauteur haies

Ne pas jeter votre vieux chevalets et au lieu de les transformer en haies réglables en hauteur pour dresser votre chien (ou chat/cobaye/etc..). Une construction très rapide pour aider a passé plus de temps avec votre animal de compagnie.Étape 1: Four
Super Simple conducteur réglable de LED ou Laser

Super Simple conducteur réglable de LED ou Laser

faire votre propre pilote que votre led ou diode laser, schématique est régulateur de tension super simple à 2 composants LM317 et pot de garniture réglable 50 ohms.Le LM317 sera l'organisme de réglementation actuelle, avec trimm pot nous gona défini
Chaire de paracord : Simple, confortable, réglable & Collapsable

Chaire de paracord : Simple, confortable, réglable & Collapsable

ce projet est très simple, car elle implique deux intersection des rectangles en bois qui ont un siège et le dos fait de paracord tressé.Je vais supposer que quiconque tenterait de ce projet a des compétences de base pour travailler le bois et qu'il
Un interrupteur clap simple utilisant les 3 circuits différents modules

Un interrupteur clap simple utilisant les 3 circuits différents modules

ce projet a été emprunté à buildcircuit.com. Le schéma suivant et la disposition de circuit montrent un interrupteur simple clap.Le projet s'est composé de 3 modules de circuits différents et indépendants :1. un capteur sombre en utilisant deux trans
Exemple simple dispositif réglable vitesse

Exemple simple dispositif réglable vitesse

nom du projet : tomber.Il s'agit d'un projet très simple et c'est aussi mon premier Instructables...Description du projet :Une caisse de résonance qui lit un fichier de ma voix et permet au spectateur de baisser le ton de ma voix lorsque le fichier j
Programmation python - un simple utilisant une classe et la méthode

Programmation python - un simple utilisant une classe et la méthode

# programme Basic qui crée une classe et une méthode# crée une classe appelée « Personne »classe Person :# Créez la méthode « Bonjour »# Note: « auto » doit utiliser dans la liste des paramètresdef hello(self) :imprimer « Hello world! »# créer objet
Plus simple arbalète mini DIY jamais kids

Plus simple arbalète mini DIY jamais kids

Très facile et enfants amicale mini arbalète en pinces à linge, cotons-tiges et élastiques.Il s'agissait de mon premier projet DIY jamais dans ma vie. J'avais environ 6 ans quand mon oncle m'a montré comment faire cela.Il y a pas grand chose à dire à
TUTORIEL 1 MIN | Simple robe de Global DIY en cuir

TUTORIEL 1 MIN | Simple robe de Global DIY en cuir

pour le bricolage plus tutoriels visitez http://www.pinkchocolatebreak.comJ'ai été écrasant sur les combinaisons de cuir et après avoir constaté la droite simili cuir (ce qui n'était pas cher) j'ai jumelé avec le bon matériel pour créer ma robe ensem