hulp met sift registers 75hc595

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 2
Geregistreerd: 07 Jan 2016, 14:59

hulp met sift registers 75hc595

Berichtdoor sliquid » 07 Jan 2016, 15:15

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
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

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: hulp met sift registers 75hc595

Berichtdoor nicoverduin » 07 Jan 2016, 15:18

Je kan die dingen toch gewoon doorlussen? En dan blijf je gewoon door clocken.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 2
Geregistreerd: 07 Jan 2016, 14:59

Re: hulp met sift registers 75hc595

Berichtdoor sliquid » 07 Jan 2016, 15:37

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.

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: hulp met sift registers 75hc595

Berichtdoor shooter » 07 Jan 2016, 17:55

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
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

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 38 gasten