Hi,
I am making a pedometer with an Arduino micro and am using a shift register to drive a 4 digit 7 segment display which displays the number of steps. Just wondering if I need a ceramic capacitor on the clock pin of the shift register to protect it.
Thanks in advance
Adding a capacitor to the clock pin will most likely prevent your circuit from working.
Connect the capacitors between Vcc and GND.
Have you thought about clocking a decade counter chip instead of a shift register? The decoding from BCD to 7-seg display would be easier, I think.
A MAX7219 using SPI might be the best option for a 7 segment display.
Thanks everyone for your help. It is very much appreciated.
Hi @LarryD , thanks for the detailed information. Is there a variant of the Max7219 that has only 4 digits on the display as that is the only size that will fit in my enclosure?
Thanks
The MAX7219 can be used with 4 seven segment digits.
Hi LarryD, thanks for that information. I've had a look online and when I search for the Max 7219 I only get results for boards with an integrated 8 digit display. I would be grateful if you could post me a link of a site I could purchase a Max 7219 from.
Thanks
Hi Larry@D,
thanks very much for all of your help. It 's very much appreciated.
Remember the 7219 drives a common cathode seven segment display.
Here is a sketch to get you started with the MAX7219:
/*
SPI_Max7221/7219
*/
#include <SPI.h>
const int slaveSelect = 10; //pin used to enable the active slave
const int numberOfDigits = 4; // change to match the number of digits wired up
const int maxCount = 9999;
int count;
//**********************************************************************
void setup()
{
SPI.begin(); // initialize SPI
pinMode(slaveSelect, OUTPUT);
digitalWrite(slaveSelect, LOW); //select slave
//prepare the 7221/7219 to display 7-segment data - see data sheet
sendCommand(15, 0); //Display test off
sendCommand(12, 1); //normal mode (default is shutdown mode);
sendCommand(11, numberOfDigits - 1); //7221 digit scan limit command, 0 relative
sendCommand(10, 8); //set medium intensity (range is 0-15)
sendCommand(9, 255); //decode command, use standard 7-segment digits
digitalWrite(slaveSelect, HIGH); //deselect slave
//displayNumber(count);
} //END of setup()
//**********************************************************************
void loop()
{
count = count + 1;
if (count > maxCount)
{
count = 0;
}
//send the current count to the MAX7219
displayNumber(count);
delay(100);
} //END of loop()
//**********************************************************************
//function to display up to four digits on a 7-segment display
void displayNumber( int number)
{
//sending all the digits to the display
for (int i = 0; i < numberOfDigits; i++)
{
//get the value of the rightmost decade
byte character = number % 10;
//sendCommand(reg,data)
sendCommand(numberOfDigits - i, character);
//next digit
number = number / 10;
}
} //END of displayNumber()
//**********************************************************************
void sendCommand( int reg, int data)
{
digitalWrite(slaveSelect, LOW); //chip select is active low
//2 byte data transfer to the 7221/7219
SPI.transfer(reg);
SPI.transfer(data);
digitalWrite(slaveSelect, HIGH); //release chip, signal end transfer
} //END of sendCommand()
I’m driving 8 x 8x8 matrices with mkr zero and I found that SPI very temperamental not to mention that default SPI.begin() just breaks it, only beginTransaction with SPISetting works, and even that gets wierd trying to run all 8 in cascade. ShiftOut on the other hand is as solid as a rock.
Yes, but that is somewhat misleading to say.
It drives common anode displays perfectly well.
This is a misunderstanding resulting from a particularly stupid blunder in the Arduino tutorials.
I use 8 and 4 digit all the time with SPI, I’ve never experienced that problem.
Yes CA can be used but with software contortion
Not familiar with mkr zero, what voltage is the controller ?
If 3v, I believe there is a special 3v version of the 7219.
3.3v, I have no idea what version of controller, it is under the led matrix which is not removable. the seller indicated it needs 5v and it seems ok
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.