Buongiorno a tutti, ho una perplessità che sicuramente voi saprete sicuramente risolvere: per un progetto che sto realizzando utilizzo delle ldr collegate ad arduino e le leggo attraverso i pin digitali utilizzando questo codice:
e collegando la fotoresistenza in questo modo https://www.circuitlab.com/circuit/hpwha3/screenshot/540x405/
E fin qui tutto bene. Il problema sorge quando devo controllare piu dei canonici 20 pin digitali di arduino uno. Per poter espandere il progetto infatto avrei bisogno di utilizzare 50-60 ldr ma non so come allargare i pin. Shift register possono essere la soluzione? Se si, posso impostare in pin input e output da sofware senza avre ritardi eccessivi?
No. non sono una soluzione per l' uso che vuoi fare. Dei shift-register non possono essere entrate e uscite, ma a secondo del modello sono entrate o uscite.
Puoi usare dei port expander con interfaccia I2C o SPI oppure dei multiplexer analogici tipo 74HC4067.
Non capisco perché non misuri la tensione del partitore resistivo?
O meglio ho capito cosa intendi ma il circuito è fatto apposta per misurare il tempo che impiega il condensatore a riempirsi e in base a quello sai quanto è la resistenza
Cybers, questa è una soluzione per usare ingressi digitali al posto degli analogici, si imposta il come OUT-low e si scarica il cap, si commuta come IN e si misura il tempo aspettando fino a che l'ingresso diventerà High,
per non avere ritardi eccessivi simonenascivera non usare pinMode(....) e digitalWrite(....) ma i comandi diretti ai bits ad esempio porta a high pin0 di portb: portb |= _BV(0);
Comunque questo sistema non funziona bene con gli i/o expander digitali perchè non hanno gli ingressi con soglia a scatto (trigger schmitt) , meglio che usi i multiplexer analogici 3X cd4051, o 2x cd4067 + 1 solo ingresso analogico + 6 pin per la selezione canale analogico
cyberhs:
Concordo con Uwe: il circuito non può funzionare poiché il condensatore blocca il passaggio della corrente.
Non é quello che ho detto. Un ciclo prevede mettere in corto il condensatore e poi caricarlo attraverso la resistenza /LDR. Il tempo é in qualche modo proporzionale alla resistenza del LDR.
Il "NO" era riferito al uso di Shiftregister per quel circuito.