Go Down

Topic: pro mini avec batterie 3.7v (Read 890 times) previous topic - next topic

zjbjbjbz

Jul 08, 2018, 01:49 pm Last Edit: Jul 10, 2018, 07:17 pm by zjbjbjbz
Bonjour,
Je suis légèrement désappointé. J'ai un projet avec une pro mini 3.3v.  La carte reçoit les valeurs de 3 capteurs, envoie les données par un module bluetooth (JDY-08) qui fonctionne en 3.3v en allumant la led 10 ms, puis se met en veille pendant 4 secondes. Tant que la valeur du premier capteur est supérieure à une certaine valeur, le cycle se répète.
Dans le cas contraire, je coupe l'alimentation de la carte. Pour relancer la carte, il faut appuyer sur un interrupteur. Le circuit pour gérer l'alimentation de la carte a été récupéré ici.
Jusque-là tout va bien ! Maintenant, je veux alimenter mon montage avec une batterie lipo 3.7v 1000mAh et pour pouvoir recharger la batterie, je la relie à un powerboost 500 charger de chez Adafruit. En sortie, je récupère du 5v qui alimente la carte via la pin RAW. Voici le montage en pièce attachée (le module bluetooth n'est pas représenté)



Et le code
Code: [Select]
#include <LowPower.h>
#include <SoftwareSerial.h>
#include <Vcc.h>

SoftwareSerial btSerial(11, 10); // TX | RX

#define LED_PIN 12
#define PWR_OFF_PIN 5
#define TOTAL_ALIM 3
const int alim[] = {6, 7, 8};
#define TOTAL_SENSOR 3
const int sensor[] = {A0, A1, A2};
#define wakeUpHM 4 //P00
#define atCmd 3 //P01

int valeur = 0;
int AnalogVals[9];
String str = "";

const float VccCorrection = 5.4/3.3;  // Vcc mesurée divisée par Vcc rapportée par la carte
float vVCC = 0.0;
Vcc vcc(VccCorrection);

void setup() { 
  btSerial.begin(57600);

  // Toutes les I/O  à low
  for (int i = 0; i < 20; i++) {
    pinMode(i, OUTPUT);
  }

  // Place les broches d'alimentation à LOW
  for (int8_t i = 0; i < TOTAL_ALIM; i++) {
    digitalWrite(alim[i], LOW);
  }

  // Place les broches ADC en entrées
  for (int8_t i = 0; i < TOTAL_SENSOR; i++) {
    pinMode(sensor[i], INPUT);
  }
  delay(1000);
}

void loop() {
  for (int8_t x = 0; x < TOTAL_ALIM; x++) {
    alimOff();
    digitalWrite(alim[x], HIGH);
    delay(5);
    for (int8_t y = 0; y < TOTAL_SENSOR; y++) {
      valeur = analogRead(sensor[y]);
      AnalogVals[(x * 3) + y] = valeur;
    }
    digitalWrite(alim[x], LOW);
  }

  if (AnalogVals[0] < 50) {
    digitalWrite(PWR_OFF_PIN, HIGH);
  } else {
    str = "";
    for (int8_t i = 0; i < 9; i++) {
      str = str + AnalogVals[i] + "/";
    }
    vVCC = vcc.Read_Volts();
    digitalWrite(wakeUpHM, HIGH);
    digitalWrite(atCmd, HIGH);
    str = str + (String)vVCC;
    btSerial.println(str);
    delay (100);
    digitalWrite(atCmd, LOW);
    char* cmd = "AT+SLEEP";
    btSerial.write(cmd);
    delay(100);
    digitalWrite(atCmd, HIGH);
    LowPower.powerDown(SLEEP_4S, ADC_OFF, BOD_OFF);   
    digitalWrite(wakeUpHM, LOW);
    digitalWrite(LED_PIN, HIGH);
    delay(10);
    digitalWrite(LED_PIN, LOW);
  }
}

void alimOff() {
  for (int8_t i = 0; i < TOTAL_ALIM; i++) {
    digitalWrite(alim[i], LOW);
  }
}



Et là, ça fonctionne moins bien. Le comportement semble erratique. Quelque fois cela fonctionne correctement, quelque fois, j'ai une données toutes les secondes (comme si la mise en veille ne se faisait pas), quelque fois led du pin 13 (celle de la carte) s'allume à la place de la led de la pin 12 !
J'ai essayé en passant par une alimentation externe de labo. Tout fonctionne correctement jusquà 5v. A partir de 4.9v, ça merdouille. Sur la datasheet, la pro micro est censée fonctionner entre 3.35 et 12v. J'ai dû raté quelque chose.
Sans réellement comprendre pourquoi cela ne fonctionne pas, je me dis que je vais alimenter mon montage avec une batterie en 7.4v, mais cela devient compliqué pour assurer la recharge de la batterie.
Une explication, une aide serait la bienvenue !
Merci


al1fch

Bonsoir

Ton alim de labo a sans doute un régale de limitation de courant. régale trop bas ?

Valeur mini sur RAW : la pro Mini d'origine (Sparfun) a un bon régulateru 'Low drop' de marque Micrel, ce régulateur a besoin de 3,5 V mini pour fonctionner. Il est étonnant qu'une doc indique que RAW peut descendre à 3,3V en entrée d'un régulateur linéaire devant sortir 3,3V

Si ta 'Pro mini 3V 8MHz'  est une clone qui sait quel modèle de réglateur 3,3V a été mis en place pour baisser les coûts.  les clones sreproduisent en général à peu près les schémas, pas nécessairement les listes de composants (BOM)  ce qui peut donner des caractéristiques finales 'décalées'

Si ton vendeur gère mal ses références il t'aura peut être envoyé , comme cela m'est arrivé, un lot de Mini Pro 5V 16MHz.... qu'Aliexpress m'a remboursé pour non conformité avec l'annonce



zjbjbjbz

Sur mon alim, j'ai fixé la limite à 400mA, ce qui est largement au dela de la limite de 150 mA que la pin RAW peut recevoir.
Le régulateur de tension est un 4A20 et le cristal est bien un 8MHz. Je pense sans me tromper bien avoir une pro mini 3.3v 8MHz, même si c'est un clone.
La question reste, pourquoi en dessous de 5V, cela fonctionne mal?

_pepe_

#3
Jul 08, 2018, 07:49 pm Last Edit: Aug 19, 2018, 01:25 am by _pepe_
Supprimé

zjbjbjbz

Oops! je me suis trompé dans le titre, il s'agit d'une pro mini! Je ne suis pas sur que cela change la conclusion de ce topic. Le régulateur de tension sur cette carte ne fait pas le job attendu. Existe t-il un moyen de contourner (simplement si possible) le problème en alimentant le montage autrement?

hbachetti

Salut

Pour faire suite aux remarques de __pepe__:

J'ai déjà testé des PRO MINI fonctionnant jusqu'à 2.7V.
Si à VIN=4.9V les tiennes décrochent cela veut dire que le régulateur 3.3V de ta carte est très en dessous des caractéristiques normalement attendues.

4A20 : cela ne me dit rien.

OUI, il existe un moyen de contourner.
Personnellement quand j'alimente une PRO MINI avec des modules 3.3V à l'aide d'une batterie 3.7V je le fais via un régulateur 3.3V LDO de qualité, et ceci directement sur la broche VCC. Et j'alimente également le modules avec cette tension.
Deuxièmement je n'élève pas la tension de la batterie à 5V car cela ne sert à rien sinon consommer de l'énergie inutilement. J'utilise directement la tension de la batterie 3.7V, 4.2V à pleine charge.

On trouve des régulateurs LDO ayant un "voltage drop out" de 100mV.
Voir ICI tableau chapitre 2.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

_pepe_

#6
Jul 08, 2018, 08:17 pm Last Edit: Aug 19, 2018, 01:25 am by _pepe_
Supprimé

_pepe_

#7
Jul 08, 2018, 08:26 pm Last Edit: Aug 19, 2018, 01:25 am by _pepe_
Supprimé

zjbjbjbz

Merci Pepe pour ces précisions.
Donc si j'ai bien compris je rajoute un régulateur de tension qui tiens la route pour alimenter directement la carte et les modules par le biais du Vcc. Par contre le powerboost permet aux utilisateurs (pas moi) de recharger la batterie facilement par le biais d'un cable usb

hbachetti

#9
Jul 08, 2018, 09:33 pm Last Edit: Jul 08, 2018, 09:35 pm by hbachetti
Il existe des chargeurs USB du type TP4056 qui sont capables de fournir 1A à une batterie LITHIUM-ION et disposent d'une sortie 3.7V et non pas 5V avec laquelle on peu alimenter un régulateur 3.3V digne de ce nom.

Personnellement c'est ce genre de chargeur que j'intègre à demeure dans mes montages ARDUINO PRO MINI.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

_pepe_

#10
Jul 09, 2018, 12:16 am Last Edit: Aug 19, 2018, 01:25 am by _pepe_
Supprimé

hbachetti

Bien sûr, et aussi la LED1. Sur le schéma on voit le strap à couper SJ1.

En éliminant le régulateur d'une PRO MINI, on gagne 75µA, ce qui n'est pas grand chose. Par contre on peut parfaitement imaginer qu'avec certains clones équipés de mauvais régulateurs on puisse économiser plus encore.
Le plus important reste néanmoins la LED et sa résistance de 10K, qui consomment donc 300µA.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

zjbjbjbz

Merci pepe et henri pour vos réponses!
J'ai été voir ton site Henri, très instructif!
J'ai cependant quelque points à éclaircir...
Quote
On trouve des régulateurs LDO ayant un "voltage drop out" de 100mV.
Si j'ai bien compris plus un voltage drop out est bas, plus le régulateur sera précis même si la Vin et la Vout sont proches? Je pensais mettre un mic5202 mais à priori un LM2936 semble plus adapté puisqu'il permet d'utiliser au mieux la batterie. La limitation est le courant en sortie mais mon appli ne semble pas demandé plus de 20mA en activité.
Par contre, d'un point de vue technique, quel boitier me conseillez-vous? un SOT-223 ou bien TO92? Pour le CMS, est ce vraiment le même brochage que sur la carte? est-il plus prudent de déporter le régulateur à l'extérieur de la carte?
En admettant que je puisse ressouder un régulateur à la place de l'ancien, je devrais bien alimenter la carte à partir de la pin RAW, si il est déporté le Vout du régulateur alimentera la carte à partir de la pin Vcc?
Pour la charge de la batterie, comme tu me l'as indiqué Henri, je vais prendre ce modèle TP4056 Selon la doc chinoise (je sais ce que cela vaut maintenant), il y a une protection de décharge à 2.5v, est ce que cela signifie qu'en dessous de 2.5v, le circuit est coupé et que la batterie ne délivre plus de courant? Sachant que ma carte s'arretera avant (2.7v).
Désolé de vous bombarder de questions, mais cela fait déjà quelques jours que je galère sur ce projet...
Merci de votre aide!

hbachetti

Attention : le LM2936 fournit 50mA seulement. Je l'utilise beaucoup pour des montages consommant une trentaine de mA.
Si tu recherches un équivalent pouvant fournir 150 mA, tu as le HT7333-1, encore meilleur (dropout = 120mV)

Ces deux régulateurs ont un brochage incompatible avec celui du MIC5205.
Par contre il faudrait savoir exactement quel régulateur tu as sur ta carte. A partir de là, il sera possible ou non de le remplacer.

Quote
En admettant que je puisse ressouder un régulateur à la place de l'ancien, je devrais bien alimenter la carte à partir de la pin RAW, si il est déporté le Vout du régulateur alimentera la carte à partir de la pin Vcc?
Oui.

Quote
il y a une protection de décharge à 2.5v
Il est clair que la PRO MINI ne fonctionnera pas à cette tension, mais cela protège la batterie.
Batterie NIMH ou LITHIUM-ION à ZÉRO Volts = mort assurée.

Le TP4056 peut être installé de manière permanente entre la batterie et l'ARDUINO. Il consomme très peu sur la batterie. Il suffit de rendre le connecteur USB accessible (petite ouverture dans le boîtier par exemple).

Par contre il n'a pas de trous de fixation, c'est un peu gênant.
Mais comme en général je développe un PCB pour mes montages, ce PCB intègre l'ensemble des composants : PRO MINI, régulateur, modules, capteur, support de batterie, chargeur.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

_pepe_

#14
Jul 09, 2018, 11:48 am Last Edit: Aug 19, 2018, 01:25 am by _pepe_
Supprimé

Go Up