Come rilevare se c'è una tensione tra due punti tramite GPIO?


9

Vorrei rilevare se un dispositivo esterno è acceso o spento. Ho trovato due pin in cui dovrebbero esserci 5 V nel primo caso, ma la tensione può variare leggermente e non voglio interrompere il Pi. Come devo collegare i punti ai pin GPIO per rilevare se c'è tensione? O per chiedere più in generale:

Come posso utilizzare Raspberry Pi per verificare se una batteria è scarica (nessuna o poca tensione) o meno (tensione nominale)?

Se la misurazione analogica non è possibile, si può misurare almeno se la tensione supera una certa soglia? Ciò comporterebbe un segnale digitale, ma come generarlo e quali pin GPIO usare?

Risposte:


5

Con il solo Raspberry Pi non puoi, perché non ha un convertitore analogico-digitale (ADC). È possibile acquistare questa scheda aggiuntiva http://www.abelectronics.co.uk/ e creare un divisore di tensione con due resistori sull'alimentazione della batteria.


1
Grazie per chiarimenti e link alla scheda addon ADC.
Jakob,

3

Vuoi cercare o costruirti un comparatore con le caratteristiche appropriate. Nel tuo caso, si desidera verificare che una tensione sia superiore a 3V3 e uscita 3V3. Assicurarsi che il comparatore sia tollerante a 5 V.


Comparatore :-) bella soluzione. Mai usato uno di quelli. Lo terrò a mente. +1
Piotr Kula,

1

La scheda aggiuntiva è interessante ma è possibile utilizzare un regolatore di tensione economico e semplice.

Un regolatore di tensione, a seconda del modello, prevede un ingresso di tensione di qualsiasi cosa sia stato progettato per gestire e fornirà la tensione desiderata sul pin di uscita. Nel tuo caso vuoi rilevare 5volts ma leggi 3volts che è sicuro per il Pi.

Puoi trovare molti materiali di consumo su ebay ma ecco un link Sparkfun ad un esempio.

Se il dispositivo esterno fornisce corrente fino a 10 V CC, il pin di uscita fornisce 3 V (ALTO SU PIN DIGITALE) e puoi leggerlo in sicurezza utilizzando GPIO in Python o qualsiasi cosa tu voglia.

Puoi trovarli a buon mercato se ti guardi intorno. Devi solo ASSICURARTI che l'output non sia superiore a 3,3 volt che è collegato al tuo Raspberry. Potresti mettere un resistore sull'uscita per far cadere un po 'la tensione .. ma i regolatori sono progettati per essere precisi al 99,9% sull'uscita.

Il Raspberry Pi utilizza un 3.3Volt NCP1117 per pilotare il bus di alimentazione 3V3 che riceve energia dal bus 5V0 che viene fornito dalla tua alimentazione USB.

I regolatori di tensione vengono utilizzati per fornire energia ad altri dispositivi. In questo caso ho appena usato l'immaginazione per usare una soluzione economica e l'ho usata al contrario.

Perché alla fine della giornata dobbiamo solo percepire una tensione come segnale digitale. Non importa davvero cosa usi per generarlo. Potrebbe essere una batteria da 3,3 V, un alimentatore da 3,3 V CC, un'uscita digitale bufferizzata da un Arduino, un altro Raspberry, un generatore di segnale, un timer 555 o un semplice regolatore di tensione. È l'implementazione e l'obiettivo che è importante.

  • Fine del giorno ...
  • 3.3v = 1
  • 0v = 0

Riferimenti:

Tensione massima su GPIO

Corrente massima su GPIO


Un motivo per il downvote sarebbe molto costruttivo. Forse questa risposta non convenzionale - Ma se è molto imperfetto, per favore fatemelo sapere.
Piotr Kula,

2
Un'idea interessante, potrebbe usarlo in un mio progetto (prova se la guida 12V è attiva o meno)
mglauche,

Assicurati di mettere una resistenza pull down o pull up sul pin digitale. Questa è una risposta molto vecchia .. una delle mie prime. Ma l'ideologia è la stessa.
Piotr Kula,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.