Eenvoudige user-instelbare DIY Nixie Klok (4 / 25 stap)

Stap 4: de code


De code die ik in deze versie van de klok gebruikt is ontleend aan het open bronmateriaal beschikbaar op de website van de Arduinix , en ik echt je aanraden om op zoek gaan Brad Lewis indrukwekkende projecten "Luiaard oven" (hij is een lid van de instructables ook).

Ik wijzigde de code slechts één watergeest als stuurprogramma wilt gebruiken in plaats van twee, aangezien ik niet nodig om meer dan 6 cijfers, en ik geef de voorkeur te slaan van stuurprogramma's. Er is een parameter die u wijzigen kunt als u probleem met uw beeldschermen hebt, het is de vertraging, maar 2 ms werkt prima voor mij. U kunt proberen 3 of 4 ms maar meer zal het flikkeren van de cijfers, omdat de software heeft te gaan door alle cijfers voordat opnieuw een cijfer verlichting.

Arduinix 6 Bulb - ondersteunt ook uur en Min. tijd instellen. / / Deze code wordt uitgevoerd een zes lamp setup en verschijnt een prototype klok setup. Opmerking: de vertraging is opstelling voor IN-17 watergeest bollen. / / oorspronkelijke code door Jeremy Howa / / www.robotpirate.com / / www.arduinix.com / / 2008-2009 / / code gewijzigd door Andrea Biffi www.andreabiffi.com om te werken met slechts één SN74141 / / / / laatst bewerkt Nov 2013 / / / / SN74141: True tabel //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 DEBUG_ON valse / / SN74141 int ledPin_0_a = 2; int ledPin_0_b = 3; int ledPin_0_c = 4; int ledPin_0_d = 5; anod pinnen 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, OUTPUT); pinMode (ledPin_0_b, OUTPUT); pinMode (ledPin_0_c, OUTPUT); pinMode (ledPin_0_d, OUTPUT); pinMode (ledPin_a_1, OUTPUT); pinMode (ledPin_a_2, OUTPUT); pinMode (ledPin_a_3, OUTPUT); pinMode (ledPin_a_4, OUTPUT); pinMode (ledPin_a_5, OUTPUT); pinMode (ledPin_a_6, OUTPUT); / / Opmerking: / / aarden op analog0 pinnen en analoge ingang 1 zal stellen de uur en min. pinMode (A0 INGANG); instellen van de analog0 van de virtuele pin (pin 0 op de analoge "inputs") digitalWrite (A0, hoge); pincode analoge ingang 0 als een pull up weerstand instellen. pinMode (A1, INPUT); set de virtuele pin analoge ingang 1 (pin 1 op de analoge "inputs") digitalWrite (A1, hoge); pincode analoge ingang 1 als een pull up weerstand instellen. Als (DEBUG_ON) {Serial.begin(9600);}} / / / / DisplayNumberSet / / gebruik: nummer van de anod van de passerende en nummer voor lamp, deze functie / / de waarheidstabel opgezocht en opent u de juiste outs via de arduino / / aan het licht van de cijfers gegeven aan dit funciton. Op een 6 watergeest lamp setup. / / / void DisplayNumberSet (int anod, int num1) {int anodPin; int a, b, c, d; / / set standaardwaarden. een = 0; b = 0, c = 0; d = 0; / / verschijnt een nul. anodPin = ledPin_a_1; / / standaard op eerste anod. / / selecteert u welke anod naar brand. switch (anod) {geval 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; breken; geval 4: anodPin = ledPin_a_5; breken; geval 5: anodPin = ledPin_a_6; breken; } / / Laden de a, b, c, d om te verzenden naar de switch SN74141 IC (1) (num1) {0 kast: een = 0; b = 0, c = 0; d = 0; break; case 1: een = 1; b = 0; c = 0; d = 0; break; case 2: een = 0; b = 1; c = 0; d = 0; break; case 3: een = 1; b = 1; c = 0; d = 0; break; case 4 : een = 0; b = 0, c = 1, d = 0; break; geval 5: een = 1, b = 0, c = 1; d = 0; break; kast 6: een = 0; b = 1; c = 1, d = 0; break; geval 7: een = 1, b = 1; c = 1; d = 0; break; geval 8: een = 0; b = 0, c = 0, d = 1; break; kast 9: een = 1, b = 0, c = 0; d = 1; break; } / / Schrijf aan output pinnen. digitalWrite (ledPin_0_d, d); digitalWrite (ledPin_0_c, c); digitalWrite (ledPin_0_b, b); digitalWrite(ledPin_0_a, a); Dit anod inschakelen. digitalWrite (anodPin, hoge); Vertraging / / Let op: met het verschil in Nixie bollen u wellicht wijzigen / / dit vertragen om de snelheid van de update van de bollen. Als u / / wacht niet lang genoeg de lamp zal worden lichter kleuren of licht niet helemaal / / u wilt instellen van deze vertraging precies goed zodat u / / nice helder output nog snel genoeg is zodat u kunt multiplex met / / meer bollen (2ms is standaard). delay(2); Deze anod afgesloten. digitalWrite (anodPin, laag); } / / / / / / / DisplayNumberString / / gebruik: het passeren van een matrix die is 6 elementen lang zal het weergeven van getallen / / op een 6 watergeest lamp setup. / / / void DisplayNumberString (int * array) {/ / bank 1 (bol 1) DisplayNumberSet(0,array[0]); / / bank 2 (bol 2) DisplayNumberSet(1,array[1]); / / bank 3 (lamp 3) DisplayNumberSet(2,array[2]); / / bank 4 (lamp 4) DisplayNumberSet(3,array[3]); / / 5 (bol 5) bank DisplayNumberSet(4,array[4]); / / 6 (bol 6) bank DisplayNumberSet(5,array[5]);} / / definieert lange minuten = 60; 60 seconden in een Min. lange uren = 60 * minuten; 60 minuten in een uur. lange dagen = 24 * uur; 24 uur in een dag. > Opmerking: de 24 tot en met een 12 voor niet millitary tijd wijzigen. lange runTime = 0; Tijd van toen we begonnen. Verstekwaarde inschakelvertraging wordt ingesteld. klok begint om 12:59:00 / / Opmerking: We beginnen seconden op 0, dus we niet een klok hoeven instellen / / de waarden die u hier ziet zou wat u veranderen / / als u een klok instellen-ingangen aan de Raad hebt toegevoegd. lange clockHourSet = 12; lange clockMinSet = 59; int HourButtonPressed = false; int MinButtonPressed = false; / / / / / / / void loop {/ / Get milliseconden. runTime = millis(); / / Get tijd in seconden. lange tijd = (runTime) / 1000; Deze waarde omzetten in snelheid omhoog of vertragen van de klok, ingesteld op een kleiner getal zoals 10, 1 of 100 voor foutopsporing int hourInput = digitalRead(14); int minInput = digitalRead(15); Als (DEBUG_ON) Serial.println (hourInput); Als (hourInput == 0) HourButtonPressed = true; Als (minInput == 0) MinButtonPressed = true; Als (HourButtonPressed == true & & hourInput == 1) {clockHourSet ++; HourButtonPressed = false; } Als (MinButtonPressed == true & & minInput == 1) {clockMinSet ++; MinButtonPressed = false; } / / Tijd gebaseerd op offset instellen... lange hbump = 60 * 60 * clockHourSet; lange mbump = 60 * clockMinSet; tijd += mbump + hbump; Convert tijd voor dagen, uren, minuten, seconden lange dagen = tijd / dagen; -= dagen tijd * dagen; lange uren = tijd / uren; -= uur tijd * uur; lange minuten = tijd / min; -= minuten tijd * minuten; seconden lang = tijd; De volgorde van hoge en lage waarden voor uren, minuten, seconden krijgen. int lowerHours = uur % 10; int upperHours = uren - lowerHours; int lowerMins = minuten % 10; int upperMins = minuten - lowerMins; int lowerSeconds = seconden % 10; int upperSeconds = seconden - lowerSeconds; Als (upperSeconds > = 10) upperSeconds = upperSeconds / 10; Als (upperMins > = 10) upperMins = upperMins / 10; Als (upperHours > = 10) upperHours = upperHours / 10; Vul het nummer array gebruikt om weer te geven op de buizen. 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); }

