Ciao, premetto che sono nuovo nel mondo di Arduino e ho un po' di problemi a comprendere gli sketch. Vi spiego il problema (ho cerato nel forum ma non ho trovato quello che mi serviva): vorrei utilizzare diversi 74HC595 per per controllare più LEDs possibili e poi usare maxmsp per gestire il tutto. ho cercato in rete e ho trovato queste utilissime guide per l'utilizzo e la connessione di due o tre 595:
ho anche trovato una guida per maxuino, quindi ora come ora riesco tranquillamente a controllare 3 595 usando 3 uscite digitali di Arduino. Mi chiedo: ho usato solo 3 pin di arduino per controllare 3 595, potrei usare i pin rimanenti per controllare altri 595..in teoria potrei quindi controllare altri 9 595 in quanto ho i 9 pin disponibili per farlo, giusto? se si, qualcuno potrebbe aiutarmi a modificare lo skecth che usa solo 3 pin e adattarlo all'utilizzo di più pin e quindi più 595?
//Pin connected to ST_CP of 74HC595
int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;
byte data1;
byte data2;
byte data3;
void setup() {
Serial.begin(57600);
pinMode(latchPin, OUTPUT);
}
void loop() {
if(Serial.available() > 2) {
data1 = Serial.read();
data2 = Serial.read();
data3 = Serial.read();
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, data1);
shiftOut(dataPin, clockPin, data2);
shiftOut(dataPin, clockPin, data3);
digitalWrite(latchPin, 1);
}
}
void shiftOut(int myDataPin, int myClockPin, byte myDataOut) {
int i=0;
int pinState;
pinMode(myClockPin, OUTPUT);
pinMode(myDataPin, OUTPUT);
digitalWrite(myDataPin, 0);
digitalWrite(myClockPin, 0);
for (i=7; i>=0; i--) {
digitalWrite(myClockPin, 0);
if ( myDataOut & (1<<i) ) {
pinState= 1;
}
else {
pinState= 0;
}
digitalWrite(myDataPin, pinState);
digitalWrite(myClockPin, 1);
digitalWrite(myDataPin, 0);
}
digitalWrite(myClockPin, 0);
}