Lecture sonde lambda (O2) Arduino

Bonjour à tous, une petite idée me trotte dans la tête en ce moment, et je me lance!

De nos jours, pour des raisons de normes anti bruits et anti pollution, nos véhicules sont réglés trop pauvre, c’est à dire pas assez d’essence (ou le minimum syndical)

La sonde lambda sur un véhicule sert à surveiller ce mélange et à ajuster l’injection en temps réel. Elle surveille continuellement le ratio air/essence (AFR).

J’ai envie depuis un petit moment, de créer un petit montage arduino pour qu’il puisse lire de façon indépendante une sonde lambda, ce qui me permettrai de régler ma moto, pour me rapprocher d’un ratio de 13, et d’optimiser son comportement moteur (moins d’a-coups)

Une sonde lambda fonctionne entre 0,1 et 1V, 0,45V correspond à 1g d’air / 14.7g d’essence = Lambda de 1

Pensez-vous que je peux me lancer dans le montage? Je pense devoir faire un petit pont diviseur pour pouvoir me servir d’un port analogique

Il y a des modèles à 2, 3 et 4 fils. Peu importe le modèle, seul 2 fils nous intéresse à chaque fois, les autres ne sont que pour faire préchauffer la sonde (pour les modèles les plus récent)

Mes questions sont:

  • le montage est-il réalisable? Je me demande si une arduino peut gérer, mais si la lambda fonctionne comme une simple sonde de température, je ne pense pas qu’il y ait de problème

  • j’ignore si elle nécessite une alimentation quelconque, ou si elle agit comme une simple résistance variable, tout ce que je sais c’est qu’elle renvoie des informations comprises entre 0,0V et 1V

Un grand merci!

Bonne journée

Courbe_Lambda.jpg

La sonde produit une tension qui varie en fonction du taux d'oxygène.... c'est cette tension qu'il faut mesurer.

http://calibra-classic.org/pages/lambda.htm

analogread():

https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/

C'est évident en plus :roll_eyes: Merci

Niveau branchement, simplement un coté sur un +5V, l'autre sur un port analogique? Le montage ne nécessitera pas de pont diviseur?

Mais a priori le projet vous semble réalisable ?

Merci en tout cas

Je n’ai actuellement pas le matériel disposition, mais je pense à un montage de ce type (voir pièce jointe)

Brasiligun: ...

Une sonde lambda fonctionne entre 0,1 et 1V, 0,45V correspond à 1g d’air / 14.7g d’essence = Lambda de 1

Pensez-vous que je peux me lancer dans le montage? Je pense devoir faire un petit pont diviseur pour pouvoir me servir d'un port analogique

Il y a des modèles à 2, 3 et 4 fils. Peu importe le modèle, seul 2 fils nous intéresse à chaque fois, les autres ne sont que pour faire préchauffer la sonde (pour les modèles les plus récent)

Mes questions sont:

  • le montage est-il réalisable? Je me demande si une arduino peut gérer, mais si la lambda fonctionne comme une simple sonde de température, je ne pense pas qu'il y ait de problème

  • j'ignore si elle nécessite une alimentation quelconque, ou si elle agit comme une simple résistance variable, tout ce que je sais c'est qu'elle renvoie des informations comprises entre 0,0V et 1V

Un grand merci!

Bonne journée

bonsoir Je ne suis pas specialiste de ce genre de capteur mais si "en/sur" 2 fils il delivre une tension comprise entre 0 et 1V il est simple de valider un test de mesure AD sur arduino "basique/ UNO/MEGA" en utilisant la reference interne (donnée pour 1.1V) pour obtenir la meilleure dynamique

Super merci, je ne connaissais pas la réf interne. Mais effectivement, avec une tension de 1,1V je vais pouvoir avoir un pas beaucoup plus précis!

Je vais essayer ce weekend, mais voilà un petit début:

// Sonde lambda, branchée sur la broche analogique 0
const int lambda = 0;
int valeurLue;
float tension;
 
void setup()
{
    //tension de référence de 1.1V
    analogReference(INTERNAL);
    Serial.begin(9600);
}
 
void loop()
{
    //on convertit en nombre binaire la tension lue
    valeurLue = analogRead(lambda);
    
    //Valeur brute en tension
    tension = valeurLue * 1.1 / 1023;
    
    //Valeur lue sur la liaison série
    Serial.print("valeurLue = ");
    Serial.println(valeurLue);
    
    //Tension calculée
    Serial.print("Tension = ");
    Serial.print(tension,2);
    Serial.println(" V");
    
    Serial.println();
    delay(500);
}

EDIT: j’imagine que le montage aura cette tête là. Je suis à votre écoute s’il faut ajouter un petit condo ou garder la pull-down pour que le signal soit propre au maximum

Capture.JPG

Capture2.JPG

Salut,

J’ai exactement le même projet sauf sur une vieille voiture pour régler mieux le carbu.

Je voulais associer un ecran lcd pour la lecture de la valeur AFR.

As tu avancé ?
Veux tu que l’on travaille ensemble sur le projet ?

Elian

elian67: Salut,

J'ai exactement le même projet sauf sur une vieille voiture pour régler mieux le carbu.

Je voulais associer un ecran lcd pour la lecture de la valeur AFR.

As tu avancé ? Veux tu que l'on travaille ensemble sur le projet ?

Elian

bonjour attention au schema , il n'est pas bon l sonde lambda doit simplement etre connectée entre A0 et GND (elle est vue comme un generateur de tension )

Tout à fait merci pour la remarque

Bonjour,

je déterre un peu ce post, :confused: j'ai branché une sonde lamba 4 fils 2 blancs un gris et noir (4 fil Universel O2 Capteur D'oxygène Pour Citroen Pour Ford pour Hyundai Renault pour Volvofor VW Lambda O2 Capteur 0258986602) en utilisant le sketch ci-dessus avec une mega, les retours sont bizarre, quand je chauffe la sonde avec un petit chalumeau la valeur descend à zéro à froid j'ai une valeur entre 0.8v et 1.1v, il n'y aucune réactivité, pour la mega la valeur internal est passé à internal 1v1. Merci pour votre aide.

Je suis intéressé par ce sujet, quelqu'un a avancé ?