Saya memiliki sensor dan menghasilkan sinyal analog.
Saya membaca semua data analog dan mengirimkannya ke komputer saya.
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);
}
Saya merencanakan pembacaan analog. Mengapa grafiknya terlihat seperti ini?
Jawaban:
Ini yang diharapkan.
Pin lain tidak ada yang terhubung, jadi tegangannya mengambang.
MCU Arduino hanya memiliki ADC tunggal. Untuk membaca pin analog yang berbeda, ia menggunakan multiplexer untuk menghubungkan pin yang ingin Anda baca ke ADC tunggal. ADC di dalam MCU memiliki kapasitor "sampel dan tahan" di dalamnya.
Untuk membaca tegangan pada pin, itu akan menghubungkan pin, untuk mengisi sampel dan menahan kapasitor. Ini kemudian akan memutuskan dan mengukur tegangan sampel dan menahan kapasitor, sedikit demi sedikit.
Jadi dalam kasus Anda, dengan membaca tegangan pada pin yang terhubung, itu akan mengisi kapasitor. Kemudian akan membaca pin yang tidak terhubung. Tetapi karena tidak ada yang terhubung sampel dan kapasitor tahan akan tetap berada pada tegangan yang sama, karena pin yang tidak terhubung tidak akan mengisi daya, atau mengeluarkannya.
Mengukur tegangan pada sampel dan menahan kapasitor akan sedikit menurunkan tegangan ini, jadi itu sebabnya dalam grafik garis akan lebih rendah dari pengukuran sebelumnya.
PS Juga, karena semua pin ditempatkan di papan tempat memotong roti, Anda akan memiliki beberapa kopling kapasitif antara pin yang berdekatan.
sumber
Acc benar-benar kapasitor kecil. Saat Anda berpindah saluran, muatan di kapasitor acc dapat dibawa dari satu saluran input ke yang berikutnya. Jika saluran input berikutnya memiliki impedansi yang sangat tinggi, atau kapasitansi yang sangat rendah, muatan pada kapasitor ak mendominasi dan tegangannya berubah sedikit.
Selain itu, kode yang buruk juga dapat menyebabkannya - biasanya karena kurangnya waktu untuk ditambahkan.
sumber