# Digital tube with Traffic Light Experiment

![](/files/vMi9Bb311OP33eHmr0I9)

### **Component Required**

* 1 x Uno R3
* 1 x 830 tie-points breadboard
* 1 x 1 Digit 7-Segment Display
* 10 X 220 ohm resistors
* 20 x M-M wire (Male to Male jumper wire)
* 1 x Red LED
* 1 x Yellow LED
* 1 x Green LED

### **Component Introduction**

#### Seven segment display

Below is the seven-segment pin diagram.

![](/files/R2cvXVsqlVW0tRUmzlxp)

0-9 ten digits correspond with each segment are as follows (the following table applies common cathode seven segment display device, if you are using a common anode, the table should be replaced every 1 0 0 should all replaced by 1):

<table data-header-hidden><thead><tr><th width="150"></th><th width="150"></th><th width="150"></th><th width="150"></th><th width="150"></th><th width="150"></th><th width="150"></th><th width="150"></th><th></th></tr></thead><tbody><tr><td>Display</td><td>dp</td><td>a</td><td>b</td><td>c</td><td>d</td><td>e</td><td>f</td><td>g</td></tr><tr><td> </td><td> </td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>digital</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>0</td><td>0</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td><td>0</td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>1</td><td>0</td><td>0</td><td>1</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>2</td><td>0</td><td>1</td><td>1</td><td>0</td><td>1</td><td>1</td><td>0</td><td>1</td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>3</td><td>0</td><td>1</td><td>1</td><td>1</td><td>1</td><td>0</td><td>0</td><td>1</td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>4</td><td>0</td><td>0</td><td>1</td><td>1</td><td>0</td><td>0</td><td>1</td><td>1</td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>5</td><td>0</td><td>1</td><td>0</td><td>1</td><td>1</td><td>0</td><td>1</td><td>1</td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>6</td><td>0</td><td>1</td><td>0</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>7</td><td>0</td><td>1</td><td>1</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>8</td><td>0</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td><td>1</td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr><tr><td>9</td><td>0</td><td>1</td><td>1</td><td>1</td><td>1</td><td>0</td><td>1</td><td>1</td></tr><tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr></tbody></table>

### **Connection Diagram:**

![](/files/6MOylzynEcwhcvoj9y3W)

### **Wiring schematic:**

![](/files/sLmsIkULKXQmRKwAutcZ)

### **Physical wiring diagram:**

![](/files/aanJQBuJaNoCVdZCzuv1)

```
int a = 7;
int b = 6;
int c = 5;
int d = 11;
int e = 10;
int f = 8;
int g = 9;

int ledG = 14;
int ledY = 15;
int ledR = 16;

//Display number 1
void digital_1(void)
{
  unsigned char j;
  digitalWrite(c, HIGH); //Lower the level of the digital 5 pin and light up segment c
  digitalWrite(b, HIGH); //Light section b
  for (j = 7; j <= 11; j++) //blanking
    digitalWrite(j, LOW);
}
//Display number 2
void digital_2(void)
{
  unsigned char j;
  digitalWrite(b, HIGH);
  digitalWrite(a, HIGH);
  for (j = 9; j <= 11; j++)
    digitalWrite(j, HIGH);
  digitalWrite(c, LOW);
  digitalWrite(f, LOW);
}
//Display number 3
void digital_3(void)
{
  unsigned char j;
  digitalWrite(g, HIGH);
  digitalWrite(d, HIGH);
  for (j = 5; j <= 7; j++)
    digitalWrite(j, HIGH);
  digitalWrite(f, LOW);
  digitalWrite(e, LOW);
}


//Display number 4
void digital_4(void)
{
  digitalWrite(c, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  digitalWrite(a, LOW);
  digitalWrite(e, LOW);
  digitalWrite(d, LOW);
}
//Display number 5
void digital_5(void)
{
  unsigned char j;
  for (j = 7; j <= 9; j++)
    digitalWrite(j, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(e, LOW);
}
//Display number 6
void digital_6(void)
{
  unsigned char j;
  for (j = 7; j <= 11; j++)
    digitalWrite(j, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(b, LOW);
}
//Display number 7
void digital_7(void)
{
  unsigned char j;
  for (j = 5; j <= 7; j++)
    digitalWrite(j, HIGH);
  for (j = 8; j <= 11; j++)
    digitalWrite(j, LOW);
}

//Display number 8
void digital_8(void)
{
  unsigned char j;
  for (j = 5; j <= 11; j++)
    digitalWrite(j, HIGH);
}
//Display number 9
void digital_9(void)
{
  digitalWrite(c, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  digitalWrite(a, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(d, HIGH);
}
//Pin setting and initialization
void setup()
{
  int i;//defined variable
  for (i = 5; i <= 16; i++)
    pinMode(i, OUTPUT); //Set pins 5 ~ 16 to output mode

}

void loop()
{
  while (1)
  {
    //red light
    digitalWrite(ledR, LOW);
    digitalWrite(ledY, HIGH);
    digitalWrite(ledG, HIGH);

    digital_9();  // Show 9
    delay(1000);   //Delay 1 s
    digital_8();  // Show 8
    delay(1000);   //Delay 1 s
    digital_7();  // Show 7
    delay(1000);   //Delay 1 s
    digital_6();  // Show 6
    delay(1000);   //Delay 1 s
    digital_5();  // Show 5
    delay(1000);   //Delay 1 s
    digital_4();  // Show 4
    delay(1000);   //Delay 1 s
    digital_3();  // Show 3
    delay(1000);   //Delay 1 s
    digital_2();  // Show 2
    delay(1000);   //Delay 1 s
    digital_1();  // Show 1
    delay(1000);   //Delay 1 s
    //green light
    digitalWrite(ledR, HIGH);
    digitalWrite(ledY, HIGH);
    digitalWrite(ledG, LOW);

    digital_9();  // Show 9
    delay(1000);   //Delay 1 s
    digital_8();  // Show 8
    delay(1000);   //Delay 1 s
    digital_7();  // Show 7
    delay(1000);   //Delay 1 s
    digital_6();  // Show 6
    delay(1000);   //Delay 1 s
    digital_5();  // Show 5
    delay(1000);   //Delay 1 s
    digital_4();  // Show 4
    delay(1000);   //Delay 1 s
    digital_3();  // Show 3
    delay(1000);   //Delay 1 s
    digital_2();  // Show 2
    delay(1000);   //Delay 1 s
    digital_1();  // Show 1
    delay(1000);   //Delay 1 s
    //yellow light
    digitalWrite(ledR, HIGH);
    digitalWrite(ledY, LOW);
    digitalWrite(ledG, HIGH);
    digital_3();  // Show 3
    delay(1000);   //Delay 1 s
    digital_2();  // Show 2
    delay(1000);   //Delay 1 s
    digital_1();  // Show 1
    delay(1000);   //Delay 1 s
  }
}
```

{% file src="/files/o9tAiaLfYAjGi79jl7qU" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.arduinosa.co.za/arduino-kits/basic-starter-kit/digital-tube-with-traffic-light-experiment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
