Quanti sensori posso comandare con arduino?

Ciao ragazzi,
sto sviluppando un progetto e devo usare arduino e dei sensori a pressione per creare un'interazione per un'installazione interattiva.
Necessito di una gran quantità di sensori, probabilmente più di 100, arduino può gestirli tutti individualmente? Nel senso captare l'input da ogni singolo sensore e gestire questo input? Ho sentito parlare del multiplexer che potrebbe servire a tale scopo.

Grazie a chi mi risponderà :slight_smile:

Sicuramente 100 sensori in maniera diretta, ossia collegati ai pin di Arduino, la vedo dura (a meno che non siano sensori gestibili via I2C e non abbiano tutti indirizzi differenti).
Se sono sensori digitali, puoi usare degli shift register oppure dei port expander.
Come shift register, puoi usare i 74LS165 (8 porte) mentre come port expander puoi usare dei PCF8564 (8 porte) oppure degli MCP23016 (16 porte)

Ma... prima di tutto. Che sensori sono? :wink:

potresti fare anche un sistema con più microcontrollori intercomunicanti tra loro, ma la domanda resta sempre

leo72:
Che sensori sono?

Pensavo a dei sensori del genere emmeshop.it , devono captare il peso di una persona che ci si siede sopra.
Che differenza c'è tra gli shift e gli expander, a parte la quantità di porte? :slight_smile:
secondo voi riesco a capire quale sensore viene premuto, risalendo perciò al posto specifico su cui si siede la persona?

oltre i sodi che dovresti sganciare per comprarne 100 ...

Un senore non si comanda ma si legge.
Isensore indicato é unno che cambia la resistenza in funzione della Forza (peso) applicato. Percui devi con una resistenza fissa fare un partitore di tensione e leggere la tensione. Se usi 6 Analog Multiplexer tipo CD4067 puoi leggere con le 6 Entrate analogiche 96 sensori.
Ciao Uwe

Se non ho capito male, a te interessa non il peso di una persona, ma il fatto che occupi la sedia o meno.

In questo caso, puoi usare dei semplici interruttori fine corsa collegati al sedile.

leo72:
Sicuramente 100 sensori in maniera diretta, ossia collegati ai pin di Arduino, la vedo dura (a meno che non siano sensori gestibili via I2C e non abbiano tutti indirizzi differenti).

cosa intendi gestibili via I2C? perché a me servirebbe che avessero proprio tutti un indirizzo univoco.

uwefed:
Un senore non si comanda ma si legge.
Isensore indicato é unno che cambia la resistenza in funzione della Forza (peso) applicato. Percui devi con una resistenza fissa fare un partitore di tensione e leggere la tensione. Se usi 6 Analog Multiplexer tipo CD4067 puoi leggere con le 6 Entrate analogiche 96 sensori.

chiaro :wink: ma la mia domanda è, usando i Multiplexer chiaramente collegati ad un solo Arduino, riesco a capire da quale sensore arriva la variazione di tensione? identificare proprio il sensore.

cyberhs:
Se non ho capito male, a te interessa non il peso di una persona, ma il fatto che occupi la sedia o meno.

In questo caso, puoi usare dei semplici interruttori fine corsa collegati al sedile.

esatto :slight_smile: ma non sono pratico di interruttori finecorsa. se non sbaglio rilevano la "fine" di una certa azione. come mi può essere utile?

jackass90:
cosa intendi gestibili via I2C? perché a me servirebbe che avessero proprio tutti un indirizzo univoco.

L'I2C è un protocollo di trasmissione che permette di far dialogare fino a 127 dispositivi diversi con una singola coppia di fili.
Non permette però di percorrere grosse distanze.

leo72:
L'I2C è un protocollo di trasmissione che permette di far dialogare fino a 127 dispositivi diversi con una singola coppia di fili.
Non permette però di percorrere grosse distanze.
I²C - Wikipedia

ok grazie

cyberhs:
Se non ho capito male, a te interessa non il peso di una persona, ma il fatto che occupi la sedia o meno.
In questo caso, puoi usare dei semplici interruttori fine corsa collegati al sedile.

Un pò come i sedili della macchina, per avvisare l'occupante di mettere la cintura, il sedile "sente" se una persona è seduta.
Sapete se usa un interruttore di fine corsa o un sensore tipo quello indicato da jackass90 o altro ?

jackass90:
Pensavo a dei sensori del genere emmeshop.it , devono captare il peso di una persona che ci si siede sopra.

Qui lo vendono a meno e sono in italia:

Io non finisco mai di meravigliarmi quando leggo di persone che non sanno cosa è un interruttore e poi vogliono fare progetti immensi.

jackass90:

cyberhs:
Se non ho capito male, a te interessa non il peso di una persona, ma il fatto che occupi la sedia o meno.
In questo caso, puoi usare dei semplici interruttori fine corsa collegati al sedile.

esatto :slight_smile: ma non sono pratico di interruttori finecorsa. se non sbaglio rilevano la "fine" di una certa azione. come mi può essere utile?

Un interuttore finecorsa é un pulsante che viene usato per rilevare delle posizioni di parti in movimento. Modifica la Sedia in modo che chi si siefde sposta una parte di 2-3mm. Questo giá basta a far comutare il finecorsa montato in modo opportuno.
Ciao Uwe

Penso Jack abbia pensato a quel sensore perchè sembra fatto apposta per posarci sopra le chiappe :grin:

Anche un interruttore di contatto può andar bene, credo.
Ho provato a cercare interruttori di fine corsa . Non mi sembra di aver visto interruttori piccoli.
Meccanicamente come fareste? Sono curioso, perchè con il sensore postato da Jack mi sembra ovvio metterlo che sò sotto l'imbottitura.
Anche da questa perplessità mi chiedevo cosa c'e' dentro al sedile dell'auto per sentire se qualcuno si siede. Un semplice interruttore di contatto?

P.S. scusa Jack se faccio domande io al posto tuo, ma son curioso.

nid69ita:
Un pò come i sedili della macchina, per avvisare l'occupante di mettere la cintura, il sedile "sente" se una persona è seduta.
Sapete se usa un interruttore di fine corsa o un sensore tipo quello indicato da jackass90 o altro ?

Esattamente nid!! Grazie, e figurati, sono domande interessanti.

Testato:
Io non finisco mai di meravigliarmi quando leggo di persone che non sanno cosa è un interruttore e poi vogliono fare progetti immensi.

Testato, da qualche parte bisognerà pur cominciare, no?! non tutti sono affiancati santoni dell'elettronica, a volte bisogna arrangiarsi, magari documentandosi un pò in forum come questi e chiedendo consigli da gente chiaramente competente in materia...il tuo commento non è incoraggiante a chi vuole cimentarsi in progetti del genere.

Quello che vuol dire Testato è che se, senza basi, si parte in tromba per realizzare un progetto molto al di là delle proprie conoscenze, si finisce con l'avere il progetto fatto... da altri :wink:

Il consiglio è sempre quello di iniziare facendosi anche gli step base, come ad esempio accendere led, leggere pulsanti, leggere un sensore analogico, interagire con qualcosa via I2C ecc... per crearsi le basi. Solo allora si può prendere in mano progetti via via più complessi.
Immedesimati in chi ti deve aiutare e che legge "non sono pratico di interruttori finecorsa": anche il tuo commento non è incoraggiante... fa pensare che ci sarà da sudare... :sweat_smile:

Inoltre con le poche informazioni che dai su ciò che stai facendo non è neanche facile darti dei buoni consigli perché stiamo brancolando nel buio... ora viene fuori che potrebbe darsi che tu stia cercando di leggere l'occupazione di 100 sedie/poltrone. Hai pensato che potrebbe esserci anche il problema della distanza dei sensori dall'Arduino? Di quanti metri parliamo?

ma non potrebbe utilizzare la CapSense di arduino e qualche pezzettino di rame? in fondo ci si siede una persona sopra no?

Madwriter:
ma non potrebbe utilizzare la CapSense di arduino e qualche pezzettino di rame? in fondo ci si siede una persona sopra no?

Per 100 volte? Scordatelo :wink:

leo72:
Quello che vuol dire Testato è che se, senza basi, si parte in tromba per realizzare un progetto molto al di là delle proprie conoscenze, si finisce con l'avere il progetto fatto... da altri :wink:

Il consiglio è sempre quello di iniziare facendosi anche gli step base, come ad esempio accendere led, leggere pulsanti, leggere un sensore analogico, interagire con qualcosa via I2C ecc... per crearsi le basi. Solo allora si può prendere in mano progetti via via più complessi.
Immedesimati in chi ti deve aiutare e che legge "non sono pratico di interruttori finecorsa": anche il tuo commento non è incoraggiante... fa pensare che ci sarà da sudare... :sweat_smile:

Inoltre con le poche informazioni che dai su ciò che stai facendo non è neanche facile darti dei buoni consigli perché stiamo brancolando nel buio... ora viene fuori che potrebbe darsi che tu stia cercando di leggere l'occupazione di 100 sedie/poltrone. Hai pensato che potrebbe esserci anche il problema della distanza dei sensori dall'Arduino? Di quanti metri parliamo?

In ogni caso siete qui per aiutarci no? :slight_smile: quindi se avete un po di pazienza e comprensione riusciremo a capirci un po :slight_smile:

esattamente, dovrei leggere l'occupazione di 100 sedie, per una corretta lettura senza perdita di segnale che tipo di cavi potrei usare? la distanza da arduino sarà variabile.

Grazie :slight_smile:

jackass90:
In ogni caso siete qui per aiutarci no? :slight_smile:

Non mi pare di aver firmato un contratto in tal senso... :stuck_out_tongue: