Sponsored links

# The display of Canon Canola L1211 was dynamically lit with ESP32, and 11-digit numbers could be displayed.

Sponsored links

Each segment of the display unit of Canon Canola L1211 can be turned on and off by ESP32Last time, I was able to turn the segment on and off, and I am able to display a single digit number. For more information, please click here.

Sponsored links

## Girder control circuit

### Circuit Design

As with the Nixie tube, electricity of about 170V must be turned on and off to turn on each digit. In general, a simple method is to use a high-voltage photo interrupter to turn on and off the high voltage from the microcontroller. However, since we did not have those components, we decided to design the circuit using high-voltage transistors.

The circuit is basically the same as the one I made before with Nixie tubes. For more information, please click here.

Here is the circuit for the digit control. Use a high voltage PNP transistor, MPSA92, so that a high voltage current can be discharged. Since the base of this transistor also has a high voltage, the high voltage NPN transistor MPSA42, which was used to control the segment, is used to control the base of MPSA92. By using such a circuit, the high voltage can be turned on and off even with a low voltage signal such as a microcontroller.

### Soldering

It has 13 digits, which is a large number of transistors.

I made 13 digits, but unfortunately, due to the lack of pins on the ESP32, A0 and A12 are not connected to the microcontroller and cannot be made to light up.

## Program

```//                       a  b   c  d   e  f   g  dp  com
const int SEG_PIN[9] = { 5, 16, 2, 15, 0, 17, 4, 18, 19 };
const int SEG_NUM = 9;
//                          A1  A2  A3  A4  A5  A6  A7  A8  A9  A10 A11
const int ANODE_PIN[11] = { 23, 22, 21, 32, 33, 25, 26, 27, 14, 12, 13 };
const int ANODE_NUM = 11;

//                            a  b  c  d  e  f  g
const bool CHAR[16][7] =   { {1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 0, 0, 0, 0}, {1, 1, 0, 1, 1, 0, 1}, {1, 1, 1, 1, 0, 0, 1},
{0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1},
{0, 0, 0, 1, 1, 0, 1}, {0, 1, 1, 1, 1, 0, 1}, {1, 0, 0, 1, 1, 1, 1}, {1, 0, 0, 0, 1, 1, 1},
};

void setup() {
Serial.begin(115200);
Serial.println("start");
for ( int i = 0 ; i < SEG_NUM ; i++)
{
pinMode(SEG_PIN[i], OUTPUT);
digitalWrite(SEG_PIN[i], LOW);
}
for ( int i = 0 ; i < ANODE_NUM ; i++)
{
pinMode(ANODE_PIN[i], OUTPUT);
digitalWrite(ANODE_PIN[i], LOW);
}
}

int scroll = 0;
void loop() {
for (int wait = 0; wait < 10; wait++)
{
for ( int i = 0 ; i < ANODE_NUM ; i++ )
{
int rotated_i = (((i + scroll) % ANODE_NUM) + ANODE_NUM) % ANODE_NUM;
for ( int j = 0 ; j < 7 ; j++ )
{
digitalWrite(SEG_PIN[j], CHAR[rotated_i][j]);
}
digitalWrite(ANODE_PIN[i], HIGH);

delay(1);
for ( int j = 0 ; j < 7 ; j++ )
{
digitalWrite(SEG_PIN[j], LOW);
}
digitalWrite(ANODE_PIN[i], LOW);
delayMicroseconds(50);
}
}
scroll--;
}
```

The program has been improved to dynamically scan each digit. Also, the numbers now scroll to the left.

## It glowed!

When I write a program to the ESP32...

It glows! Due to the lack of ESP32 pins, the rightmost and leftmost digits do not light up, but I can now display 11 digits. The Canon Canola L1211 indicator, SEPTANIX J4923A, can now be displayed using ESP32.

There is no pre-bias circuit, but ghosting does not seem to occur very often. I guess it's because the current is low.

Now I think I'll make a clock.

Added on April 12, 2021 Click here to continue.

End of addition

Sponsored links
シェアする
RoseFollow
kohacraft's blog
Copied title and URL