UKHeliBob:
What code ?
What "LED tube display" ?
What circuit ?
The tube is a serial 595 driver
The circuit is just the tube connected to the Arduino uno, nothing else.
unsigned char LED_0F[] =
{
0xC0, // 0 display 0
0xF9, // 1 display 1
0xA4, // 2 display 2
0xB0, // 3 display 3
0x99, // 4 display 4
0x92, // 5 display 5
0x82, // 6 display 6
0xF8, // 7 display 7
0x80, // 8 display 8
0x90, // 9 display 9
0x88, // 10 display A
0x83, // 11 display b
0xC6, // 12 display C
0xA1, // 13 display d
0x86, // 14 display E
0x8E, // 15 display F
0xC2, // 16 display G
0x89, // 17 display H
0xF9, // 18 display I
0xF1, // 19 display J
0xC3, // 20 display L
0xA9, // 21 display n
0xC0, // 22 display O
0x8C, // 23 display P
0x98, // 24 display q
0x92, // 25 display S
0xC1, // 26 display U
0x91, // 27 display Y
0xFE, //28 display -
};
unsigned char LED[4]; // 4
int SCLK = 2;
int RCLK = 1;
int DIO = 0;
void setup ()
{
pinMode(SCLK,OUTPUT);
pinMode(RCLK,OUTPUT);
pinMode(DIO,OUTPUT);
}
void loop()
{
LED[0]=28;
LED[1]=13;
LED[2]=21;
LED[3]=14;
while(1)
{
LED4_Display ();
}
}
void LED4_Display (void)
{
unsigned char *led_table;
unsigned char i;
// 1
led_table = LED_0F + LED[0];
i = *led_table;
LED_OUT(i);
LED_OUT(0x01);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
// 2
led_table = LED_0F + LED[1];
i = *led_table;
LED_OUT(i);
LED_OUT(0x02);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
// 3
led_table = LED_0F + LED[2];
i = *led_table;
LED_OUT(i);
LED_OUT(0x04);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
// 4
led_table = LED_0F + LED[3];
i = *led_table;
LED_OUT(i);
LED_OUT(0x08);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
}
void LED_OUT(unsigned char X)
{
unsigned char i;
for(i=8;i>=1;i--)
{
if (X&0x80)
{
digitalWrite(DIO,HIGH);
}
else
{
digitalWrite(DIO,LOW);
}
X<<=1;
digitalWrite(SCLK,LOW);
digitalWrite(SCLK,HIGH);
}
}