K155id1¶
wiring¶
Next step is to implement the K155id1 driver ic’s
The K155id1 has 4x digital inputs (A, B, C, D) and 10x digital outputs (0-9).
For my first test, I’ve connected one K155id1 directly to the arduino and added 10 LEDs. But this time, the LEDs polarity has to be switched. So the cathodes(-) are connected to the IC and the anodes(+) are connected to VCC (+5V)
connected to | K155id1 | K155id1 | connected to |
---|---|---|---|
LED (9) | 9 - 2 | 15 - 0 | LED (0) |
Arduino D8 | A - 3 | 14 - 1 | LED (1) |
LED (8) | 8 - 1 | 16 - 5 | LED (5) |
Arduino D11 | D - 4 | 13 - 4 | LED (4) |
5V VCC | VCC - 5 | 12 - GND | GND |
Arduino D9 | B - 6 | 11 - 6 | LED (6) |
Arduino D10 | C - 7 | 10 - 7 | LED (7) |
LED (2) | 2 - 8 | 9 - 3 | LED (3) |
A good tutorial is also available on instructables
The function table
from the datasheet shows the the input / output combinations.
programming¶
I used the arduino sketch from the above side and found some errors in it.
At #0 there was a wrong pin defined and #9 hasn’t worked. After a look in the function table
, I saw, that the code doesn’t matched.
I’ve marked the mistakes in capital letters.
/*
01010000011100100110111101110100011011110010000001000111
Nixie Tube Demo
This code cycles through the digits of a Nixie Tube.
Created April 20, 2015
Modified April 20, 2015
by Anthony Garofalo (Proto G)
Visit my YouTube channel here: https://www.youtube.com/channel/UCpTuKJrXFwybnpOG10HpTpZw
Visit my Instructables page here: http://www.instructables.com/member/Proto+G/
_____ ______ _____ _______ _____ ______
|_____] |_____/ | | | | | | ____
| | \_ |_____| | |_____| |_____|
01010000011100100110111101110100011011110010000001000111
*/
void setup() {
pinMode(11, OUTPUT); // D
pinMode(10, OUTPUT); // C
pinMode(9, OUTPUT); // B
pinMode(8, OUTPUT); // A
}
void loop() {
//0
digitalWrite(11, LOW); //D
digitalWrite(10, LOW); //C
digitalWrite(9, LOW); //B WRONG PIN
digitalWrite(8, LOW); //A
delay(100);
//1
digitalWrite(11, LOW); //D
digitalWrite(10, LOW); //C
digitalWrite(9, LOW); //B
digitalWrite(8, HIGH); //A
delay(100);
//2
digitalWrite(11, LOW); //D
digitalWrite(10, LOW); //C
digitalWrite(9, HIGH); //B
digitalWrite(8, LOW); //A
delay(100);
//3
digitalWrite(11, LOW); //D
digitalWrite(10, LOW); //C
digitalWrite(9, HIGH); //B
digitalWrite(8, HIGH); //A
delay(100);
//4
digitalWrite(11, LOW); //D
digitalWrite(10, HIGH);//C
digitalWrite(9, LOW); //B
digitalWrite(8, LOW); //A
delay(100);
//5
digitalWrite(11, LOW); //D
digitalWrite(10, HIGH);//C
digitalWrite(9, LOW); //B
digitalWrite(8, HIGH); //A
delay(100);
//6
digitalWrite(11, LOW); //D
digitalWrite(10, HIGH);//C
digitalWrite(9, HIGH); //B
digitalWrite(8, LOW); //A
delay(100);
//7
digitalWrite(11, LOW); //D
digitalWrite(10, HIGH);//C
digitalWrite(9, HIGH); //B
digitalWrite(8, HIGH); //A
delay(100);
//8
digitalWrite(11, HIGH);//D
digitalWrite(10, LOW); //C
digitalWrite(9, LOW); //B
digitalWrite(8, LOW); //A
delay(100);
//9
digitalWrite(11, HIGH);//D //WRONG CODE FOR NUMBER 9
digitalWrite(10, LOW); //C
digitalWrite(9, LOW); //B
digitalWrite(8, HIGH); //A
delay(100);
}
testing¶
great !