Salve ragazzi,
dovrei collegare un input (microswitch) posto a grande distanza (100 m) da Arduino via cavo, ho immaginato tre soluzioni:
- Partitore resistivo
- Optoisolatore
- 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.