Ik gebruikte om te branden van de code naar de Atmega IC Arduino. Verwijder gewoon de Arduino-chip, plaats uw Atmega8 (of beter), Raad en seriële poort onder menu 'extra' wijzigen, plak mijn code en uploaden. Neem de IC en invoegen in de socket op het bord van de klok. Let op dat uw Atmega IC-kon hoeven te worden met bootloader branden voordat u de code uploaden, kunt u instructies op Deze pagina. Ik gebruikte een USBtinyISP programmeur, maar je kunt IC al gebrand met de bootloader.

Gerelateerde Artikelen

Eiken & acryl Nixie Klok

Eiken & acryl Nixie Klok

Ik heb altijd al gefascineerd door hoe dingen werken, wat maakt hen teek, en het omgezet in een dure obsessie dingen uit elkaar te nemen. Ik was nooit erg goed in het maken van dingen wel, ontbreekt het geduld van proces om dingen te krijgen precies
Lamina Nixie Klok

Lamina Nixie Klok

dit is mijn eerste instructable en ik hoop u van het zult houden. Ik heb het lezen van deze website voor een tijdje nu en ik besloten om mijn project publiceren. Ik ben niet-native speaker Engels gelieve excuus mijn taal fouten.Dit project is geïnspi
Grote houten nixie klok

