salve a tutti, il mio dilemma è: vorrei usare due 74595 per variare lo stato on/off di 16 led usando solo 3 pin digitali, questo all'interno di un progetto più grande.
A monte di questo c'è la necessità di variare lo stato di un driver per led tramite dei singoli impulsi su di una linea sola
Ossia fare in modo (per ogni led) che il primo impulso funzioni da set e il secondo da reset. (entrambi sullo stesso filo).
Ho realizzato un driver che consiste in un flipflop di 2 porte nand precedute da 2 porte excl nor disposte come nella figura:
il segnale a impulsi viene applicato a una porta per ciascuno degli or esclusivi. porte che sono jumperate assieme.
Alla prima realizzazione (forse non era proprio la prima ) il flipflop funziona se comandato da un pulsante (ossia la prima pressione accende il led e la seconda lo spegne). (il pulsante è collegato a massa; l'ingresso comune degli or excl al +5v tramite una res da 330)
Siccome lo stato iniziale di un pin è sempre LOW mentre a me servirebbe un HIGH (nello stato di attesa dell'impulso LOW) ho deciso di interporre un inverter 74s04 al mio flip flop.
Prima del 74s04 avevo provato un 74ac14 (invert triggerato) che mandava tutto in malora. chissa perche...
(e adesso la domanda) c'è per caso qualcuno che conosce un modo più economico per realizzare questa funzione?
Vorrei risparmiare sui nand o sugli or, o su tutti e due. Mi piacerebbe molto utilizzarli. perciò se sapete economizzare usando solo una porta e qualche invert, spero vogliate condividere il vostro schema.
P.S. ecco un semplice codice per ulteriori chiarimenti:
int ledPin = 13;
int inputPin =4;
int val = 0;
void setup() [
pinmode(ledPin, output);
pinMode(inputPin, INPUT);
]
void loop() [
val = digitalRead(inputPin);
if (val == HIGH) [
digitalWrite(ledPin, HIGH);
val = 0;
delay(10);
digitalWrite(ledPin, LOW);
delay(1000);
]
]
scusate per le graffe non ne avevo sottomano.
Grazie.