Capteur SGP30 avec Flowcode 4.

Forum de support pour les locuteurs de la langue française qui souhaitent écrire dans leur langue maternelle.

Moderator: Benj

Post Reply
oliviermalherbe
Posts: 10
Joined: Mon Jan 13, 2020 4:00 pm
Been thanked: 1 time
Contact:

Capteur SGP30 avec Flowcode 4.

Post by oliviermalherbe »

Bonjour à tous,

Je cherche utiliser le capteur TVOC/eCO2 SGP30 en programmant sur flowcode 4 avec les routines I2C.
Quelqu'un aurait-il déjà travaillé sur ce sujet ?
J'ai réalisé un programme en essayant d'utiliser les routines I2C mais en info de retour, je n'ai que 255.
Je joints une copie de mon programme ainsi que la doc du capteur, si quelqu'un peut m'aider.

Cordialement.

Olivier.
Attachments
Flowcode1.fcf
(10.5 KiB) Downloaded 96 times

User avatar
Benj
Matrix Staff
Posts: 15312
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Has thanked: 4803 times
Been thanked: 4314 times
Contact:

Re: Capteur SGP30 avec Flowcode 4.

Post by Benj »

Bonjour Olivier,

Il semble que l'adresse 0x58 puisse être l'adresse 7 bits et donc pour vos opérations d'écriture, vous devez utiliser (0x58 << 1) = 0xB0 et pour votre opération de lecture au lieu de 0x59, utilisez 0xB1.

Votre lecture n'est pas tout à fait correcte. Vous avez actuellement ceci.

Hello Olivier,

It looks like the address 0x58 might be the 7-bit address and so for your write operations you should use (0x58 << 1) = 0xB0 and for your read operation instead of 0x59 use 0xB1.

Your read isn't quite correct. You currently have this.

Start
Transmit_Byte (0x58)
Trasnmit_Byte (Register Address MSB)
Trasnmit_Byte (Register Address LSB)
Stop
Restart
Transmit_Byte (0x59)
Receive_Byte(0)
Receive_Byte(0)
...
Receive_Byte(0)
Receive_Byte(0)
Stop

Il devrait plutôt ressembler à quelque chose de plus comme ça.

It should instead look something more like this.

Start
Transmit_Byte (0xB0)
Trasnmit_Byte (Register Address MSB)
Trasnmit_Byte (Register Address LSB)
Restart
Transmit_Byte (0xB1)
Receive_Byte(0)
Receive_Byte(0)
...
Receive_Byte(0)
Receive_Byte(1)
Stop


Votre boucle est While 10 mais cela va actuellement boucler pour toujours car 10 sera toujours vrai. Cela devrait être changé pour boucler 10 fois dans les propriétés de l'icône de boucle.


Your loop is While 10 but this will currently loop forever because 10 will always be true. This should be changed to loop 10 times in the loop icon properties.


Assurez-vous également d'avoir des résistances de rappel externes à 1,8 V entre 1K et 10K sur les lignes SDA/SCL. Le 1,8 V de la tension de votre microcontrôleur PIC peut être un problème. Avez-vous un circuit de décalage de niveau pour vous aider ?

J'espère que cela t'aides.


Also make sure you have external pull up resistors to 1.8V between 1K and 10K on the SDA/SCL lines. The 1.8V to your PIC microcontroller voltage might be a problem do you have a level shifter circuit present to help with this?

Hope this helps.

oliviermalherbe
Posts: 10
Joined: Mon Jan 13, 2020 4:00 pm
Been thanked: 1 time
Contact:

Re: Capteur SGP30 avec Flowcode 4.

Post by oliviermalherbe »

Bonjour Ben,

Merci pour votre réponse rapide.
Je n'avais pas remarqué le décalage pour l'adresse... J'ai cherché pendant des heures... :lol:

J'ai fait les modifications et cela fonctionne parfaitement.
Je vous envoie mon programme.

Encore merci pour votre aide précieuse.
Cordialement.

Olivier.
Attachments
Flowcode1.fcf
(14.67 KiB) Downloaded 95 times

Post Reply