Grote houten nixie klok

Zoals velen van jullie al begrepen hebben, ben ik een beetje nixie-verslaafd.Dit is mijn derde nixie-klok, en wat betreft de voorgaande haar maken proces is volledig gedocumenteerd in een instructable, zodat iedereen met geduld en een paar tools kan
Houten gloeiende Nixie Klok

Houten gloeiende Nixie Klok

Inspiratie:OK, dus ik weet maken een nixie klok is niet noodzakelijkerwijs de meest originele klok ideeën, maar ik wilde iets elegante de tijd te vertellen in mijn woonkamer. Toen ik dat die ik leefde in een huurhuis waar ik niet kon mounten een klok
Mahonie & messing nixie klok (met IR en UART controle)

Mahonie & messing nixie klok (met IR en UART controle)

Update: mijn wedstrijd binnenkomst werd aanvaard. Als u de klok, mij zal zich opwaarderen als je voor het stemmen!Hallo jij daar!In dit instructable ik zal u tonen het proces van het maken van een awesome, steampunk-alike nixie-klok.Er zijn veel wate
Nixie Klok hout zaak

Nixie Klok hout zaak

Dit is mijn tweede post over nixie klok, maar in feite was mijn eerste Nixie Klok geval.De oorspronkelijke is gewoon een stuk van acryl. Een nixie klok verdient een betere zaak dan een eenvoudige acryl box.Ik kocht eerst een nixie klok kit. De pagina
Nixie Klok huisvesting

Nixie Klok huisvesting

InleidingEen heleboel instructables over Nixie buizen zijn betrokken met de elektronica. Ik was lui en kocht de mijne. Het was toch een fractie van de prijs van de buizen.Daarvoor dit instructable is niet zozeer een hoe, maar meer een proces van de e
1 cijfer Nixie Klok

1 cijfer Nixie Klok

Jonge mensen zijn gefascineerd door Nixies. Zij hebben niet gezien dergelijke neonlichten in de huidige solid-state era.IN-18 is de grootste neon cijfer indicator geproduceerd in tijden van de USSR die werd gebruikt in schubben op de markten voor lev
DIY TiX klok

DIY TiX klok

hier is mijn instructable voor een DIY TiX klok.  Hij wordt aangedreven door een AVR microcontroller.  Het display is opgebouwd met behulp van een stukje reflector raster u vinden die betrekking hebben op office lichten, sommige gerookte perspex, een
3 eenvoudige, nog Cool DIY projecten (P2)

3 eenvoudige, nog Cool DIY projecten (P2)

In dit Instructable kijken we naar de 3 eenvoudige DIY projectenZullen we iets uit een holle baksteen, domino's en een CD-box taart.Dit is een tweede deel van de Instructable "3 eenvoudige, nog Cool DIY projecten"Als u geinteresseerd bent in de
3 eenvoudige, nog Cool DIY projecten (P1)

3 eenvoudige, nog Cool DIY projecten (P1)

In dit Instructable kijken we naar de 3 eenvoudige DIY projectenZe zijn eenvoudig en zeer waarschijnlijk kunnen worden gemaakt van de items die u al thuis.Als u geinteresseerd bent in een video-versie van dit Instructable en de ingesloten video doet
GPS van de Arduino Nixie Klok

GPS van de Arduino Nixie Klok

In dit project wil ik met u delen mijn lichaamsbouw van een Nixie-buis klok die wordt gedreven door een Arduino UNO. Om de tijd zo nauwkeurig mogelijk te maken heb ik een GPS-module door Adafruit waarnaar de atoomtijd uit satellieten suizen rond bove
Nixie Klok

Nixie Klok

alles wat u nodig hebt zijn-Sommige Nixie bollen (krijgen ze op ebay, vlooienmarkt aso)-een elektronische klok (verschillende aanbiedingen op electrinic markten) voor toegang tot de bollen (met instructie)-een omvormer voor de electronische unit (tus
DIY digitale klok

DIY digitale klok

Hebben u ooit echt verveeld en enkele leuke DIY-project te doen nodig? Nou, heb je ooit gedacht over het maken van een super, geweldig, digitale klok die u kunt eigenlijk tijd met vertellen? Goed dan u moet echt volgt awesome. Veel plezier!Stap 1: ba