Buenos dias, el proyecto que quiero hacer es el siguiente:
con una fuente de 12v conectada a los 6 pins analogicos y con un divisor de tension con resistencias, conseguir que cada pin reciba una lectura de tension distinta (no me hace falta ni convertirla a voltage dividiendolo por 1023) .
El codigo lo tengo echo, fallo en el montaje electronico, me da tension en los tres primeros pins, pero los tres restantes me da 0.
Daros las gracias de antemano y espero vuestas aportaciones.
Saludos.
Hola. Sin saber el montaje fisico realizado y/o el código utilizado poco o nada te podemos contestar.
Sube algun dato mas.
Saludos.
ok ahora estoy trabajando esta noche cuando llegue lo subo., gracias
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.
Por favor edita el post e inserta el código de acuerdo a las Normas del foro en Español, punto 7.
Verifica también que se hayan cargado las imágenes ya que no se ven.
Por otro lado no es normal que el ADC te devuelva valores negativos, algo raro está pasando, no se si es por el uso de float para las lecturas o un problema del circuito.
Te sugiero que cambies a algo así
int m = analogRead(A0);
float volt = m * 5.0 / 1024.0;
para descartar lo primero.
Saludos
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.