Hello!

For a project I need to make a four-digit timer that counts up. I think I can figure out the counting part myself, it is just the display part I need help with.

We are using four separate seven segment displays and an Arduino Mega 2560. The code currently looks like this: (I had it written over multiple lines, but the Lemmy preview just makes one big block of text from it so sorry for that)

void Display1() // Display a 1 { digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(4, HIGH); digitalWrite(6, HIGH); digitalWrite(7, LOW); digitalWrite(9, LOW); digitalWrite(10, LOW); }

This function is for writing a one, but I have written one for all ten numbers already. The problem is that this only works for the first display. Does anyone know how I can edit this code to make four seven segment displays work together, and make it display full numbers like 8732 for example?

Thank you!

  • @RubberElectrons
    link
    2
    edit-2
    1 year ago

    Hi there. When I’ve needed to use these displays, I needed to save pins on my MCU, so I used the TM1637, which can drive up to 4 digits using only 2 pins, though it isn’t i2c.

    Otherwise, you’ll need to build a fat function, with two inputs: updateDigit(digitPosition0-3,number0-9)

    Edit: here’s a quick tutorial: https://www.makerguides.com/tm1637-arduino-tutorial/