problème de programmation besoin d'aide

A bon parce que lorsque j'écris la ligne # inclue <Wprogram.h> ou alors # include <arduino.h> il ne reconnais pas et m'indique une erreur

C'est pas Arduino.h ? avec un A majuscule ?

Si et entre guillemets : #include "Arduino.h"

d'accord j'essaie et je vous redis

J'ai essayer comme indiquer mais non toujours pas j'ai toujours un message d'erreur

Pour être plus claire mon programme est le suivant

/********************************************************
 * PID Basic Example
 * Reading analog input 0 to control analog PWM output 3
 ********************************************************/

#include <PID_v1.h>

//Define Variables we'll be connecting to
double Setpoint, Input, Output;

//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT);

void setup()
{
  //initialize the variables we're linked to
  Input = analogRead(0);
  Setpoint = 100;

  //turn the PID on
  myPID.SetMode(AUTOMATIC);
}

void loop()
{
  Input = analogRead(0);
  myPID.Compute();
  analogWrite(3,Output);
}

Il s'agit simple du programme donner dans les exemples de la librairie PID.v1 seulement les erreurs indiqué sont que :
Wprogram.h n'est pas déclarer
milis n'est pas déclarer
mais je ne les utilise pas dans le programme, étant donner qu'il s'agit d'un programme donné sur le site arduino je ne pensais pas avoir d'erreur je ne comprend donc pas.

Il semble que la librarie n'est pas à jour (Wprogram.h a été remplacé par Arduino.h depuis la version 1.0).

Il faut ouvrir PID_v1.h dans ton dossier Arduino/library avec le bloc-note ou mieux encore NotePad++ et remplacer la ligne
#include "Wprogram.h"
par

#include "Arduino.h"

Oui mais ce que je ne comprend pas c'est que je n'utilise pas cette librairie, elle n'est pas incluse dans le programme et même si je change cette ligne sa ne change rien

Toi tu n'utilises pas cette librairie, mais ta librairie l'utilise.

Si tu ne veux pas te casser la tête, télécharge la version 0023 de l'IDE Arduino, qui utilise encore le fichier "WProgram.h"

Jviens de regarder la lib : elle est auto-adaptative, il ne devrait pas y avoir de problème quelque soit ta version d'IDE. Il doit y avoir un problème dans ton install ce n'est pas normal.

c'est pour sa que je ne comprend pas, je suis aller voir également sur un autre forum et il disent qu'il y aurait un souci dans le programme seulement je ne vois pas ce qui ne va pas. Lorsque j'ai utilisé l'Arduino pour programmer mon écran ColorLCDShield je n'ai eu aucun souci tout fonctionnait correctement.

Pour l'installe que faudrait-il que je fasse??? que je réinstalle complètement Arduino ? (sachant que je pense que c'est impossible étant donné que je suis dans une école et que l'on ne peut rien installé :~)

Comment faire ??

Ou alors vous pouvez peut être m'aider ce que j'aimerais faire c'est une régulation PID toute simple, je pensais pouvoir le faire avec le programme de base du PID mais peut être qu'il y a une autre solution ???

Personne ne peut m'aider ??? s'il vous plait

Tu as essayé de reinstallé l'IDE ?

Je peux pas le faire j'ai pas les droits, je suis dans une école donc impossible de réinstaller l'IDE

Tu télécharges ton ide sur une clé usb et tu la lances toujours depuis la clé usb, normalement ça devrait fonctionner.

D'accord j'essaie sa cette après midi je vous redit si sa fonctionne ou pas. Merci en tout cas.

Un nouveau problème survient : voici mon programme

#include <simpletimer.h>

/**
* Asservissement d'un moteur à l'aide d'un régulateur PID
* Avril 2012 - Black Templar
*/
 
//#include <SimpleTimer.h>   //http://arduino.cc/playground/Code/SimpleTimer
#define _DEBUG false
 
SimpleTimer timer;                 // Timer pour échantillonnage
const int _MOTEUR =  9;            // Digital pin pour commande moteur
unsigned int tick_codeuse = 0;     // Compteur de tick de la codeuse
int cmd = 0;                       // Commande du moteur
 
