Problème de programmation avec capteur de température

bonjour je suis nouveau sur le forum pourriez vous m aider avec ce programme pour un détecteur de température copie du bouquin que j ai acheté avec le kit de débutant

1 const int sensorPin = 0; 
2 const float baselineTemp = 20.0;
4 void setup() {
5   Serial.begin(9600); // ouvrir un port série 
6   for(pinNumber = 2; pinNumber<5; pinNumber++){
7      pinMode(pinNumber, OUTPUT) ;
8      digitalWrite(pinNumber, LOW) ;
9   }
10 }
11 void loop() {
12   int sensorVal = analogRead(sensorPin);
13  Serial.print("Valeur capteur :");
14  Serial.print(sensorVal);
15  // convertir la lecture du CAN en tension
16  float voltage = (sensorVal/1024.0) * 5.0;
17  Serial.print( " , Volt : ");
18  Serial.print(voltage);
19  Serial.print( " , degres C : ");
20  // convertir la tension en température en degrés
21  float temperature = (voltage - .5) * 100;
22  Serial.print( temperature) ;
23  if( temperature < baselineTemp){
24  digitalWrite(2, LOW);
25  digitalWrite(3, LOW);
26  digitalWrite(4, LOW);
27 }else if(temperature>=baselineTemp+2 && temperature < baselineTemp+4){
28  digitalWrite(2, HIGH);
29  digitalWrite(3, LOW);
30  digitalWrite(4, LOW);
31 }else if(temperature>=baselineTemp+4 && temperature < baselineTemp+6){
32   digitalWrite(2, HIGH);
33   digitalWrite(3, HIGH);
34   digitalWrite(4, LOW);
35 }else if(temperature>=baselineTemp+6){ 
36   digitalWrite(2, HIGH);
37   digitalWrite(3, HIGH);
38   digitalWrite(4, HIGH);
39   }
40  delay(1);
41 }
 voici le code erreur que je ne comprend pas 

Arduino : 1.8.19 (Mac OS X), Carte : "Arduino Uno"

TEMPERATURE_sketch_jan29b:1:1: error: expected unqualified-id before numeric constant
1 const int sensorPin = 0;
^
TEMPERATURE_sketch_jan29b:2:1: error: expected unqualified-id before numeric constant
2 const float baselineTemp = 20.0;
^
TEMPERATURE_sketch_jan29b:3:1: error: expected unqualified-id before numeric constant
4 void setup() {
^
TEMPERATURE_sketch_jan29b:10:1: error: expected unqualified-id before numeric constant
11 void loop() {
^~
exit status 1
expected unqualified-id before numeric constant

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

merci de m aider

You need to lose all the line numbers.

I don't really know why they publish books with them in.

1 const int sensorPin = 0; 
2 const float baselineTemp = 20.0;
4 void setup() {
5   Serial.begin(9600); // ouvrir un port série 

The line numbers at the beginning of the line are not part of the program. You need to delete them.

const int sensorPin = 0; 
const float baselineTemp = 20.0;
void setup() {
  Serial.begin(9600); // ouvrir un port série 

merci beaucoup grâce a vous je vais pouvoir avancer dans mes projets

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Bonjour,
Je suggérerais aussi de remplacer cette ligne

par ceci
const int sensorPin = A0;

Une chose : montre nous ton circuit.

Comment ferait-on pour savoir comment ton circuit fonctionne ?

image
voici mon montage

merci beaucoup je vien de faire le changement ça fonctionne aussi

Donc tout fonctionne ?

Passes au minimum à Serial.begin(115200); Nous ne sommes plus au Moyen Âge.

Quel est le capteur de température ?
Cela serait mieux de le dire.
Je suppose vu le câblage que c'est un LM35, c'est au minimum un capteur analogique.

Sur l'image du câblage, je vois 3 diodes qui partagent le même fil de masse avec le LM35.
Je ne connais pas la valeur du courant que tu as choisi de faire passer dans les diodes, mais il se pourrait que suivant la valeur de ce courant et la qualité du fil de masse les indications du LM35 "vue par l'entrée A0" changent suivant le nombre de diodes éclairées.

Si c'est le cas sépares les masses LM35 et diodes sur la plaquette de câblage et relie séparément la masse du LM35 et la masse du groupe de diodes directement à une pin de masse de la carte Arduino.

Axes d'amélioration possibles :

Tu appliques la formule
float voltage = (sensorVal/1024.0) * 5.0;
en considérant que Vcc fait exactement 5,0 V.

Si tu veux une mesure précise il faut mesurer le Vcc et utiliser la valeur mesurée.
Dans le cas où tu es alimenté par l'USB le 5 V est donné à ± 5%. Ce qui signifie que d'un PC à un autre il peut y avoir jusqu'à 10% de variation sur le 5 V USB.
Une alimentation par Vin est préférable, dans ce cas le 5 V provient du réguleur interne de la carte.

Le niveau délivré par le LM35 est inférieur à 1 V (10mV/°C ± 10%).
Il est possible d'utiliser la référence interne du microcontrôleur qui est à 1,1 V ± 10 %.
L'avantage est que le pas de mesure passe de 5 mV avec la référence à Vcc, à 1 mV avec la référence interne.
Référence à Vcc = précision de mesure : au mieux 0,5 °C
Référence à Vref_int précision de mesure au mieux 0,1 °C

Mais bien sûr il faut mesurer la valeur de cette référence interne qui varie d'un lot de fabrication à un autre. C'est simple à faire quand la référence interne est sélectionnée il suffit de mesurer la tension présente sur la pin Aref.

Voilà, c'est un peu long, tu ne t'attendais pas à autant de précautions à prendre. Mais au moins tu ne reviendras pas nous voir en déclarant "mon LM35 est buggé, la température n'arrête pas de bouger".

Un LM35 c'est de l'électronique analogique pure avec sa sensibilité à la propreté de sa masse.
Il existe d'autres capteurs de température dont la partie analogique est encapsulée dans de l'électronique numérique qui rend leur usage plus simple, DS18B20, DHT22 (DHT11 à fuir) sont deux exemples parmi les plus courants.

Pour tout ce qui concerne le choix de la référence de tension voir :
https://www.arduino.cc/reference/en/

Merci beaucoup pour toutes ces explications qui vont beaucoup m’aider dans la continuité de mon projet

J'aurai préféré que tu confirmes le nom du capteur.
Voir :

Où il y a des conseils pour poser les questions.

S'il faut arracher les renseignements un par un, nous nous lassons vite.

Le capteur est un tmp 36 je vais donc suivre vos conseil concernant le calibrage et je vais aussi je prendre un dht22 pour essayer désolé pour le manque d info de ma part

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.