Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



Détection de la couleur d'une LED d'état d'un brûleur fuel


 
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Projets -> Vos projets
Sujet précédent :: Sujet suivant  
Auteur Message
mmikee02
Débutant

Hors ligne

Inscrit le: 21 Déc 2013
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Dim 22 Déc - 16:22 (2013)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel Répondre en citant

PublicitéSupprimer les publicités ?
Bonjour, j'ai 1 projet qui me trotte dans la tête depuis 1 temps certain....
Comme dit dans le titre, j'aimerais avoir 1 retour d'état de mon brûleur en fonction de sa led témoin :
orange : il préchauffe
vert : il tourne Okay
rouge : il est en défaut. Evil or Very Mad
Tout ça dans le but d'asservir ensuite les circulateurs, qui ne dépendent pas de lui mais d'un autre module.
(en fait, dès qu'une demande est envoyée au brûleur, ceux-ci se mettent en marche, peu importe l'état du brûleur Confused )

J'ai pour cela 1 carte arduino duemilanove avec ATMEGA328P-PU, ainsi qu'un capteur de couleur TCS3200 de chez DFRobot :
http://www.dfrobot.com/index.php?route=product/product&filter_name=SEN0…

J'ai trouvé le code de test & le schéma de raccordement ici :
http://www.dfrobot.com/wiki/index.php?title=TCS3200_Color_Sensor_(SKU:SEN01…

Avec ce code, je n'arrive à rien : Je comprend bien le fait de déclarer les variables d'entrées/sorties, mais, quand je place une led en test sur la sortie, elle est allumée en permanence, peu importe qu'il y ait 1 objet devant le capteur ou pas.
(Je sais, je suis un boulet )

J'ai aussi trouvé ceci en fouillant sur la toile :
http://assos.centrale-marseille.fr/clubrobot/sites/assos.centrale-marseille…

Mais, même en essayant d'adapter leur code, j'arrive à rien. pffff

Ce que je voudrais faire :
si la couleur détectée est verte, allumer une led (verte) sur 1 sortie
si la couleur détectée est orange, allumer une led (orange) sur 1 autre sortie
si la couleur détectée est rouge , allumer une led (rouge) sur une 3ème sortie
Si pas de couleur, ne rien allumer.

Voilà déjà pour le début de projet..., après, je viendrais rajouter d'autres fonctions si c'est possible...

D'avance merci aux personnes qui pourraient m'aider...
____________________________
-->Mike
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Lun 23 Déc - 19:19 (2013)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel Répondre en citant

As-tu déjà essayé le programme sans rien modifier ??
____________________________
http://simple-duino.com
Revenir en haut
mmikee02
Débutant

Hors ligne

Inscrit le: 21 Déc 2013
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Mar 24 Déc - 14:37 (2013)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel Répondre en citant

Bonjour, oui oui, j'ai essayé le programme de base, sans succès, tout ce que j'obtiens dans la console série, c'est une série de caractères bizarres & improbables, tout à fait illisibles.. 
____________________________
-->Mike
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Mer 25 Déc - 11:34 (2013)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel Répondre en citant

mhhh t'as bien mis le débit du terminal série ( liste déroulante en bas à droite ) sur 115200 ??
Généralement, ce style de problème à pour cause le mauvais débit choisi
____________________________
http://simple-duino.com
Revenir en haut
mmikee02
Débutant

Hors ligne

Inscrit le: 21 Déc 2013
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Mer 25 Déc - 11:45 (2013)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel Répondre en citant

Ah, en effet, ça fonctionne nettement mieux en mettant la valeur à 115200...
Elle était réglée par défaut à 9600, & je n'y avait pas touché...
désolé... rhooo, vraiment, le boulet ..., à présent j'ai 1 espèce de compteur qui défile plein gaz : genre :

red=102
green=62
blue=49


red=114
green=59
blue=54


red=114
green=56
blue=52


red=110
green=64
blue=40


red=120
green=59
blue=62


red=115
green=61
blue=46


red=122
green=60
blue=62


red=129
green=49
blue=49


red=126
green=62
blue=50


red=125
green=57
blue=53
...etc
____________________________
-->Mike
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Mer 25 Déc - 12:06 (2013)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel Répondre en citant

ce serait intéressant de savoir ce que ça donne si tu mets une certaine couleur de led devant.
Citation:
int s0=3,s1=4,s2=5,s3=6;
int flag=0;
int counter=0;
int countR=0,countG=0,countB=0;
void setup()
 {
 Serial.begin(115200);
 pinMode(s0,OUTPUT);
 pinMode(s1,OUTPUT); 
 pinMode(s2,OUTPUT);
 pinMode(s3,OUTPUT);
 }
void TCS()
 {
   digitalWrite(s1,HIGH);
   digitalWrite(s0,LOW);
   flag=0;
   attachInterrupt(0, ISR_INTO, CHANGE);
   timer2_init();
 }
void ISR_INTO()
 {
   counter++;
 }
 void timer2_init(void)
 {
   TCCR2A=0x00;
   TCCR2B=0x07; //the clock frequency source 1024 points
   TCNT2= 100;    //10 ms overflow again
   TIMSK2 = 0x01; //allow interrupt
 }
 int i=0;
 ISR(TIMER2_OVF_vect)//the timer 2, 10ms interrupt overflow again. Internal overflow interrupt executive function
{
 TCNT2=100;
 flag++;
 if(flag==1)
  {
    counter=0;
  }
 else if(flag==2)
   {
    digitalWrite(s2,LOW);
    digitalWrite(s3,LOW); 
    countR=counter/1.051;
    Serial.print("red=");
    Serial.println(countR,DEC);
    digitalWrite(s2,HIGH);
    digitalWrite(s3,HIGH);   
   }
 else if(flag==3)
    {
     countG=counter/1.0157;
    Serial.print("green=");
    Serial.println(countG,DEC);
     digitalWrite(s2,LOW);
     digitalWrite(s3,HIGH); 
   
    }
 else if(flag==4)
    {
     countB=counter/1.114;
    Serial.print("blue=");
    Serial.println(countB,DEC);
     digitalWrite(s2,LOW);
     digitalWrite(s3,LOW);
     }
 else
     {
     flag=0; 
      TIMSK2 = 0x00;
     }
     counter=0;
     delay(2);
}
void loop()
 {
  delay(10);
  TCS();
  if((countR>10)||(countG>10)||(countB>10))
   {
      if((countR>countG)&&(countR>countB))
       {
            Serial.print("red");
            Serial.print("\n");
            delay(1000);
       }
      else if((countG>=countR)&&(countG>countB))
       {
            Serial.print("green");
            Serial.print("\n");
            delay(1000);
       } 
     else if((countB>countG)&&(countB>countR))
      {
            Serial.print("blue");
            Serial.print("\n");
           delay(1000);
      }
    }
  else 
  {
     delay(1000);       
  }
 }








C'est bien ce programme que t'as testé ?? Si non, testes le car il semble bien plus intuitif en te donnant directement la couleur en face


EDIT : 
Citation:

int s0=3,s1=4,s2=5,s3=6;
int out=2;
int flag=0;
byte counter=0;
byte countR=0,countG=0,countB=0;
void setup()
 {
 Serial.begin(115200);
 pinMode(s0,OUTPUT);
 pinMode(s1,OUTPUT); 
 pinMode(s2,OUTPUT);
 pinMode(s3,OUTPUT);


 }
void TCS()
 {
 flag=0;  
 digitalWrite(s1,HIGH);
 digitalWrite(s0,HIGH);
 digitalWrite(s2,LOW);
 digitalWrite(s3,LOW);
 attachInterrupt(0, ISR_INTO, LOW);
 timer0_init();


 }
void ISR_INTO()
 {
 counter++;
 }
 void timer0_init(void)
 {
  TCCR2A=0x00;
  TCCR2B=0x07;   //the clock frequency source 1024 points
  TCNT2= 100;    //10 ms overflow again
  TIMSK2 = 0x01; //allow interrupt
 }
 int i=0;
 ISR(TIMER2_OVF_vect)//the timer 2, 10ms interrupt overflow again. Internal overflow interrupt executive function
{
    TCNT2=100;
    flag++;
 if(flag==1)
  {
    countR=counter;
    Serial.print("red=");
    Serial.println(countR,DEC);
    digitalWrite(s2,HIGH);
    digitalWrite(s3,HIGH);
  }
  else if(flag==2)
   {
    countG=counter;
    Serial.print("green=");
    Serial.println(countG,DEC);
    digitalWrite(s2,LOW);
    digitalWrite(s3,HIGH);
   }
   else if(flag==3)
    {
    countB=counter;
    Serial.print("blue=");
    Serial.println(countB,DEC);
    Serial.println("\n"); 
    digitalWrite(s2,LOW);
    digitalWrite(s3,LOW);
   
    }
    else if(flag==4)
     {
     flag=0;
     }
       counter=0;
}
void loop()
 {
  TCS();
while(1);
 }






En effet, ce programme est censé te donner le résultat que tu m'as écrit !!
____________________________
http://simple-duino.com
Revenir en haut
mmikee02
Débutant

Hors ligne

Inscrit le: 21 Déc 2013
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Jeu 26 Déc - 17:00 (2013)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel Répondre en citant

Merci de t'intéresser à mon projet, & de me filer 1 coup de main... Okay
Je maîtrise vraiment très mal la programmation en langage arduino... Confused

Alors, j'ai testé les 2 codes que tu as placé dans le post précédent :
le 1er , (dont j'ai juste modifié les "delay" en 2000 au lieu de 1000, pour 1 question de facilité), fonctionne très bien :

pour la lumière rouge, je place le capteur sous mon ancienne souris microsoft qui fonctionne grâce à 1 led rouge assez lumineuse
voici le résultat de la console série -->
red
red=36
green=1
blue=4
red
red=34
green=1
blue=3
red
red=38
green=1
blue=4
red
red=38
green=1
blue=4
red
red=38
green=1
blue=4
red
red=38
green=1
blue=3
red
red=39
green=2
blue=3
red
red=45
green=2
blue=4
red
red=39
green=1
blue=4
red
red=43
green=2
blue=4

Pour le vert, j'ai branché 1 led 5mm verte sur 1 breadboard, & je place le capteur devant.
là, on voit que c'est tout de suite plus mitigé comme résultat :
red=9
green=4
blue=2
red=9
green=4
blue=2
red=9
green=4
blue=2
red=8
green=5
blue=2
red=8
green=5
blue=2
red=8
green=4
blue=2
red=8
green=5
blue=2
red=9
green=4
blue=2
red=9
green=4
blue=2
red=8
green=4
blue=2
red=8
green=4
blue=1
red=8
green=3
blue=2
red=8
green=4
blue=2
red=8
green=4
blue=2
red=8
green=4
blue=2
red=8
green=4
blue=1

j'ai beau incliner le capteur dans différentes positions, le résultat ne varie quasi pas.

Pour le bleu, là, j'utilise 1 afficheur digital assez lumineux (voltmètre digital) de couleur bleue & je place le capteur devant :
red=0
green=2
blue=6
red=0
green=2
blue=6
red=0
green=2
blue=6
red=0
green=2
blue=6
red=0
green=1
blue=6
red=0
green=1
blue=6
red=0
green=2
blue=6
red=0
green=1
blue=5
red=0
green=1
blue=7
red=0
green=4
blue=9
red=0
green=2
blue=6
red=0
green=2
blue=7
 Ici, on voit que ça fonctionne bien aussi.
Tous les tests ont été faits avec les 4 leds blanches du capteur éteintes, car les objets à détecter sont lumineux

Le problème vient de ma led verte, je vais tester avec 1 autre...
____________________________
-->Mike
Revenir en haut
mmikee02
Débutant

Hors ligne

Inscrit le: 21 Déc 2013
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Jeu 26 Déc - 17:18 (2013)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel Répondre en citant

Alors, j'ai retrouvé 1 led jaune, qui 1 x alimentée, éclaire...  orange! Comme ça m'intéresse, j'ai fait des tests :
ici sans les 4 leds de la carte allumées :
red=10
green=3
blue=2
red=10
green=2
blue=2
red=10
green=2
blue=2
red=10
green=2
blue=2
red=10
green=2
blue=2
red=10
green=3
blue=2
red=11
green=2
blue=2
red
red=10
green=2
blue=2

& là, avec les 4 leds allumées, le capteur n'a pas bougé de place, & la luminosité ambiante est équivalente :

red
red=22
green=14
blue=15
red
red=22
green=13
blue=14
red
red=23
green=14
blue=14
red
red=23
green=13
blue=14
red
red=22
green=13
blue=15
red
red=23
green=14
blue=14
red
red=22
green=13
blue=14
red
red=22
green=13
blue=15
red
red=23
green=13
blue=15
red
red=22
green=14
blue=14
red
red=22
green=13
blue=14

On remarque 1 contraste bcp plus fort avec les leds allumées, je vais donc refaire des tests avec les autres couleurs pour voir...
____________________________
-->Mike
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Jeu 26 Déc - 18:02 (2013)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel Répondre en citant

 
Citation:
  qui 1 x alimentée
Je tolère le 1 au lieu de une et encore ... mais x au lieu de fois c'est limite


Bon la morale est passé.


Pour le rouge --> Flagrant, nikel
Pour le bleu --> Moins flagrant mais OK
Pour le vert --> C'est un peu raté mais il faut vraiment une led bien verte car sinon c'est foireux


Pour le jaune --> C'est difficile à dire mais c'est flagrant en faite --> 100% rouge + 50% de vert + 50% de bleu ( environ car la valeur de green et de blue environ égal à la valeur red divisé par 2 ) --> Donne environ du orange


j'ai fais ça avec ce lien : Synthèse additive
____________________________
http://simple-duino.com
Revenir en haut
mmikee02
Débutant

Hors ligne

Inscrit le: 21 Déc 2013
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Mar 31 Déc - 17:32 (2013)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel Répondre en citant

ok ok chef, j'le f'rai plus, ...  Promis!!! Sad

Sinon, excusez-moi pour les réponses parfois tardives, mais, étant papa de 2 bambins (3 & 5 ans) en congés scolaires actuellement, je n'ai guère de temps à consacrer à mon projet.  (Sauf quand ils font la sieste, & encore.)
Mais je continues de cogiter. Il faudrait que j'ajoute une tolérance à la reconnaissance, de cette manière, le capteur pourrait fonctionner pour plusieurs sources différentes :
pour afficher rouge dans la console série :ben il faut du rouge, et que les 2 autres valeurs soient en dessous de "x"
pour afficher orange dans la console série :  c'est "le rouge est compris entre la valeur "x" et la valeur "y"
                                                                  le vert  est compris entre la valeur "x" et la valeur "y"
                                                                  et le bleu doit être en dessous de la valeur "x"
etc...
Y a-t-il une commande "tolérance" ou quelque chose du genre en langage arduino?

Sur ce, bon réveillon du 31 à tous, et une très bonne année 2014 pleine de projets réussis à tous...
____________________________
-->Mike
Revenir en haut
Tachro52
Débutant

Hors ligne

Inscrit le: 30 Nov 2013
Messages: 100
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Mar 31 Déc - 18:05 (2013)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel Répondre en citant

Des conditions si ?

Si rouge > x && rouge < y ; (à comprendre SI le rouge est plus grand que x et le rouge est plus petit que y (soit compris entre x et y ))

En language arduino ça donnerait ça :

Code:
If(rouge > x && rouge < y);
{
CODE
}


Et tu rajoute un Else if à la suite pour tester une autre condition, au cas ou la première ne serait pas bonne.
Si tu souhaite activer un état dans le cas où aucune condition n'est vraie, alors tu termine par else .

BONNES FETES !
BONNE ANNEE ! Okay Okay Okay
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 20:12 (2017)    Sujet du message: Détection de la couleur d'une LED d'état d'un brûleur fuel

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Projets -> Vos projets Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino