Où sommes nous ?

Retour

1-wire sur ESP8266 sans résistance de pull-up

Un exemple complet d'utilisation de 1-wire a été abordé sur la page "mesure de température" et nous avons utilisé une résistance de tirage comme préconisée par Dallas dans les specs du bus. Cependant, on peut s'en affranchir ... en utilisant le pullup interne à l'ESP.

Bien choisir le PIN

Tous les GPIOs de l'ESP ont une résistance de pullup débrayable, à l'exception du GPIO16 qui dispose d'un pulldown, tirage vers la masse donc (mais, de toutes façons, on gagnera à ne l'utiliser que pour le DeepSleep). Et comme certains ont déjà un rôle dans le fonctionnement interne de l'ESP, le plus simple reste encore de choisir parmi les GPIOs 4, 5, 12, 13 et 14 pour notre bus 1-wire.

Côté logiciel

A l'heure où j'écris ces lignes, la librairie OneWire Version 2.3 ne permet pas d'activé le Pull-up : je l'ai donc forké ma propre version et ajouté un argument au constructeur pour le faire (vous pouvez modifier vous-même les sources : une seule ligne est à modifier dans begin())


Visitez :
La liste de nos voyages
Nos sorties Ski et rando
Copyright Laurent Faillie 2001-2024
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso.
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution.
Visites durant les 7 derniers jours Nombre de visites au total.

Vous pouvez laissez un commentaire sur cette page.

  Le Mercredi 30 Septembre 2020,"Laurent" a écrit à propos de cette page  

Ca n'a rien d'étonnant que ça ne fonctionne pas avec une Weemos D1 R2 car ils y ont mis déjà des résistances de pull-up (ou down) ce qui fait que la résistance interne ne peut plus recharger les sondes.


Le problème ne vient donc pas de mon patch mais de la carte.


  Le Dimanche 03 Mai 2020,"PHILIPPE LE BESCOND" a écrit à propos de cette page  

je viens de tester la librairie OneWire modifiée sur une carte Weemos D1 R2 standard et un capteur DS18B20 sans res de 4.7 k : ça ne marche pas... capteur non detectée...


le meme programme avec la librairie OneWire standard et le capteur avec res de 4.7 k sur la meme carte (GPIO 5 = D1) marche très bien...


je laisse donc tomber cette librairie (nota : sur Arduino mega, idem, activer la res de pull up de 20k ne marche pas... à mon avis il faudrait moins de 10 k pour bien activer le bus Onewire )