Recuperer programme Arduino

Accueil/Questions/Recuperer programme Arduino
Recuperer programme Arduino 2014-11-02T10:50:29+00:00

Accueil Forums Questions Recuperer programme Arduino

5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Messages
  • babafou39
    Participant
    Nombre d'articles : 5
    #7861 |

    bonjour à tous, Je viens d’avoir un soucis avec mon disque dur et j’ai perdu mon programme. Je sais qu’extraire le programme est compliqué donc j’aurais voulu au moins savoir comment copier le programme de mon arduino Micro sur mon arduino Uno étant donné que j’ai perdu le code source. j’ai vu qu’il fallait utiliser le bornier de 6 broches mais je ne sais pas comment m’y prendre. merci de votre aide!

    arnaud39
    Admin bbPress
    Nombre d'articles : 81

    Tu vas avoir unne réponse hyper rapide je bidouillais justeent le site 🙂

    Déjà il faut savoir que le programme est déjà compilé pour le processeur de l’Arduino micro, qui n’et pas le même que l’Arduino Uno donc il va falloir le décompiler puis le recompiler à mon avis.

    Il faut utiliser le connecteur ISP (2*3 pins à droite) et un logiciel tel PonyProg ou AVRdude. Effectivement, il faudrait le décompiler, et encore je pense que la seule chose que tu peux obtenir est de l’assembleur. Le mieux c’est de retrouver l’archive de ton programme (si c’est le tien que tu essaies de sauver) ou de contacter l’auteur. Ce sera sans doute beaucoup plus rapide 🙂

    babafou39
    Participant
    Nombre d'articles : 5

    CA risque d’être tendu… je vais extraire d’abord le fichier et on va bien voir ce qui est faisable. Mais suivant ta logique je peux le transferer de nouveau sur une autre carte Arduino au même processeur ?

    arnaud39
    Admin bbPress
    Nombre d'articles : 81

    oui c’est cela mais après d’une carte à l’autre tu risques d’avoir quelques différences notamment sur les sorties… Mais tant que le processeur est le même c’est ok

    Clément
    Participant
    Nombre d'articles : 3

    Bonjour,

     

    J’aurais besoin d’aide pour réaliser mon projet de BTS deuxième année.

     

    Je doit piloté un servomoteur et 4 LED par liaison série, j’arrive à a piloté mes LED par l’interface série mais pas a piloté en même temps le servomoteur…

    J’aurais besoin d’aide pour réaliser ce projet, je vous joint donc le code que j’ai déja et vous remercie d’avance pour toute réponse.

     

    Je m’excuse de ne pas avoir créé de nouveau sujet mais je n’y suis pas arriver( mon ordi plantant au moment de le faire )

     

     

    // programme simplifier sans la liaison bluetooth remplacé par une liaison série avec l’ordinateur.
    // programme du 4/10/14
    // modification le 5/11/14 fonctionne
    // modif le 06/11 fonctionne

    #define VERT 0
    #define BLEU 1
    #define ROUGE 2
    #define BLEUE 3

    #include <Servo.h>
    Servo myservo;  // create servo object to control a servo
    // twelve servo objects can be created on most boards
    int pos = 1;    // variable to store the servo position

    int etat = 0; //stock l’état de la situation (vert = 0, orange = 1, rouge = 2)
    char mot[20]; //le mot lu sur la voie série
    const int leds[4] = {4,7,2,8};

    void setup()
    {

    myservo.attach(9);  // attaches the servo on pin 9 to the servo object

    Serial.begin(9600);
    Serial.println(« Programme chatière sans wifi »);
    Serial.println(« Un bouton par position »);
    Serial.println(« ——————————————————————-« );
    Serial.println(« Vert = ouvert »);
    Serial.println(« Bleu1 = entre »);
    Serial.println(« Rouge = sort »);
    Serial.println(« Bleu2 = ferme »);

    //les sorties (3 LED) éteintes
    for(int i=0; i<4; i++)
    {
    pinMode(leds, OUTPUT);
    digitalWrite(leds, LOW);
    }

    }

    int u=1;

    void loop()
    {
    // début programme mode manuel
    // le servo moteur n’est pas pris en considération
    if(Serial.available())
    {
    //alors on va lire le contenu de la réception
    lireVoieSerie();
    //on entre dans une variable la valeur retournée par la fonction comparerMot()
    etat = comparerMot(mot);
    }
    //Puis on met à jour l’état des LED
    allumerDrapeau(etat);
    // Mise a jour de l’état du servo

    }

    void lireVoieSerie(void)
    {
    int i = 0; //variable locale pour l’incrémentation des données du tableau

    //on lit les caractères tant qu’il y en a
    //OU si jamais le nombre de caractères lus atteint 19 (limite du tableau stockant le mot – 1 caractère)
    while(Serial.available() > 0 && i <= 19)
    {
    mot = Serial.read(); //on enregistre le caractère lu
    delay(10); //laisse un peu de temps entre chaque accès a la mémoire
    i++; //on passe à l’indice suivant
    }
    mot =  »; //on supprime le caractère ‘\n’ et on le remplace par celui de fin de chaine  »
    }

    /*
    Rappel du fonctionnement du code qui précède celui-ci :
    > lit un mot sur la voie série (lit jusqu’à rencontrer le caractère ‘\n’)
    Fonction allumerDrapeau() :
    > Allume un des trois drapeaux
    > paramètre : le numéro du drapeau à allumer (note : si le paramètre est -1, on éteint toutes les LED)
    */

    int comparerMot(char mot[])
    {
    //on compare les mots « VERT » (surveillant, calme)
    if(strcmp(mot, « ouvert ») == 0)
    {
    return VERT;
    }

    if(strcmp(mot, « entre ») == 0)
    {
    return BLEU;
    }
    //on compare les mots « ROUGE » (meduse, tempete, requin)
    if(strcmp(mot, « sort ») == 0)
    {
    return ROUGE;

    }
    if(strcmp(mot, « ferme ») == 0)
    {
    return BLEUE;

    }

    }

    void allumerDrapeau(int numLed)
    {
    //On commence par éteindre les trois LED
    for(int j=0; j<4; j++)
    {
    digitalWrite(leds[j], LOW);
    }
    //puis on allume une seule LED si besoin
    if(numLed != -1)
    {
    digitalWrite(leds[numLed], HIGH);
    }

    /* Note : vous pourrez améliorer cette fonction en
    vérifiant par exemple que le paramètre ne
    dépasse pas le nombre présent de LED
    */
    }

    // fin du mode manuel

5 sujets de 1 à 5 (sur un total de 5)

Vous devez être connecté pour répondre à ce sujet.