Aller au contenu


Photo
- - - - -

Beug programmation


  • Veuillez vous connecter pour répondre
4 réponses à ce sujet

#1 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 12 février 2012 - 10:32

Salut,

alors sue je compile mon programme, il me dit ""comande_via_pc.cpp:176:34: error: invalid digit "9" in octal constant"

void gestionINT0() {

comptageImpulsion=comptageImpulsion+1; // Incrémente la variable de comptage
// ATTENTION : delay() et millis() non dispo ici - données série perdues
distance = comptageImpulsion * 0,0754854900625 * 100 ;
//---- affiche le nombre d'impulsions sur le port série
Serial.print("Nombre impulsions = "); 
Serial.println(comptageImpulsion);
Serial.print ("Distance =");
Serial.println (distance);

}

Je comprend pas pourquoi. J'ai essay diverse chose mais rien a faire.....
La ligne 176 est la ligne sous la dernire ligne de code avant le }.
Help !

Merci

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#2 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 12 février 2012 - 10:54

Salut
Je supose que tu utilise la version 1.0 de l'IDE Arduino.

Pas mal de choses ont changées sur la syntaxe de certaines commandes.

Vas voir le site officiel ou sur Pobot Julien a y mis un article
très interressant
Sinon essais avec la 0023.


Cdlt
Yves

 


#3 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 12 février 2012 - 11:05

Salut,

Ok, je vais aller voir ça, merci

Je suis en 023.

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#4 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 12 février 2012 - 11:28

Ok, j'ai touver grace a mon ami google !
Sur le site du Zero !

En fait l'erreur vient de "0,0754854900625" Il faut mettre un point et pas une virgule car "La virgule est un opérateur (opérateur séquentiel) en langage C."

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#5 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 16 février 2012 - 04:14

Nouveaux !


Voila, j'ai relié le 'signal' d'un pont diviseur(n'ayant pas encore de potar), sur une pin analogique. La valeur est ensuite reétaloné (map) et sert a definir la vitesse du robot. Je ne met que les bout qui nous interresse.




int vitesse1 = 6, vitesse2 = 5;
int direction1 = 7, direction2 = 4;




void loop() 
{
  
   IR_D =  analogRead(0);           //capteur ir droit
   IR_G = analogRead (1);           // capteur ir gauche
   C_us.requestMeasurementOrTimeout(1, distance);      // capteur us

//************************theroriquement les 3 lignes ci dessous sont juste
 int vitAj = analogRead(2);
 vitAj = map (vitAj,0,1024,0,255);
 Serial.println(vitAj, DEC);
 
    if (distance <= 400 && IR_D > 240 && IR_G > 240)
{  
  MoteurD (0,true);
  MoteurG (0,true);
  delay(50);
  MoteurD (vitAj -=20, false);   // moteurD (pwm, direction)    mais ici (vitAj-=20) ne fait pas sont travaille.
  MoteurG (vitAj -=20, true);
  delay (500); }

//*************controle moteur*************//

void MoteurD (int pwm, boolean sens_a)
{ analogWrite (vitesse1, pwm);
  if (sens_a)
  { digitalWrite(direction1, HIGH); }
  else 
  {digitalWrite(direction1, LOW); } }
  
void MoteurG (int pwm, boolean sens_a)
{ analogWrite (vitesse2, pwm);
  if (sens_a)
  { digitalWrite(direction2, HIGH); }
  else 
  {digitalWrite(direction2, LOW); }}




Ceci est une partie du code ...

Ca devrai etre tous bete, c'est pas la premiere fois que je veux faire reagir une sortie digital en fonction d'une entré analogique.

Ma valeur est bien reétalonner, mais les moteurs ne reagissent pas en fonction...
Faudrai il changé le (int pwm, boolean sens_a) ? Par (int vitAJ, boolean sens_a) ??

Merci de votre aide.

Cdlt, Fabi1


Probleme resolu

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 





0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users