Bonjour à tous,
Comme je le dis dans le titre, j'aimerai réaliser un thermomètre qui affiche la température sur un écran lcd, mais je rencontre quelques problèmes: - je n'ai pas trouver comment convertir ce qui arrive de mon lm35 en celcius.
Mon écran lcd affiche des "y", des" /", etc
Je n'arrive pas bien à distinguer les caractères de mon écran lcd car il est trop clair. faut-il mettre des résistances dans le branchement ? (quand je diminue de 5 la valeur de la luminosité de l'écran, je ne vois plus rien)
Mon code:
Non, car on disait qu'il fallait mettre un 10K et le seul que je possède est un 50K. Dois-je le mettre ?
Et pour les autres questions avez vous des réponses ?
Merci
Oui le potentiomètre permet d'ajuster le contraste de l'écran.
Tu peux éventuellement combiner ton potentiomètre 50k avec des résistances fixes en série et parallèle pour être dans la bonne plage de valeurs.
Christian_R:
Oui le potentiomètre permet d'ajuster le contraste de l'écran.
Tu peux éventuellement combiner ton potentiomètre 50k avec des résistances fixes en série et parallèle pour être dans la bonne plage de valeurs.
Si tu veux transformer ton potar 50k en 10k, il faut mettre une résistance de 12k en parallèle avec les bornes extrême du potar.
Si tu veux transformer ton potar 50k en 20k, il faut mettre une résistance de 33k en parallèle avec les bornes extrême du potar.
Juste pour l'info : si ton potar à une variation linéaire (type A), le résultat avec la mise en // d'une résistance transforme la forme de la variation (patatoïde). Mais cela n'empêche pas le fonctionnement.
@+
Merci pour vos conseils ! maintenant je n'ai plus de problèmes avec mon écran lcd .
Mais avez-vous une idée pour la conversion en celsius avec mon lm 35 ?
nono21:
Merci pour vos conseils ! maintenant je n'ai plus de problèmes avec mon écran lcd .
Mais avez-vous une idée pour la conversion en celsius avec mon lm 35 ?
Tu peux t'inspirer de ce que j'ai fait ici: MiniClockT
Pour le détail du code sur la conversion celsius voici ma méthode:
float lm35dz(){
analogRead(3);// pour éviter le rebond et éviter d'avoir une valeur fausse à la lecture
delay(10);
reading = analogRead(3); //LM35DZ connect to Analog pin 3
//convert the voltage into temperature because the LM35DZ is at 10mV per °C
voltage = reading * 5.0 / 1024.0;
temperature = voltage * 100 ;
return temperature;
}
Ne pas supprimer le premier AnalogRead qui permet de ne pas lire une valeur fausse
Le code avec les librairies est téléchargeable ici.
Le problème est ici (comme signalé dans les post avant avant) :
int voltage = reading * 5.0 / 1024.0;
A la compilation 5.0/1024.0 va être calculé (et oui c'est toujours une opération en moins !) et (sauf erreur de ma part) comme il s'agit d'un integer auquel tu attribues le résultat, et bien ce petit rapport va être "stocké" en integer, donc valoir 0 puisque le résultat est 0.0048
Merci a tous !
j'ai donc réussi à faire ce que je voulais. Dans mon code j'ai juste remplace int par float et ça a fonctionner !
Mais j'ai encore une toute petite question: Est-ce que je peux remplacer le potentiomètre par une résistance ?
MERCI