Aller au contenu


cerisier

Inscrit(e) (le) 31 janv. 2017
Déconnecté Dernière activité déc. 04 2017 04:54
-----

Messages que j'ai postés

Dans le sujet : utiliser le contenu d'une variable

12 août 2017 - 09:23

Merci à COCOTHEBO pour l'info, je ne suis pas familier avec les pointeurs mais cela va être l'occasion d'apprendre.

 

j'aurais une autre question :

je voudrais enregistrer les données issues du SR04 sur l'ordinateur, j'ai trouvé une info conseillant d'utiliser terminalbpp, je l'ai téléchargé mais je ne trouve aucune aide : comment préciser que les données ne doivent pas être envoyées sur le moniteur série et où les envoyer ?


Dans le sujet : utiliser le contenu d'une variable

09 août 2017 - 09:12

Merci pour la réponse rapide

je viens de reprendre le principe que tu me donnes mais au lieu de passer par libAction je fais directement le switch sur action1 qui est un integer

c'est bien plus simple et cela fonctionne

// cette table me fournit pour les 3 premières colonnes les données d'un SR04 (60° 90° 120°)
// puis 3 colonnes d'actions possibles  si 000 obstacle proche dans les 3 directions
//3 actions :  arret, recule, tourneDroite

int zonesActions[8][6]=
{
  0,0,0,6,5,3,
  0,0,1,6,4,0,
  0,1,0,1,0,0,
  0,1,1,4,0,0,
  1,0,0,5,3,0,
  1,0,1,5,3,0,
  1,1,0,3,0,0,
  1,1,1,2,0,0
  };

void setup{
}

void loop
{
      action1 = zonesActions[i][3];  // recherche action 1 correspondant  aux mesures SR04
                                        
      rechAction(action1);  
}
void rechAction( int act)
{
     switch(act)
            {
              case 0:               
                 break;
              case 1:
                 avance(PRUDENTX); 
                 break;
              case 2:                                         
                 avance(AFONDX); 
                 break;
              case 3:
                 tourneGauche(NORMALX);
                 break;  
              case 4:
                 tourneDroite(NORMALX);
                 break;  
              case 5:
                 recule(PRUDENTX);
                 break;
              case 6:
                 arret;
                 break;
            } 

Dans le sujet : RECHERCHE CLUB ROBOTIQUE SUR LYON

09 mars 2017 - 03:26

cela m'intéresserait de prendre contact

peux m'indiquer le lieu et préciser l'heure

 

a noter que  je suis plus intéressé par la réalisation que par l'utilisation de robots tout faits


Dans le sujet : UTILISATION CAPTEUR TEMPERATURE TMP6

05 février 2017 - 10:38

j'ai enfin trouvé une solution :  j'ai connecté la masse des leds non pas à la ligne de  masse de la breadboard à laquelle est connecté le TMP6, mais au GND qui se trouve au dessus des pins 1 à 13 et dans ces conditions le fonctionnement devient normal


Dans le sujet : UTILISATION CAPTEUR TEMPERATURE TMP6

02 février 2017 - 12:55

merci pour vos réponses rapides

votre demande d'avoir tout le programme m'a amené à penser que les leds  étaient pour quelque chose dans l'anomalie observée

j'ai donc supprimé le code relatif à l'exploitation des températures : pas de changement

j'ai supprimé la tension sur les  leds : et là bingo ça marche les valeurs de capteur restent stables, varient correctement  si on prend le capteur dans les doigts et revient à la normale lorsqu'on les enlève

j'ai remis le code relatif à l'exploitation des températures : tout reste OK

donc ce sont les leds qui font la panique et je ne vois vraiment pas pourquoi, j'ai vérifié n fois le montage

je  vous joins  2 photos



 const int capteur = A0;
 const int  tempRef = 20.0;
 
void setup() 
{
 Serial.begin(9600);
for (int noPin = 11; noPin < 14; noPin++)
  {
    pinMode (noPin, OUTPUT);
    digitalWrite (noPin, LOW);
  }
}

void loop() {
 int capteurVal = analogRead(capteur);
       Serial.print("valeur capteur   :");
       Serial.print(capteurVal);
 float voltage = (capteurVal)/(1024.0 )*5.0;
       Serial.print("    volts   : ");
       Serial.print(voltage);
       Serial.print("   degres C  : ");
 float temperature = ((voltage )*100) -40;
       Serial.println(temperature);
 if (temperature < tempRef )
 {
    digitalWrite (11,LOW);
    digitalWrite (12,LOW);
    digitalWrite (13,LOW);
 }
 else if (temperature >= tempRef +2 && temperature < tempRef + 4)
 {
   digitalWrite (11,HIGH);
   digitalWrite (12,LOW);
   digitalWrite (13,LOW);
 }
 else if (temperature >= tempRef +4 && temperature < tempRef + 6)
 {
   digitalWrite (11,HIGH);
   digitalWrite (12,HIGH);
   digitalWrite (13,LOW);
 }
 else if (temperature >= tempRef +6)
 {
   digitalWrite (11,HIGH);
   digitalWrite (12,HIGH);
   digitalWrite (13,HIGH);
 }
 delay (100);
}