Voltaje negativo.

Buenos dias,

Desde hace un tiempo estoy empezando a jugar con arduino, ya que mezcla las dos cosas que me gustan (informatica y electronica). La primera parte la tengo controlada, pero la segunda no tanto.

Os explico mi problema. Estoy intentando sustituir una tarjeta de una maquina por un arduino. Me llegan 6 cables, 3 positivos y 3 negativos. Van en parejas. El voltaje lo cambias desde un pc y segun el voltaje que reciba la tarjeta hace una cosa u otra.

Los voltajes maximos serian +3 y los minimos no son 0, serian -3.

Cable 1 -------------------- +
Cable 2 -------------------- -

Cuando en el software cambio los valores cambia a esto.

Cable 1 -------------------- -
Cable 2 -------------------- +

El problema es leer el valor negativo en ardino y segun el valor negativo que haga una accion diferencte. No se si poniendo un rele puedo salvar este problema para que al arduino y segun por que patilla le entre saber si es negativo o positivo o hay alguna cosa para poder mirar los valores de corriente negativa.

Espero que se entienda mi problema y muchas gracias por la ayuda.

Mas que un problema de software, lo veo un problema de hardware, así que está mal puesto en este sitio.

Una vez dicho esto te recomiendo que uses un optoacoplador de la siguiente forma:

Según la polaridad de los +3 y -3 voltios el opto te dará un 0 o un 1, según lo enchufes. Así pones uno en cada par de cables y te indicará que tensión tiene en todo momento. R1 hay que calcularla a razón de la tensión máxima (6 voltios).

buenas,

Gracias por la respuesta victorjam. No estaba seguro donde ponerlo, por eso lo puse en software. No se quien lo podra mover a la seccion correcta.

Pero si me da 0 o 1, pero no podria saber si da -1,34v o da -2,40???

dos parejas de cables solo dan dos valores, 2.40 o -2.40 si no recuerdo mal. pero el ultimo par de cables si varia el voltaje, ejem:
posicion 1º : 2.40v
posicion 2º : 1.80v
posicion 3º : 1.20v
posicion 4º : 0v
posicion 5º : -1.20v
posicion 6º : -1.80v
posicion 7º : -2.40

Segun que voltaje da potencia a unas luces, por eso es importante saber el voltaje.

Voy a mirar ahora mismo lo que me comentas y haber si lo entiendo, que de electronica cero patatero.

Un saludo y lo dicho muchas gracias.

Pero si me da 0 o 1, pero no podria saber si da -1,34v o da -2,40???

dos parejas de cables solo dan dos valores, 2.40 o -2.40 si no recuerdo mal. pero el ultimo par de cables si varia el voltaje, ejem:
posicion 1º : 2.40v
posicion 2º : 1.80v
posicion 3º : 1.20v
posicion 4º : 0v
posicion 5º : -1.20v
posicion 6º : -1.80v
posicion 7º : -2.40

Segun que voltaje da potencia a unas luces, por eso es importante saber el voltaje.

Eso no lo pusiste en tu primer post. Por eso siempre es importante explicar absolutamente todo.
Parecía que solo eran valores digitales como si fuera una especie de RS232 y la sugerencia de victor estaba muy bien enfocada.

Ahora el planteo cambia y bastante.
Bueno entonces desplaza todo en 3V del mismo modo que cuando queremos leer una señal senoidal.
Este es el esquema para leer una sonoidal y ponerla de tal modo que pueda ser leida por una entrada analógica del Arduino que será lo que tu quieres.
Hay que hacer cambios pero puede servir el enfoque

Olvida el transformador. Ahi solo toma la salida del secundario y conectas a una R que no será de 33 ohms perooo ya veremos. Esos 33R estan como carga. De modo que primero determina con que valor puedes cargar esos cables.
Luego mira el esquema. Tienes un capacitor. Ese capacitor mantiene los 2.5V que se mantendrán en este caso tmb.
Las R de 10k que pueden variar hasta 470K se mantienen.
Tu única duda es la R de carga para los dos cables.
Este esquema funcionará perfectamente.
Ahora si quieres medir mas pares de cables con uno unico arduino hay que estudiar las corientes que van de uno a otro par de cables. O usar un multiplexor analógico que switchee al par de cables que vamos a medir y de ese modo aislarlo
Un switch analogico podria ser un CD4052 que puede scannear 4 pares de lineas.

Buenas,

Gracias por la respuesta surbyte, lo siento si no me explique al principio.

Yo creo que necesitaria el cd4052. Por lo que he visto por internet seria darle voltaje el switch por sus patillas vss y vcd y despues por las patillas por ejemplo 1 y 2 conecto dos cables positivo y negativo, la salida "Count A" la conectaria al arduino?? y asi con las 3 pares de cables que tengo. De esta forma podria leer los voltajes, pero claro no me llegaria como -2.40v no??? irian de 0v a 5v??

En la placa original de la maquina hay un DS90LV048A, Seria igual al que comentas??? yo es que veo los documentos y no me entero jajajajaja, yo prefiero formulas y demas.

gracias por la ayuda.

Vaya y para que te expliqué lo anterior. Lo de OpenEnergy.
Te dije que debes desplazar la tensión para hacer que todo quede dentro de los 0-5V
Y como tu hablas de un máximo de 3-(-3) = 6V debes usar un divisor de tensión tal que 6V sean 5V maximo cuando estas con +3 y -3V.

No se si me entiendes.. Asi podras leer todo lo que deseas.

Buenas surbyte,

De verda que te leo he intento entender lo que me dices, pero no encuentro ejemplos de como yo necesito aun que sean de dos cables e intentar aplicarlo a varios.

Los voltajes me los marcaba mal el voltimetro (maldita bateria), lo comprobe con uno mio personal y los voltajes estan dentro de ranjo de -2.45 a 2.45, vamos 5 voltios, no tendria que usar un divisor de corriente, solo el multiplexor.

Yo de electronica soy muy inutitil por eso me cuesta entender un poco lo que me comentas sin ver un ejemplo.

Espero aun que sea el fin de semana intentar entenderlo lo mejor posible.

Muchas gracias por tus post.

Mejor entonces.
A ver.. voy a tratar de simularlo y te daré la respuesta comprobada para tu trnaquilidad. Dame un tiempo, todo eso lleva mas tiempo del que se piensa.

Bueno este es el resultado: Hay un leve problema en la simulación del AO diferencial AD620 pero supongo que se debe a alguna falla menor.
Este es el código simple que muestra cada 5 segundos la tensión de cada par de cables.
Yo supes 4 pares
1er par +2.45V y -2.45V
2do par +1.80V y -1.80V
3er par +1.20V y -1.20V
4to par 0V y 0V no se que iba acá.
Entonces funciona bien hasta 3.6 pero de ahi no muestra la diferencia de tensiones sino que falla.
Pruebalo fisicamente con el AD620.
He alimentado el AD620 y el CD4052 con ± 6V pero puede ser ±9V tmb
El AD620 con los pines 1 y 8 abiertos está con Ganancia 1, solo que como tiene un para de entradas, una NO INVIERTE que es la (+) o positiva y otra INVIERTE que es la (-) o negativa.
Si tienes una tensión V1 en (+) y otra V2 en (-) con ganancia 1, o sea no amplifica, la salida Vo sera
Vo = (V1-V2)

Esquema

LectorCables.png

CODIGO

const byte A = 4;
const byte B = 5;

void setup() {

  Serial.begin(9600);
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);

  // direcciono posición 0
  digitalWrite(A, LOW);
  digitalWrite(B, LOW);
}

