Pages: 1 [2]   Go Down
Author Topic: batterie analog?  (Read 1841 times)
0 Members and 1 Guest are viewing this topic.
France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3435
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Personnellement je suis arrivé à la conclusion que les mesures analogiques avec Mega328, Mega3Uu4... nécessitent souvent une VRAIE référence externe, les 'références' de 1,1V ou 2,56V internes n'étant garanties qu'à 10% près  smiley-cry.
Avec le lithium 10%  c'est notoirement insuffisant comme précision.
Un bon régulateur 5V ou 3,3V fait déjà mieux que ces "références" internes.
bonsoir Al1fch
même conclusion
J'aime bien utiliser des petites Vref en TO92 MCP1541 (4.096V) comme c'est une ^2 c'est facile ensuite de jouer avec une résolution simple.

Ces 10% c'est une erreur absolue. Dans le cas traité ici, une calibration (avec une source connue ou une mesure avec un multimètre) permet de corriger le problème.
Logged

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OK. Pour faire simple :

-Carte Uno ou Duemilanov, sans ajout de composants,  lancer le code d'origine de 'Secret Voltmeter' .
Il donnera déjà une bonne idée de Vcc (en mV)

Code:
long readVcc() {
  long result;
  // Read 1.1V reference against AVcc
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Convert
  while (bit_is_set(ADCSRA,ADSC));
  result = ADCL;
  result |= ADCH<<8;
  result = 1126400L / result; // Back-calculate AVcc in mV
  return result;
}

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println( readVcc(), DEC );
  delay(1000);
}

-Carte Leonardo, Vinciduino, Olimexino32u4..... prendre le code adapté que j'ai testé,
avec la ligne
Code:
ADMUX = _BV(REFS0) | _BV(MUX4)| _BV(MUX3) | _BV(MUX2) | _BV(MUX1);

-Dans un second temps, on peut améliorer la précision en calibrant par retouche de la valeur 1126400L
Sur ma carte j'avais retenu 1121000L (correspond à 1,121 Volt)
« Last Edit: June 12, 2012, 04:55:10 am by al1fch » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

j ai une question qui peut parraitre con mais quand je test jai la valeur de vcc oui mais du cable usb et non de ma batterie :/

comment voir sur le serial monitor sans etre alimenter par l usb juste par la batterie ?

et aussi théoriquement si ma batterie est pleine je suis censé avec 3.7 V

si c eest une 3.7 V
« Last Edit: June 12, 2012, 06:42:42 am by djo54150 » Logged

Rennes
Offline Offline
Sr. Member
****
Karma: 1
Posts: 312
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

comment voir sur le serial monitor sans etre alimenter par l usb juste par la batterie ?
Ca dépend quelle carte Arduino tu as.
Sur celles qui sélectionnent automatiquement la source d'alimentation, une solution est de te faire ton propre câble USB, sans y câbler le +5V (mais garde la masse commune!).
Comme ça l'Arduino ne va détecter que l'alim externe (je ne sais pas trop comment fonctionne cette détection mais j'étais persuadé que l'alim externe était prioritaire).
Logged


Offline Offline
Jr. Member
**
Karma: 0
Posts: 81
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

jai une mega adk et une uno r3
Logged

83 - var
Offline Offline
God Member
*****
Karma: 9
Posts: 863
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sinon câble Série de base tu coupe un coté tu reli RX TX masse a l'arduino et l'autre au pc, un petit hyper terminal ou gtkterm et pis ça roule smiley


Skizo !
Logged

Un tien vaux mieux que deux tu l'auras !

France
Offline Offline
God Member
*****
Karma: 4
Posts: 971
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
câble Série de base tu coupe un coté tu reli RX TX masse a l'arduino et l'autre au pc
Non ! Surtout pas çà : les niveaux de tension RS232 côté PC sont +12V et -12V, destruction plus que probable  de l'entrée RX de l'Arduino
Un montage d'adaptation des niveaux ET d'inversion logique est indispensable..... souvent à base de circuit MAX232
le -12V envoyé par  le Tx du PC doit être transformé en +Vcc
le +12V envoyé par le Tx du PC doit être transformé en 0 Volts
« Last Edit: June 12, 2012, 08:23:25 am by al1fch » Logged

83 - var
Offline Offline
God Member
*****
Karma: 9
Posts: 863
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

:x :x :x la j'ai dit de la merde xDDDD désolé, en plus je le sais je me tape du rs485 depuis 3mois et j'utilise des max488, bref oui effectivement adaptation à prévoir du coup ! :s
.. bon pour faire simple on est mal la au final...

Skizo
Logged

Un tien vaux mieux que deux tu l'auras !

Rennes
Offline Offline
Sr. Member
****
Karma: 1
Posts: 312
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Faut aussi arriver à trouver un PC avec un port série  smiley-mr-green
Plus facile de se bricoler un câble USB A->B en ne câblant que la masse, D+ et D-
Logged


France S-O
Offline Offline
Edison Member
*
Karma: 41
Posts: 2180
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Une solution radicale pour être tranquille  (un peu à la hussarde quand même) mais sans risque de confusion en mélangeant les câbles :
1) dessouder le polyswitch (*), cela coupe la liaison avec le +5VUSB fourni par le PC  -> pour ne pas perdre le polyswitch je l'ai soudé en attente sur la grosse plage de soudure du régulateur 5V
2) souder un fil pour amener l'alim sur la plage de report du polyswitch -> celle qui n'est pas reliée à l'USb  smiley-mr-green
3) par précaution souder un condensateur de filtrage entre le fil et la masse du connecteur USB

Comme cela on peut utiliser une alimentation externe (3 à 5V) sans se préocuper ni de l'usb ni du régulateur qui demande 7V min.

Par contre ne pas oublier d'alimenter le micro AVANT de commencer à le programmer par l'USB.

(*) voir les schéma électrique et d'implantation sur le site Arduino.

Commutation automatique des alim :
L'alim "USB" passe par T1  (FDN340P) qui est normalement conducteur donc Rdson = 0 Ohms.
Dès que l'on applique une tension par l'accès Vextérieur l'amplificateur opérationnel IC7b (LM358 monté en comparateur) bascule et bloque le T1. Comme la sortie du FET et celle du régulateur sont reliées le micro continu à être alimenté.
Logged

83 - var
Offline Offline
God Member
*****
Karma: 9
Posts: 863
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Une solution radicale pour être tranquille  (un peu à la hussarde quand même)

un peu à la hussarde? lol xDD totalement ouai mdrr ^^


Skizo !
Logged

Un tien vaux mieux que deux tu l'auras !

France S-O
Offline Offline
Edison Member
*
Karma: 41
Posts: 2180
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quand on veut bricoler l'électronique la première des choses à apprendre c'est de pas avoir peur de se servir d'un fer à souder.
« Last Edit: June 13, 2012, 03:03:52 am by 68tjs » Logged

83 - var
Offline Offline
God Member
*****
Karma: 9
Posts: 863
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

tout à fait d'accord ! smiley
Logged

Un tien vaux mieux que deux tu l'auras !

Pages: 1 [2]   Go Up
Jump to: