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

Copied title and URL