Enkel användare justerbara DIY Nixie klocka (4 / 25 steg)

Steg 4: koden



Koden jag använde i denna klocka version tas från den öppna källkod materialet tillgängligt på Arduinix hemsida, och jag verkligen föreslår att du försöker hitta Brad Lewis "Lättja ugnen" imponerande projekt (han är en instructables medlem också).

Jag ändrade koden du vill använda endast en nixie istället för två, eftersom jag inte behöver köra mer än 6 siffror, och jag föredrar att spara drivrutiner. Det är en parameter som du kan ändra om du har problem med din visar, det är förseningen, men 2 ms fungerar bra för mig. Du kan prova 3 eller 4 ms men mer kommer flimrar siffrorna, eftersom programvaran har att gå igenom alla siffror innan du tänder en siffra igen.

Arduinix 6 lampa - också stöder timme och Min. tiden uppsättning. / / Denna kod körs en sex lampa setup och visar en prototyp clock setup. Obs: förseningen är setup för IN-17 nixie lökar. / / ursprungliga koden av Jeremy Howa / / www.robotpirate.com / / www.arduinix.com / / 2008-2009 / / kod uppdaterad av Andrea Biffi www.andreabiffi.com att arbeta med endast en SN74141 / / / / senaste Redigera Nov 2013 / / / / SN74141: sant tabell //D C B en # //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 DEBUG_ON falskt / / SN74141 int ledPin_0_a = 2; int ledPin_0_b = 3; int ledPin_0_c = 4; int ledPin_0_d = 5; anod stift 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, produktionen); pinMode (ledPin_0_b, produktionen); pinMode (ledPin_0_c, produktionen), pinMode (ledPin_0_d, produktionen); pinMode (ledPin_a_1, produktionen); pinMode (ledPin_a_2, produktionen); pinMode (ledPin_a_3, produktionen); pinMode (ledPin_a_4, produktionen); pinMode (ledPin_a_5, produktionen); pinMode (ledPin_a_6, produktionen); / / OBS: / / grundstötning på stift analog0 och analog ingång 1 vilja ange timmar och minuter. pinMode (A0 INDATA); Ange den virtuella pin analog0 (pin 0 på de analoga ingångarna) digitalWrite (A0, hög); Ange pin analog ingång 0 som en dra upp motstånd. pinMode (A1, indata); uppsättning virtuella pin analog ingång 1 (pin 1 på de analoga ingångarna) digitalWrite (A1, hög); Ange pin analog ingång 1 som en dra upp motstånd. om (DEBUG_ON) {Serial.begin(9600);}} / / / / DisplayNumberSet / / Använd: passerar anod nummer och nummer för lampa, denna funktion / / slår upp sanningen bordlägger och öppnar den korrekta outs från arduino / / att tända de nummer som ges till denna funciton. På en 6 nixie glödlampa inställning. / / / void DisplayNumberSet (int anod, int num1) {int anodPin; int a, b, c, d; / / ställa in standardvärden. en = 0; b = 0, c = 0; d = 0; / / kommer att visa en noll. anodPin = ledPin_a_1; / / standard på första anod. / / välja vilken anod till brand. växel (anod) {fall 0: anodPin = ledPin_a_1, paus, fall 1: anodPin = ledPin_a_2, paus, fall 2: anodPin = ledPin_a_3, paus, fall 3 : anodPin = ledPin_a_4; bryta; fall 4: anodPin = ledPin_a_5; bryta; fall 5: anodPin = ledPin_a_6; bryta; } / / Ladda den a, b, c, d att skicka till växeln SN74141 IC (1) (num1) {fall 0: en = 0; b = 0; c = 0; d = 0, paus, fall 1: en = 1; b = 0; c = 0; d = 0, paus, fall 2: en = 0; b = 1, c = 0; d = 0, paus, fall 3: en = 1; b = 1; c = 0; d = 0, paus, fall 4 : en = 0; b = 0; c = 1; d = 0; semester. fall 5: en = 1, b = 0; c = 1; d = 0; semester. mål 6: en = 0; b = 1, c = 1; d = 0; semester. fall 7: en = 1, b = 1, c = 1; d = 0; semester. mål 8: en = 0; b = 0; c = 0, d = 1; semester. mål 9: en = 1; b = 0; c = 0, d = 1; semester. } / / Skriva ut stiften. digitalWrite (ledPin_0_d, d); digitalWrite (ledPin_0_c, c); digitalWrite (ledPin_0_b, b); digitalWrite(ledPin_0_a, a); Aktivera denna anod. digitalWrite (anodPin, hög); Dröjsmål / / Obs: med skillnaden i Nixie lampor du kan behöva ändra / / detta fördröjning att ställa in uppdateringen hastigheten på lökarna. Om du / / vänta inte länge nog glödlampan blir dunkel eller inte tänds alls / / du vill ställa in denna försening bara rätt så att du har / / trevlig ljus produktion ännu tillräckligt snabb så att du kan multiplex med / / mer lökar (2ms är standard). Delay(2); Stäng av denna anod. digitalWrite (anodPin, låg); } / / / / / / / DisplayNumberString / / Använd: passerar en matris som är 6 elements länge kommer visa tal / / på en 6 nixie lampa setup. / / / void DisplayNumberString (int * array) {/ / bank 1 (glödlampa 1) DisplayNumberSet(0,array[0]); / / bank 2 (lampa 2) DisplayNumberSet(1,array[1]); / / bank 3 (lampa 3) DisplayNumberSet(2,array[2]); / / bank 4 (bulb 4) DisplayNumberSet(3,array[3]); / / bank 5 (lampa 5) DisplayNumberSet(4,array[4]); / / bank 6 (lampa 6) DisplayNumberSet(5,array[5]);} / / definierar långa minuter = 60. 60 sekunder i en Min. långa timmar = 60 * minuter; 60 min i en timme. långa dagar = 24 * timmar. 24 timmar i dygnet. > Obs: ändra 24 till en 12 icke militära tid. långa runTime = 0; Tiden från när vi började. standardtiden anger. klockan börjar klockan 12:59:00 / / Obs: börjar vi sekunder på 0 så vi inte behöver en klocka som / / de värden som du ser här skulle vara vad du ändra / / om du lagt till en ställa in klockan ingångar till styrelsen. lång clockHourSet = 12; lång clockMinSet = 59. int HourButtonPressed = false; int MinButtonPressed = false; / / / / / / / void loop() {/ / få millisekunder. runTime = millis(); / / få tid i sekunder. lång tid = (runTime) / 1000; ändra detta värde till fart upp eller sakta ner klockan, mindre värde som 10, 1 eller 100 för felsökning int hourInput = digitalRead(14); int minInput = digitalRead(15); om (DEBUG_ON) Serial.println (hourInput); om (hourInput == 0) HourButtonPressed = sant; om (minInput == 0) MinButtonPressed = sant; om (HourButtonPressed == true & & hourInput == 1) {clockHourSet ++; HourButtonPressed = false; } om (MinButtonPressed == true & & minInput == 1) {clockMinSet ++; MinButtonPressed = false; } / / Ställ in tiden baserat på offset... lång hbump = 60 * 60 * clockHourSet; lång mbump = 60 * clockMinSet; tid + = mbump + hbump; Konverteringstid till dagar, timmar, minuter, sekunder långa dagar = tid / dagar; tid-= dagar * dagar. långa timmar = tid / timmar; -= timmar * timmar. långa minuter = tid / min; tid-= minuter * minuter; långa sekunder = tid; Få de höga och låga värdena för timmar, minuter, sekunder. int lowerHours = timmar % 10. int upperHours = timmar - lowerHours; int lowerMins = minuter % 10. int upperMins = minuter - lowerMins; int lowerSeconds = sekunder % 10. int upperSeconds = sekunder - lowerSeconds; om (upperSeconds > = 10) upperSeconds = upperSeconds / 10; om (upperMins > = 10) upperMins = upperMins / 10; om (upperHours > = 10) upperHours = upperHours / 10; Fyll i antal matrisen används för att visa på rören. 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; Display. DisplayNumberString (NumberArray); }

