En primer lugar pedir disculpa por el post anterior por la falta de datos. Intetaré explicarme algo mejor.
Este atranque que tengo forma parte de un proyecto mayor que lo tengo encaminado, el problema es el siguiente.
Con una fuente de 12v tengo que alimentar 6 cables que van conectados a los puertos analogicos de arduino Uno.
Cada cable tiene que llegar con una tension distinta, por ejemplo 4.75 - 4 - 3.5 - 3 - 2.25 - 1.5 - 0.7 V. segun he leido ese se hace con un divisor de tension con resistencias. os paso el esquema que he echo con dos divisiones de tension (una para cada tres pines)

Los resultados que me arroja el serial son los siguientes:
1023.00 M0=5.00 1
342.00 M1=1.67 3
727.00 M2=-4.33 4
727.00 M3=3.55 5
167.00 M4=0.82 7
-886.00 M5=-4.33 9
Donde la columna de la izq es el valor que lee arduino y los valores Mx son las conversiones a voltaje.
El cable 3 y 4 me da la misma lectura y eso es lo que tengo que evitar. no si es problema del esquema o del valor de las resistencias ( tercera columna)
Otra prueba con otro esquema

Lectura Voltaje V.Resistencias
974.00 M0=4.76 1
740.00 M1=3.62 2
-78.00 M2=1.91 3
-78.00 M3=-0.38 4
-663.00 M4=-3.24 5
-1364.00 M5=-6.67 6
Este es el codigo:
int n = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
float m = analogRead(A0);
float volt = m * 5 / 1024;
float m1 = analogRead(A1);
float volt1 = m1 * 5 / 1024;
float m2 = analogRead(A2);
float volt2 = m2 * 5 / 1024;
float m3 = analogRead(A3);
float volt3 = m3 * 5 / 1024;
float m4 = analogRead(A4);
float volt4 = m4 * 5 / 1024;
float m5 = analogRead(A5);
float volt5 = m5 * 5 / 1024;
if (n == 0) {
Serial.println(" Medición en A0 Voltaje en A0");
Serial.print(m); Serial.print(" "); Serial.println(volt);
n = n + 1;
}
else {
Serial.print(m); Serial.print(" M0="); Serial.println(volt);
Serial.print(m1); Serial.print(" M1="); Serial.println(volt1);
Serial.print(m3); Serial.print(" M2="); Serial.println(volt2);
Serial.print(m3); Serial.print(" M3="); Serial.println(volt3);
Serial.print(m4); Serial.print(" M4="); Serial.println(volt4);
Serial.print(m5); Serial.print(" M5="); Serial.println(volt5);
}
delay(5000);
Espero ahora haberme explicado algo mejor, si no es asi pido disculpas de antemano e intentare responder a lo que me pregunteis.
Lo que necesito es que cada cable entrege una valor distinto a arduino
Gracias.
Este atranque que tengo forma parte de un proyecto mayor que lo tengo encaminado, el problema es el siguiente.
Con una fuente de 12v tengo que alimentar 6 cables que van conectados a los puertos analogicos de arduino Uno.
Cada cable tiene que llegar con una tension distinta, por ejemplo 4.75 - 4 - 3.5 - 3 - 2.25 - 1.5 - 0.7 V. segun he leido ese se hace con un divisor de tension con resistencias. os paso el esquema que he echo con dos divisiones de tension (una para cada tres pines)

Los resultados que me arroja el serial son los siguientes:
1023.00 M0=5.00 1
342.00 M1=1.67 3
727.00 M2=-4.33 4
727.00 M3=3.55 5
167.00 M4=0.82 7
-886.00 M5=-4.33 9
Donde la columna de la izq es el valor que lee arduino y los valores Mx son las conversiones a voltaje.
El cable 3 y 4 me da la misma lectura y eso es lo que tengo que evitar. no si es problema del esquema o del valor de las resistencias ( tercera columna)
Otra prueba con otro esquema

Lectura Voltaje V.Resistencias
974.00 M0=4.76 1
740.00 M1=3.62 2
-78.00 M2=1.91 3
-78.00 M3=-0.38 4
-663.00 M4=-3.24 5
-1364.00 M5=-6.67 6
Este es el codigo:
int n = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
float m = analogRead(A0);
float volt = m * 5 / 1024;
float m1 = analogRead(A1);
float volt1 = m1 * 5 / 1024;
float m2 = analogRead(A2);
float volt2 = m2 * 5 / 1024;
float m3 = analogRead(A3);
float volt3 = m3 * 5 / 1024;
float m4 = analogRead(A4);
float volt4 = m4 * 5 / 1024;
float m5 = analogRead(A5);
float volt5 = m5 * 5 / 1024;
if (n == 0) {
Serial.println(" Medición en A0 Voltaje en A0");
Serial.print(m); Serial.print(" "); Serial.println(volt);
n = n + 1;
}
else {
Serial.print(m); Serial.print(" M0="); Serial.println(volt);
Serial.print(m1); Serial.print(" M1="); Serial.println(volt1);
Serial.print(m3); Serial.print(" M2="); Serial.println(volt2);
Serial.print(m3); Serial.print(" M3="); Serial.println(volt3);
Serial.print(m4); Serial.print(" M4="); Serial.println(volt4);
Serial.print(m5); Serial.print(" M5="); Serial.println(volt5);
}
delay(5000);
Espero ahora haberme explicado algo mejor, si no es asi pido disculpas de antemano e intentare responder a lo que me pregunteis.
Lo que necesito es que cada cable entrege una valor distinto a arduino
Gracias.
Última edición: