Pages: [1]   Go Down
Author Topic: Arduino + LCD = Afficheur de tension en % (help)  (Read 856 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
j'ai pour projet, de faire un chargeur usb portable... Jusque la rien de compliqué, sans programmation, soit, la base. Mais j'ai voulu compliquer mon projet, pour épater le jury, avoir un écran LCD, avec arduino pour afficher les % de ma batterie.

Ne m'y connaissant très peu en programmation arduino (qui ressemble très fort au C++)
j'ai trouvé un début de script sur le SDZ :

Code:
#include "LiquidCrystal.h" //ajout de la librairie

//Vérifier les broches !
LiquidCrystal lcd(11,10,9,8,7,6,5,4,3,2); //liaison 8 bits de données
LiquidCrystal lcd(11,10,5,4,3,2); //liaison 4 bits de données

void setup()
{
    lcd.begin(16,2); //utilisation d'un écran 16 colonnes et 2 lignes
    lcd.write("Welcome Anthony"); //petit test pour vérifier que tout marche
}

void loop() {
}

J'ai bien sur un écran 16*2, mais voilà ... Il y a autre chose, dans mon idée, je devais faire apparaitre : welcome anthony, et le faire disparaitre après 3secondes, pour après montrer ma batterie. Je possède une batterie de 5V. J'aimerais faire changer mon texte en fonction de la tension. 5V = Très bonne tension, 4V = Sa diminue! , 3V= Attention..., 2V = penses a recharger! et si on charge, on affichera : En charge ....

Je suis pas la pour avoir la réponse toute faite, mais avoir des explications aussi, du comment et du pourquoi, merci pour votre attention et votre aide!

Anthony
Logged

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

Bonjour
Un petit tour chez Skywodd pourrait apporter des idées et des explications : :
http://skyduino.wordpress.com/2012/08/09/arduino-mesurer-la-tension-dun-batterie/
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
merci pour ta réponse assez rapide! Je vais aller faire un petit tour, merci.

Anthony
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir,
je reviens vers vous, je ne trouve pas mon erreur... :'(
je devrais allumer la LED1 si 0v est connecté sur la pine A0 et la LED2 sur 5V sur la pine A0

Code:
const int l1 = 2; // Led1
const int l2 = 3; // Led2
const int input = A0;

void setup()
{
  pinMode(l1, OUTPUT);
  pinMode(l2, OUTPUT);
  pinMode(input, INPUT);
}
 
void loop()
{
  int etat = analogRead(input); // lecture analogique
 
  switch (etat){
 
  case 0:
    digitalWrite(l1, LOW);
  break; 
 
  case 1023:
    digitalWrite(l2, LOW);
  break;
  }
  delay(1000);
}

Une erreur dans mon code, ou ... ?

Merci,
Anthony  smiley-confuse
Logged

France
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3626
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
je reviens vers vous, je ne trouve pas mon erreur... :'(

En vrac:
- mais où sont les
Code:
digitalWrite(l1, HIGH);
digitalWrite(l2, HIGH);

- peut être que etat n'a jamais la valeur 0 ou 1023.
Il faudrait peut être faire des tests moins stricts. Voir faire un petit Serial.print(etat) pour voir les valeurs prises par la variable.

- prévoir un default après les 2 case pour éteindre les LED lorsqu'on ne tombe ni dans un cas ni dans l'autre.
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

- peut être que etat n'a jamais la valeur 0 ou 1023.
Il faudrait peut être faire des tests moins stricts. Voir faire un petit Serial.print(etat) pour voir les valeurs prises par la variable.
Avec des signaux de pile poil GND et VCC la sortie prend bien les valeurs 0 ou 1023 (TTL).
Par contre dans un "vrai" montage analogique il y a peu de chance que cela soit le cas.

De plus dans ton cas si l'entrée analogique est câblé à la batterie de l'arduino le case 0 ne sera jamais atteint (l'arduino aura arrêté de fonctionner bien avant).

Remarque si tu veut faire des fourchettes de valeurs, avec un switch et gcc (c'est pas dans la norme C/C++) c'est possible.
http://gcc.gnu.org/onlinedocs/gcc-4.4.5/gcc/Case-Ranges.html#Case-Ranges
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Pages: [1]   Go Up
Jump to: