Leggi la tensione positiva e negativa in Arduino [chiuso]


11

È una lunga storia, ma ho smontato un'auto RC e volevo che Arduino usasse analogRead()per ottenere i valori dei miei motori e dello sterzo. Ho misurato con il mio multimetro che la tensione nella mia auto telecomandata varia da -6v a 6v.

Tuttavia, Arduino supporta solo la lettura da 0 V a 5 V massimo. C'è un modo per convertire -6v e + 6v in 0v e 5v? Ho sentito che potrebbe essere fatto usando un amplificatore operazionale. Alcune persone mi hanno anche detto di usare un divisore di tensione. In altre parole, se non controllassi l'auto RC, l'Arduino dovrebbe vedere 2,5 volt.

Ad ogni modo, non sono esattamente chiaro su come lo farei. Qualcuno può raccomandarmi un amplificatore operazionale appropriato con un circuito per questo specifico scenario?

O, se possibile, qualcuno può mostrarmi come leggere la tensione negativa e positiva usando due pin Arduino? Ad esempio, se viene dato -6v, il pin analogico 0 restituirà 1023. Se viene dato 0v, entrambi i pin analogici 0 e 1 direbbero 0. E se viene dato + 6v, il pin analogico 1 restituirà 1023 Come posso creare un circuito che funzioni in questo modo?

Lo apprezzo se hai uno schema circuitale per questo. Grazie!


1
Quando dici che il segnale di uscita dell'auto RC va da +6 a -6 Volt, a cosa si riferisce questa lettura? A che punto stai applicando la sonda di terra del multimetro?
Anindo Ghosh,

@AnindoGhosh Ho appena preso entrambi i cavi del multimetro e ho toccato una sonda su ciascun filo del motore.
solutionhacker,

2
Il voto di chiusura come premessa di questa domanda è fondamentalmente sbagliato. Ciò che deve essere letto non è analogico; nella migliore delle ipotesi potrebbe essere una larghezza di impulso digitale, ma in realtà non ha molto senso utilizzare un Arduino per leggere un sistema RC legacy grezzo quando puoi facilmente crearne uno moderno digitale usando moduli di tipo nRF24L01 da $ 1.
Chris Stratton,

Benvenuto in EE.SE! Questa sembra essere una domanda inversa di ingegneria, modifica o riparazione. Si prega di essere consapevoli del fatto che tali domande devono comportare specifiche fasi di risoluzione dei problemi e dimostrare una buona comprensione del design sottostante del dispositivo in discussione, in modo da poter porre domande specifiche e mirate a cui è possibile rispondere in modo conciso. Altrimenti, la domanda è troppo ampia. Maggiori informazioni sono disponibili qui: si sta chiedendo come risolvere un circuito difettoso sull'argomento? .
Dave Tweed,

Risposte:


18

Tre resistori standard svolgono il compito, a condizione che il motore veda -6V riferito a terra e non riferito all'altro terminale del motore.

schematico

simula questo circuito - Schema creato usando CircuitLab

Quando si varia Vm da -6 a 6V, l'uscita varia da 0 a 4,9 V.


@AnindoGhosh oh e non sarei sorpreso se la tensione del motore viene misurata attraverso il motore piuttosto che riferita a terra, in modo da lasciare spazio anche a una bella risposta. Inoltre non ho tenuto conto di PWM ...
jippie il

Come posso calcolare i valori della resistenza, data una tensione di ingresso nota? Ad esempio, ho una situazione simile, ma il mio segnale di ingresso è compreso tra -2 e +2 volt. Questa è una topologia interessante, ma mi piacerebbe capire la teoria alla base in modo da poterla modificare, non solo copiarla.
robm,

@robm Ho prima stabilito i rapporti per i resistori, quindi ho usato alcuni calcoli in una grande tabella di fogli di calcolo per selezionare i resistori di corrispondenza più vicini. Era l'uso delle formule nel foglio di calcolo perché non ho elaborato il metodo esatto che probabilmente avrei dovuto avere. Suppongo che valga la pena una domanda a sé stante: metodo standard per scegliere i valori di resistenza per questo caso d'uso specifico.
jippie,

Presumo che tu abbia analizzato il circuito e selezionato valori simili? electronics.stackexchange.com/a/252473/36877 Ancora non capisco bene come si analizza il circuito quando l'ingresso è 6V per ottenere 4.887V come uscita.
genericpurpleturtle

4

Quando il motore è guidato da un ponte a H completo e vuoi che il tuo Arduino si trovi allo stesso riferimento di terra del resto dell'auto, puoi usare quanto segue:

schematico

simula questo circuito - Schema creato usando CircuitLab

Entrambe le uscite vanno da 0 a 2 V4 e dovresti impostare la tensione di riferimento interna di Arduino su 2 V56. Collegando entrambe le uscite al proprio ingresso analogico, è possibile calcolare la tensione del motore sottraendole. I condensatori sono lì per segnali PWM medi in modo che possa essere misurato dall'ADC.


-1

Ecco una soluzione senza op-amp. Per questo sarà necessario un pin di input aggiuntivo su Arduino.

Se il pin di ingresso legge 0, la tensione da ADC è positiva. Altrimenti la tensione è negativa.

A causa della caduta di tensione attraverso il raddrizzatore a ponte, hai risolto il problema dell'abbassamento da 6 V a 5 V. Ora avrai 6 - 2 * 0,7 = 4,6 V massimo. D5 è facoltativo ed è presente solo per motivi di sicurezza.

Lo svantaggio è che la tensione deve essere maggiore di + 1,4 V o inferiore a -1,4 V per essere misurata.

schematico

simula questo circuito - Schema creato usando CircuitLab


2
Dovrai anche isolare la terra dell'Arduino dal circuito RC. Ciò significa che avranno bisogno di alimentatori separati.
DoxyLover,
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.