Show Posts
Pages: [1] 2 3
1  International / Français / Re: Dificultée avec boucle et tableau on: November 30, 2013, 12:37:36 pm
En clair c'est pas gangné !!
Va faloir potasser le c++!!
Merci quand même..
2  International / Français / Re: Dificultée avec boucle et tableau on: November 30, 2013, 10:55:51 am
Bon là je vous suis carement  pas,
mon code fonctionne tres bien mais pas longtemps, je pense que  fdufnews a raison mais
comment y remedier?
En faisant par exemple:
Code:
CauseMiseEnRoute = "Off";
Au lieu de
Code:
CauseMiseEnRoute = "";
Pour mieux gerer la mémoire?
Comment tester si la chaine est OK?
Quote
if(CauseMiseEnRoute)
{......}
3  International / Français / Re: Dificultée avec boucle et tableau on: November 30, 2013, 09:38:30 am
Voila le code de ma fonction:
Code:
String CauseMiseEnRoute = "";
int IndexMiseEnRoute[5]={11,11,11,11,11};

Code:
void GestionVMC ()
{
  if ((Auto) && (NdemarrageVMC <= 3))
  {
    //------------------------Remise à zero
      for(int i =0; i< 4; i++)
     { IndexMiseEnRoute[i]=11;}
      CauseMiseEnRoute = "";
//--la gestion des sondes avec le pilotage des sorties de l'arduino
//   ainsi que le remplisage du tableau
etape 0:
IndexMiseEnRoute[0] = 2 ;
etape 1:
IndexMiseEnRoute[1] = 2 ; // ou 3 ou 4
etape 2:
IndexMiseEnRoute[2] = 6 ;
etc ...
}//fin declenchement horaire ou hygro de la SDB
    else
    {
                Vmc_On = false;
    }
if(Vmc_On)//La gestion fait qu'il faut allumer la VMC
                      {
                       char* ListMiseEnRoute[12]={"V-S Off - ","V-S Hiver - ","V-S ete - ","Douche - ","Non utilisé - ","T comble - ","T exterieure - ","T sortie OK - ","Seche linge - ","Vit2 Douche ou S_Linge - ","Vit2 entree calorie - "," "};

                            for(int i=0; i < 4 ; i++)
                            {
                                CauseMiseEnRoute +=  ListMiseEnRoute[IndexMiseEnRoute[i]];
                            }
                     }



4  International / Français / Re: Piloter une résistance de 1000W on: November 30, 2013, 09:28:04 am
Merci pour vos infos,
oui je compte mettre un max de securités, sondes et relais, et pourquoi pas un detecteur de fumée à proximitée
le relais static et un contact ni plus ni moins non?
Faire varier avec un PWM ne serait-elle pas la meilleure solution pour reguler la T° ?
 
5  International / Français / Piloter une résistance de 1000W on: November 30, 2013, 08:26:08 am
Bonjour,
dans ma VMC (double flux) pour limiter les deperditions je vais ajouter une résistance chauffante de 1000W/220V .
dont voici l'exemple:

Dans le but de limiter la chauffe et la consomation electrique, je voudrais la piloter avec mon arduino.
Qu'en pensez vous ?
Quel module serait le plus approprié?
Merci pour vos réponses.



6  International / Français / Re: Dificultée avec boucle et tableau on: November 30, 2013, 08:15:55 am
Euh oui mais c'est déja le cas ,
je voulais éditer mon 1er post pour corriger mais vous avez répondu plus rapidement que prévu.  smiley-fat
En fait à chaque fois en tout début de la fonction je vide tout de cette façon:
Code:
       for(int i =0; i< 4; i++)
     { IndexMiseEnRoute[i]=11;}
      CauseMiseEnRoute = "";

Désolé!..
7  International / Français / Re: Dificultée avec boucle et tableau on: November 30, 2013, 06:41:28 am
Bonjour,
merci pour la réponse rapide,
je ne te suis pas là, CauseMiseEnRoute est une string et non un tableau,
il est vrai que dans mon premier post ça peut préter à confusion.
8  International / Français / Dificultée avec boucle et tableau on: November 30, 2013, 04:42:58 am
Bonjour,
dans le rogramme de gestion de ma VMC, à chaque changement d'etat de fonctionnement  j'alimente une string pour l'afficher ces etats sur ma page Html.
Dans un premier temps je déclare un tableau  et une string:
int IndexMiseEnRoute[5]={11,11,11,11,11};
CauseMiseEnRoute = "";

A chaque étape franchit j'alimente comme ceci mon tableau
etape 0:
IndexMiseEnRoute[0] = 2 ;
etape 1:
IndexMiseEnRoute[1] = 2 ; // ou 3 ou 4
etape 2:
IndexMiseEnRoute[2] = 6 ;
etc ...

Arrivé à la fin de la routine, j'alimente mon string comme ceci:
Code:
                       char* ListMiseEnRoute[12]={"V-S Off - ","V-S Hiver - ","V-S ete - ","Douche - ","Non utilisé - ","T comble - ","T exterieure - ","T sortie OK - ","Seche linge - ","Vit2 Douche ou S_Linge - ","Vit2 entree calorie - "," "};

                            for(int i=0; i < 4 ; i++)
                            {
                                CauseMiseEnRoute +=  ListMiseEnRoute[IndexMiseEnRoute[i]];
                            }
Le probleme est que ça ne fonctionne pas , au bout d'un certain temps ça me plante le serveur et je n'arrive pas à comprendre pourquoi.
J'ai tenté plusieurs variantes mais ça plante toujours.
Le fait de supprimer cette boucle et mettre simplement
Code:
CauseMiseEnRoute = "On";
je n'ai plus de plantage.

Merci de votre aide,
9  International / Français / Re: W5100 et carte SD, ecriture à la suite bloque on: January 10, 2013, 02:18:32 pm
Bonsoir Heloderma-kris,
Ne trouvant pas le problème dans mon code, j'ai repris le tiens que j'ai adapté au mien.
Merci pour ton aide!!
Bonne soirée.
10  International / Français / Re: W5100 et carte SD, ecriture à la suite bloque on: January 10, 2013, 09:47:40 am
J'ai trouvé l'origine du probleme, le tableau "FileName" me servant à stocker le nom du fichier varie en ajoutant un espace ou en modifiant un caractère,
 ex:
test.txu puis test.txv .
J'ai modifié le code pour limiter les écritures, reduis le tableau à 9 ettester le nom du fichier sur le moniteur, mais c'est pareil.
La fonction:
Code:
void Rec_carte_SD()
{
                pinMode(10,OUTPUT);
                digitalWrite(10,HIGH); // Active la carte SD
                Serial.print("fileName = ");               
                      if(SD.exists(fileName))//Teste si le fichier est présent dans la carte SD
                        {
                        file = SD.open(fileName, FILE_WRITE); //ouverture en ecriture du fichier
                         Serial.println("fichier OK");
                          Serial.print(fileName);
                        }
                      else
                      {
                        Serial.println("fichier HS");
                        Serial.print(fileName);
                      }

                n_Valeur_Mesure ++;       //incrementation de la valeur à ecrire
                file.println(n_Valeur_Mesure); //Ecriture de la valeur
                file.println();                //saut de ligne
                file.close();                  // Fermeture du fichier
                Serial.println(n_Valeur_Mesure); //Contrôle valeur (pour debogage)
                EcritureSD = false;
}

Loop:
Code:
          if (root)
        {
          Serial.println(DelaisRecSondes);
            //if (((Minute == 25) ||(Minute == 26)||(Minute == 27)||(Minute == 27))&&(EcritureSD == false))
            if(Minute == 59)
            {
              DelaisRecSondes=0;
            }
           
            if ((Minute> DelaisRecSondes+1)&&(EcritureSD))
            { 
            Rec_carte_SD();
            DelaisRecSondes = Minute;
            }
             else
            {
            pinMode(4, OUTPUT); //Active le W5100
            EcritureSD = true;
            }
             
        }
        delay(2000);

Une idée?

11  International / Français / W5100 et carte SD, ecriture à la suite bloque on: January 10, 2013, 07:40:29 am
Bonjour,
dans mon programme je voudrai enregistrer les valeurs toutes les X secondes au format csv dans la carte SD.
La partie écriture en CSV ne me cause pas de problème mais c'est plutôt l’écriture dans le fichier de la carte SD qui me bloque.
Lors du démarrage dans le setup j'arrive à créer un fichier dans la carte avec une première ligne puis dans la boucle loop une seconde ligne.
Mon problème est que je n'arrive pas à écrire de 3eme ligne, la fonction "Enregistrement_carte_SD" fonctionne car je vois les valeur dans le moniteur mais pas de 3eme ligne.
J'ai mis      pinMode(10,OUTPUT);  digitalWrite(10,HIGH); dans la fonction car dans mon programme je désactive la carte SD pour accéder à ma page HTML.
Si quelqu'un a une idée du problème, merci d'avance pour son aide.
Mon setup:

Code:
void setup()   {
    //----initialise connexion série
  Serial.begin(9600);

    //***************** initialisation de la carte SD **************************************

  Serial.println("Initialisation de la SD card...");
       pinMode(10,OUTPUT);
     digitalWrite(10,HIGH); // Active la carte SD
  
  test=SD.begin(brocheSDCardSelect); // initialisation de la carte SD avec broche 4 en tant que CS - renvoie true/false

  if (test!=true) { // si initialisation n'est pas réussie
    Serial.println("Echec initialisation!"); // message port Série
  }
  else { // si initialisation réussie
    Serial.println("Initialisation reussie !"); // message port Série

    //----- affiche le contenu du répertoire

    root = SD.open("/"); // ouvre la SD Card à la racine
    Serial.println("Repertoire racine ouvert !");
    if(root)
    {
      if(SD.exists("test.txt"))//Teste si le fichier est présent dans la carte SD
      {
        int EvoNomFichier = 1; //Valeur permettant d’incrémenter le nom du fichier

        sprintf(fileName,"%04s%02d%04s","test_",EvoNomFichier,".txt");  //  %d pour un int
        if (SD.exists(fileName)) //Teste si le nouveau nom existe
        {
          while (SD.exists(fileName))  //Tant que le fichier existe dans la SD on l’incrémente
          {      
            EvoNomFichier ++;
            sprintf(fileName,"%04s%02d%04s","test_",EvoNomFichier,".txt");  //  %d pour un int  %s pour un string c'est un tableau
          }//Fin de la boucle While                          
          file = SD.open(fileName, FILE_WRITE); // ouvre le fichier en écriture
          FileOK= true;
        }
        else // Pas de nouveau fichier donc on le créer.
        {
          file = SD.open(fileName, FILE_WRITE); // ouvre le fichier en écriture
          Serial.println(fileName);
          FileOK= true;
        }
      }
      else
      {
        file = SD.open("test.txt", FILE_WRITE); // ouvre le fichier en écriture
        sprintf(fileName,"%04s%04s","test",".txt");
        FileOK= true;
      }
      file.println("test ecriture");
      file.close(); // ferme le fichier
      Serial.println("Fin enregistrement !");  
      Serial.println("Fermeture fichier !");
      delay(500);
    }
  } //Fin initialisation réussie
}

Le loop

Code:
void loop()
{
  //*********************Recup de L'heure dans le DS1307 **************
    RTC.get(rtc,true); // set the RTC
    Heure = rtc[2];
    Minute =  rtc[1];

     Serial.print(Heure);
     Serial.print(":");
     Serial.println(Minute);
     ///////////////////////// TOUTE LES xx MINUTES ///////////////////////////////////
          if (root)
        {
          Serial.println(DelaisRecSondes);
            if(DelaisRecSondes>= 58)
            {
              DelaisRecSondes=0;
            }
            
            if (Minute> DelaisRecSondes+1)
            {  
            Enregistrement_carte_SD();    
            }
             else
            {
            pinMode(4, OUTPUT); //Active le W5100
            EcritureSD = false;
            }
        }
        delay(2000);
}

La fonction:

Code:
void Enregistrement_carte_SD()
{
     pinMode(10,OUTPUT);
     digitalWrite(10,HIGH); // Active la carte SD

      Serial.print("fileName = ");
      Serial.println(fileName); //contrôle du nom de fichier(pour le debug)
      file = SD.open(fileName, FILE_WRITE); //ouverture en écriture du fichier
      n_Valeur_Mesure ++        //incrémentation de la valeur à écrire
      file.println(n_Valeur_Mesure); //Ecriture de la valeur
      file.println();                //saut de ligne
      file.close();                  // Fermeture du fichier
      Serial.println(n_Valeur_Mesure); //Contrôle valeur (pour débogage)
      DelaisRecSondes = Minute;    //Incrémentation pour boucle dans le Loop
}

12  International / Français / Re: DC1307 configuration des voies on: January 05, 2013, 06:54:56 am
C'est bon ça fonctionne,
c'est un bug du logiciel, à chaque nouvel essai je mettais la librairie dans le dossier "Arduino\arduino-1.0.3\libraries\DS1307Old" et installé la nouvelle librairie "DS1307" dans
"Arduino\arduino-1.0.3\libraries\".
Mais le logiciel malgré un reboot, va toujours chercher dans le dossier DS1307Old" et ce malgré #include <DS1307.h>
On voit le mauvais chemin dans le compilo, il va chercher une ancienne librairie.
Pour résoudre ça j'ai renommé le dossier "DS1307Old" en Old" et maintenant ça compile et fonctionne avec ma carte.
Seul bémol, il mets impossible de régler l'année 2013,( 2009, 2010,2011 ok).
Tout ça pour un bug de répertoire..

13  International / Français / Re: DC1307 configuration des voies on: January 05, 2013, 04:57:29 am
L'ironie c'est qu'hier j'ai branché mon module DS1307 à ma mega, et comme je ne m'en étais pas servi depuis des mois et qu'entre temps j'avais tout formaté, et bien j'avais plus rien. Donc Google et je chope la lib ici http://code.google.com/p/libds1307/downloads/detail?name=DS1307.zip&can=2&q=  Sur la mega en plus les pins SDA et SCL sont à part, donc encore plus simple à brancher que sur une UNO. Je charge le code fourni en exemple, et hop ça marche. Aucun problème de compil, rien à modifier et IDE 1.0.3.
J'ai tester cette librairie, elle ne compile pas chez moi, voici les erreurs:
Code:
In file included from DS1307.ino:2:
C:\Users\Laurent\Documents\Arduino\arduino-1.0.3\libraries\DS1307Old/DS1307.h:47: error: 'boolean' has not been declared
C:\Users\Laurent\Documents\Arduino\arduino-1.0.3\libraries\DS1307Old/DS1307.h:48: error: 'boolean' has not been declared
C:\Users\Laurent\Documents\Arduino\arduino-1.0.3\libraries\DS1307Old/DS1307.h:55: error: 'byte' does not name a type

can=2&q=  Sur la mega en plus les pins SDA et SCL sont à part, donc encore plus simple à brancher que sur une UNO. Je charge le code fourni en exemple, et hop ça marche. Aucun problème de compil, rien à modifier et IDE 1.0.3.
[/quote]
Après je veux bien que t'aies cherché, m'enfin voici le troisième lien en tapant "mega ds1307" : http://samuel.goutenoir.com/wiki/index.php/DS1307
[/quote]

C'est le lien que j'ai poster juste avant et il ne compile pas non plus chez moi même apres avoir renommé en "write" comme dis par le compilo.
Les erreurs:
Code:
In file included from DS1307.ino:8:
C:\Users\Laurent\Documents\Arduino\arduino-1.0.3\libraries\DS1307Old/DS1307.h:47: error: 'boolean' has not been declared
C:\Users\Laurent\Documents\Arduino\arduino-1.0.3\libraries\DS1307Old/DS1307.h:48: error: 'boolean' has not been declared
C:\Users\Laurent\Documents\Arduino\arduino-1.0.3\libraries\DS1307Old/DS1307.h:55: error: 'byte' does not name a type
DS1307.ino: In function 'void Set_Square_Wave(int)':
DS1307:14: error: 'write' was not declared in this scope

Vous me croyez maintenant ????
MOI j'ai testé, j'ai toujours des erreurs , j'ai beau modifier mais c'est au pif car je ne maitrise pas, alors je demande.
C'est peut etre mon logiciel Arduino qui beugue non? qu'en pensez-vous?
14  International / Français / Re: DC1307 configuration des voies on: January 05, 2013, 04:30:01 am
+1
Surtout que les DS1307 des tutos y'en a ras la gueule le net alors faut pas déconner non plus. Débarquer en se foutant de la gueule des gens, je trouve ça encore moins sympathique. A bon entendeur ...

Oui la toile regorge de tuto comme tu dis, mais aucun ne regroupe les évolutions.
J'ai chargé plus d'une vingtaine de sources et aucune ne compilent avec Arduino 1.3, il faut soit modifier la librairie (chose que je ne sais pas faire), ou le code en lui-même pour être compatible.
C'est ce que j'ai constaté, maintenant si après avoir testé toutes ces sources on considère qu'il faut chercher avant de poster ..
Je peux poster les sources mais elles sont toutes différentes, à mon avis à part polluer le forum cela ne servira à rien.
Je n'ai pas su non plus trouver ou on configure les ports SDA et SCL pour une connexion sur Mega.
Faites des tests vous verrez si c'est pas vrais.

Un exemple:
Sur  ce site qui correspondrait à ma recherche,  ça compile pas malgré l’essai de plusieurs librairie DS 1307.
J'en ai d'autres, c'est festival dans le compilo !!
C'est facile qu'en on sais de modifier en conséquence mais quand on sais pas, au début on essai puis on finit par poster.


Débarquer en se foutant de la gueule des gens
Loin de moi cette idée, il m'est tout simplement irritant d'avoir ce genre de réponse après avoir passé plusieurs heures de tests.
Je n'ai rien contre 68tjs c'est juste sa réponse qui m'a fait bondir d'autant plus que ça fais 2 fois sur le forum que je prends ce genre de réflexion gratuite, c'est pas sympa.

Pour résumer, je cherche à faire fonctionner mon horloge sur ma Méga, résultat ça ne fonctionne pas et on me prend pour pompeur, c'est pas top!
Bonne journée,
15  International / Français / Re: DC1307 configuration des voies on: January 04, 2013, 03:42:01 pm
De l'aide oui mais il faudrait qu'au préalable  tu fasses un effort pour chercher.
Ce genre de réponse n'est pas des plus sympathique et qui plus est injustifié !!!
Saches que:
1: Je suis débutant,
2: Je ne POSTE JAMAIS SANS AVOIR AU PREALABLE FAIT DE RECHERCHES.
3: Si comme moi tu avais mi ce code dans le logiciel Arduino tu aurais vu que tous les commentaires sont décalés et qu'il comprend la gestion du LCD
alourdissant le code ce qui n'est pas ce qu'il y a de mieux pour un débutant.
4: Comme tu as du le voir dans mon post précédent j'ai une Méga et la plupart des codes que j'ai trouvé sont pour Uno ou Duemilanove, les PIN (SDA et SCL) ne  sont pas au même emplacement (configs différentes ??)
5: Il y a eu beaucoup d’évolution entre les librairies 1307 et l'Arduino, difficile de si retrouver, le compilo est systématiquement noir d'erreur.
6: N'est ce pas un forum d'entraide?

On veut bien t'aider à résoudre des difficultés mais pas faire des recherches a ta place.

Merci pour l'aide mais pas besoin de perdre de temps à chercher à ma place et répondre comme tu le fais surtout après 2 jours de recherches!!
et surtout sans savoir.

Bonne soirée,



Pages: [1] 2 3