[RESOLU] Besoin d'aide sur le code pour un Compteurs de passage

Bonjour, j'ai pour projet de faire un compteurs de passage Arduino depuis un moment mais je n'y arrive pas et je suis bloqué au niveau du code.

Voici ce que je possède pour ce projet :

Cette afficheur :*********
Et ces capteurs : *******

Mon idée serait que lorsqu'un objet passe devant le ou les capteurs, cela rajouterai +1 sur l'afficheur. Le problème c'est que je n'y arrive pas au niveau du code donc si quelqu'un pouvait m'aider ce serait parfait. J'ai vraiment besoin d'aide.

Merci d'avoir lu !

Peut-être que si tu publiais ton code ce serait plus facile pour t'aider

Un fil de discussion qui pourrait t'intéresser

Bonjour,

Il faut que tu comptes le nombre de passages de l'état "non présent" à l'état "présent". Pour cela il faut que tu mémorises l'état du capteur et que tu compares à l'état mémorisé au cycle précédent.

void setup()
{
  Serial.begin(115200);
}

void loop()
{
  static unsigned compteur=0;
  static bool presencePrecedente=false;
  bool presence=!digitalRead(A0);

  if (presence!=presencePrecedente)
  {
    presencePrecedente=presence;
    if (presence)
    {
      compteur++;
      Serial.println(compteur);
    }
    delay(100); // pour éviter les multi détections
  }
}

Après tu n'as plus qu'a l'afficher sur ton afficheur.

Remarque: le capteur que tu utilises est très sensible à la lumière ambiante et à la réflexivité de la cible.

Dans les programmes en exemple avec la librairie, il y a toutes les infos nécessaires pour faire fonctionner l'affichage.
As-tu déjà réussi à faire afficher quelque chose?

Comme apparemment la librairie que tu utilises n'affiche que des chaines de caractères, il suffit de convertir compteur en chaine.

#include <Wire.h>
#include <TM1650.h>

TM1650 display;

void setup()
{
  Serial.begin(115200);

  Wire.begin();
  display.init();
}

void loop()
{
  static unsigned compteur=0;
  static bool presencePrecedente=false;
  bool presence=!digitalRead(A0);

  if (presence!=presencePrecedente)
  {
    presencePrecedente=presence;
    if (presence)
    {
      compteur++;
      Serial.println(compteur);
      char buf[8];
      sprintf(buf,"%4d",compteur);
      display.displayString(buf);
    }
    delay(100); // pour éviter les multi détections
  }
}

Je te l'ai expliqué sommairement au post #4. Le programme compte le nombre de passages de l'état "non présent" à l'état "présent".

Le plus simple pour gérer plusieurs capteur est de dupliquer le code et de changer le nom de la variable presencePrecedente et bien sur de l'entrée et au lieu de faire compteur++ tu fais compteur+=2 par exemple.

Le plus élégant serait d'utiliser une boucle et des tableaux.

Qu'est ce que tu veux faire? Un monnayeur?