Show Posts
Pages: [1] 2 3 ... 237
1  International / Français / Re: Suiveur solaire on: August 30, 2014, 08:24:58 am
Sur le forum français il y a déjà eu plusieurs projets comme le tien. Tu ne devrais pas avoir trop de mal à trouver.

Par exemple:
http://forum.arduino.cc/index.php?topic=245543.0
http://forum.arduino.cc/index.php?topic=224625.0
2  International / Français / Re: Connection d'un module SPI avec une seule entrée analogique on: August 30, 2014, 08:22:56 am
SCL et SDA cela correspond aux entrées A4 et A5 de l'arduino.
TX et RX c'est toujours embêtant de les bloquer car cela peut perturber les mises à jour du logiciel.

Je viens de regarder la doc du BMP180, ce n'est pas une interface SPI qu'il utilise mais une interface I²C. Donc il faut utiliser SDA et SCL.
3  International / Français / Re: mélanger deux exemples Arduino on: August 30, 2014, 08:20:23 am
Le pseudo-code que j'ai donnée au-dessus correspond à ce que tu veux faire si j'ai bien compris. Il te suffit de le transcrire en "bon" C et tu auras ce que tu veux.
4  International / Français / Re: Télémétrie sur quad 350 Banshee à l'aide d'arduino on: August 30, 2014, 05:24:16 am
Dans ton code tu utilises 2 compteurs et ensuite tu fais la différence
Code:
  CalcAR = (NbTopAR * 60);
 
  NbTopAV = 0;
  sei();
  delay (1000);
  cli();
  CalcAV = (NbTopAV * 60);
 
    if (CalcAR-CalcAV >= 10)
Si tu n'utilises pas leur valeurs par ailleurs, il serait bien plus simple de n'avoir qu'un compteur. Incrémenté dans une des routines de traitement d'IT et décrémenté dans l'autre.

Si tu maintiens l'usage de 2 compteurs il n'est pas nécessaire de faire la calcul sur 2 fois une seconde.
Tu remets les 2 compteurs à zéro, tu actives les IT et tu attends une seconde. L'ATmega est capable de gérer 2 IT qui ne sont pas particulièrement rapide.

Autre problème
CalcAR = (NbTopAR * 60);
 CalcAV = (NbTopAV * 60);
 if (CalcAR-CalcAV >= 10)

Cela revient à écrire
(NbTopAR * 60) -  (NbTopAV * 60) >= 10
qui peut s'écrire
(NbTopAR-NbTopAV) * 60 >= 10
ce qui donne
(NbTopAR-NbTopAV) >= 10/60=1/6
Tes variables sont des entiers donc la comparaison ne peut pas fonctionner puisque l'écart cherché est inférieur à 1

De toutes les façons avec ça comme donnée d'entrée
NbTopAR * 60 et NbTopAV * 60
La plus petite différence que tu pourras chiffrer sera >= à 60.
5  International / Français / Re: Problème de déclaration d'un array dans une classe on: August 29, 2014, 09:28:53 am
Tu pourrais remplacer ton int ledArray[] par un int *ledArray
Et dans le constructeur tu fais un malloc de la taille demandé.

Code:
LedStrip::LedStrip(int dmxUniv, int dmxStartChan, int nbLed)
{
     _dmxUniv = dmxUniv;
     _dmxStartChan = dmxStartChan;
     nbChan = nbLed*3;
     int *ledArray= (int*) malloc(nbChan * sizeof(int));

}
je ne l'ai pas fait là mais il faudrait tester que le malloc() se termine bien et que l'allocation a bien été faite en testant si ledArray est null ou pas et aussi remonter une erreur.
6  International / Français / Re: Télémétrie sur quad 350 Banshee à l'aide d'arduino on: August 29, 2014, 05:39:46 am
Les ABS utilisent des capteurs magnétiques et une roue dentée et il doit y avoir une bonne raison. Comme par exemple que c'est insensible à la poussière et à la boue.
7  International / Français / Re: Problème de code (bouton) on: August 29, 2014, 03:28:40 am
C'est la troisième fois que je relis ce fil depuis le début et je n'ai toujours pas compris ce que tu veux faire au final.
Du coup je ne comprends pas non plus ce qui ne fonctionne pas (et je pense ne pas être le seul).

Si tu décrivais clairement l'enchaînement des actions on y comprendrait peut être quelque chose.
De ce que j'ai vaguement compris c'est un système séquentiel. Des actions peuvent être interrompue et/ou reprise. il faut donc décrire toutes les combinaisons possibles avec leur enchaînement sinon dans 10 ans tu y seras encore et nous aussi (ou pas, si on se lasse).
Donc un peu de méthode:
Au départ le programme est dans cette état : .....
Si on fait rien le programme fait  telle chose : .....
Si on appuie sur le bouton il se passe ça : .....
Si on le relâche il se passe ça : .....
Et ainsi de suite.
8  International / Français / Re: Serial write() et read() on: August 29, 2014, 01:46:50 am
J'ai pas dit de coller le Serial.read() dans atof. J'ai juste donné une piste.

Une autre piste
http://arduino.cc/en/Serial/ParseFloat
Plus l'exemple ReadASCIIString qui se trouve dans l'IDE (menu Fichier/Exemples/04.Communication/ReadASCIIString )
9  International / Français / Re: Serial write() et read() on: August 28, 2014, 03:36:17 pm
Si j'utilise le terminal arduino et que j'écris 1.99585, il m'affiche 1.99585.
Donc automatiquement, il concatène la reception de 4 octets, et affiche la valeur ? Pourtant dans le code je lis et write() octet par

Le terminal envoie des caractères. Donc ton programme reçoit une chaîne de caractères.
Pour récupérer la valeur numérique il faut passer la chaîne à la fonction atof() qui converti une chaîne de caractères en flottant.

Code:
void setup() {
char machaine[8]="1.25452";
float lechiffre;

lechiffre=atof(machaine);
}

void loop() {

}
10  International / Français / Re: Atmega328 stand alone on: August 28, 2014, 05:19:58 am
Oui c'est une LED test pas grave ^^
Pour la LED peut être.
Mais c'est aussi embêtant pour l'ATmega qui voit quasiment un court-circuit sur sa sortie.
11  International / Français / Re: [RESOLU]La boucle WHILE ne fonctionne pas avec ce programme... on: August 28, 2014, 04:27:12 am
Dans la mesure ou l'état du bouton n'est pas utilisé ailleurs, une autre solution serait de placer la lecture dans la condition de maintient du while
Code:
while (digitalRead(BP)==HIGH){
 digitalWrite(DEL,HIGH);
 delay(100);
 digitalWrite(DEL,LOW);
 delay(100);
}
12  International / Français / Re: Atmega328 stand alone on: August 28, 2014, 03:46:20 am
Je ne vois pas de résistance sur la LED.
Les condensateurs de 100nF devraient être sur les broches vcc et gnd ainsi que avcc et gnd pas sur les rails d'alimentation. Au plus près c'est vraiment contre le boîtier pas à l'autre bout de la carte.

Le reste à l'air bon.
Reste plus qu'un mauvais contact dans la plaque d'essais. Ce serait vraiment pas de bol.
13  International / Français / Re: mélanger deux exemples Arduino on: August 28, 2014, 01:57:45 am
Mais je peux bien détailler plus...
À l'alumage, l'état est : trape fermée, Leds éteints.
J'appuie sur le bouton "On", la trape s'ouvre et les Leds s'alument.
Enfin, quand j'ai plus besoin de la lampe, j'appuie sur le bouton "Off" alors les Leds s'éteignent et la trape se referme.
Lorsqu'on regarde le fonctionnement que tu as décrit, il y a des boutons.
Ceux-ci n'apparaissent à aucun moment dans ton programme donc il n'est pas très étonnant que rien ne se passe lorsque tu appuies sur tes boutons.
Je voudrait te faire remarquer aussi que ce que tu décris c'est ce que tu fais pas ce que le programme fait lui même.
La description de ce que fait le programme serait (je ne traite que la boucle principale):
  je lis l'état du bouton
  si le bouton ON est appuyé
     j'ouvre la trappe
     j'allume le LED
  si le bouton OFF est appuyé
    j'éteins la LED
    je ferme la trappe

Code:
 for(pos1 = 0; pos1 < 90; pos1 = 90)
Je te propose de regarder là ==> la syntaxe du for. Tu t'apercevras que le 3ème argument n'est pas correct. Il devrait y avoir une opération qui modifie l'index de la boucle, comme pos1++ (pour incrémenter) ou pos1-- (pour décrémenter)

Code:
 for(pos1 = 0; pos1 < 90; pos1 = 90)
  {
    myservo1.write(pos1 = 90);
    digitalWrite(ledPin, HIGH);
  }
Je suppose que si tu as utilisé une boucle c'est parce que tu voulais une ouverture progressive de la trappe. Il faudrait donc placer un délai dans la boucle sinon celle-ci s'exécute très vite et la trappe s'ouvre d'un seul coup.

Code:
   if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;
Ce morceau de code ne fait rien. La variable qui est modifié dans ce test n'est utilisée nulle part.
14  International / Français / Re: Atmega328 stand alone on: August 27, 2014, 02:34:06 pm
Bon il y a un problème sur ta carte. Fais des photos de la carte pour que l'on voit..
15  International / Français / Re: Atmega328 stand alone on: August 27, 2014, 01:14:02 pm
ça fonctionne toujours pas : mais cette fois la LED connecté sur la branche 13....
Faudrait essayer d'être factuel.
Je fais ça et il se passe ça, parce que là on ne comprend pas.
Qu'est-ce qui ne fonctionne pas? la LED ou le bootloader de l'arduino?
Pages: [1] 2 3 ... 237