(Page créée avec « {{Tuto Details |Type=Technique |Area=Électronique |Tags=Arduino, bluetooth, Android, |Description=Il s'agit de mesurer une température et d'envoyer l'info vers un affich... ») |
|||
Line 31: | Line 31: | ||
Des bouts de code ont été récupérés sur le web. | Des bouts de code ont été récupérés sur le web. | ||
+ | |||
+ | include <LiquidCrystal.h> | ||
+ | |||
+ | include <OneWire.h> // Inclusion de la librairie OneWire | ||
+ | |||
+ | define DS18B20 0x28 // Adresse 1-Wire du DS18B20 | ||
+ | |||
+ | define BROCHE_ONEWIRE 10 // Broche utilisée pour le bus 1-Wire | ||
+ | |||
+ | OneWire ds(BROCHE_ONEWIRE); // Création de l’objet OneWire ds | ||
+ | |||
+ | // Fonction récupérant la température depuis le DS18B20↵// Retourne true si tout va bien, ou false en cas d’erreur↵boolean getTemperature(float *temp){↵byte data[9], addr[8];↵// data : Données lues depuis le scratchpad↵// addr : adresse du module 1-Wire détecté | ||
+ | |||
+ | if (!ds.search(addr)) { // Recherche un module 1-Wire↵ds.reset_search(); // Réinitialise la recherche de module↵return false; // Retourne une erreur↵} | ||
+ | |||
+ | if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l’adresse a été correctement reçue↵return false; // Si le message est corrompu on retourne une erreur | ||
+ | |||
+ | if (addr[0] != DS18B20) // Vérifie qu’il s’agit bien d’un DS18B20↵return false; // Si ce n’est pas le cas on retourne une erreur | ||
+ | |||
+ | ds.reset(); // On reset le bus 1-Wire↵ds.select(addr); // On sélectionne le DS18B20 | ||
+ | |||
+ | ds.write(0x44, 1); // On lance une prise de mesure de température↵delay(800); // Et on attend la fin de la mesure | ||
+ | |||
+ | ds.reset(); // On reset le bus 1-Wire↵ds.select(addr); // On sélectionne le DS18B20↵ds.write(0xBE); // On envoie une demande de lecture du scratchpad | ||
+ | |||
+ | for (byte i = 0; i < 9; i++) // On lit le scratchpad↵data[i] = ds.read(); // Et on stock les octets reçus | ||
+ | |||
+ | // Calcul de la température en degré Celsius | ||
+ | |||
+ | temp = ((data[1] << 8) | data[0]) * 0.0625; | ||
+ | |||
+ | // Pas d’erreur↵return true;↵} | ||
+ | |||
+ | // initialize the library with the numbers of the interface pins↵LiquidCrystal lcd(12, 11, 5, 4, 3, 2); | ||
+ | |||
+ | void setup() {↵Serial.begin(9600); // Initialisation du port série↵// set up the LCD’s number of columns and rows:↵lcd.begin(16, 2);↵// Print a message to the LCD.↵lcd.print(« Temperature : »);↵} | ||
+ | |||
+ | void loop()↵{↵float temp;↵char c;↵lcd.setCursor(0, 1); | ||
+ | |||
+ | if(getTemperature(&temp)) {↵lcd.print(temp);↵} | ||
+ | |||
+ | if(Serial.available()){↵c = Serial.read();↵} | ||
+ | |||
+ | if(c ==’A’) {↵Serial.print(temp);↵}↵delay(500); | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | |||
|Step_Picture_00=Affichage_de_la_temp_rature_sur_un_afficheur_LCD_et_sur_un_appareil_Android_temp_america_bb1.png | |Step_Picture_00=Affichage_de_la_temp_rature_sur_un_afficheur_LCD_et_sur_un_appareil_Android_temp_america_bb1.png | ||
}} | }} |
Author Bernardet | Last edit 9/12/2019 by Clementflipo
No image yet
Arduino, bluetooth, Android Technique
Cochez cette case si vous considérez ce tutoriel terminé
You entered an invalid page name, with one or many of the following characters :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #