Modification résolution DS18B20

Bonjour,
Je voudrais savoir comment réduire ou modifier la résolution du capteur DS18B20 en 9-10-11 ou 12 bits.
Merci par avance,
Cordialement,
Alain

il y a de nombreuses bibliothèques pour le DS18B20

par exemple celle de @robtillaart

offre dans son constructeur la possibilité de choisir le résolution

la valeur par défaut est 9

les autres bibliothèques ont généralement une option similaire. Par exemple si vous prenez

vous avez une fonction

qui permet de préciser la résolution

Bonjour,
Merci pour votre réponse.
J'utilise la bibliothèque Dallas qui ne permettrait pas cette modification ?
Cordialement
Alain

Bonjour @retraite

setResolution() existe également dans la bibliothèque DallasTemperature de Miles Burton


A définir globalement pour tous les capteurs présents sur le bus ou capteur par capteur : 

	// get global resolution
	uint8_t getResolution();

	// set global resolution to 9, 10, 11, or 12 bits
	void setResolution(uint8_t);

	// returns the device resolution: 9, 10, 11, or 12 bits
	uint8_t getResolution(const uint8_t*);

	// set resolution of a device to 9, 10, 11, or 12 bits
	bool setResolution(const uint8_t*, uint8_t,
			bool skipGlobalBitResolutionCalculation = false);

Merci pour cette information, mais en tant que débutant je voudrais savoir la syntaxe à écrire dans le programme pour ne pas avoir d'erreur à la compilation.
Cordialement
Alain

je viens de faire un ajout au messsage précédent avec la syntaxe

Pardonnez moi mais c'est un peu du chinois pour moi, comment intégrer tout cela dans mon programme.
Alain

si vous regardez les exemples, vous verrez comment faire

...

si vous postez votre programme, on peut vous dire exactement comment faire aussi

Certes, comment faire pour poster le programme SVP.
C'est vrai que ce serait plus simple.
Alain

  • Assurez vous d'indenter le code correctement dans l'outil de développement avant de le copier pour le coller ici. (Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)

  • ensuite vous sélectionnez tout le code

  • puis dans le menu édition vous choisissez
    Copier pour le forum
    (ça va copier le code et rajouter au début et à la fin du code des balises pour que le code apparaisse correctement formaté ici)

  • ensuite vous collez simplement dans votre post ce que vous avez copié

Vous allez me trouver stupide mais je ne comprends pas la méthode.
Pour parlez "d'indenter" le programme, avec ctrl T, je n'ai jamais vu ce verbe (à faire où)
Je peux sélectionner mon programme qui est dans l'IDE arduino
Où est le menu "édition" ?
Comment coller le résultat sur notre dial ?
Mille excuses
Alain

dans la barre des menus de l'application...


vous ne savez pas copier / coller du texte ?
il y a le raccourci Clavier ou dans le menu édition du navigateur web, il y a "coller"


indenter veux dire organiser le code en sortes paragraphes et sous paragraphes, avec des décalages en début de lignes pour représenter les blocs

par exemple si votre code ressemble à cela

void setup() {pinMode(LED_BUILTIN, OUTPUT); Serial.begin(115200);}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
    delay(1000);                      // wait for a second
    
digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
        delay(1000);                      // wait for a second

        if (Serial.available()) 
{Serial.print("reçu:"); 
         
Serial.println((char) Serial.read());
                }
   
       }

C'est moche et illisible.

Indenter le code, ça veut dire l'organiser pour qu'il soit lisible

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second

  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second

  if (Serial.available())
  {
    Serial.print("reçu:");
    Serial.println((char) Serial.read());
  }
}

Lisez les recommandations listées dans "Les bonnes pratiques du Forum Francophone”


```cpp
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
// Initialisation du capteur de température
OneWire oneWire(2);  // Broche 2 pour la communication de données
DallasTemperature sensors(&oneWire);
float calibrationOffset = 0;  // Ajustez cette valeur selon la calibration
// Initialisation de l'écran LCD ; .............
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup() {
  // Démarre les communications avec le capteur et l'écran
  sensors.begin();
  lcd.begin(16, 2);
  lcd.print("Alain  Veronique");
  // Affichage initial sur LCD
  lcd.setCursor(0, 2);
  lcd.print(" Temp:");
}
void loop() {
  sensors.requestTemperatures();
  float temperature = sensors.getTempCByIndex(0) + calibrationOffset;
  lcd.setCursor(7, 1);
  lcd.print(temperature);
  lcd.print((char)178);
  lcd.print("C");
  delay(2000);  // Mise à jour toutes les secondes
}

Voici mon code issu de l'IDE
Je vous précise tout de même que j'ai 73 ans et que j'ai débuté Arduino il y a un mois ce qui explique que je ne peut tout connaître.
Cordialement
Alain

Un sensors.setResolution(9);

après le sensors.begin();

devrait faire l'affaire pour la plus basse résolution et donc la conversion la plus rapide

73ans , c'est jeune par rapport à certains aidants de ce forum, aucun d'entre eux n'ayant la prétention de tout connaître

Il me surprendrait beaucoup que Dallas ait écrit une bibliothèque.
Dallas est une société qui a été achetée par la société Maxim à une époque où Arduino n'existait pas encore.
Il y a maintenant quelques années, Maxim a été acheté par la société Analog Devices.

Quand tu cites un nom de bibliothèque, il faut donner le nom de son auteur.
Gardes bien en tête que l'univers Arduino est un peu un gros foutoir et que son univers est plus impitoyable que celui de la série télé Dallas :grinning:

Bernard
Un jeune de presque 79 ans.

Pas de souci - on a tous commencé sans rien savoir et a tout âge ! Ça permet de remuer les neurones c’est très bien :slight_smile:

Bonsoir,

Merci à al1fch pour sa solution, ça fonctionne très bien.

Bonne soirée à tous

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