Programmare cubo led 4x4x4 con due 74HC595


ho creato un cubo led 4x4x4, pilotato da arduino tramite due 74hc595.
ogni colonna ha gli anodi in comune, ciascuna connessa ad un uscita del 74hc595
mentre catodi sono comuni su 4a livelli e ogni livello è connesso ad un transistor npn per essere attivato/diasstivato.
lo sketch che ho scritto è questo
code: [select]
/* sketch cubo led 4x4x4 per l'esame
creato da: salvatore marcellini */

//definisco le variabili
int latch= 8; //pin del latch degli 74hc595
int clock= 12; //pin del clock degli 74hc595
int data= 11; //pin dove gli 74hc595 ricevono l'input
int npn[4]= {4, 5, 6, 7}; // array con pin dei transistor
int i; //contatore

// setto tutti i  pin su output
void setup ()
{
    pinmode(latch, output);
    pinmode(clock, output);
    pinmode(data, output);
    for(i=0;i<4;i++)
    {
        pinmode(npn[i], output);
    }
}

//inizio del programma
void loop ()
{
  for(i=0;i<4;i++)
{
  digitalwrite(npn[i], high); //attivo il livello corrispondente al contatore
 
  digitalwrite(latch, low); //latch basso per passare la serie di bit
  shiftout(data, clock, msbfirst, 0b10000000); //prima serie di bit dello 74hc595 n°1
  shiftout(data, clock, msbfirst, 0b00000000); //seconda serie di bit dello 74hc595 n°2
  digitalwrite(latch, high); //riattivo il latch per attivare le uscite
  delay(400); //pausa

  digitalwrite(npn[i], low); //disattivo il livello corrispondente al contatore
}
             
}


dovrebbe accendermi il primo led di ogni livello, ma invece mi accende vari led e non mi accende il primo livello.
sapete dirmi qual'è l'errore?
grazie

non se é questo il problema ma un numero binari si scrive cosí b00110010 e non 0b00110010.

ciao uwe


Arduino Forum > International > Italiano > Software (Moderator: leo72) > Programmare cubo led 4x4x4 con due 74HC595


arduino

Comments

Popular posts from this blog

Convierte tu Raspberry en un NAS. Firmware fvdw-sl 15.3 - Raspberry Pi Forums

How to format a Get Request

avrdude: verification error, first mismatch at byte 0x0000 0x0c != 0x62