Bonjour
Voilà je suis débutant et je viens tout juste de me mettre à l'architecture Arduino, bon je me suis acheté l'inflation mega édition Google ADK (parce que je suis un fan de l'univers Google lol )
J'ai commencé par un projet simple qui consiste faire fonctionner une sonde de température étanche DS18B20 acheter sur Amazon
vu que je tâtonne encore niveau programmation je suis aller sur internet chercher des lignes de code tout fait et simple , le problème c'est que quand je rentre les lignes de codes dans le programme Arduino IDE et que je fais vérifier de nombreuses erreurs apparaissent..
pourtant j'ai bien fait attention à télécharger les bibliothèques nécessaires '' onewire " et "dallasinstrument"
Voici les les messages erreur:
C:\Users\xxxxx\Documents\Arduino\libraries\OneWire/OneWire.h:57:7: warning: type 'struct OneWire' violates one definition rule [-Wodr]
class OneWire
^
C:\Users\xxxx\Documents\Arduino\libraries\OneWire\OneWire.h:259:7: note: a different type is defined in another translation unit
C:\Users\xxxxx\Documents\Arduino\libraries\OneWire/OneWire.h:68:10: note: the first difference of corresponding definitions is field 'LastDeviceFlag'
bool LastDeviceFlag;
^
C:\Users\xxxxx\Documents\Arduino\libraries\OneWire\OneWire.h:270:13: note: a field of same name but different type is defined in another translation unit
: note: type 'bool' should match type 'uint8_t'
c:\program files\windowsapps\arduinollc.arduinoide_1.8.19.0_x86__mdqgnx93n4wtt\hardware\tools\avr\avr\include\stdint.h:126:22: note: the incompatible type is defined here
typedef unsigned int uint8_t attribute((mode(QI)));
^
C:\Users\xxxxx\AppData\Local\Temp\cckmnESd.ltrans0.ltrans.o: In function `global constructors keyed to 65535_0_ArduinoLED.ino.cpp.o.1921':
:(.text.startup+0x5e): undefined reference to `OneWire::begin(unsigned char)'
collect2.exe: error: ld returned 1 exit status
exit status 1
Erreur de compilation pour la carte Arduino Mega ADK
Et maintenant voilà les ligne de code que j'ai trouvé sur internet:
// Inclusion de la bibliothèque
#include <OneWire.h>
// Connecteur numérique relié à DQ
const byte DS_PIN = 7;
// Création de l'objet associé au DS18B20
OneWire ds(DS_PIN);
//
// Fonction de lecture de la température
//
void getTemperature(float *temperature) {
byte data[9], addr[8]; // Données et Adresse du module DS18B20
// Réinitialisation du bus
ds.reset_search();
// Recherche du capteur
if (!ds.search(addr)) return;
// Vérification de l'adresse reçue
if (OneWire::crc8(addr, 7) != addr[7]) return;
// Vérification du modèle de capteur (DS18B20)
if (addr[0] != 0x28) return;
// Sélection du capteur
ds.reset();
ds.select(addr);
// Lancement de la mesure
ds.write(0x44, 1);
delay(800);
// Resélection du capteur
ds.reset();
ds.select(addr);
// Envoie d'une demande de lecture
ds.write(0xBE);
// Lecture des données
for (byte i = 0; i < 9; i++) {
data = ds.read();
}
// Conversion des données en degrés Celcius
*temperature = ((data[1] << 8) | data[0]) * 0.0625;
}
void setup() {
Serial.begin(115200);
}
void loop() {
float temperature;
// Lecture de la température
getTemperature(&temperature);
// Affichage de la température
Serial.print(F("Temperature : "));
Serial.print(temperature, 1);
Serial.write(176); // Caractère degré
Serial.write('C');
Serial.println();
}
S'il vous plaît vous pouvez m'aider ?