Lunghe distanze

Salve ragazzi,

dovrei collegare un input (microswitch) posto a grande distanza (100 m) da Arduino via cavo, ho immaginato tre soluzioni:

  1. Partitore resistivo
  2. Optoisolatore
  3. Relè con bobina 12V

Mi confermate che 12 V vadano bene per quelle distanze?

Nell'ipotesi (1) è giusto così:

Con R1= 15 KOhm ed R2= 10 KOhm ?

Nell'ipotesi (2) è giusto così:

Il diodo posso evitarlo lavorando in cc?

Tradotto: Qual'è la soluzione migliore ? La (2) ?

Grazie

La seconda soluzione è sempre preferibile per questioni di isolamento galvanico (pensa ad un fulmine).

D1 non serve se la tensione è continua, mentre il resistore deve essere calcolato anche in funzione dell'eventuale sezione del cavo usato.

Supponiamo di voler far passare 20mA a 12V: il resistore R1 = (12V - 1.8V) / 0.02A = 510 ohm ove 1.8V è la caduta di tensione del LED IR interno al fotoaccoppiatore.

Con un cavo bifilare da 0.2mm2 (AWG24) hai una resistenza di circa 17 ohm che è trascurabile rispetto al valore del resistore.

Il resistore R2, invece, deve far passare una corrente piccola (1-5 mA @ 5V) quindi il valore è fra 1k e 4.7k.

Io ci metterei "la ciliegina sulla torta".

Diminuisci leggermente il valore di R1 e aggiungi in serie un led esterno, giusto per monitorare cosa succede sulla linea in arrivo.