Open G-Boronad opened 2 years ago
Bonjour M. Boronad,
Le capteur étanche DS18X20 ne fonctionne malheureusement pas simplement avec des commandes micropython classiques sur micro:bit comme avec les autres cartes type ESP32, STM32 ...
"The code doesn't work. It requires an oscilloscope to get the timings correct. The big number in the sleep sub routine (register 7) needs to be reduced and possibly also the number of register 0 needs to be reduced before calling the sleep sub routine"
Nous n'avons pas les compétences au sein de Vittascience pour faire de l'assembleur en micropython. En fait, c'est le même principe qu'avec le capteur DHT11 pour micro:bit, c'est de l'assembleur-micropython. Pourquoi ça marche bien avec les autres cartes mpy ? De ce que j'ai compris, les STM32 et ESP32 contiennent la librairie dht écrite en C avant build du firmware (dht11). Elles contiennent également onewire écrite en C avant build du firmware (ds18b20). En fait, micropython sur micro:bit est très lent, donc ne peut pas gérer les délais en microseconde pour lire et écrire sur la broches, donc tous les délais sont différents. Source: https://github.com/rhubarbdog/microbit-ds18b20
Well, more so it was never turned on. Micro:bit v1 didn't have it and neither does v2.
To enable it and get the DS18x20 driver working requires a bit of work:
- ability for pins to be in OPEN_DRAIN mode
- implement mp_hal_pin_od_low, mp_hal_pin_od_high
- implement mp_hal_quite_timing_enter/exit, mp_hal_delay_us_fast
- enable MICROPY_PY_ONEWIRE
- freeze in the onewire.py bus driver
Then, the ds18x20.py driver in micropython-lib will work.
redirecting thread: https://github.com/microbit-foundation/micropython-microbit-v2/issues/162
Best regards, Léo Meillier
Merci pour la réponse. En fouillant un peu, je vois que certains y sont parvenus: https://bxy.dfrobot.com.cn/bit_ds18b20 Merci encore Gwendal
Bonjour, Je suis en train de mettre en place un certain nombre de TP avec la micro:bit en physique chimie. Je voudrais faire fonctionner le capteur de température DS18B20 avec une micro:bit V2. Savez vous si il existe une bibliothèque python pour cette carte? Cela nécessiterait d'implémenter le protocole one_wire qui pourrait a priori fonctionner sur cette carte. Malheureusement cela dépasse largement mes compétences. Peut être pourrez vous m'éclairer? Par avance merci. G.Boronad