För att bränna koden till Atmega IC använde jag Arduino. Bara ta bort den Arduino chipet, infoga din Atmega8 (eller bättre), ändra styrelsen och seriell port under Verktyg-menyn, klistra in min kod och ladda upp den. Ta ut IC och infoga i uttaget på klockan styrelsen. Observera att Atmega KI kunde behöver bränna med bootloader innan du överför koden, kan du hitta instruktioner på denna sida. Jag använde en USBtinyISP programmerare, men du kan köpa IC redan bränt med bootloader.

Se Steg
Relaterade Ämnen

Nixie klocka trä fallet

Detta är mitt andra inlägg om nixie klocka, men det var faktiskt min första Nixie klockan fallet.Den ursprungliga är bara en bit av akryl. En nixie klocka förtjänar ett bättre fall än en enkel akryl låda.Först köpte jag en nixie klocka kit. Sidan jag...

Mahogny & mässing nixie klocka (med IR och UART kontroll)

Uppdatera: min tävlingsformulär accepterades. Om du gillar klockan, kommer att jag uppskatta om ni röstar för det!Hej där!I detta instructable jag ska visa dig processen att göra en awesome, steampunk-alike nixie klocka.Det finns massor av nixie proj...

Nixie klocka bostäder

IntroduktionEn hel del instructables om Nixie rör gäller elektroniken. Jag var lat och köpte min. Det var en bråkdel av priset på rören ändå.Till detta detta instructable är inte så mycket en hur, men mer en process av den estetiska delen av att skap...

GorillaPod mobiltelefonhållare för Triggertrap användare!

Hej viewer!Nu kommer vi göra en GorillaPod mobiltelefonhållare för Triggertrap användare!Du kan också montera något på din mobilhållaren. Ett stativ till exempel.Detta sätt kan du enkelt Linda din gorillapod runt benen stativ, och det kommer att håll...

Fireside Internet Radio Player för äldre användare - byggd med Raspberry Pi

Inledning:Idag har vi fantastiska tillgång till bra strömmande innehåll: musik, nyheter, väder, berättelser, etc. Men är denna åtkomst begränsad till dem som kan navigera dagens elektroniska apparater. Detta projekt bygger på en tro som äldre vill oc...

Hur man gör flash-enhet att kopiera användare filer tyst och automatiskt

*** här INSTRUCTABLE är för INFORMATION ändamål endast det är ILEGAL att kopiera någons filer utan deras tillstånd jag inte RESPONSABLE för någon sak som maj OR MAYNOT hända om denna INFORMATION används felaktigt ***Hur man bygger en enkel fem fil us...

Seltzer vatten för högre efterfrågan användare.

Jag dricker en hel del seltzer vatten. Men jag tröttnade på att köpa min seltzer på butik och betala någonstans från 50 cent till en dollar per liter. Jag dricker även en massa läsk, vilket är ännu dyrare. Så jag tittade på olika alternativ. Jag köpt...

Hur (och varför) att lägga till användare till FreeBSD

Medan de flesta systemadministratörer och avancerade användare kommer att rulla ögonen på detta Instructable, presenterar jag den helt enkelt för att presentera ett annat sätt att administrera din FreeBSD system. Några nybörjare sysadmin (om de är vä...

Hur du lägger till en användare snabbt och enkelt

Detta är min allra första instructable okockså är det bara att lägga till användare ta bort användare och så vidare thxSteg 1: Steg 1 eller någotKontrollera att du har kommandotolken oknu om du har som öppnas om du är i skolan detta brukar fungera om...

Härdad fallet för CGM Nightscout användare

Detta projekt är för användare av Nightscout systemet. Vi väntar inte på att sätta våra CGMs i molnet!Nightscout är ett open-source projekt att ge diabetiker T1s tillgång till deras Dexcom CGM i molnet. Du kan läsa mer om Nightscout här eller gå med...

Gör Raspberry Pi en flera användare skrivbord

IntroduktionJag vill min dotter att använda Raspberry Pi för sitt skolarbete och lära sig att programmera. Jag kan köpa henne en Raspberry Pi eller jag kunde dela min Raspberry Pi med henne. Jag valde att dela Raspberry Pi med henne. Efter att ha avs...

Spåra ut osynliga användare på Gtalk och Yahoo

Alright, alla detta är min första instructable... * Spoiler Warning *Med tanke på Yahoo Mail och Gmail hade utvecklat en ny funktion som gör att användare ska visas offline och därmed lurar sina offer är ganska avgörande handling...Idag ska vi lära o...

VIPA mobil användare annoyer

Vipa är programvara som gjorts i XL programmeringsspråk för irriterande användare via försöker upprätta datasamtal till sin mobiltelefon. Användare kan faktiskt inte acceptera samtalet. Så om du kallar dem kommer att igen och igen offer bli riktigt n...

Hur du begränsa den tid som en användare kan vara på

i detta instructable jag visar dig hur du begränsa den tid som en användare kan vara på.Du behöver:1. en datorGå till befalla snabb (springa, skriva på maskin cmd)sedan Skriv:nät förbrukarenNET-användare "Användarnamn" /time:m-f, 08:00-17:00Du k...

Bra saker för Ubuntu-användare

här är några mycket bra saker för Ubnutu (och något Mac) användare.Steg 1: Ta bort en hela ordet i 2 knapptryckningar Mac: JaUbuntu:YesTryck på Ctrl + Backsteg.Steg 2: Ändra menyn Mac: NejUbuntu: JappHögerklicka på logotypen.Klicka på Redigera menyer...

Hur vet jag om Yahoo! användare är inloggad som Minimojerna läge

detta kommer att visa dig hur man vet om yahoo-användare loggas in som osynligt lägeoch det verkligen fungerar att yahoo bud 8 men jag försöka inte det 9(beta)...hur det fungerar: doodle startar om din vän är osynligt läge som detta::: "JOHN" vi...

Hur Jailbrake din iPhone/iPod Touch - Mac-användare

*** vara säker på att Besök isoplanet.com för mer fantastiska tutorials och downloades för alla konsoler ***Vänligen prenumerera och Betygsätt om du hittat hans instructable nyttigtI denna tutorial kommer jag att visa dig hur man jailbreaka din iPhon...

Haptic närhet modul (HPM) för Low Vision användare

The haptiska närhet modul (HPM) syftar till att möjliggöra för människor med nedsatt synförmåga eller andra synsvårigheter, att engagera sig med deras direkta omgivning genom vibrationsfeedback från en rad detektor och göra så billigt med lättillgäng...

VERKTYG CLOUD: Lägga till en ny användare

Lägga till en ny användare.Steg 1: Om du är Admin för butiken, klicka på användare i Kontomenyn.Steg 2: Klicka på fliken Skapa ny användare.Steg 3: Lägg till namn och email adressen till den nya användaren.Lämna den skicka VÄLKOMSTMEDDELANDE klickade...