Show Posts
Pages: [1] 2 3 ... 23
1  International / Français / Re: Problème de débutant on: August 14, 2014, 02:23:16 pm
autant pour moi je connaissait pas
merci
2  International / Français / Re: Problème de débutant on: August 14, 2014, 02:07:50 pm
ah daccord
merci pour l'infos
ca s'appliquer tout le temps ou que dans certains cas ?
3  International / Français / Re: Problème de débutant on: August 14, 2014, 01:41:24 pm
ensuite je voit dans ton loop que tu t'est tromper ^^
tu a écrit
  if (! RTC.isrunning()){
    Serial.println("RTC ne fonctionne pas !");
  }
  else{
    Serial.println("RTC fonctionne !");
  }

ce qui veut dire que
si RTC.isrunning alors j'écrit RTC ne fonctionne pas
sinon RTC fonctionne

ça sera plutôt si RTC.isrunning alors j'écrit RTC fonctionne

sinon même si ton RTC fonctionne jamais tu ne pourra t'en servir car tu croit qu'il ne fonctionne pas

4  International / Français / Re: arduino xpl on off on: August 03, 2014, 10:56:08 am
bonjour jeanphillipe
as tu seulement lit ton code ( la fin ) car ce que tu veux faire y est marquer le plus simplement du monde
je ne pense pas que tu est fait le code mais plutot un copier coller ( ca m'arrive aussi ) mais au moins lit le pour comprendre son fonctionnement et pouvoir modifier un tant sois peu
5  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 10:12:45 am
daccord ça me permet de rassembler les déclaration et variables en haut ce qui est pas plus mal
j'en est profiter pour remonter mon float temp

tout m'a l'air clean ma foi
j'ai rajouter quelque code pour le debug
genre si debug = 1 je lance la liaison série et envoie les valeurs
si debug = 0 j’exécute juste le code de gestion et roule

un grand merci a toi pour cette aide ou j'ai apprit pourquoi un static est nécessaire dans certains cas
6  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 09:54:53 am
ah ok je comprends
oui effectivement c'est bon a savoir qu'il faut penser a mettre des static pour des variables
pas réellement besoin de le mettre dans les globales mais après tu peux me montrer un exemples avec le getTemperature je suis preneur pour apprendre
merci beaucoup
7  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 09:21:01 am
saloperie de connerie la ca marche
hum merci a toi jlbechennec
par contre j'avoue que j'aimerais bien comprendre pourquoi pour un static ca bug
je rajoute dessus ce qu'il faut pour quand la temp = consigne
8  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 09:18:11 am
effectivement si j'enregistre pas mon code en faisant une modif ca marche moins bien
c'est rajouter
9  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 09:06:16 am
oui effectivement une petite variation ce fait sentir mais cela s'expliquer surement par la breadboard et par mes fils
je n'est pas mit pour le moment d’état stable quand la température est la même que la consigne
je rajoute ça après

je te mets le code actuel mais tu vérra qu'il n'y a vraiment pas grand chose de plus

Code:
#include <OneWire.h> // Inclusion de la librairie OneWire
#include <Servo.h>

#define DS18B20 0x28     // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE 7 // Broche utilisée pour le bus 1-Wire
#define max 179          //valeur max de consigne servo
#define min 1            //valeur min de servo


OneWire ds(BROCHE_ONEWIRE); // Création de l'objet OneWire ds

Servo myservo;  // creation de la variable servo

int potpin = 0;  // entrer du potar de consigne
int consigne;    // variable pour la pin de consigne
int pos = 90;

// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp){
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté

  if (!ds.search(addr)) { // Recherche un module 1-Wire
    ds.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }
  
  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur

  if (addr[0] != DS18B20) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur

  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  
  ds.write(0x44, 1);      // On lance une prise de mesure de température
  delay(50);             // Et on attend la fin de la mesure
  
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  ds.write(0xBE);         // On envoie une demande de lecture du scratchpad

  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds.read();       // Et on stock les octets reçus
  
  // Calcul de la température en degré Celsius
  *temp = ((data[1] << 8) | data[0]) * 0.0625;
  
  // Pas d'erreur
  return true;
}

// setup()
void setup() {
  Serial.begin(9600); // Initialisation du port série
    myservo.attach(9);  // attaches the servo on pin 9 to the servo object
    myservo.write(pos);                  // met le servo a la position de val
    delay(500);                           // attente de positionnement du servo
}

