Buon giorno premetto che non sono un programmatore ma mi hanno indirizzato verso questo progetto come miglior mia soluzione
avrei bisogno di fare questa cosa
in ambiene windows avrei bisogno di un interruzione di corrente 5v o 12v per 1 o piu secondi al riavvio del pc quando si preme sul tasto col mouse di riavvia pc
o se non è possibile dell interruzione di un contatto sempre al riavvio del pc il tutto per comandare una scheda secondaria a valle è possibile farlo? e come? sopratutto accetto consiglio sul miglior arduino il piu compatto possibile e la sua programmazione
fr4nc3sco:
o se non è possibile dell interruzione di un contatto sempre al riavvio del pc il tutto per comandare una scheda secondaria a valle è possibile farlo? e come? sopratutto accetto consiglio sul miglior arduino il piu compatto possibile e la sua programmazione
Non ti serve Arduino, basta collegare un piccolo relè con bobina a 5V, meglio se di tipo reed con diodo di protezione integrato, alla alimentazione di una porta USB, tramite questo relè puoi comandare come serve la scheda secondaria compatibilmente con la corrente necessaria, in alternativa puoi usarlo per azionare un relè più grosso.
Durante il riavvio del pc, non importa con quale sistema operativo, l'alimentazione delle porte USB viene interrotta per qualche secondo in modo da consentire il reset dei device connessi e il riconoscimento, da parte del bios, di eventuali dischi usb per il boot.
pultroppo sbaglia le ultime schede madri non interrompono piu il +5v ne su riavvio ne su spengimento del pc ecco perche ho bisogno di interfacciare una scheda che fa cio
fr4nc3sco:
pultroppo sbagli le ultime schede madri non interrompono piu il +5v ne su riavvio ne su spengimento del pc
Forse hai una scheda madre dove l'USB è collegata direttamente al +5V dell'alimentatore, tutte le schede madri con gestione dell'alimentazione USB, praticamente imposta dalle specifiche e non è una caratteristica opzionale, staccano l'alimentazione durante il riavvio.
è la prima prova che ho fatto pure io credendo appunto che fosse cosi e invece rimane tensione anche a pc spento unica cosa varia di circa +0.008 in fase di reboot ma tale differenza è difficile da poter ottimizzare per fare qualcosa con arduino si riesce a fare qualcosa? oppure non è programmabile che al riavvio del pc ad esempio disattivi la sua uscita a 5v per 1 secondo?
fr4nc3sco:
oppure non è programmabile che al riavvio del pc ad esempio disattivi la sua uscita a 5v per 1 secondo?
Ribadisco il concetto, se il pc che stai utilizzando non stacca l'alimentazione USB al riavvio non è in accordo alle specifiche, che poi ci sia l'alimentazione a 5V sulla USB a pc spento è normale, solitamente è possibile attivare/disattivare questa cosa da BIOS, però alla riaccensione la tensione viene comunque tolta per qualche secondo e ridata.
Mettendo da parte le considerazioni sul corretto funzionamento della USB rimane il fatto che Arduino non ha modo di accorgersi se il pc viene riavviato, sopratutto in considerazione del fatto che il 5V permane, a maggior ragione è inutile leggere il 12V con l'ADC perché quello durante il riavvio può sia rimanere fisso che essere interrotto per un breve periodo, non c'è una regola precisa.
Una possibile soluzione è che Arduino interroghi periodicamente, p.e. ogni 5 secondi, il pc tramite la porta seriale virtuale, se il pc non risponde entro un certo time out viene interpretato come un riavvio in corso e fai scattare il relè.
La soluzione sopra esposta presuppone la realizzazione di un piccolo programma, meglio se è un servizio, che deve essere sempre attivo il cui scopo è attendere la richiesta di Arduino sulla porta seriale e inviare la risposta.
Un esempio di possibile dialogo è inviare ogni 5 secondi al pc il carattere "@", il pc deve rispondere entro 10 secondi inviando pure lui il carattere "@", se Arduino riceve la risposta vuol dire che è tutto ok, in caso contrario attiva il relè.
Il time out per la risposta, ipotizzato come 10 secondi, è un valore arbitrario da determinare in base al tipo di pc e l'uso che ne viene fatto, alcune operazioni, p.e. il massiccio trasferimento di dati tra hard disk, possono determinare ritardi di diversi secondi nell'esecuzione di altri processi non prioritari, però dipende anche da come viene realizzato il software che risponde ad Arduino e il suo livello di priorità.
be ho testato a fondo le usb e ti posso confermare che rimane sempre tensione visibile anche dal led della tastiera e delle cuffie e dal fatto che è in grado di caricare anche un cellulare tramite porta usb e non esiste ne jumper ne conf. in bios per disabilitare unica cosa che speravo è che arduino fosse configurabile via software ad esempre alla stringa dell riavvio pc cosi che quando venisse premuto il tasto che poi corrisponde a
%WinDir%\System32\shutdown.exe /r /f /t 00
lui interompesse ad esempio la propria linea 5v.
un servizio fatto come consigliato sarebbe diciamo piu complesso in quanto in effetti con un buon pc il riavvio si ha in meno di 5sec o meglio da quando il pc chiude la sessione si riavvia e rinizializza le usb passano meno di 5 secondi almeno nel mio caso comunque di analogico sicuramente non esce nessun segnale unica cosa che probabilmente passa dall usb è tramite segnale digitale data +/- che indica lo showdown e la nuova inizializzazione