Bonjour, j'ai fait un essai de lecture sur un Arduino Nano avec ce code :
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
const int Pin = A0;
unsigned long previousMillis;
const long interval = 1000;
long nDmF, oldnDmF, cDmF;
float vE;
void setup()
{
lcd.init();
pinMode(Pin, INPUT);
}
void loop()
{
unsigned long currentMillis = millis();
// vE = analogRead(Pin);
nDmF++;
if (currentMillis - previousMillis >= interval)
{
cDmF = nDmF - oldnDmF ;
oldnDmF = nDmF;
lcd.setCursor(0, 0);
lcd.print(cDmF);
previousMillis = currentMillis;
}
la loop boucle cDmF à 266800 , mais si je de-commente la ligne pour lire la Pin analogique , je chute à 8800, comment augmenter la vitesse de lecture du port ? Et pourquoi est-ce si long de lire une pin ?
La configuration de la fonction mesure de tension analogique par Arduino est très prudente et restrictive. Le micro peut faire mieux en termes de rapidité.
Mais dans ce cas il faut impérativement lire la datasheet du microcontrôleur qui est soudé sur la carte et appliquer les règles et limites indiquées.
Si tu recherches une mesure moins bruitée
Ne pas utiliser de carte UNO ⇾ l'implantation sur la carte est pourrie.
Solution possible si tu es capable de souder un condensateur CMS 0805 sur la carte.
utiliser la bonne tension de référence
Si tu recherches plus de précision ou de rapidité :
Utiliser un module équipé d'un circuit intégré qui ne fait que mesure de tension analogique et qui "discute" avec le micro soit par I2C, soit SPI.