Skip to content

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 !