Go Down

Topic: Programme capteur d'humidité (Read 16338 times) previous topic - next topic

Viproz

Donc tu veux exécuter qu'une fois la fonction choixEntier() dans le setup ?

Essai d'ajouter un delai dans la boucle while(!selectOk).
Regarde si ça incrémente correctement et si ça commence bien de 0 maintenant :)

Xaras

Bah normalement oui, vous avez des solutions pour mes erreurs dans l'autre programme que je veux faire sans incrémentation ? Comment intégrer selectok de la Valeurcapteur ? Comme dans les programmes précédent ? Euh pour l'incrémentation ça ne marche pas j'crois que je vais laisse tomber ...
Les erreurs du programme sans incrémentation: (le dernier que je vous ai envoyé).
programme_test_fin.ino: In function 'void setup()':
programme_test_fin:99: error: redefinition of 'void setup()'
programme_test_fin:32: error: 'void setup()' previously defined here
programme_test_fin.ino: In function 'void loop()':
programme_test_fin:105: error: redefinition of 'void loop()'
programme_test_fin:59: error: 'void loop()' previously defined here

Xaras

J'ai le début de ce que je voulais, c'est à dire qu'il m'affiche une valeur en fonction du bouton que j'ai appuyé. Maintenant j'aimerai créer un bouton select qui me la sélectionne puis me la réaffiche. Histoire que cette valeur retourne dans la partie commande de la LED.


Code: [Select]
void setup() {
  // Debugging output
  Serial.begin(9600);
  // set up the LCD's number of columns and rows:
  spf.begin(16, 2);

  // Print a message to the LCD. We track how long it takes since
  // this library has been optimized a bit and we're proud of it :)
  int time = millis();
  spf.print("Vous voici dans");
  delay(500);
  spf.clear();
  spf.print("le programme");
  delay(500);
  spf.clear();
  spf.print("Wetkeeper");
  delay(500);
  spf.clear();
  spf.print("Veuillez");
  delay(500);
  spf.clear();
  spf.print("saisir la");
  delay(500);
  spf.clear();
  spf.print("valeur");
  delay(500);
  spf.clear();
  spf.print("capteur");
  delay(500);
  spf.clear();
  time = millis() - time;
  Serial.print("Took "); Serial.print(time); Serial.println(" ms");
  spf.setBacklight(WHITE);
}

uint8_t i=0;
void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  spf.setCursor(1, 0);




  uint8_t buttons = spf.readButtons();
 
int Valeurcapteur;


  if (buttons) {
    spf.clear();
    spf.setCursor(0,0);
    if (buttons & BUTTON_UP) {
      spf.print("humidité: 6");
      delay(500);
      spf.clear();
      int Valeurcapteur = 6;
      spf.print(Valeurcapteur);
      spf.setBacklight(RED);
    }
    if (buttons & BUTTON_DOWN) {
      spf.print("capteur:24");
      delay(500);
      spf.clear();
      int Valeurcapteur = 24;
      spf.clear();
      delay(500);
      spf.print(Valeurcapteur);
      spf.setBacklight(YELLOW);
    }
    if (buttons & BUTTON_LEFT) {
      spf.print("capteur:160");
      delay(500);
      spf.clear();
      int Valeurcapteur = 160;
      spf.clear();
      delay(500);
      spf.print(Valeurcapteur);
      spf.setBacklight(YELLOW);
    }
    if (buttons & BUTTON_RIGHT) {
     
      spf.setBacklight(YELLOW);
    }
    if (buttons & BUTTON_SELECT) {
     
      spf.setBacklight(VIOLET);
    }
  }
}

Xaras

J'en ai fait un nouveau en ayant peut-être réglé le problème de la partie commande de la LED( dites-moi si c'est juste), maintenant il ne me reste plus qu'à trouver un moyen de créer un bouton Ok pour qu'il confirme bien la saisit de la Valeurcapteur.
Code: [Select]
void setup() {
  // Debugging output
  Serial.begin(9600);
  // set up the LCD's number of columns and rows:
  spf.begin(16, 2);
  int led = 13;
  pinMode(led, OUTPUT);   

  // Print a message to the LCD. We track how long it takes since
  // this library has been optimized a bit and we're proud of it :)
  int time = millis();
  spf.print("Vous voici dans");
  delay(500);
  spf.clear();
  spf.print("le programme");
  delay(500);
  spf.clear();
  spf.print("Veuillez");
  delay(500);
  spf.clear();
  spf.print("saisir la");
  delay(500);
  spf.clear();
  spf.print("valeur");
  delay(500);
  spf.clear();
  spf.print("capteur");
  delay(500);
  spf.clear();
  time = millis() - time;
  Serial.print("Took "); Serial.print(time); Serial.println(" ms");
  spf.setBacklight(WHITE);
}

uint8_t i=0;
void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  spf.setCursor(1, 0);




  uint8_t buttons = spf.readButtons();
int led = 13; 
int Valeurcapteur;


  if (buttons) {
    spf.clear();
    spf.setCursor(0,0);
    if (buttons & BUTTON_UP) {
      spf.print("humidité: 6");
      delay(500);
      spf.clear();
      int Valeurcapteur = 6;
      spf.print(Valeurcapteur);
      spf.setBacklight(RED);
    }
    if (buttons & BUTTON_DOWN) {
      spf.print("capteur:24");
      delay(500);
      spf.clear();
      int Valeurcapteur = 24;
      spf.clear();
      delay(500);
      spf.print(Valeurcapteur);
      spf.setBacklight(YELLOW);
    }
    if (buttons & BUTTON_LEFT) {
      spf.print("capteur:160");
      delay(500);
      spf.clear();
      int Valeurcapteur = 160;
      spf.clear();
      delay(500);
      spf.print(Valeurcapteur);
      spf.setBacklight(YELLOW);
    }
    if (buttons & BUTTON_RIGHT) {
     
      spf.setBacklight(YELLOW);
    }
    if (buttons & BUTTON_SELECT) {
     spf.setBacklight(VIOLET);
     
       digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
       delay(Valeurcapteur);               // wait for a second
       digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
       delay(Valeurcapteur); 
    }
  }
}




Xaras


Go Up