hulp met sift registers 75hc595
4 berichten
• Pagina 1 van 1
hulp met sift registers 75hc595
hallo,
ten eerste ben ik geheel nieuw met arduino maar een aantal dingen lukken me al aardig.
nu ben ik voor een kunbst projectje bezig om meerdere leds aan te sturen die ik individueel wil aansturen met binaire code
dit lukt me met 2 shift registers (75hc595)
nu wil ik graag meer dan 16 leds aansturen en heb dus meer shift registers nodig.
nu heb ik code om 2 aan te sturen maar hoe krijg ik nu meerdere shift registers er bij.
hieronder de code die werkt met 2 shift registers:
cpp code
wie o wie helpt mij hoe ik dit kan doen.
ben al veel aan het lezen en proberen maar helaas nog geen resultaat.
ik hoop jullie voldoende in te hebben gegeven.
groet richard
ten eerste ben ik geheel nieuw met arduino maar een aantal dingen lukken me al aardig.
nu ben ik voor een kunbst projectje bezig om meerdere leds aan te sturen die ik individueel wil aansturen met binaire code
dit lukt me met 2 shift registers (75hc595)
nu wil ik graag meer dan 16 leds aansturen en heb dus meer shift registers nodig.
nu heb ik code om 2 aan te sturen maar hoe krijg ik nu meerdere shift registers er bij.
hieronder de code die werkt met 2 shift registers:
cpp code
const byte COL_COUNT = 3;
unsigned int sequence[COL_COUNT] = {0B1111110000000000, 0B000000000000111111, 0b1110001110001110 };// hier komt meer code te staan voor meer effecten in het licht gebeuren
//unsigned int sequence[COL_COUNT] = {257, 515, 1031, 2063, 4127, 8255, 16511, 33023};
int latchPin = 3; //Pin connected to ST_CP(pin 12) of 74HC595
int clockPin = 4; //Pin connected to SH_CP(pin 11) of 74HC595
int dataPin = 2; //Pin connected to DS(pin 14) of 74HC595
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop()
{
for (int col = 0; col < COL_COUNT; col++)
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, (sequence[col] >> 9)); //shift out highbyte
shiftOut(dataPin, clockPin, MSBFIRST,sequence[col]); //shift out lowbyte
digitalWrite(latchPin, HIGH);
delay(1000);
}
}
wie o wie helpt mij hoe ik dit kan doen.
ben al veel aan het lezen en proberen maar helaas nog geen resultaat.
ik hoop jullie voldoende in te hebben gegeven.
groet richard
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: hulp met sift registers 75hc595
Je kan die dingen toch gewoon doorlussen? En dan blijf je gewoon door clocken.
Re: hulp met sift registers 75hc595
dat doorlussen gaat goed met 2 maar ik krijg er geen derde laat staan 4 bij. ik moet ergens wat code neerzetten zodat bekend ik dat er meer shift registers worden aan gestuurd.
als ik bij de binaire code in plaats van 16 24 tekens neer zet gebeurd er niks.
als ik bij de binaire code in plaats van 16 24 tekens neer zet gebeurd er niks.
Re: hulp met sift registers 75hc595
jouw array bestaat uit 3 rijen en 1 kolom, dus jouw COL moet eigenlijk ROW zijn.
daar moeten dus nog een paar kolommen aan vast komen, simpeler is trouwens om hier bytes ipv word te gebruiken, dan hoef je niet te shiften, dan is elke kolom gewoon een shiftregister,
dan doe je dus op de plaats waar je nu shift zeg je for col=0 to max, shiftout array row,col
en in row staat dan het effect.
cpp code
daar moeten dus nog een paar kolommen aan vast komen, simpeler is trouwens om hier bytes ipv word te gebruiken, dan hoef je niet te shiften, dan is elke kolom gewoon een shiftregister,
dan doe je dus op de plaats waar je nu shift zeg je for col=0 to max, shiftout array row,col
en in row staat dan het effect.
cpp code
const byte ROW_COUNT = 3;
// col_count =2 dat is nu, maar dat wordt dus meer
unsigned byte sequence[ROW_COUNT][COL_COUNT] = {
0B1111110,0B000000000,0B0000001111...... en de andere
0B0000000,0B00000111111,
0b1110001110001110 };
// hier komt meer code te staan voor meer effecten in het licht gebeuren
//unsigned int sequence[COL_COUNT] = {257, 515, 1031, 2063, 4127, 8255, 16511, 33023};
int latchPin = 3; //Pin connected to ST_CP(pin 12) of 74HC595
int clockPin = 4; //Pin connected to SH_CP(pin 11) of 74HC595
int dataPin = 2; //Pin connected to DS(pin 14) of 74HC595
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop()
{
for (int row = 0; row < row_COUNT; row++)
{
digitalWrite(latchPin, LOW);
for (int col = 0; col < col_COUNT; col++)
{shiftOut(dataPin, clockPin, MSBFIRST,sequence[row][col]);} //shift out byte
digitalWrite(latchPin, HIGH);
delay(1000);
}
}
paul deelen
shooter@home.nl
shooter@home.nl
4 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 38 gasten