Hallo Leute.
Also ich Fange mal, und zwar habe ich mir vorgenommen eine Nixie Uhr zu Bauen mit folgenden teilen :
die Röhre 6 mal
http://www.ebay.de/itm/like/332364251132?chn=ps&dispItem=1
ich habe mir das so vorgestellt das ich alle 6 Röhren über einen chip steuere und zwar durch Multiplexing
ich habe hier bereits meinen Code schonmal vorbereitet wo auch drin steht wie der chip das GND der röhre schaltet
#include <Time.h>
#include <TimeLib.h>
#include <DS1307RTC.h>
#include <Wire.h>
//---D---C---B---A
//0=0---0---0---0
//1=0---0---0---1
//2=0---0---1---0
//3=0---0---1---1
//4=0---1---0---0
//5=0---1---0---1
//6=0---1---1---0
//7=0---1---1---1
//8=1---0---0---0
//9=1---0---0---1
//D2 => A
//D3 => B
//D4 => C
//D5 => D
//SDA => A4
//SCL => A5
#define A 2
#define B 3
#define C 4
#define D 5
int t = 500;
void setup() {
Serial.begin(9600);//serielle Verbindung
setSyncProvider(RTC.get);
pinMode(A,OUTPUT);//pin2
pinMode(B,OUTPUT);//pin3
pinMode(C,OUTPUT);//pin4
pinMode(D,OUTPUT);//pin5
}
void loop() {
//Uhrzeit Im Monitor
Serial.print(hour()); //Serial.print ist der Befehl etwas im seriellen Monitor anzuzeigen (Stunde, Minute, Sekunde, Leerzeichen, Tag, Leerzeichen, usw.)
printDigits(minute()); //bei den Minuten und Sekunden wird der Befehl
printDigits(second()); //printDigits angegeben welcher am Ende des Codes noch festgelegt wird.
Serial.print(" ");
Serial.print(day());
Serial.print(" ");
Serial.print(month());
Serial.print(" ");
Serial.print(year());
Serial.println();
delay(1000);
}
void Null(){ //Nixie zeigt 0 an
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
// Anweisungsblock Ende
}
void Eins(){ //Nixie zeigt 1 an
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
// Anweisungsblock Ende
}
void Zwei(){ //Nixie zeigt 2 an
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
// Anweisungsblock Ende
}
void Drei(){ //Nixie zeigt 3 an
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
// Anweisungsblock Ende
}
void Vier(){ //Nixie zeigt 4 an
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
// Anweisungsblock Ende
}
void Fuenf(){ //Nixie zeigt 5 an
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
// Anweisungsblock Ende
}
void Sechs(){ //Nixie zeigt 6 an
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
// Anweisungsblock Ende
}
void Sieben(){ //Nixie zeigt 7 an
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
// Anweisungsblock Ende
}
void Acht(){ //Nixie zeigt 8 an
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
// Anweisungsblock Ende
}
void Neun(){ //Nixie zeigt 9 an
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
// Anweisungsblock Ende
}
void Nichts(){ //Nixie zeigt nichts an
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
// Anweisungsblock Ende
}
void printDigits(int digits){ //<10 eine 0 davor
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);
// Anweisungsblock Ende
}
jetzt meine Frage wie kann ich die zahlen am sinnvollsten ausgeben auf den röhren??????
bis jetzt hatte ich das alles schon alleine hin bekommen aber an der stelle hapert es nun doch da ich nicht genau weiß wie ich das mache ohne das es endlos und unübersichtlich wird.
ich hoffe sehr das ihr mir helfen könnt