// loop()
void loop() {
  float temp;
 static  int tempok;
  
  // Lit la température ambiante à ~1Hz
  if(getTemperature(&temp)) {
    tempok = (int) temp;
    // Affiche la température
    Serial.print("Temperature: ");
    Serial.print(tempok);
    Serial.write(176); // caractère °
    Serial.write('C');
    Serial.println();
  }
  consigne = analogRead(potpin);            // lit la valeur du potar comprise entre 0 et 1023
  consigne = map(consigne, 0, 1023, 0, 100);     // converti cette valeur entre 0 et 100

  Serial.print("consigne: ");
  Serial.println(consigne);
  
  pos = constrain(pos, min, max);

  if (tempok <= consigne) {
    pos = pos - 1;
    myservo.write(pos);              
    delay(15);
  }
  else {    
    pos = pos + 1;
    myservo.write(pos);              
    delay(15);                      
  }
    Serial.print("position servo: ");
    Serial.println(pos);
   // delay(300);
}
10  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 06:33:59 am
effectivement çà aurais pu être ça mais ça a rien changer toujours le même problème
je laisse car c'est bon a savoir
11  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 05:57:15 am
effectivement la durée des impulsions ne me sert pas j’enlève
j'ai un print de la température de la consigne et de la position
pos ne fait qu'augmenter jusqu'a 180 ( constrain le bloque pour ne pas qu'il aille au delà)
mais impossible de le faire redescendre

le log
Code:
position servo: 90
Temperature: 25°C
consigne: 72
position servo: 89
consigne: 72
position servo: 90
Temperature: 25°C
consigne: 72
position servo: 89
consigne: 72
position servo: 90
Temperature: 25°C
consigne: 72
position servo: 89
consigne: 72
position servo: 90
Temperature: 25°C
consigne: 71
position servo: 89
consigne: 71
position servo: 90
Temperature: 25°C
consigne: 70
position servo: 89
consigne: 69
position servo: 90
Temperature: 25°C
consigne: 68
position servo: 89
consigne: 68
position servo: 90
Temperature: 25°C
consigne: 67
position servo: 89
consigne: 67
position servo: 90
Temperature: 25°C
consigne: 65
position servo: 89
consigne: 65
position servo: 90
Temperature: 25°C
consigne: 63
position servo: 89
consigne: 63
position servo: 90
Temperature: 25°C
consigne: 62
position servo: 89
consigne: 61
position servo: 90
Temperature: 25°C
consigne: 59
position servo: 89
consigne: 59
position servo: 90
Temperature: 25°C
consigne: 57
position servo: 89
consigne: 57
position servo: 90
Temperature: 25°C
consigne: 56
position servo: 89
consigne: 55
position servo: 90
Temperature: 25°C
consigne: 54
position servo: 89
consigne: 54
position servo: 90
Temperature: 25°C
consigne: 52
position servo: 89
consigne: 52
position servo: 90
Temperature: 25°C
consigne: 50
position servo: 89
consigne: 51
position servo: 90
Temperature: 25°C
consigne: 48
position servo: 89
consigne: 47
position servo: 90
Temperature: 25°C
consigne: 45
position servo: 89
consigne: 45
position servo: 90
Temperature: 25°C
consigne: 43
position servo: 89
consigne: 43
position servo: 90
Temperature: 25°C
consigne: 41
position servo: 89
consigne: 41
position servo: 90
Temperature: 25°C
consigne: 39
position servo: 89
consigne: 39
position servo: 90
Temperature: 25°C
consigne: 39
position servo: 89
consigne: 37
position servo: 90
Temperature: 25°C
consigne: 36
position servo: 89
consigne: 36
position servo: 90
Temperature: 25°C
consigne: 34
position servo: 89
consigne: 34
position servo: 90
Temperature: 25°C
consigne: 33
position servo: 89
consigne: 36
position servo: 90
Temperature: 25°C
consigne: 32
position servo: 89
consigne: 33
position servo: 90
Temperature: 25°C
consigne: 32
position servo: 89
consigne: 32
position servo: 90
Temperature: 25°C
consigne: 32
position servo: 89
consigne: 32
position servo: 90
Temperature: 25°C
consigne: 32
position servo: 89
consigne: 32
position servo: 90
Temperature: 25°C
consigne: 32
position servo: 89
consigne: 36
position servo: 90
Temperature: 25°C
consigne: 32
position servo: 89
consigne: 32
position servo: 90
Temperature: 25°C
consigne: 32
position servo: 89
consigne: 32
position servo: 90
Temperature: 25°C
consigne: 32
position servo: 89
consigne: 32
position servo: 90
Temperature: 25°C
consigne: 30
position servo: 89
consigne: 30
position servo: 90
Temperature: 25°C
consigne: 29
position servo: 89
consigne: 29
position servo: 90
Temperature: 25°C
consigne: 28
position servo: 89
consigne: 28
position servo: 90
Temperature: 25°C
consigne: 27
position servo: 89
consigne: 27
position servo: 90
Temperature: 25°C
consigne: 26
position servo: 89
consigne: 26
position servo: 90
Temperature: 25°C
consigne: 26
position servo: 89
consigne: 26
position servo: 90
Temperature: 25°C
consigne: 26
position servo: 89
consigne: 28
position servo: 90
Temperature: 25°C
consigne: 26
position servo: 89
consigne: 26
position servo: 90
Temperature: 25°C
consigne: 25
position servo: 89
consigne: 25
position servo: 90
Temperature: 25°C
consigne: 24
position servo: 91
consigne: 24
position servo: 92
Temperature: 25°C
consigne: 23
position servo: 93
consigne: 23
position servo: 94
Temperature: 25°C
consigne: 24
position servo: 95
consigne: 23
position servo: 96
Temperature: 25°C
consigne: 19
position servo: 97
consigne: 19
position servo: 98
Temperature: 25°C
consigne: 17
position servo: 99
consigne: 17
position servo: 100
Temperature: 25°C
consigne: 16
position servo: 101
consigne: 16
position servo: 102
Temperature: 25°C
consigne: 14
position servo: 103
consigne: 14
position servo: 104
Temperature: 25°C
consigne: 13
position servo: 105
consigne: 12
position servo: 106
Temperature: 25°C
consigne: 11
position servo: 107
consigne: 10
position servo: 108
Temperature: 25°C
consigne: 9
position servo: 109
consigne: 8
position servo: 110
Temperature: 25°C
consigne: 7
position servo: 111
consigne: 7
position servo: 112
Temperature: 25°C
consigne: 6
position servo: 113
consigne: 5
position servo: 114
Temperature: 25°C
consigne: 5
position servo: 115
consigne: 9
position servo: 116
Temperature: 25°C
consigne: 4
position servo: 117
consigne: 4
position servo: 118
Temperature: 25°C
consigne: 4
position servo: 119
consigne: 4
position servo: 120
Temperature: 25°C
consigne: 4
position servo: 121
consigne: 4
position servo: 122
Temperature: 25°C
consigne: 5
position servo: 123
consigne: 5
position servo: 124
Temperature: 25°C
consigne: 7
position servo: 125
consigne: 8
position servo: 126
Temperature: 25°C
consigne: 10
position servo: 127
consigne: 10
position servo: 128
Temperature: 25°C
consigne: 11
position servo: 129
consigne: 12
position servo: 130
Temperature: 25°C
consigne: 14
position servo: 131
consigne: 15
position servo: 132
Temperature: 25°C
consigne: 17
position servo: 133
consigne: 17
position servo: 134
Temperature: 25°C
consigne: 20
position servo: 135
consigne: 20
position servo: 136
Temperature: 25°C
consigne: 26
position servo: 135
consigne: 23
position servo: 136
Temperature: 25°C
consigne: 26
position servo: 135
consigne: 26
position servo: 136
Temperature: 25°C
consigne: 29
position servo: 135
consigne: 29
position servo: 136
Temperature: 25°C
consigne: 32
position servo: 135
consigne: 32
position servo: 136
Temperature: 25°C
consigne: 34
position servo: 135
consigne: 37
position servo: 136
Temperature: 25°C
consigne: 37
position servo: 135
consigne: 37
position servo: 136
Temperature: 25°C
consigne: 38
position servo: 135
consigne: 38
position servo: 136
Temperature: 25°C
consigne: 38
position servo: 135
consigne: 38
position servo: 136
Temperature: 25°C
consigne: 38
position servo: 135
consigne: 38
position servo: 136
Temperature: 25°C
consigne: 38
position servo: 135
consigne: 39
position servo: 136


comme on le voit la position du servo est a peu prés stable ( a 1° pres)
quand ma consigne est au dessus de ma temp rien ne ce passe alors que la position de mon servo devrait diminuer
par contre quand la consigne est en dessous de la temp la le servo augmente ( ce pour quoi il est programmer )
donc juste la descente bug
est ce le pos = pos -5 qui pose problème ?
12  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 04:34:21 am
merci a toi
je viens d'essayer en donnant une valeur a pos comme tu la marquer
cela ne change rien du tout
ma valeur tempok affiche la température dans la pièce ( environ 28°C) et la consigne elle affiche une valeur entr e0 et 100 suivant la position du potar

j'avoue ne pas comprendre pourquoi le     pos = pos + 5;
 fonctionne mais pas le     pos = pos - 5;
13  International / Français / [RESOLU] gestion servo suivant temperature on: July 26, 2014, 04:38:34 pm
Bonjour a tous
je suis en train de faire un code pour que un servo se deplace suivant une temperature ( si la temperature est superieur a la consigne le servo bouge dans un sens si la temperature est inferieur a la consigne le servo bouge dans l'autre sens )

le code est simple mais un bug se produit
ma position de servo ( pos dans le code )
ne fait que monter
impossible de la faire redescendre
avez vous une idée du pourquoi du comment
merci a vous

Code:
#include <OneWire.h> // Inclusion de la librairie OneWire
#include <Servo.h>

#define DS18B20 0x28     // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE 7 // Broche utilisée pour le bus 1-Wire
#define max 175          //valeur max de consigne servo
#define min 5            //valeur min de servo


OneWire ds(BROCHE_ONEWIRE); // Création de l'objet OneWire ds

Servo myservo;  // creation de la variable servo

int potpin = 0;  // entrer du potar de consigne
int consigne;    // variable pour la pin de consigne
int pos;

// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp){
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté

  if (!ds.search(addr)) { // Recherche un module 1-Wire
    ds.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }
  
  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur

  if (addr[0] != DS18B20) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur

  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  
  ds.write(0x44, 1);      // On lance une prise de mesure de température
  delay(50);             // Et on attend la fin de la mesure
  
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  ds.write(0xBE);         // On envoie une demande de lecture du scratchpad

  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds.read();       // Et on stock les octets reçus
  
  // Calcul de la température en degré Celsius
  *temp = ((data[1] << 8) | data[0]) * 0.0625;
  
  // Pas d'erreur
  return true;
}

// setup()
void setup() {
  Serial.begin(9600); // Initialisation du port série
    myservo.attach(9, 2000, 2000);  // attaches the servo on pin 9 to the servo object
    myservo.write(90);                  // met le servo a la position de val
    delay(500);                           // attente de positionnement du servo
}

// loop()
void loop() {
  float temp;
  int tempok;
  
  // Lit la température ambiante à ~1Hz
  if(getTemperature(&temp)) {
    tempok = (int) temp;
    // Affiche la température
    Serial.print("Temperature : ");
    Serial.print(tempok);
    Serial.write(176); // caractère °
    Serial.write('C');
    Serial.println();
  }
  consigne = analogRead(potpin);            // lit la valeur du potar comprise entre 0 et 1023
  consigne = map(consigne, 0, 1023, 0, 100);     // converti cette valeur entre 0 et 100

  Serial.print("consigne:");
  Serial.println(consigne);
  
  pos = constrain(pos, min, max);

  if (tempok <= consigne) {
    pos = pos - 5;
    myservo.write(pos);              
    delay(15);
  }
  else {    
    pos = pos + 5;
    myservo.write(pos);              
    delay(15);                      
  }
  
    Serial.println(pos);
    delay(500);
}
14  International / Français / Re: Ecran tactile on: July 05, 2014, 12:45:00 am
salut a toi
pour du capacitif il existe des stylet fait pour il me semble
récupérer le bout du stylet peut être une solution
après essaie avec du silicone (cartouche de silicone)
pour le mouler j'utilise du papier cuisson ( ça colle moins )
15  International / Le bar / Re: Etude de marché on: May 10, 2014, 03:28:43 am
merci a toi john_lenfr je viens de modifier comme il faut
merci hollinguade pour tes réponses au questionnaire
Pages: [1] 2 3 ... 23