Bonjour,
J'utilise le capteur oxygene gotronic :
avec un picaxe 20M2 branché sur B.7 et B.5.
En interrogeant le capteur I2 à l'adresse 0x70, il me renvoit deux valeurs à 255,
Dans la doc il est précisé que deux valeurs de 255 sont ou un mauvais cablage, ou un mauvais logiciel.
1) pour le cablage doit on obligatoirement mettre deux résistance de 4,7K sur les reseau SDA, SDI?
2) pour le logiciel, doit on utiliser hi2in ou readi2c?
Merci pour vos réponses.
Voici mon code pour le capteur:
hi2csetup i2cmaster, 0x70, i2cslow, i2cbyte
pause 200
main:
hi2cin (b15,b16)
sertxd(#b15,#b16,";",10)'envoi des donnees au pc
pause 2000
goto main
resultat dans la console terminal : 255255;
je sèche. pourquoi cela ne fonctionne-t-il pas?
----------------------
Edition :
J'avance un peu.
Dans la doc de la lib pour raspberry, il est écrit :
## Oxygen data register
OXYGEN_DATA = 0x10
## calbration state
CALIBRATION_STATE = 0x13
## calbration sensor
CALIBRATION_SENSOR = 0x18
## I2C address
E_OXYGEN_ADDRESS_0 = 0x70
E_OXYGEN_ADDRESS_1 = 0x71
E_OXYGEN_ADDRESS_2 = 0x72
E_OXYGEN_ADDRESS_3 = 0x73
CALIBRATION_20_9 = 0x01
CALIBRATION_99_5 = 0x02
CALIBRATION_CLEAR = 0x03
Il me faut donc lire le registre 0x10 et non 0.
Ensuite il faut lire 3 octets et non 2 car j'interprète ce code :
def read_oxygen_concentration(self):
'''!
@brief Get oxygen concentration in the air unit VOL
@return concentration
'''
rslt = self.read_reg(OXYGEN_DATA, 3)
vol = float(rslt[0]) + float(rslt[1]) / 10.0 + float(rslt[2]) / 100.0
return vol
mon terminal me retourne maintenant 255255255;
cela ne fonctionne toujours pas. Pourquoi ?
J'utilise le capteur oxygene gotronic :
Capteur électrochimique O2 Gravity SEN0496
Capteur électrochimique compatible Gravity de DFRobot permettant de mesurer le niveau d'oxygène (O2) présent dans l'atmosphère.
www.gotronic.fr
En interrogeant le capteur I2 à l'adresse 0x70, il me renvoit deux valeurs à 255,
Dans la doc il est précisé que deux valeurs de 255 sont ou un mauvais cablage, ou un mauvais logiciel.
1) pour le cablage doit on obligatoirement mettre deux résistance de 4,7K sur les reseau SDA, SDI?
2) pour le logiciel, doit on utiliser hi2in ou readi2c?
Merci pour vos réponses.
Voici mon code pour le capteur:
hi2csetup i2cmaster, 0x70, i2cslow, i2cbyte
pause 200
main:
hi2cin (b15,b16)
sertxd(#b15,#b16,";",10)'envoi des donnees au pc
pause 2000
goto main
resultat dans la console terminal : 255255;
je sèche. pourquoi cela ne fonctionne-t-il pas?
----------------------
Edition :
J'avance un peu.
Dans la doc de la lib pour raspberry, il est écrit :
## Oxygen data register
OXYGEN_DATA = 0x10
## calbration state
CALIBRATION_STATE = 0x13
## calbration sensor
CALIBRATION_SENSOR = 0x18
## I2C address
E_OXYGEN_ADDRESS_0 = 0x70
E_OXYGEN_ADDRESS_1 = 0x71
E_OXYGEN_ADDRESS_2 = 0x72
E_OXYGEN_ADDRESS_3 = 0x73
CALIBRATION_20_9 = 0x01
CALIBRATION_99_5 = 0x02
CALIBRATION_CLEAR = 0x03
Il me faut donc lire le registre 0x10 et non 0.
Ensuite il faut lire 3 octets et non 2 car j'interprète ce code :
def read_oxygen_concentration(self):
'''!
@brief Get oxygen concentration in the air unit VOL
@return concentration
'''
rslt = self.read_reg(OXYGEN_DATA, 3)
vol = float(rslt[0]) + float(rslt[1]) / 10.0 + float(rslt[2]) / 100.0
return vol
mon terminal me retourne maintenant 255255255;
cela ne fonctionne toujours pas. Pourquoi ?
Last edited: