Go Down

Topic: comptage d'objets par minute ( aide ) (Read 5 times) previous topic - next topic

fdufnews

#20
Jan 14, 2011, 08:48 am Last Edit: Jan 14, 2011, 08:49 am by fdufnews Reason: 1
Quote
mais j'ai un reproche à faire ,à chaque fois que je pose une question sur un forum français , on me répond par des questions

Si on pose des questions c'est qu'on ne veut pas répondre à coté de la plaque. Par exemple au début il n'y avait pas d'information sur la cadence et sur le fait que les objets à compter sont bien séparés les uns des autres.

Ceci étant dit, je pense que le capteur est mal adapté au besoin. Une bête barrière infrarouge serait certainement plus fiable. Un capteur de distance comme celui que tu proposes nécessite de déterminer des seuils. Si les objets à compter ne sont pas toujours à la même distance du capteur ou si leurs bords ne sont pas parallèles (bidons circulaires ou boites posées de travers) tu risque de rencontrer des difficultés.

Quote
Le plus simple pour ton code serait d'utiliser les interruptions : avec un ampli-op monté en comparateur à hystérésis, tu connectes le capteur au comparateur que tu règles sur place avec deux potentiomètres.

On parle de quelques pièces par minutes, il suffit de connecter la sortie du capteur sur une entrée analogique de l'arduino et le comparateur peut être réalisé par le logiciel. Le réglage peut alors se faire avec 2 boutons ou un potentiomètre sur une autre entrée analogique. Le problème c'est plutôt la non linéarité de l'information délivrée par le capteur (en particulier le rebroussement à 15cm) qui peut rendre le réglage délicat. C'est pourquoi je pense que pour ce besoin une barrière infrarouge est autrement plus simple à mettre en oeuvre.

Le Pnume

Comme mon nombre de message l'indique, je suis nouveau sur ce forum et je ne connais pas encore forcement toutes les 'coutumes' du lieu mais je participe à plusieurs forum techniques sur d'autres sujets.

Si j'ai pris le temps de poser mes questions c'est que ton sujet m'intéressais mais que j'estimais que les informations données dans le post d'origine étaient insuffisantes.
Alors si tu me dis que j'ai perdu mon temps à essayer de comprendre, je t'assure que je ne recommencerais pas. Sur certain forum ta remarque se solderait par un plonk généralisé.
Je n'ai absolument pas la prétention d'être un hacker arduino que je découvre progressivement mais je conseil toujours la lecture de ce document car les principes qu'il décrit son vrai qq soit le domaine technique concerné http://www.linux-france.org/article/these/smart-questions/smart-questions-fr.html

Serge

zener57

bonjour
Désolé Serge si je t'ai offensé ,car ce n'était pas le but ,et ce n'est pas non plus parce que tu es nouveau sur ce forum que tu n'as pas les connaissances .pour ma part je bricole (et j'arrive à me débrouiller quand meme) .disons que j'aurai du poser la question differemment (comment faire un comptage (cellule ,IR etc ...) dans un timer de 60 s )
pour fdufnews ,je ne cherche pas à faire un instrument de haute précision (pour info) car comme je l'ai cité (un chrono en main et comptage par visu )ce n'est pas précis ,je m'accorde une erreur (+ ou - 2 boites) ,j'ai pensé au  Sharp (E R infrarouge) facile à mettre en place 3 fils.(je l'ai testé à l'arrache ça me parait correcte)
effectivement la plupart des boites sont cylindriques  mais il y a un temps d'arret (remplissage boites) et elles sont guidées (ne peuvent pas etre de travers),je pense avoir tout dit .
merci à tous pour votre implication
William

zener57

récapitulatif
Pardon , il y a quand mème une précision ( le temps , 1 mn )   ::)
@+

zener57

#24
Jan 14, 2011, 04:57 pm Last Edit: Jan 14, 2011, 05:20 pm by zener57 Reason: 1
Salut Jean-François
Chose promise chose du, j'ai donc utilisé ton code et apporté quelques modifs (j'avoue que j'ai un peu bricolé ) mais ça a l'air de tenir la route ,comme je ne possède pas de Devree (conditioneuse) chez moi  ;D ,j'ai simulé le passage des boites devant le capteur ,j'ai pris ma paluche  ;D
il me reste la gestion de l'ecran pour le déclenchement et la remise à zero du comptage (ça va le faire,c'est à ma portée  ::) ) voici le code ,dans le cas ou tu trouve une solution + simple ou un bug.


[edit]long oldtime=0;
long time=60000; //  60000 millisecondes = 1 minute
int boite=0;
int ledPin =  9;            // LED connected to digital pin 9
int sensorPin = 1;        // value read from the sensor
int outputValue = 0;        // value output to the PWM (analog out)

void setup(){
 pinMode(ledPin, OUTPUT);
   Serial.begin(9600);
   attachInterrupt(0,comptage,RISING);  // capteur sur digital pin 2
}

void loop(){
/*  la bricole est ici comme le capteur est plutot destiné à la distance
    j'ai utilisé la sortie digit 9 pour le déclenchement de l'interruption
    si il y a une autre solution ,je suis tout Ouïe
*/

int analogValue = analogRead(sensorPin);
 outputValue = map(analogValue, 250, 900, 0, 255);
 if (outputValue<0)
digitalWrite(ledPin, LOW);
     else
    digitalWrite(ledPin, HIGH);
    // wait 20 milliseconds for the analog-to-digital converter
 delay(20);

oldtime = millis();
//  Serial.println(oldtime/1000);// afficher le timer en secondes pour le test horloge

if (oldtime>=time)
{
 detachInterrupt(0);
}
}

void comptage(){
 if (digitalRead(0))
 {
   boite++;
   Serial.println(boite);// afficher le compteur boite(s)
 }
}[/edit]



Go Up