Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Programmation shield LCD sous arduino



  1. #1
    c4madmig

    Programmation shield LCD sous arduino


    ------

    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.
    Code:
    // 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;
    }
    }
    
    }
    Un grand merci d'avance

    -----

  2. Publicité
  3. #2
    freepicbasic

    Re : aide programmation shield LCD sous arduino

    8 x 50 ms = 400ms
    C'est court !!!
    rajoute une boucle pour faire plusieurs fois la séquence
    A+, pat

  4. #3
    c4madmig

    Re : aide programmation shield LCD sous arduino

    Citation Envoyé par freepicbasic Voir le message
    8 x 50 ms = 400ms
    C'est court !!!
    rajoute une boucle pour faire plusieurs fois la séquence
    j'avais fait un essai avec 8*500ms et le résultat étais le même.
    Je "voit" bien la tempo ce passer mais les LED ne s'allume pas. J'ai aussi bien vérifier que le pin que j'utilise soit libre sur la carte (ce qui ai le cas).

  5. #4
    freepicbasic

    Re : Programmation shield LCD sous arduino

    Je ne vois pas l'initialisation de la pin Led.
    Peut être que la lib le fait, mais peut être pas ?

    Si ce n'est pas fait elle reste en entrée et il se passe rien
    A+, pat

  6. A voir en vidéo sur Futura
  7. #5
    c4madmig

    Re : Programmation shield LCD sous arduino

    Citation Envoyé par freepicbasic Voir le message
    Je ne vois pas l'initialisation de la pin Led.
    Peut être que la lib le fait, mais peut être pas ?

    Si ce n'est pas fait elle reste en entrée et il se passe rien
    Tu accepte quoi comme remerciement, des bouteilles de coca ça te vas ou il te faut un virement bancaire??

    C'est éxactement ce que j'avais oublier de mettre, maintenant ça fonctionne parfaitement
    Un Grand MERCI a toi

Discussions similaires

  1. Quel shield Bluetooth pour mon Arduino Uno?
    Par benbosch dans le forum Électronique
    Réponses: 12
    Dernier message: 11/05/2015, 07h17
  2. Problème alimentation arduino + Shield moteur
    Par Swagdepandas dans le forum Électronique
    Réponses: 11
    Dernier message: 22/12/2014, 20h30
  3. Ethernet Shield arduino
    Par lm321 dans le forum Électronique
    Réponses: 1
    Dernier message: 24/11/2014, 08h20
  4. Moteur pas a pas avec arduino et shield
    Par nicocco033 dans le forum Électronique
    Réponses: 1
    Dernier message: 16/07/2014, 11h49
  5. problème arduino avec mp3 player shield
    Par kobelakers dans le forum Électronique
    Réponses: 1
    Dernier message: 12/05/2014, 23h17
Découvrez nos comparatifs produits sur l'informatique et les technologies.