DHT11 et DuinOS

Bonjour à tous,
Encore une question à propos de DuinOS. Je suis en train d'essayer d'utiliser un capteur température et humidité DHT11 avec DuinOS. L'acquisition des données requiert des timings précis. Comment faire pour récupérer ces données? Bloquer le reste du soft? De quelle manière?

Merci d'avance pour vos conseils.

Bonjour,

J'ai répondu à ta question pas plus tard qu'hier et dans un de tes topic :wink:

Oui j'ai bien tenté cette technique. Ca fonctionne très bien pour le LiquidCrystal mais pas pour le DHT11.

Thibthib02:
Oui j'ai bien tenté cette technique. Ca fonctionne très bien pour le LiquidCrystal mais pas pour le DHT11.

Tout ce que tu met en section critique est exécuté de manière contigu sans qu'aucune autres taches ne puisse perturber ton morceau de code.

Si tu as mit la partie DHT11 en section critique et que cela ne fonctionne pas c'est que quelque chose ne marche pas de base, ou que tu utilise une librairie qui utilise un timer ou une interruption pour fonctionner.

Effectivement, la librairie utilise un timer. Il ne me reste plus qu'à trouver un nouveau capteur...

Thibthib02:
Effectivement, la librairie utilise un timer. Il ne me reste plus qu'à trouver un nouveau capteur...

Ou demander son avis à l'ami google avec les mots clef "arduino dht11 without timer" :wink:

-> DHT11 @ Arduino @ t-o-f

Oui, j'avais déjà fait la recherche. Il y a un petit :

delay(18);

et aussi :

delayMicroseconds(40);

delayMicroseconds n'est pas affecté par la désactivations des timers (c'est une fonction basé sur un nombre n de cycles cpu).

Pour ceux qui est de delay() ce n'est pas le "delay() arduino" mais le "delay() FreeRTOS" (base derrière DuinOS) qui est utilisé.
A mon avis même avec en zone critique delay() devrait fonctionner correctement (à tester).

Sinon :

suspendTask(le_nom_de_ton_autre_tache);
.. ton code DHT11
resumeTask(le_nom_de_ton_autre_tache);

J'ai déjà essayé les deux (zone critique et suspendre toutes les autres taches) mais rien à faire.

Thibthib02:
J'ai déjà essayé les deux (zone critique et suspendre toutes les autres taches) mais rien à faire.

Tu peut essayer de partir sur un capteur analogique alors, genre HR-202 ?
Comme ça plus de probléme de communication.

Je dois avoir des lm35 pour la température au boulot. Je verrais ça à la rentrée. Me restera à trouver des HR-202. Merci pour tes conseils.