gohan ha scritto:Per capire se il problema è tra il pin di I/O e/o transistore o nel codice, basta scollegare l'operazionale e vedere se tutto funziona correttamente, ma bisogna anche tenere a mente che il motore ha una corrente di spunto che potrebbe influire sul tuo circuito ma non si sà come hai configurato l'operazionale, comunque ora è tardi..

Forse vedendolo si capisce di più di quanto abbia scritto:
Scollegando l'operazionale e mandando in ingresso al pin un bottone con cui scelgo a mano 0V o 5V, il problema permane.
Il problema è che il pin RC1 (adibito a uscita digitale) dovrebbe rimanere alto, ma non appena succede un qualsiasi altro evento, ad esempio cambia lo stato di RA1, esso scende basso.
Ho provato ad alimentare la parte di potenza (motore) con alimentazione a parte da quella di segnale (PIC), cioè una con una batteria li-po da 11.1V, l'altra con alimentatorino da parete da 12V (che andrà in ingresso a un 7805). Le masse ovviamente sono in comune, il problema comunque persiste.
gohan ha scritto:Non hai detto quali sono le esigenze del programma e del circuito, apparentemente incompleto, anche se tu dici di aver fatto tutti i conti.
Il circuito controlla esternamente un fucile da soft air, andando a capire quando esso sta sparando (interruttore chiuso=grilletto premuto), in questo modo può quindi bloccarlo, o lasciarlo fare, attraverso il MOS.
Infatti quello che sto realizzando è un fucile da laser tag, ma mantenendo invariata la meccanica interna.
Quando finisco i colpi nel caricatore virtuale, si manda a 0 il gate del transistor per fermare il motore, quando non sono finiti si tiene a 5V il gate e il motore funziona (solo se si premo il grilletto ovviamente).
gohan ha scritto:Il controllo che stai facendo mi fa pensare ad un consumo variabile del motore.. Sennò perché usare un operazionale? È solo per proteggere eventualmente il pin del microcontrollore? Hai collegato l'output dell'operazionale ad un entrata analogica?
No l'uscita dell'operazionale e collegata a un'entrata digitale, che comunque non ha problemi a rilevare il tutto (come ti ho detto la parte di rilevazione funziona perfettamente).
L'operazionale lo uso quindi come comparatore che satura a uno dei due valori a seconda degli ingressi.
Inizialmente avevo provato a usare il comparatore interno, ma a causa di altri problemi avevo pensato di non riuscire a impostarlo bene e sono passato ad uno esterno. Non appena risolvo questo problema ripasso a usare il comparatore interno.
gohan ha scritto:Solitamente per le misure basate sui divisori di tensione meglio usare resistenze con tolleranza dell'1%.
Grazie ne terrò conto, comunque per ora funziona anche con quelle al 5%.
Tornando alla domanda iniziale, quello che mi interessava era capire se era una cosa "legale" pilotare il gate del MOS di potenza direttamente con il pin del micro, o così facendo lo ho bruciato, magari per effetto condensatore del gate.
Dati aggiuntivi: tenendo scollegato il pin RC1 e andando a misurare con un oscilloscopio o un multimetro continua sempre per la sua strada: alto fintanto che non succede niente, appena qualcosa cambia di stato cade basso anche se non dovrebbe farlo.
Grazie in anticipo per eventuali risposte.