Hello Arduino Forum,
Connecting an Arduino Uno to a daisy chain of 20 SparkFun 74HC595 breakout boards (BOB-10680)
using this layout.
With the daisy chain connected directly to the Arduino as shown in the first untitled GIF and all 160 LEDs sequenced perfectly.
Then the PIR circuit was added and the first ten shift registers work as intended but the second ten
registers blink faintly at about ten hertz until it is time for them to come on
in the sequence and they operate as designed.
So I was talking to a buddy at work and he said that the Arduino is really not designed to handle more than six or so LEDs using the 5 volt source on the Uno and that I should connect the LEDs directly to a heftier voltage source and make sure that all the grounds are connected so I tried this setup.
I figured I would get the display to work and add the PIR sensor later.
This causes the 160 LEDS blink on and off at a bout .5 hertz.
Also tried connecting the breakout board to a nine volt
battery. This resulted in the LEDs to coming on and staying on.
It seems that powering the LEDs thru a source separate from the Arduino causes
the LEDs to ignore the Arduino program and just come on.
Is this what was meant by
'Try using a separate power supply for the LEDs, connecting the all the grounds.'?
How can the power be connected to the LEDs without
using the Arduino power but still have the Arduino control
the display sequence?
Thanks.
Allen Pitts, Dallas Texas
Look in the datasheet of the chip. What is the voltage required on the signal pins? Hint it's not 5v
Mark
Hello Mark.
Thanks for the reply.
Searched the data sheet (all 660 pages ) for the voltage required for the signal pins with out success.
http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf
I am interested in the answer.
But if you look at the GIF marked 'Arduino Uno to SparkFun 75HC595 Breakout Daisy Chain'
you might notice that there is no input to the Arduino only output from the code to the
SparkFun breakout board.
Trying to figure out how to provide voltage directly to the breakout board and control the breakout boards
from the Arduino. (Or some other architecture that provides on/off controlled by the Arduino but does not
use the 5 volt supply on the Uno to power the LEDs'
Sketch copied below.
Thanks.
Allen
#include <Shifter.h>
#define SER_Pin 4 //SER_IN
#define RCLK_Pin 3 //L_CLOCK
#define SRCLK_Pin 2 //CLOCK
#define NUM_REGISTERS 20 //how many registers are in the chain
//initaize shifter using the Shifter library
Shifter shifter(SER_Pin, RCLK_Pin, SRCLK_Pin, NUM_REGISTERS);
void setup(){
}
void loop(){
shifter.clear(); //set all pins on the shift register chain to LOW
shifter.write(); //send changes to the chain and display them
delay(1000);
for (int n = 0; n < 159 ; n++)
{
shifter.setPin(n, HIGH); //set pin 1 in the chain(second pin) HIGH
}
shifter.write(); //send changes to the chain and display them
delay(1000);
shifter.setAll(HIGH); //Set all pins on the chain high
shifter.write(); //send changes to the chain and display them
delay(1000);
}
Chaining so many boards may overload the clock pins. If 10 boards work fine, split the chain into 2*10 boards, connected to different pins.
You should have looked in the datasheet for the 74HC595. Like the vast majority of data sheets it gives the values for the input signals WRT Vcc Your diagram shows you feeding the 74HC595 9V.
Lines long enough to connect to that many 74HC595's will give lots of problem on all the signals.
Mark