aide arduino uno programmation
Répondre à la discussion
Page 1 sur 6 12 3 4 5 DernièreDernière
Affichage des résultats 1 à 30 sur 178

aide arduino uno programmation



  1. #1
    matt59312

    aide arduino uno programmation


    ------

    Bonjour

    j'aurais besoin d'aide pour un exercice qui provient de mon tuteur (je suis en stage).

    faire un petit montage pour afficher les codes RS232 sur un ecran lcd
    shéma de principe :

    Max232 ======> Arduino ======> max232
    ======> lcd
    les boutons poussoirs du arduino permettent de changer la configuration rs232 (vitesse,débit,...)

    matos :
    afficheur lcd 2*16 ligne en i2c
    arduino uno comme platine de test
    Max 232: convertisseur rs232/TTl


    Alors j'ai trouvé les branchements à faire, c'est à dire quelle patte vas avec quelle patte pour relier le max 232 vers arduino puis arduino vers l'écran 2*16 lignes.

    cependant je dois écrire le programme nécessaire et je n'ai aucune idée de comment sa marche, la seul chose que j'ai est (démarrage de l'écran sur arduino) :

    #include "liquidecrystal.h" // ajout de la librairie
    liquidecrystal lcd (11,10,9,8,7,6,5,4,3,2) // liaison 8 bits de données
    // soit liquidecrystal (rs, enable,...,d7)

    void setup ()

    { lcd.begin (16,2); // 16 colonnes et 2 lignes pour l'écran
    lcd.write("bonjour");
    }
    void loop() {}

    -----

  2. #2
    carcan

    Re : aide arduino uno programmation

    Hello !

    est-ce que tu arrives à écrire le "bonjour" sur ton LCD ?
    Si tu as un afficheur I²C, il te faut la librairie LCD I²C ... et pas la librairie pour la connexion directe d'un afficheur simple (liaison parallèle).

    A+
    Laurent

  3. #3
    matt59312

    Re : aide arduino uno programmation

    bonjour

    mon tuteur m'a dit qu'il me passera le matériel vendredi ou lundi, il veut que j'écrive le code avant.
    merci pour la librairie. je sais aussi que les boutons poussoirs sont important et je dois m'en servir pour régler le débit, la vitesse...

  4. #4
    Yoruk

    Re : aide arduino uno programmation

    Citation Envoyé par matt59312 Voir le message
    mon tuteur m'a dit qu'il me passera le matériel vendredi ou lundi, il veut que j'écrive le code avant.
    Bravo pour lui...

    Tu trouveras des exemples de liaison entre afficheur I2C et arduino très facilement sur le net.
    La robotique, c'est fantastique !

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

    Re : aide arduino uno programmation

    bonjour

    merci pour votre aide


    voici l'image pour connecter en l'écran lcd en i2c avec l'arduino uno
    750px-connect_dfr0154.gif

    et l'image pour moi connecter le rs232 à l'arduino
    max232-dad00c.gif

  7. #6
    matt59312

    Re : aide arduino uno programmation

    le problème concerne surtout la partie programme

  8. #7
    Yoruk

    Re : aide arduino uno programmation

    Pour le serial, il te faut d'abord initialiser la liaison dans le setup() puis utiliser des serial.read pour lire le port série. Pour l'afficheur, pareil, regarde les exemples que tu trouveras dans l'IDE arduino.
    La robotique, c'est fantastique !

  9. #8
    matt59312

    Re : aide arduino uno programmation

    Bonjour,

    oui j'ai bien un probleme de librairie. j'utilise le logiciel arduino 1.0.5-r2, version Frainçaise

    Code:
    #include <LiquidCrystal_I2C.h>
    LiquidCrystal_I2C.h lcd(4, 6, 8,16,15,14);
    
    
    void setup() {
      // set up the LCD's number of columns and rows:
      lcd.begin(16, 2);
      // Print a message to the LCD.
      lcd.print("hello, world!");
    }
    
    void loop() {
      // Turn off the display:
      lcd.noDisplay();
      delay(500);
       // Turn on the display:
      lcd.display();
      delay(500);
    }
    cepandant la librairie n'existe pas, je vais donc sur : https://github.com/fdebrabander/Ardu...-library<br />

    je dois placer tous les fichiers dans le dossier "LiquidCrystal_I2C" que j'ai créé. cepandant je ne peux pas copier ou telecharger ces dossiers.

    je ne sais donc pas qu'elle librairie utiliser pour afficher quoi que se soit sur l'écran.

  10. #9
    Yoruk

    Re : aide arduino uno programmation

    Citation Envoyé par matt59312 Voir le message
    cependant je ne peux pas copier ou télécharger ces dossiers.
    C'est à dire ? Tu as une fonction dans l'IDE arduino pour ajouter une librairie. Le dossier les contenant est situé dans le répertoire de l'exécutable.
    La robotique, c'est fantastique !

  11. #10
    matt59312

    Re : aide arduino uno programmation

    merci, j'ai trouvé, j'ai la librairie LiquidCrystal_I2C; cependant, elle ne se met pas en orange dans le code comme les autres librairie, elle ne fonctionne pas, j'ai vu sur internet qu'on pouvais écrire
    #include <Wire.h>
    void setup() {

    Serial.begin(9600); //Lancer le mode série

    Wire.begin(); //Lancer I2C

    ce qui me donne comme code :
    Code:
    #include <Wire.h>
    
    Wire lcd(12, 11, 5, 4, 3, 2);
    
    void setup() {
      
      Serial.begin(9600); //Lancer le mode série
      
      Wire.begin(); //Lancer I2C
    
      // set up the LCD's number of columns and rows: 
      lcd.begin(16, 2);
      // Print a message to the LCD.
      lcd.print("hello, world!");
    }
    
    void loop() {
      // set the cursor to column 0, line 1
      // (note: line 1 is the second row, since counting begins with 0):
      lcd.setCursor(0, 1);
      // print the number of seconds since reset:
      lcd.print(millis()/1000);
    }
    voici les erreurs
    HelloWorld:3: error: 'Wire' does not name a type
    HelloWorld.ino: In function 'void setup()':
    HelloWorld:16: error: 'lcd' was not declared in this scope
    HelloWorld.ino: In function 'void loop()':
    HelloWorld:24: error: 'lcd' was not declared in this scope

    je pense qu'il s'agit de la librairie mais je ne peux pas utiliser celle téléchargé LiquidCrystal_I2C.

  12. #11
    Yoruk

    Re : aide arduino uno programmation

    Citation Envoyé par matt59312 Voir le message
    mais je ne peux pas utiliser celle téléchargé LiquidCrystal_I2C.
    Pourquoi ? Donne le lien de cette librairie.
    La robotique, c'est fantastique !

  13. #12
    matt59312

    Re : aide arduino uno programmation

    https://github.com/fdebrabander/Ardu...-library

    j'ai fait dowload ZIP, j'ai tour extrait dans un dossier qui s'appelle LiquidCrystal_I2C, j'ai fait sur le logiciel croquis; importer bibliotheque, add library, j'ai sélectionné le dossier Arduino-LiquidCrystal-I2C-library-fc0801a1f7ecb22308c31d52039d67 4bffc2cde6. et j'ai ajouté,

    ensuite je vais dans croquis importer bibliothéque, tout en bas il y a LiquidCrystal_I2C; je la selectionne et j'ai
    #include <LiquidCrystal_I2C.h> mais ce n'est pas en orange comme les autres librairies.

  14. #13
    Yoruk

    Re : aide arduino uno programmation

    Ton lien marche pas...

    Quelles sont les erreurs quand tu compiles avec #include <LiquidCrystal_I2C.h> ?
    La robotique, c'est fantastique !

  15. #14
    matt59312

    Re : aide arduino uno programmation

    Code:
    #include <LiquidCrystal_I2C.h>
    
    LiquidCrystal_I2C lcd(12, 11, 5, 4, 3, 2);
    
    void setup() {
      
      Serial.begin(9600); //Lancer le mode série
      
      LiquidCrystal_I2C.begin(); //Lancer I2C
    
      // set up the LCD's number of columns and rows: 
      lcd.begin(16, 2);
      // Print a message to the LCD.
      lcd.print("hello, world!");
    }
    
    void loop() {
      // set the cursor to column 0, line 1
      // (note: line 1 is the second row, since counting begins with 0):
      lcd.setCursor(0, 1);
      // print the number of seconds since reset:
      lcd.print(millis()/1000);
    }
    comme erreur j'ai

    HelloWorld:3: error: no matching function for call to 'LiquidCrystal_I2C::LiquidCrys tal_I2C(int, int, int, int, int, int)'
    C:\Documents and Settings\stagiaire\Mes documents\Arduino\libraries\Li quidCrystal_I2C/LiquidCrystal_I2C.h:71: note: candidates are: LiquidCrystal_I2C::LiquidCryst al_I2C(uint8_t, uint8_t, uint8_t, uint8_t)
    C:\Documents and Settings\stagiaire\Mes documents\Arduino\libraries\Li quidCrystal_I2C/LiquidCrystal_I2C.h:60: note: LiquidCrystal_I2C::LiquidCryst al_I2C(const LiquidCrystal_I2C&)
    HelloWorld.ino: In function 'void setup()':
    HelloWorld:9: error: expected unqualified-id before '.' token
    HelloWorld:12: error: no matching function for call to 'LiquidCrystal_I2C::begin(int, int)'
    C:\Documents and Settings\stagiaire\Mes documents\Arduino\libraries\Li quidCrystal_I2C/LiquidCrystal_I2C.h:76: note: candidates are: void LiquidCrystal_I2C::begin()

  16. #15
    matt59312

    Re : aide arduino uno programmation

    peut être qu'il ne faut pas écrire


    Serial.begin(9600); //Lancer le mode série

    LiquidCrystal_I2C.begin(); //Lancer I2C

    voici le lien
    https://github.com/fdebrabander/Ardu...9d674bffc2cde6

  17. #16
    Yoruk

    Re : aide arduino uno programmation

    Ceci compile chez moi :

    Code:
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    
    // Set the LCD address to 0x27 for a 16 chars and 2 line display
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    
    
    void setup() {
    
      Serial.begin(9600); //Lancer le mode série
    
    
      // initialize the LCD
      lcd.begin();
    
      // Turn on the blacklight and print a message.
      lcd.backlight();
      lcd.print("Hello, world!");
    
    }
    
    void loop() {
      // set the cursor to column 0, line 1
      // (note: line 1 is the second row, since counting begins with 0):
      lcd.setCursor(0, 1);
      // print the number of seconds since reset:
      lcd.print(millis()/1000);
    }
    La robotique, c'est fantastique !

  18. #17
    matt59312

    Re : aide arduino uno programmation

    super merci

    il affiche bien hello world en plus d'un compteur en seconde en dessous du texte

    maintenant je dois afficher les codes rs232 sur l'écran lcd.

    pour moi sa veut dire que je dois afficher sur l'écran en ASCII ce que j'écris en hexa dans le programme

  19. #18
    Yoruk

    Re : aide arduino uno programmation

    Citation Envoyé par matt59312 Voir le message
    maintenant je dois afficher les codes rs232 sur l'écran lcd.
    C'est là qu'interviens le serial.begin() et les serial.read()

    Citation Envoyé par matt59312 Voir le message
    pour moi ça veut dire que je dois afficher sur l'écran en ASCII ce que j'écris en hexa dans le programme
    J'en sais rien... Tu n'est pas censé afficher ce qui arrive sur le port série physique ?
    La robotique, c'est fantastique !

  20. #19
    matt59312

    Re : aide arduino uno programmation

    a ok

    le serial.begin() : Définit le débit de données en bits par seconde pour la transmission de données en série.
    et le serial.read() : Lit les données série entrants.

    je sais qu'il y a un deuxième argument optionnel pour configurer les données, la parité et les bits d'arrêt mais je ne sais pas lequel.

    oui je dois afficher ce qui arrive sur le port série physique

  21. #20
    Yoruk

    Re : aide arduino uno programmation

    Regarde la doc du serial sur le site arduino, tout est expliqué. Je n'ai pas les paramètres de parité en tête... (Il faut qu'ils collent avec le dispositif série lu) Tu as aussi une méthode pour tester si des données sont présentes dans le buffer avant de les lire. Tout dépend ensuite de la quantité et de la vitesse des données entrantes...
    La robotique, c'est fantastique !

  22. #21
    matt59312

    Re : aide arduino uno programmation

    merci j'ai compris

    notamment la notion de la mémoire que l'on appelle buffer et comment l'interroger.
    Code:
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    // Set the LCD address to 0x27 for a 16 chars and 2 line display
    
    const int maLed = 11;
    
    
    void setup()
    {  
        Serial.begin(9600); //Lancer le mode série
        
      lcd.begin();
    
      // Turn on the blacklight and print a message.
      lcd.backlight();
      
    }
    void loop()
    {
       char choseLue = Serial.read(); //on lit le premier caractère non traité du buffer
       if(choseLue == -1) //si le buffer est vide
       {
           //Rien à lire, rien lu
       }
       else //le buffer n'est pas vide
       {
           //On a lu un caractère
       }
    }
    la seul chose que j'ai un peu de mal à comprendre c'est qu'est ce que mon tuteur me demande en fait ; lire ce qui arrive sur le port série physique, sa veut dire afficher en ASCII ce qui en hexa, soit faire un programme qui convertit l'hexa en ASCII ?

  23. #22
    Yoruk

    Re : aide arduino uno programmation

    Ton code semble correct.

    Ce n'est pas moi qui vais t'expliquer ce que demande ton tuteur... Qui t'a parlé d'hexa ? Tente déjà d'afficher les informations brutes en provenance du port série, après s'il y a de la mise en forme a faire, tu pourras.

    Encore une fois, on ne sais pas la nature des données qui arrivent !
    La robotique, c'est fantastique !

  24. #23
    matt59312

    Re : aide arduino uno programmation

    a d'accord, j'ai trouvé un programme simple qui le permet.
    Code:
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    
    const int Voie_0=0; //declaration constante de broche analogique
    
    // --- Déclaration des variables globales ---
    int mesure_brute=0;// Variable pour acquisition résultat brut de conversion analogique numérique
    
    
    
    void setup()
    {  
        Serial.begin(115200); 
        
      lcd.begin();
    
      lcd.backlight();
    
    }
    void loop(){ 
    
    
    
    mesure_brute=analogRead(Voie_0); 
    
    // affiche valeur numerique entière ou à virgule au format décimal
    lcd.println(mesure_brute); 
    
    delay(500); // pause de 500 millisecondes
    
    }
    ici j'affiche sur l'écran mais je peux le mettre dans un moniteur série en modifiant : lcd.println(mesure_brute); par Serial.println(mesure_brute);

    j'ai une suite de chiffre, 338,339,339,338,,....

  25. #24
    Yoruk

    Re : aide arduino uno programmation

    Non, avec Serial.println(mesure_brute); tu ENVOIES des données sur le port série. Et vu que ton port est déjà sollicité pour la réception des données en provenance de l'appareil mystérieux, ça ne va pas fonctionner...

    Toi tu veux LIRE ce qui provient du port et l'envoyer sur le LCD...

    Si tu veux faire du debug, certaines cartes arduino possèdent plusieurs ports séries...

    Ils viennent d'où ces chiffres ? De l'appareil mystérieux ? Tout marche alors ?
    La robotique, c'est fantastique !

  26. #25
    matt59312

    Re : aide arduino uno programmation

    bonjour

    je ne dois donc pas utiliser Serial.println(mesure_brute) mais plutôt Serial.read(mesure_brute) pour lire les données si j'ai bien compris

  27. #26
    Yoruk

    Re : aide arduino uno programmation

    Oui c'est ça !
    La robotique, c'est fantastique !

  28. #27
    matt59312

    Re : aide arduino uno programmation

    je suis allé voir comment fonctionne le read sur arduino voici l'exemple

    Code:
    int incomingByte = 0;   // for incoming serial data
    
    void setup() {
            Serial.begin(9600);     // opens serial port, sets data rate to 9600 bps
    }
    
    void loop() {
    
            // send data only when you receive data:
            if (Serial.available() > 0) {
                    // read the incoming byte:
                    incomingByte = Serial.read();
    
                    // say what you got:
                    Serial.print("I received: ");
                    Serial.println(incomingByte, DEC);
            }
    }
    et voici mon code pour afficher le résultat brut d'une conversation analogique numérique. je vais donc utiliser le read ce qui donne comme code :

    Code:
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    // Set the LCD address to 0x27 for a 16 chars and 2 line display
    
    const int Voie_0=0; //declaration constante de broche analogique
    
    // --- Déclaration des variables globales ---
    int mesure_brute=0;// Variable pour acquisition résultat brut de conversion analogique numérique
    
    
    
    void setup()
    {  
        Serial.begin(9600); //Lancer le mode série
        
      lcd.begin();
    
      // Turn on the blacklight and print a message.
      lcd.backlight();
    
    }
    void loop(){ // debut de la fonction loop()
    
    // --- ici instructions à exécuter par le programme principal --- 
    
    // acquisition conversion analogique-numerique (CAN) sur la voie analogique
    
    mesure_brute=analogRead(Voie_0); 
    
    int mesure_brute=0;
    
    // affiche valeur numerique entière ou à virgule au format décimal
    
      if (Serial.available() > 0) {
                    // read the incoming byte:
                    mesure_brute = Serial.read();
    
                    // say what you got:
                    lcd.print("I received: ");
                    lcd.println(mesure_brute, DEC);
            }
    
    delay(500); // pause de 500 millisecondes
    
    }
    mais rien ne se passe

  29. #28
    matt59312

    Re : aide arduino uno programmation

    en fait j'ai trouvé qqchose de plus simple


    voici ce qu'il est écrit : Arduino peut lire l’information provenant du port série. Mais rappelez-vous que arduino est beaucoup plus rapide que l’information qui lui arrive. Il faut donc écrire un code qui attend l’info, la lit quand elle arrive et la traite.


    Code:
    int ledPin = 9;
    
    void setup()
    {
     // begin the serial communication
     Serial.begin(9600);
     pinMode(ledPin, OUTPUT);
    
    }
    
    void loop()
    {
     byte val;
    
     // regarde si quelque chose se trouve dans le buffer
     if (Serial.available()) {
       // lit le premier byte dans la pile (valeur entre 0 to 255)
       val = Serial.read();
       // set the brightness of the LED
       analogWrite(ledPin, val); // par exemple
     }
    }
    cepandant je n'ai pas besion de la LED car je veux afficher sur l'écran ce qui donne :
    Code:
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    
    
    
    
    
    void setup()
    {
     Serial.begin(9600); //Lancer le mode série
        
      lcd.begin();
    
      // Turn on the blacklight and print a message.
      lcd.backlight();
     
    
    }
    
    void loop()
    {
     byte val;
    
     // regarde si quelque chose se trouve dans le buffer
     if (Serial.available()) {
       // lit le premier byte dans la pile (valeur entre 0 to 255)
       val = Serial.read();
       // set the brightness of the LED
       lcd.println (val); // par exemple
     }
    }
    mais rien en s’affiche

  30. #29
    Yoruk

    Re : aide arduino uno programmation

    Il marchait dans ces conditions l'écran ?

    Le code semble correct...
    La robotique, c'est fantastique !

  31. #30
    matt59312

    Re : aide arduino uno programmation

    oui,

    de plus je n'ai pas d'erreur quand je compile.

    peut être qu'il n'y a rien dans le buffer

Page 1 sur 6 12 3 4 5 DernièreDernière

Discussions similaires

  1. Programmation arduino !!
    Par ParraDarocha dans le forum Électronique
    Réponses: 15
    Dernier message: 10/04/2014, 17h59
  2. Aide programmation Arduino ! :)
    Par samgbt dans le forum Électronique
    Réponses: 7
    Dernier message: 01/02/2014, 13h52
  3. Aide programmation Arduino Urgent
    Par Gamekey dans le forum Électronique
    Réponses: 24
    Dernier message: 05/05/2013, 23h23
  4. Programmation Arduino
    Par Gamekey dans le forum Électronique
    Réponses: 0
    Dernier message: 04/05/2013, 19h36
  5. Arduino, programmation raté.
    Par labatteur dans le forum Programmation et langages, Algorithmique
    Réponses: 14
    Dernier message: 02/07/2012, 16h35
Découvrez nos comparatifs produits sur l'informatique et les technologies.