Aller au contenu


Photo
- - - - -

[Resolu] Ce code ne marche pas.... normal


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

#1 Microrupteurman

Microrupteurman

    Pilier du forum

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

Posté 12 août 2012 - 08:10

Bonjour !


Voici un code qui servirait a controler la position de 4 servo :

#include <Servo.h>

Servo SavD, SavG, SarD, SarG; // servo avant droit .... arriere gauche

void setup ()
{
SavD.attach(1);
SavG.attach(2);
SarD.attach(3);
SarG.attach(4);
}

void loop ()
{
DLD;
delay(5000);
DLG;
delay(5000);
MAv;
delay(5000);
TD;
delay(5000);

}

void DLD () // deplacement lateral droit
{
SavD.write(0);
SavG.write(0);
SarD.write(0);
SarG.write(0);
//moteur puissance; direction
}

void DLG () // deplacement lateral gauche
{
SavD.write(180);
SavG.write(180);
SarD.write(180);
SarG.write(180);
//moteur puissance; direction
}

void MAv () // marche avant
{
SavD.write(90);
SavG.write(90);
SarD.write(90);
SarG.write(90);
//moteur puissance; direction
}

void MAr () // marche arriere
{
SavD.write(90);
SavG.write(90);
SarD.write(90);
SarG.write(90);
//moteur puissance; direction
}

void TD () // tourne a droite
{
SavD.write(135);
//marche ar
SavG.write(45);
//marche av
SarD.write(135);
//marche ar
SarG.write(45);
//marche av
}

void TG () // tourne a gauche
{
SavD.write(135);
//marche av
SavG.write(45);
//marche ar
SarD.write(135);
//marche av
SarG.write(45);
//marche ar
}


On notera que ce code ne marche pas.
Le texte apres les // et pour me rappeler le code ui manque a cette endroit et de quoi il doit etre compose. On ne tiendra pas compte des Numeros de pin.


J'aurai voulu qu'en appelant la fonction par exemple DLD, tous mes servo se tourne a 180°, histoire que le code dans la boucle soit plus clean.
Mais ça marche pas comme je l'aurai penser !

Toi qui regarde ce code en te marrant, aide moi !


Merci


(HS : au passage : pourquoi sur robotmaker on ne peut pas selectionner le texte de droite a gauche ?)

 
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 août 2012 - 08:19

C'est pourtant bien ce que fait ce code.

Est tu certain d'avoir une alimentation suffisante ?

Quel est la consolation de chaque servi
Quelle est la puissance de ton alimentation ?

 


#3 Microrupteurman

Microrupteurman

    Pilier du forum

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

Posté 12 août 2012 - 08:28

Ah bon, c'est censé marché?! Merde alors, je doit pas etre doué !
Il ne controlle rien du tout pour l'instant ,c'est un code que j'ai prepare pour dans le futur.



Pourquoi alors ça :

int led = 13 ;

void setup()
{
pinMode (led,OUTPUT);
}

void loop ()
{
digitalWrite(led, HIGH),
delay(500);
LED;
}

void LED ()
{
digitalWrite(led, LOW),
delay(500);
}


ça ne marche pas ??

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 !
 


#4 SRWieZ

SRWieZ

    Membre

  • Membres
  • PipPip
  • 231 messages
  • Gender:Male
  • Location:Evreux, Haute-Normandie, France

Posté 12 août 2012 - 09:11

Essaye LED(); au lieu de LED;

#5 Microrupteurman

Microrupteurman

    Pilier du forum

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

Posté 12 août 2012 - 09:16

Ca marche ! Mais POurquoi ?

Merci en tout cas !

 
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 !
 


#6 SRWieZ

SRWieZ

    Membre

  • Membres
  • PipPip
  • 231 messages
  • Gender:Male
  • Location:Evreux, Haute-Normandie, France

Posté 12 août 2012 - 09:18

Ba ça fais partie des règles de syntaxe du code. Pour exécuter une fonction il faut mettre les parenthèses, j'ai jamais fais sans.
Ne les oublies pas la prochaine fois même si ta fonction ne prend pas d'arguments.

#7 Microrupteurman

Microrupteurman

    Pilier du forum

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

Posté 12 août 2012 - 09:21

Ok , merci. Je vien de voir qu'il y a 2 erreur : " digitalWrite(led, HIGH)," une virgule au lieu d'un point virgule et ça marche quand meme !

 
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 !
 


#8 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 13 août 2012 - 09:42

Ok , merci. Je vien de voir qu'il y a 2 erreur : " digitalWrite(led, HIGH)," une virgule au lieu d'un point virgule et ça marche quand meme !


Oui mais uniquement parce qu'il y a un delay(); derrière. Essaie de l'enlever, ça devrait planter. Le point-virgule marque la fin d'une instruction, tandis que la virgule sépare deux instructions (en C/C++ en tout cas).
Par exemple, tu peux écrire :

int i = 0, y = 5;
...
y += (i+1);
...
i++, y=i;

La première ligne déclare et initialise les variables y et i en une ligne.
La deuxième ligne ajoute 1 à i puis ajoute le résultat à y.
La dernière ligne augmente i de 1 et donne à y la nouvelle valeur de i (attention à l'ordre des instructions).

Mais :

int i = 2,
i++,

renverra une erreur (il n'y a pas de fin d'instruction marquée).
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#9 Microrupteurman

Microrupteurman

    Pilier du forum

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

Posté 13 août 2012 - 12:02

Oui mais uniquement parce qu'il y a un delay(); derrière


Je m'en douter, Merci.

Oui ça a planter sans.

 
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