const int frequence_echantillonnage = 50;  // Fréquence du pid
const int rapport_reducteur = 29;          // Rapport entre le nombre de tours de l'arbre moteur et de la roue
const int tick_par_tour_codeuse = 32;      // Nombre de tick codeuse par tour de l'arbre moteur
 
float consigne_moteur_nombre_tours_par_seconde = 5.;  //  Nombre de tours de roue par seconde
 
float erreur_precedente = consigne_moteur_nombre_tours_par_seconde;
float somme_erreur = 0;   // Somme des erreurs pour l'intégrateur
float kp = 300;           // Coefficient proportionnel
float ki = 5.5;           // Coefficient intégrateur
float kd = 100;           // Coefficient dérivateur
 
/* Routine d'initialisation */
void setup() {
    Serial.begin(115200);         // Initialisation port COM
    pinMode(_MOTEUR, OUTPUT);     // Sortie moteur
    analogWrite(_MOTEUR, 255);    // Sortie moteur à 0
 
    delay(5000);                  // Pause de 5 sec pour laisser le temps au moteur de s'arréter si celui-ci est en marche
 
    attachInterrupt(0, compteur, CHANGE);    // Interruption sur tick de la codeuse (interruption 0 = pin2 arduino mega)
    timer.setInterval(1000/frequence_echantillonnage, asservissement);  // Interruption pour calcul du PID et asservissement
}
 
/* Fonction principale */
void loop(){
    timer.run();
    delay(10);
}
 
/* Interruption sur tick de la codeuse */
void compteur(){
    tick_codeuse++;  // On incrémente le nombre de tick de la codeuse
}
 
/* Interruption pour calcul du PID */
void asservissement()
{
    // Réinitialisation du nombre de tick de la codeuse
    int tick = tick_codeuse;
    tick_codeuse=0;
 
    // Calcul des erreurs
    int frequence_codeuse = frequence_echantillonnage*tick;
    float nb_tour_par_sec = (float)frequence_codeuse/(float)tick_par_tour_codeuse/(float)rapport_reducteur;
    float erreur = consigne_moteur_nombre_tours_par_seconde - nb_tour_par_sec;
    somme_erreur += erreur;
    float delta_erreur = erreur-erreur_precedente;
    erreur_precedente = erreur;
 
    // PID : calcul de la commande
    cmd = kp*erreur + ki*somme_erreur + kd*delta_erreur;
 
    // Normalisation et contrôle du moteur
    if(cmd < 0) cmd=0;
    else if(cmd > 255) cmd = 255;
    analogWrite(_MOTEUR, 255-cmd);
 
    // DEBUG
    if(_DEBUG)  Serial.println(nb_tour_par_sec,8);
}

L'adresse de la librairie est donné c'est celle que j'utilise seulement voici les erreurs que j'ai

In file included from PID.cpp:1:
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:9: error: stray '\302' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:9: error: stray '\267' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:9: error: stray '\302' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:9: error: stray '\267' in program
In file included from PID.cpp:1:
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:252:46: error: invalid suffix "aaea3b8475dc9f120d3ece631c6" on integer constant
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:253:62: error: invalid suffix "aaea3b8475dc9f120d3ece631c6" on integer constant
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: stray '#' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: stray '#' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: stray '#' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: stray '#' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: stray '#' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: stray '#' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:531: error: stray '#' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:4: error: expected unqualified-id before '<' token
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: expected constructor, destructor, or type conversion before '.' token
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: expected unqualified-id before '<' token
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: expected constructor, destructor, or type conversion before '/' token
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: expected unqualified-id before '<' token
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: expected constructor, destructor, or type conversion before '.' token
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: expected unqualified-id before '<' token
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:433: error: expected unqualified-id before '<' token

Je viens de tester ton code avec la librairie fraichement récupérée depuis le lien que tu as fourni.
Je n'ai aucun problème de compilation, mon IDE est en version 1.5.2.

helene76:
In file included from PID.cpp:1:
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:9: error: stray '\302' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:9: error: stray '\267' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:9: error: stray '\302' in program
C:\arduino-1.0\libraries\simpletimer/simpletimer.h:9: error: stray '\267' in program
(...)

Ça sent l'encodage de fichier qui a foiré :wink:
Ouvre les deux fichiers .h en question avec notepad++ est regarde si il t'affiche des caractères spéciaux (carrés noirs).