Visualizzare 8 BIT con 8 LED (Arduino UNO)

Buongiorno a tutti,
Sono in 3ª Superiore e devo finire un progetto datomi circa un mese fa, da svolgere con Arduino.
Ecco di che cosa si tratta: Acquisire un numero di 8 bit con un multiplexer, fare il complemento a due e visualizzarlo con 8 LED (tramite un demultiplexer).

Il circuito l'ho fatto, funziona bene. Il programma funziona anch'esso bene FINO all'ultima parte, dove devo appunto visualizzare gli 8 bit (memorizzati in un vettore) con gli 8 LED.
Il problema è solo questo, perché il complemento a due funziona a dovere, gli 8 bit vengono correttamente invertiti e poi sommati a 1. Quello che vorrei capire è come faccio (in righe di codice) a "buttare" il vettore ai LED. Ho provato di tutto, i LED si accendono comunque a a caso, e più o meno tutti insieme.

Grazie a chi mi aiuterà!!

@WillyBestSM: in conformità al REGOLAMENTO, punto 13, il cross-posting è proibito (anche tra lingue diverse) e tu hai già posto la stessa domanda QUI.

Non solo, in quel thread ti stanno già rispondendo ed è veramente poco cortese abbandonare una discussione e chi ti stava aiutando, per venire di qua a porre la stessa domanda come a significare ... "mica mi fido tanto, ora vado a verificare da un'altra parte". ::slight_smile:

Poi, NON avendolo tu ancora fatto, ti chiedo di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto :wink:) e di leggere con attenzione il REGOLAMENTO.

Infine, per rispetto verso chi già aveva iniziato ad aiutarti nell'altro thread, questo tuo thread viene chiuso e ti prego di continuare dove avevi cominciato. Grazie.

Guglielmo

--- come da accordi con WillyBestSM, la discussione prosegue su questo thread e NON su quello di lingua inglese, per cui viene riaperto. - gpb01

Ecco di che cosa si tratta: Acquisire un numero di 8 bit con un multiplexer, fare il complemento a due e visualizzarlo con 8 LED (tramite un demultiplexer)

forse e' il caso che tu ci dica qualcosa in piu'
ad esempio che demultiplexer stai usando collegato ai led
e pure il codice che usi

Te lo dico subito: Il Demultiplexer che sto usando è un SN74LS138, il Multiplexer è invece un SN74LS151

Beh, dato che il 74LS138 è un semplice demultiplexer , quindi senza Latch, l’unico modo che mi viene in mente è gestendolo in Multiplexing
Quindi in questo modo

#define Addr_0 7 // Pin 1 del 74LS138
#define Addr_1 6 // Pin 2 del 74LS138
#define Addr_2 5 // Pin 3 del 74LS138
#define Enable 4 // Pin 6 Enable del 74LS138

int ritardo = 5 ; // valore di ritardo per visualizzazione multiplexer

int a0_bin[] = {LOW, HIGH, LOW, HIGH, LOW, HIGH, LOW, HIGH};
int a1_bin[] = {LOW, LOW, HIGH, HIGH, LOW, LOW, HIGH, HIGH};
int a2_bin[] = {LOW, LOW, LOW, LOW, HIGH, HIGH, HIGH, HIGH};


void setup() {
  pinMode(Addr_0, OUTPUT);
  pinMode(Addr_1, OUTPUT);
  pinMode(Addr_2, OUTPUT);
}

void loop() {
  byte x = 7 ; // Valore da visualizzare
  for (int i = 0 ; i <= 7; i++ ) {
    //bitRead(x,i);
    digitalWrite(Enable, bitRead(x, i));
    digitalWrite(Addr_0, a0_bin[i] ) ;
    digitalWrite(Addr_1, a1_bin[i] ) ;
    digitalWrite(Addr_2, a2_bin[i] ) ;
    delay(ritardo);
  }
}