Tengo un sensor y genera una señal analógica.
Estoy leyendo todos los datos analógicos y los envío a mi computadora.
uint8_t sensors[] = { A0,A1,A2,A3,A4,A5,A6 };
const int len = sizeof(sensors) / sizeof(sensors[0]);
void loop(void)
{
for (size_t i = 0; i < len; i++)
{
auto sensor = sensors[i];
int sensorValue = analogRead(sensor);
// Convert the analogue reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
char t[100];
sprintf(t, "%d:%d$\n", sensor, sensorValue);
uint8_t t1[100];
//PrintSerial.println(t);
memcpy(t1, t, 100);
wifi.send(t1, strlen(t));
}
delay(300);
}
Tracé la lectura analógica. ¿Por qué el gráfico se ve así?
Respuestas:
Esto es de esperar.
Los otros pines no tienen nada conectado, por lo que su voltaje está flotando.
El MCU Arduino solo tiene un solo ADC. Para leer los diferentes pines analógicos, utiliza un multiplexor para conectar el pin que desea leer al ADC individual. El ADC dentro de la MCU tiene un condensador de "muestra y retención" en su interior.
Para leer el voltaje en el pin, conectará el pin, para cargar la muestra y sostener el condensador. Luego desconectará y medirá el voltaje de la muestra y mantendrá el condensador, un bit a la vez.
Entonces, en su caso, al leer el voltaje en el pin conectado, cargará el condensador. Luego leerá los pines desconectados. Pero debido a que no hay nada conectado, el condensador de muestra y retención se mantendrá aproximadamente al mismo voltaje, porque el pin no conectado no lo cargará ni lo descargará.
La medición del voltaje en el condensador de muestra y retención disminuirá ligeramente este voltaje, por lo que en el gráfico las líneas serán más bajas que la medición anterior.
PD También, debido a que todos los pines se colocan en una placa de pruebas, tendrás un acoplamiento capacitivo entre los pines adyacentes.
fuente
El acc es realmente un pequeño condensador. A medida que cambia de canal, las cargas en el condensador acc se transfieren de un canal de entrada al siguiente. Si el siguiente canal de entrada es de muy alta impedancia, o muy baja capacitancia, las cargas en el condensador acc dominan y su voltaje cambia poco.
Además, un código deficiente también puede causarlo, generalmente por falta de tiempo suficiente para que se complete el complemento.
fuente