bonsoir a tous.
Voila, j'avais déjà posté pour un soucis que j'avais a programmer des LED programmable sous arduino, la c'est bon j'y suis arriver et j'ai programmer quelque version perso, mais pour le bien de mon projet, je doit passer a l'étape suivante. C'est a dire programmer mon arduino avec différente version de programme utilisable via le shield LCD 2 lignes+bouton.
Alors ma partie LCD j'ai repris une trouver sur internet, une basique qui affiche un mots suivant le bouton appuyer, jusque la pas de soucis ca fonctionne. Mais le soucis c'est que j'ai implanter un mini programme de chez ADAFRUIT (celui qui allume progressivement les LED une par une, le fichier "simple").
J'ai fait en sorte qu'en appuyant sur un des bouton, le texte s'affiche mais que cela lance ce petit programme "simple" que j'ai directement inclus dans le code.
Sur l'écran le texte change mais l'animation lumineuse, toute fois le temps que l'animation devrais durer correspond au temps que reste le texte afficher a l'écran.
Je suis complètement perdu, si une âme charitable voudrais bien m'aider ca serais top.
Un grand merci d'avanceCode:// Charger la librairie LiquidCrystal #include <LiquidCrystal.h> // Définir les pins utilisées par le LCD LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // NeoPixel Ring simple sketch (c) 2013 Shae Erisson // released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif // Which pin on the Arduino is connected to the NeoPixels? // On a Trinket or Gemma we suggest changing this to 1 #define PIN 2 // How many NeoPixels are attached to the Arduino? #define NUMPIXELS 8 // When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals. // Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest // example for more information on possible values. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int delayval = 50; // delay for half a second // Définir les variables globales int lcd_key = 0; int adc_key_in = 0; #define btnRIGHT 0 #define btnUP 1 #define btnDOWN 2 #define btnLEFT 3 #define btnSELECT 4 #define btnNONE 5 // Fonction lire les boutons int read_LCD_buttons() { adc_key_in = analogRead(0); // Lire les valeurs du capteurs // Les valeurs renvoyées sont sensés être: 0, 144, 329, 504, 741 // Il y a une erreur possible de 50 if (adc_key_in > 1000) return btnNONE; // Nous découpons les valeurs possibles en zone pour chaque bouton if (adc_key_in < 50) return btnRIGHT; if (adc_key_in < 250) return btnUP; if (adc_key_in < 450) return btnDOWN; if (adc_key_in < 650) return btnLEFT; if (adc_key_in < 850) return btnSELECT; return btnNONE; // On renvoie cela si l'on est au dessus de 850 } void setup() // Initialisation { lcd.begin(16, 2); // Démarrer la librairie lcd.setCursor(0,0); lcd.print("Appuyer"); // Afficher un message simple } void loop() // Fonction principale { lcd.setCursor(0,1); // Placer le curseur au début de la seconde ligne lcd_key = read_LCD_buttons(); // Lire les boutons switch (lcd_key) // Selon le bouton appuyer { case btnRIGHT: // Pour le bouton "Right" { lcd.print("droite "); // Afficher "Right" break; } case btnLEFT: // Pour le bouton "left" { lcd.print("gauche "); // Afficher "Left" break; } case btnUP: // Pour le bouton "Up" { lcd.print("haut "); // Afficher "Up" break; } case btnDOWN: // Pour le bouton "Down" { lcd.print("bas "); // Afficher "Down" break; } case btnSELECT: // Pour le bouton "Select" { lcd.print(" VERT "); // Afficher "Select" // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one. for(int i=0;i<NUMPIXELS;i++) { // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 pixels.setPixelColor(i, pixels.Color(0,150,0)); // Moderately bright green color. pixels.show(); // This sends the updated pixel color to the hardware. delay(delayval); // Delay for a period of time (in milliseconds). } break; } case btnNONE: // Sinon { lcd.print(" vide "); // Afficher "None" break; } } }
-----