0

Flickering issue when using 4-digit 7-segment + Quad Alphanu
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Flickering issue when using 4-digit 7-segment + Quad Alphanu

by FredAda on Fri Sep 30, 2016 5:15 am

Hi,

I've a flickering issue, when I use at the same time:
- Quad Alphanumeric Display -Yellow-Green 0.54" Digits w/ Backpack
and
- Adafruit 1.2" 4-Digit 7-Segment Display w/I2C Backpack - Green

When using them separately there is no issue.
The board I'm using is a Leonardo board.
I've tried with external power or USB power, the same happens.

Here is the sketch I'm using just for testing:
Code: Select all | TOGGLE FULL SIZE
/***************************************************
  This is a library for our I2C LED Backpacks

  Designed specifically to work with the Adafruit LED 7-Segment backpacks
  ----> http://www.adafruit.com/products/881
  ----> http://www.adafruit.com/products/880
  ----> http://www.adafruit.com/products/879
  ----> http://www.adafruit.com/products/878

  These displays use I2C to communicate, 2 pins are required to
  interface. There are multiple selectable I2C addresses. For backpacks
  with 2 Address Select pins: 0x70, 0x71, 0x72 or 0x73. For backpacks
  with 3 Address Select pins: 0x70 thru 0x77

  Adafruit invests time and resources providing this open source code,
  please support Adafruit and open-source hardware by purchasing
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries. 
  BSD license, all text above must be included in any redistribution
 ****************************************************/

// Enable one of these two #includes and comment out the other.
// Conditional #include doesn't work due to Arduino IDE shenanigans.
#include <Wire.h> // Enable this line if using Arduino Uno, Mega, etc.
//#include <TinyWireM.h> // Enable this line if using Adafruit Trinket, Gemma, etc.

#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"

Adafruit_7segment matrix = Adafruit_7segment();
Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4();

void setup() {
//#ifndef __AVR_ATtiny85__
  Serial.begin(9600);
  Serial.println("7 Segment Backpack Test");
//#endif
  matrix.begin(0x70);
  matrix.setBrightness(5);
 
  alpha4.begin(0x71);
  alpha4.setBrightness(1);
 
  alpha4.clear();
  alpha4.writeDisplay();
}

void loop() {
  uint8_t i;

  Serial.println("7 Segment Backpack Test");
 
  // print a floating point
  matrix.print(12.34);
  matrix.writeDisplay();
 
  alpha4.writeDigitAscii(0, '0');
  alpha4.writeDigitAscii(1, '0');
  alpha4.writeDigitAscii(2, '0');
  alpha4.writeDigitAscii(3, '0');
  alpha4.writeDisplay();
 
  delay(10000);

  alpha4.writeDigitAscii(0, '-');
  alpha4.writeDigitAscii(1, '-');
  alpha4.writeDigitAscii(2, '-');
  alpha4.writeDigitAscii(3, '-');
  alpha4.writeDisplay();

  delay(10000);
}


The flickering is on the large 1.2" display, and is more when the alpha4 displays "0000" (and less when displaying "----").
So, to me it looks a power issue, but I don't know how I could fix it.
The external power is 12V, 1500mA which should be sufficient.

Any help is welcome.

Thanks,

Fred.

Edit: I've just tested on an Arduino Uno board and the same happens.

FredAda
 
Posts: 3
Joined: Mon Jul 11, 2016 9:22 am

Re: Flickering issue when using 4-digit 7-segment + Quad Alp

by adafruit_support_bill on Fri Sep 30, 2016 6:22 am

The external power is 12V, 1500mA which should be sufficient.

That is most likely the problem then. The Arduino is a 5v processor, so you are making the regulator burn off 60% of the 12v input power as heat. It is probably going into thermal overload trying to get rid of all that waste heat.

A power supply in the 7v to 9v range will give you more usable power.

adafruit_support_bill
 
Posts: 69235
Joined: Sat Feb 07, 2009 10:11 am

Re: Flickering issue when using 4-digit 7-segment + Quad Alp

by FredAda on Fri Sep 30, 2016 7:24 am

Ok, thanks for your reply, I will try another external power supply.
(note that the Leonardo spec is: "Input Voltage (recommended) 7-12V ", and "Input Voltage (limits) 6-20V", so I thought 12V was Ok and would not create some heat/thermal issues).

For the USB case (when there is no external power supply), what would explain the issue ?

Thanks,

Fred

FredAda
 
Posts: 3
Joined: Mon Jul 11, 2016 9:22 am

Re: Flickering issue when using 4-digit 7-segment + Quad Alp

by adafruit_support_bill on Fri Sep 30, 2016 7:52 am

(note that the Leonardo spec is: "Input Voltage (recommended) 7-12V ",

That spec is for the Leonardo itself, which draws only about 25-30mA. Your displays increase the current load on the regulator by an order of magnitude.

For the USB case (when there is no external power supply), what would explain the issue ?

Most USB ports are rated for 500mA. Not sure about the Leonardo, but most Arduinos have a 500mA polyfuse on the USB voltage bus.

adafruit_support_bill
 
Posts: 69235
Joined: Sat Feb 07, 2009 10:11 am

Re: Flickering issue when using 4-digit 7-segment + Quad Alp

by FredAda on Fri Sep 30, 2016 8:14 am

Ok, thanks.

I've tested with another power supply: 7.5V, 1A.
It is better, the flickering is very lite now, and I hope, acceptable (I've to test when additional segments are On).

Like for LED Strips, would it be a solution to have two power supplies:
- one for the arduino board (I can use a 7.5 or 12V power supply)
- one for the digital segments (I have to use 5V power supply)

In that case, should I connect both +5V and IO I2c Bus voltage to the second power supply, or only the +5V and IO I2c Bus Voltage to Arduino's 5V ?

Thanks,

Fred.

FredAda
 
Posts: 3
Joined: Mon Jul 11, 2016 9:22 am

Re: Flickering issue when using 4-digit 7-segment + Quad Alp

by adafruit_support_bill on Fri Sep 30, 2016 8:25 am

An external 5v power supply is a good idea here. The on-board voltage regulator for the Leonardo (and most every other processor board) is a linear-type regulator. They are good stable regulators, but not very efficient at higher loads.

With a regulated 5v supply, you can use it to power the Leonardo too - bypassing the on-board supply. You can do this via the 5v pin, or (more safely) via the USB jack.

Since both processor and display are 5v devices, you can connect the i2c bus pin to either 5v supply. (For a 3.3v processor, you would want to connect it to the processor's 3.3v pin). In any case, you need to have a ground connection between the Arduino and the displays.

adafruit_support_bill
 
Posts: 69235
Joined: Sat Feb 07, 2009 10:11 am

Please be positive and constructive with your questions and comments.