Bonjour,
J'ai ce message " Erreur de compilation pour la carte Arduino/Genuino Uno " sur un script qui fonctionnait normalement il y a quelques jours et plus maintenant
Vous avez une idée ?
Stéphanie
Bonjour,
J'ai ce message " Erreur de compilation pour la carte Arduino/Genuino Uno " sur un script qui fonctionnait normalement il y a quelques jours et plus maintenant
Vous avez une idée ?
Stéphanie
Bonsoir Stéphanie
Il fraudait mettre le programme complet (entre balises).
Il faudrait, aussi, mettre l'erreur complète, en cliquant sur Recopier les messages d'erreur, en bas à droite de l'IDE Arduino et en collant le tout dans le message.
Bonne soirée
jpbbricole
Bonjour,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 # #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT22 //#define DHTTYPE DHT11 (pour un capteur DHT11) DHT dht(DHTPIN, DHTTYPE); float h = 0; float t = 0; void setup(){ Serial.begin(9600); dht.begin(); } void loop(){ h = dht.readHumidity(); t = dht.readTemperature(); if (isnan(t) || isnan(h){ Serial.println( "Lecture impossible !"); }else{ Serial.print("Humidite :"); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature :"); Serial.print(t); Serial.println(" *C"); } delay(1000); } #Voila je pense que tu as tout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Arduino : 1.8.7 (Windows 10), Carte : "Arduino/Genuino Uno" In file included from C:\Users\stephanie\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:22:0: C:\Users\stephanie\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory compilation terminated. exit status 1 Erreur de compilation pour la carte Arduino/Genuino Uno 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.
En te remerciant
Stéphanie
Bonjour Stéphanie
Tu n'as chargé qu'une bibliothèque sur les 2 nécessaires pour cette sonde, comme indiqué sur cette page de tuto.
Arduino library and example code for DHT sensors
Adafruit_Sensor library (required by the DHT library above)
Et tu as une erreur à la ligne
if (isnan(t) || isnan(h)){
Il manque cette parenthèse.
C'est le métier qui entre.
Cordialement
jpbbricole
Bonjour,
Je viens de compiler et ça marche en ayant rajouter tes modifications, effectivement il me reste du travail à faire
je ferai le montage plus tard
En te remerciant
Stéphanie
Bonjour,
Je viens de faire le montage et il fonctionne normalement
Je vérifierai quand même avec un thermomètre
Merci encore
Stéphanie
Bonjour,
Je reprends cette discussion pour savoir comment on pourrait rajouter un écran 16x2 avec i2C afin d avoir un affichage indépendant du pc
Cordialement
Stéphanie
Bonjour Stéphanie
En installent la bibliothèque LiquidCrystal_I2C.h, en faisant quelques exemples proposés afin de comprendre la "mécanique" et en adaptant tout ça à ton programme.
Si tu ne connais pas l'adresse i2C de ton affichage, va voire de ce côté.
Facile, tu deviens une PRO
Cordialement
jpbbricole
Bonjour,
Bon je me lance
La c'est le code modifié avec l'affichage du moniteur et de l'afficheur lcd i2c, j'ai compilé et ça passe, la température devrait s'afficher mais il me reste l'humidité à rajouter mais je bloque
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 #include <DHT.h> #include <DHT_U.h> #include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT22 //#define DHTTYPE DHT11 (pour un capteur DHT11) float temp; int temPin = 2; #include <LiquidCrystal_I2C.h> //LCD i2c library #define I2C_ADDR 0x27 LiquidCrystal_I2C lcd(I2C_ADDR,16,2); DHT dht(DHTPIN, DHTTYPE); float h = 0; float t = 0; void setup(){ lcd.init(); lcd.setBacklight(HIGH); lcd.setBacklight(LOW); delay(1000); lcd.setBacklight(HIGH); Serial.begin(9600); dht.begin(); } void loop(){ h = dht.readHumidity(); t = dht.readTemperature(); if (isnan(t) || isnan(h)){ Serial.println( "Lecture impossible !"); lcd.setCursor(0,0); lcd.print("Temp: "); lcd.print(temp); }else{ Serial.print("Humidite :"); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature :"); Serial.print(t); Serial.println(" *C"); } delay(1000); }
j'ai peut être commis des erreurs
Merci pour votre aide
Cordialement
Stéphanie
Bonsoir Stéphanie
C'est parti fort
Première remarque, tu a déclaré 2 variables différente pour la température:
Utilises des noms de variables plus explicites, temperatureSonde ou humiditeSonde, parlent plus que t ou h et on comprend tout de suite leur rôle et évite, souvent, de mettre une remarque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 float temp; float t = 0;
Tu affiches sur le LCD dans la condition d'erreur!
et, en plus avec la variable temp qui n'est pas utilisée à la lecture de la sonde.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (isnan(t) || isnan(h)){ Serial.println( "Lecture impossible !"); lcd.setCursor(0,0); lcd.print("Temp: "); lcd.print(temp);
Pour afficher tes valeurs mets ça après }else{A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 lcd.setCursor(0,0); lcd.print("Temp: "); lcd.print(t); lcd.setCursor(0,1); lcd.print("Humid: "); lcd.print(h);
Cordialement
jpbbricole
Bonjour,
J'avoue être un peu perdue dans ce code
J'ai trouvé de code dans un tuto qui me parait plus simple
Mais je rencontre un problème avec le LCD i2c , pourtant il est bien déclaré
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 # #include <dht.h> //DHT and LCD libraries #include <LiquidCrystal_I2C.h> #define I2C_ADDR 0x27 #define BACKLIGHT_PIN 3 #define En_pin 2 #define Rw_pin 1 #define Rs_pin 0 #define D4_pin 4 #define D5_pin 5 #define D6_pin 6 #define D7_pin 7 LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); dht DHT; //Declaring the DHT as a dht type to use it later #define DHT22_PIN 7 //Declaring where the DHT signal pin is wired void setup(){ Serial.begin(9600); lcd.begin (16,2); lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); lcd.setBacklight(HIGH); lcd.home (); } void loop() { lcd.clear(); lcd.setCursor(0,0); int chk = DHT.read22(DHT22_PIN); //Reading data from the module lcd.print("Temp: "); lcd.print(DHT.temperature); //Showing temperature value in Celsius lcd.print(" C"); lcd.setCursor(0,1); lcd.print("Humidity: "); lcd.println(DHT.humidity); //Showing humidity percentage lcd.print(" %"); delay(2000); //Refreshing every 2s } #
no matching function for call to 'LiquidCrystal_I2C::LiquidCrystal_I2C(int, int, int, int, int, int, int, int)'
et j'ai beau chercher je vois pas
Cordialement
Stéphanie
Bonjour et merci pour votre aide sur ce projet,
Je reprendrai tranquillement celui ci quand j'aurai plus de temps, je souhaiterais une information sur la nécessité ou pas de rajouter une résistance entre le vcc et la broche 2, j'imagine un pull up, suivant les indications il faut ou pas puisque le dht22 en a deja une
Cordialement
Stéphanie
Bonjour Stéphanie
Je ne comprends pas très bien ce code, il utilise une bibliothèque i2C mais initialise comme pour un affichage parallèle (sans i2C)!
Je te mets le code corrigé, essayes de voire les différences, j'ai mis en remarque les ligne erronées ou inutiles.
Je n'ai pas de DHT donc pas pu essayer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 #include <dht.h> //DHT and LCD libraries #include <LiquidCrystal_I2C.h> #define I2C_ADDR 0x27 //#define BACKLIGHT_PIN 3 //#define En_pin 2 //#define Rw_pin 1 //#define Rs_pin 0 //#define D4_pin 4 //#define D5_pin 5 //#define D6_pin 6 //#define D7_pin 7 //LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); LiquidCrystal_I2C lcd(I2C_ADDR,16, 2); dht DHT; //Declaring the DHT as a dht type to use it later #define DHT22_PIN 7 //Declaring where the DHT signal pin is wired void setup(){ Serial.begin(9600); //lcd.begin (16,2); lcd.begin (); //lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); //lcd.setBacklight(HIGH); lcd.backlight(); //lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); //lcd.setBacklight(HIGH); lcd.home (); } void loop() { lcd.clear(); lcd.setCursor(0,0); int chk = DHT.read22(DHT22_PIN); //Reading data from the module lcd.print("Temp: "); lcd.print(DHT.temperature); //Showing temperature value in Celsius lcd.print(" C"); lcd.setCursor(0,1); lcd.print("Humidity: "); lcd.println(DHT.humidity); //Showing humidity percentage lcd.print(" %"); delay(2000); //Refreshing every 2s }
Bonne journée
Cordialement
jpbbricole
Bonjour,
J'ai vérifié ton code et à la compilation j'ai cette erreurQue penses tu de l'utilité de placer une résistance sur le dht 22 ?no matching function for call to 'LiquidCrystal_I2C::begin()'
En te remerciant de ton aide
Cordialement
Stéphanie
Bonjour Stéphanie
Si c'est pas un, c'est l'autre!
Essaye lcd.init(); à la place de lcd.begin();.
C'était ici.
J'ai fait des recherches, j'ai tout vu entre rien et 10k!
Mais, en général, c'est 4.7k, une bonne moyenne. C'est un bus de communication qui ressemble à OneWire de Dallas, mais pas tout à fait. En général il n'est pas bon de laisser ce type de bus sans résistance parce que trop sensibles aux perturbations.
Une bonne journée
Cordialement
jpbbricole
Bonjour jpbbricole,
Bien vu, j'ai corrigé (tu l'avais déjà dis) et la compil est passée, ça marche
Je vais rajouter une résistance 4.7 k entre le vcc et le data
en te remerciant
Stéphanie
Bonsoir Stéphanie
J'ai repris le programme du post #13 et y ai rajouté la sonde DHTxx (j'ai retrouvé une DHT11 dans mon b...el!)
Essayes ça, ça tourne sans résistance. Contrôle la variable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 #include <dht.h> //DHT and LCD libraries #include <LiquidCrystal_I2C.h> #define I2C_ADDR 0x27 LiquidCrystal_I2C lcd(I2C_ADDR,16, 2); #define DHT22_PIN 7 //Declaring where the DHT signal pin is wired #define DHTTYPE DHT11 // DHT11 DHT22 DHT21 DHT dht(DHT22_PIN, DHTTYPE); void setup(){ Serial.begin(9600); //lcd.begin (); lcd.init(); lcd.backlight(); lcd.home (); } void loop() { lcd.clear(); int dhtHum = dht.readHumidity(); int dhtTemp = dht.readTemperature(); lcd.setCursor(0,0); lcd.print("Temp: "); lcd.print(dhtTemp); //Showing temperature value in Celsius lcd.print(" C"); lcd.setCursor(0,1); lcd.print("Humidite: "); lcd.print(dhtHum); //Showing temperature value in Celsius lcd.print(" %"); delay(2000); //Refreshing every 2s }
#define DHT22_PIN 7 //Declaring where the DHT signal pin is wired
pour que celà corresponde avec ton installation.
A+
Cordialement
jpbbricole
Bonjour jbbricole,
ça tourne aussi bien avec que sans, bon maintenant la résistance est soudée je vais laisser comme ça
plutot précis par rapport à un thermomètre classique
Stéphanie
PS : je vais passer sur un autre projet avec hc sr04![]()
Partager