Blogotux

Trucs, astuces pour linux mais c'est d'abord mon bloc-notes, donc sans grandes prétentions

mesurer la tension d'alimentation d'une carte arduino

12/03/2016 à 20:43:12

sans composants extérieurs

bien sûr, c'est intéressant uniquement pour une carte maison qui n'a pas de régulateur intégré

float mesure_vcc() {
ADMUX = 0x4E; // Sélectionne la référence interne à 1v1 comme point de mesure,
// avec comme limite haute VCC
ADCSRA |= (1 << ADEN); // Active le convertisseur analogique -> numérique
ADCSRA |= (1 << ADSC); // Lance une conversion analogique -> numérique
while (ADCSRA & (1 << ADSC)); // Attend la fin de la conversion
int valeur = ADCL | (ADCH << 8); // Récupère le résultat de la conversion
//Serial.print("valeur:");
//Serial.println(valeur);
/*
* VCC = 5v = 1023
* 1v1 interne (à VCC = 5v) = (1023 * 1.1) / 5 = 225
* En mesurant le 1v1 interne on peut donc déduire le VCC réel du circuit
* VCC = (1023 * 1.1) / 1v1_mesure
*/
float real_vcc = (1023 * 1.1) / valeur;
Serial.print("tension: ");
Serial.println(real_vcc);
return real_vcc;

Dans les catégories : arduino

1 commentaire

@ #-Pierre.pp59 - 07/08/2016 à 11:14:44

Bonjour,

D'après mes 'expériences' ceci est également valable avec un régulateur si la tension d'alimentation n'est pas régulé au centième de volt près.

En effet sur des arduinos mini j'ai pu remarqué que le résultat variait en fonction de la tension d'alimentation bien que ceux-ci soient équipés d'un régulateur 5v

Flux RSS des commentaires de cet article





Remarque : Votre commentaire sera visible après validation par le webmaster.