void loop() {
  char buf[20];
  char str0[6], str1[6];

  for (byte i=0; i<4; i++) {
	  digitalWrite(A, i%2);
  	  digitalWrite(B, i/2);

	  float valor = analogRead(A0) * 5 /1023.0;  //0,00782 = 5/1023
	  
	  dtostrf(valor, 4,2, str0);

	  sprintf(buf, "%d => VA0 = %s", i, str0);
	  Serial.println(buf);
	  delay(5000);
  }
}

Algo que no se ve en el esquema es que el CD4052 tiene pines para VDD (+6V) VEE(-6V) y GND o Tierra.
Atención

Muchas gracias surbyte.

Lo mirare el fin de semana, yo tengo linux y no he conseguido que funcione el proteus en el.

Sobre el 4052:
Creo entender todo, los cables que tengo que segun la posicion que tenga el software en el ordenador envia desde -2.40 a 2.40 pasando por varios voltajes, cada pareja de cables conectados a los (x0-y0) (x1-y1) (x2-y2).
Despues A y B al arduino. A1 y A2 en conexion al AD620. INH al GND del arduino.

Sobre el AD620:
patilla 6 directamente al A0 que sera por donde leemos los valores.
3 y 2 conexion con el 4052 y la patilla 5 al GND.

Y el VEE y el VDD serian positivo de 5V y GND a la masa de una fuente externa, que da voltaje al arduino y los componentes.

Seria asi mas o menos.

De verdad que muchas gracias por la ayuda, yo soy informatico, de electronica cero. Yo busco y modifico un poco a mi gusto, pero en este caso me pierdo mucho.

Muchas gracias.

Y el VEE y el VDD serian positivo de 5V y GND a la masa de una fuente externa, que da voltaje al arduino y los componentes.

No y si. Debes probarlo pero necesitas un VEE de -5V porque tienes tensiones negativas y tanto el AD620 como el CD4052 requieren ese potencial para poder actuar bien con esos valores.
Tendras
VDD = +5V
VEE = -5V
GND ya sabes

surbyte:
No y si. Debes probarlo pero necesitas un VEE de -5V porque tienes tensiones negativas y tanto el AD620 como el CD4052 requieren ese potencial para poder actuar bien con esos valores.
Tendras
VDD = +5V
VEE = -5V
GND ya sabes

Buenas surbyte,

Lo siento por tardar tanto, pero he estado sobre cargado de trabajo y no he podido ponerme con el problema de la maquina y el esquema.

LLevo dos dias haciendo pruebas fisicas. No se si por un mal uso o que no me daba los valores correctos.

Antes lo monte en proteus que me costo un poco que funcionara el linux. Cuando ya estaba funcionando lo pase al fisico. Como el primer dia no tenia fuente con voltaje negativo, solo probe a meterle voltaje positivo al circuito como a los componentes (5v) y probar 3 cables con distintos voltajes positivos.

No me di cuenta y le meti voltajes casi de 4.27 al 4052 y segun lo excitaba el arduino las dos salidas daban los valores de cada salida. Despues conecte el ad620 (con los valores de hasta 4.27v) y no se si conecte mal los cables un momento o que, en la salida que va al arduino no daba los valores del proteus ni de coña. Despues ya me di cuenta que lo maximo era 3.6 por fallo.

Al ver todo conectado y fallando, ya no sabia si eran por no tener conectado los -5v o por haber conectado algun momento mal un cable. Busque una fuente con -5 y lo conete y seguia fallando. Ya no se si por rotura de componentes o que. El fallo estaba en el AD620. El 4052 lo hacia perfecto. No se si comprar dos componentes de nuevo y probar este fin de semana jajajajaja.

Despues otra duda, a un compañero se le ha ocurrido otra opcion, es con una fuente de alimentacion fija de 2.5 conectarlo a los cables, para subir voltaje, asi cuando los cables tengan -2.4 deran 0 y cuando sean 0 daran 2.5 y cuando sean positivo daran 4.8 aprox. Yo de esta opcion no me fio jajajaja. No se si es una locura esta opcion o si funcionaria.

Un saludo y gracias por todo.