Go Down

Topic: Commande et information inversé  (Read 580 times) previous topic - next topic

frenesik

Bonsoir à tous,

Étant débutant j'ai fais l'acquisition des différents modèles arduino uno et nano (modèle chinois), pour pouvoir m'amuser avec ses petits :D. Hors tout les commandes sont inversé, LOW allume, HIGH éteinds, quand je branche des capteurs sensors par exemple un capteur de sol humidité, les valeurs sont inversé aussi 0 = mouillé et 1023 = sec, avez vous ce problème, ou est ce normal ? Je débute donc je cherche à comprendre.

Merci à vous.

frenesik

Bon en cherchant un peu plus, j'ai trouvé une solution qui me permet de corriger le soucis :

#define HIGH 0x0
#define LOW 0x1

&

 val = map(val, 1023, 0, 0, 1023);

si ça peut aider qqun :)

_pepe_

#2
Sep 10, 2017, 12:26 pm Last Edit: Sep 10, 2017, 12:29 pm by _pepe_
Bonjour

Redéfinir les constantes HIGH et LOW n'est pas très pertinent.

C'est le montage qui détermine si le programme obtient 0V quand le capteur est activé et 5V quand il ne l'est pas, ou bien s'il allume une led à l'aide d'un niveau bas (0=LOW=0V) et l'éteint avec un niveau haut (1=HIGH=5V).

C'est notamment le cas :
- si par exemple un capteur dont la conductance augmente avec la grandeur mesurée est placé entre l'entrée et GND et est accompagne d'une résistance de rappel entre l'entrée et 5V ;
- si une led est connectée avec sa résistance de limitation entre la sortie et 5V, cathode tournée vers l'entrée.

Pour rendre la lecture du code plus compréhensible, il est préférable de redéfinir des constantes correspondant aux états obtenus puis d'utiliser celles-ci dans le programme, comme par exemple :

Code: [Select]
#define LED_ETEINTE HIGH
#define LED_ALLUMEE LOW

#define HUMIDE 0
#define SEC 1023

...

digitalWrite( pinLed, LED_ALLUMEE );

float taux = (analogRead(pinCapteur)-SEC)*100.0 / (HUMIDE-SEC);

Jambe

LOW allume, HIGH éteinds,
Ça dépend aussi de ce que tu "allumes" et "éteins" et comment "ce" est câblé.

Une led avec l'anode au +5v et la cathode sur une broche s'allumera effectivement avec un état LOW.

Pour être sûr: tu as mesuré au multimètre ce que vaut un HIGH et un LOW?

trimarco232

Quote
Redéfinir les constantes HIGH et LOW n'est pas très pertinent
Bonjour,
c'est gentiment dit, en fait c'est suicidaire pour le reste !

Go Up