Vorrei pilotare un servo isolandolo completamente dalla parte della logica di controllo ma con scarsi risultati
Descrivo brevemente lo scenario:
Arduino (1284P) alimentato con alimentatore 5V
Sezione motori (12V) alimentati con altro alimentatore usato anche per alimentare il servo tramite un buck converter che porta la tensione a 6.8V
Ho provato a usare il seguente schema
per separare completamente le due componenti del sistema ma con pessimo risultato (non funziona), credo che il problema sia nella scarsa velocità di commutazione opto e/o transistor che non consente il corretto pilotaggio del servo.
Esiste un modo per raggiungere lo scopo mantenendo completamente separati (quindi niente GND in comune) Arduino ed il servo?
Se ho capito bene, non funziona perché non può funzionare. Pin 3:J3 è il pin di controllo del servo?
Se lo è lo connetti direttamente al potenziale 6.8V e non va bene.
Mentre se il pin di controllo è 1:j3 non può funzionare perché la funzione ingresso/uscita è invertente.
Per il segnale di controllo del servo dovrebbe bastare U1 con uscita di emettitore collegando questo a gnd tramite una resistenza da 1k.
Perdona l'ignoranza ma seguendo lo schema che hai proposto non sono costretto a mettere assieme le masse?
Se non ho capito male R5 non c'è e quindi neppure il collegamento, ma la massa del fotodiodo è comune a V1 e V2? @ilguargua Non penso abbia il suo pullup, e forse è anche per quello che non funziona
Elimina R5 (che già ha un valore alto 1Mega ohm) e V1 e V2 sono isolati.
Il simulatore necessità di un riferimento per calcolare la differenza di potenziale, poiché in R5 non scorre corrente non c'è alcuna caduta di tensione e il simulatore è soddisfatto. Certamente, eliminare una resistenza si traduce nel rimuoverla fisicamente e ciò comporta impedenza infinita tra i poli negativi di V1 e V2.
Ti consiglio di studiare anche superficialmente i bipoli, il problema è che in rete (ma anche sui libri) viene trattato male secondo me.
Tanto per scrivere qualcosa sui bipoli generici e specifici.
Un bipolo resistivo è un bipolo specifico. Un bipolo di resistenza 0 (o infinitamente piccolo da essere riconducibile a zero ohm) è un conduttore, che possiamo anche dire sia un bipolo resistivo chiuso. Un bipolo resistivo aperto ha resistenza infinitamente grande o tanto grande da considerarlo aperto (come appunto R5).
La teoria sui bipoli è utile specie per il collegamento serie, nel quale N bipoli collegati in serie generano N + 1 poli. Mentre nel collegamento parallelo N bipoli in parallelo generano sempre un bipolo.
La teoria è semplice e bastano poche ore.
Come di seguito, dovrebbe essere più comprensibile.
L'etichetta arduinoGND e il simbolo GND sono duplicati per chiarire e non sono due diverse connessioni.
Certo ora serve eliminare V2 necessario solo per la simulazione poiché V2 genera un segnale ad onda quadra con parametri specificati nella stringa che inizia con PULSE.
Mentre V1 è il tuo regolatore buck, che presumo sia alimentato da un alimentatore 12V che ha il polo negativo non connesso con il GND di arduino.
La corrente che scorre in R1 è uguale alla corrente di collettore del bipolo resistivo CE. Quando la resistenza CE è prossima a 0 ohm in R1 scorre la corrente I = 6.8 / 1000 = 6.8mA, in verità dovrebbe essere I = (V1 - VCE) / 1000, ma VCE è piccola e vale circa 200mV e non fa alcuna differenza pratica tra 6.6mA o 6.8mA.
Portando R1 = 3.3k, la corrente I ~= 2mA.
Grazie @Maurotec della spiegazione dettagliata e soprattutto del circuito. Adesso funziona.
Non so perché mi ero imbelinato che l'opto fosse invertente e mi ero ostinato a infilarci (malamente anche direi) il transistor.
Grazie anche a @ilguargua per il suo contributo.
Risulta invertente con R1 posta tra +V1 e il collettore di U1, in questo caso l'emettitore viene collegato a -V1. La funzione di trasferimento I/O risulta invertita, poiché la giunzione CE risulta prossima a 0 ohm e sul collettore abbiamo circa la VCE di circa 200mV, quindi LOW. Quando la giunzione CE risulta aperta la R1 funge da pull-up e quindi HIGH. CE risulta aperta quando il diodo di U1 è spento LOW.
Puoi andarne orgoglioso, perché sei stato capace di tradurre in pratica il circuito teorico e non è cosa scontata.
Ho trovato qualcosa di commestibile in merito ai bipoli. https://www.electroyou.it/lillo/wiki/bipoli
Si tratta sempre di una introduzione anche se ampia.
Per approfondire sarebbe interessante una traduzione da teoria a pratica.
Sempre teoria: un circuito complesso è scomponibile in tanti bipoli, come ad esempio l'accoppiatore ottico U1, poiché lo posso vedere (assimilare) come due bipoli otticamente accoppiati.
Sono certo che lo studio dei bipoli permette al principiante di fare dei collegamenti reali con arduino e diversi generatori di tensione, senza mandare tutto in fumo.
Ciao, potresti indicare che foto-accoppiatore hai utilizzato?
Ricorda quando il led del foto-accopiatore è acceso porta in conduzione il transistor "chiudendolo".
Un`altro aspetto importante da tenere in considerazione quando si usano i fotoaccopiatori è la frequenza di utilizzo(essendo un pò lentini) e la corrente che si vuole pilotare con il transistor,proporzionale alla corrente del led, detta "Curren trasfert ratio IC/IF".
Ciao, è indicato nel mio schema iniziale 4N25. Funziona alla grande. Attualmente sul banco di test è collegato con un cavo twisted molto lungo e volante e nonostante ciò il servo risponde come si deve.