Een eenvoudige Nixie-buizenklok bouwen met Arduino – Stapsgewijze handleiding
Onderdelen en benodigdheden
| Arduino UNO | × | 1 |
| UTSOURCE Elektronische onderdelen (Nixie buizen, optokoppelaars, etc.) | × | 1 set |
Over dit project
Na een lange werkdag eindelijk succes: Nixie-klok met Arduino en opto-isolatiechip, zonder dure Nixie-driver.
Bekijk de video voor de volledige instructie.
Benodigdhedenlijst
- Arduino UNO
- Nixie buizen (6 stuks)
- Optokoppelaar chip TLP627
- DC step-up module 12VDC naar 390VDC
- Breadboard
- Real-time clock module DS3231
- Onderdelen te koop op utsource.net
Stap 1: Schakelingontwerp

De schakeling gebruikt een opto-isolatiechip om de Nixie-buizen (150 VDC) te sturen met de Arduino (5 VDC). Door een matrix-aansluiting zijn slechts 16 uitgangen nodig om de 60 segmenten van 6 Nixie-buizen te besturen. De DS3231 RTC-module houdt de tijd bij (ook zonder voeding) en communiceert via I2C met de Arduino. De Arduino leest de tijd en schakelt de Nixie-segmenten in hoge frequentie om een stabiele weergave te creëren.
Stap 2: Arduino-code
// Youtube kanaal: engineer2you
#include <Wire.h>
#include "DS3231.h"
RTClib RTC;
DS3231 Clock;
int hour, minute, second;
const int nixie_0 = 2; const int nixie_1 = 3; const int nixie_2 = 4;
const int nixie_3 = 5; const int nixie_4 = 6; const int nixie_5 = 7;
const int nixie_6 = 8; const int nixie_7 = 9; const int nixie_8 = 10;
const int nixie_9 = 11;
const int row_1 = 0; const int row_2 = 1; const int row_3 = 14;
const int row_4 = 15; const int row_5 = 16; const int row_6 = 17;
const int time_on = 2;
void setup() {
for(int i=2;i<=11;i++) pinMode(i, OUTPUT);
pinMode(row_1, OUTPUT); pinMode(row_2, OUTPUT); pinMode(row_3, OUTPUT);
pinMode(row_4, OUTPUT); pinMode(row_5, OUTPUT); pinMode(row_6, OUTPUT);
// Serial.begin(9600); // NIET gebruiken, beïnvloedt pinnen D0 & D1
Wire.begin();
}
void loop() {
DateTime now = RTC.now();
hour = now.hour(); minute = now.minute(); second = now.second();
// Seconden tonen
int j = second/10, k = second%10;
off_all(); on_number(0, k+2); delay(time_on);
off_all(); on_number(1, j+2); delay(time_on);
// Minuten tonen
j = minute/10; k = minute%10;
off_all(); on_number(14, k+2); delay(time_on);
off_all(); on_number(15, j+2); delay(time_on);
// Uren tonen
j = hour/10; k = hour%10;
off_all(); on_number(16, k+2); delay(time_on);
off_all(); on_number(17, j+2); delay(time_on);
}
void on_number(int row, int nixie) {
digitalWrite(row, HIGH);
digitalWrite(nixie, HIGH);
}
void off_all() {
for(int i=0;i<=1;i++) digitalWrite(i, LOW);
for(int i=14;i<=17;i++) digitalWrite(i, LOW);
for(int i=2;i<=11;i++) digitalWrite(i, LOW);
delayMicroseconds(400); // voorkomt "ghost" effect
}
De code haalt de tijd op van de DS3231 en toont deze op de 6 Nixie-buizen via de opto-isolatiechips.
Stap 3: De schakeling bouwen





Dit is een prototype op breadboard. Het werkte direct zonder problemen. In een volgende stap zal ik een mooie MDF-behuizing maken voor in mijn kamer.
Code
Volledige code bovenstaand (Code snippet #1).
Productieproces
- Arduino POV-klok: Bouw een Persistence-of-Vision LED-display
- Bouw een retro Numitron-klok met Arduino: Eenvoudig, betrouwbaar en energiezuinig
- DIY Arduino Woordklok – Bouw een Elegant Real-Time Display
- Bouw een Arduino Real-Time Clock voor Islamitische Gebedstijden
- Bouw een Aangepaste LED Hoofdklok met Alarm – Zichtbaar vanaf 12 Meter
- Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
- Arduino Temperatuurbewaking & Realtime Klok met 3.2" TFT-display
- Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
- Bouw een Slijm Nixie Buis Klok in een Aangepaste MDF Houten Behuizing met Arduino
- Bouw een betrouwbare wekker met DS1302 RTC en Arduino UNO
- Elektrische harnesses ontwerpen met E3.series