[Programmation] Carte MEGA
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Carte MEGA



  1. #1
    cobrafox

    Carte MEGA


    ------

    Bonjour,
    J'ai un programme qui fonctionne avec une carte Arduino Uno mais quand j'essaye de faire fonctionner le programme avec la carte Méga il ne se passe rien, sur les photos vous devriez voir deux broches qui sont dans le vide donc je voudrais savoir si s'est la carte qui ne fonctionne pas ou si c'est le branchement.

    Sachant que nous utilisons un lecteur RFID 125 KHz , un motor shield et un shield bluetooth mais il me semble qu'ils sont tous compatibles.


    IMG_20160506_151754[1].jpg
    IMG_20160506_151825[1].jpg

    -----

  2. #2
    tchitchou

    Re : Carte MEGA

    Bonjour,
    en attendant que les photos soient validées..

    Programmée avec Arduino ?
    La carte est reconnue et le téléversement se fait normalement ? (avec "mega" coché ?)

  3. #3
    cobrafox

    Re : Carte MEGA

    Oui la carte est reconnue et le téléversement se fait sans problème, il n'y a pas d'erreur donc on ne sait pas si c'est la carte ou si il s'agit du branchement

  4. #4
    tchitchou

    Re : Carte MEGA

    Déjà, si tu veux éliminer la carte (de la liste des suspects), tu l'isoles du reste, tu implantes un prog pour faire clignoter une LED, et tu vois.

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

    Re : Carte MEGA

    Oui nous avons fait clignoter une led mais nos programmes telle que celui pour le RFID.

    Code:
    #include <SoftwareSerial.h>
    
    int switchPin = 6;              // switch is connected to pin 2
    int val;                        // variable for reading the pin status
    int buttonState;                // variable to hold the last button state
    int i;
    SoftwareSerial RFID(4,5); // RX and TX
    
    int data1 = 0;
    int ok = -1;
    int yes = 50;
    int no = 40;
    // use first sketch in http://wp.me/p3LK05-3Gk to get your tag numbers
    int tag1[14] = {2,48,54,48,48,48,68,65,66,50,56,56,56,3};
    int tag2[14] = {2,49,67,48,48,54,66,69,49,66,69,50,56,3};
    int tag3[14] = {2,48,53,48,48,52,70,54,70,70,69,68,66,3};
    int newtag[14] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // used for read comparisons
    // constants won't change. They're used here to 
    // set pin numbers:
    
    
    // variables will change:
    int switchState = 0;         // variable for reading the pushbutton status
    
    void setup() {
    
      pinMode(12, OUTPUT); //Initiates Motor Channel A pin
      pinMode(9, OUTPUT); //Initiates Brake Channel A pin
      digitalWrite(9, HIGH); //Eengage the Brake for Channel A
     
      pinMode(switchPin, INPUT);    // Set the switch pin as input
    
      Serial.begin(9600);           // Set up serial communication at 9600bps
      buttonState = digitalRead(switchPin);   // read the initial state
      RFID.begin(9600); // start serial to RFID reader
    pinMode(yes, OUTPUT);
    pinMode(no, OUTPUT);
    }
    
    boolean comparetag(int aa[14], int bb[14])
    {
    boolean ff = false;
    int fg = 0;
    for (int cc = 0 ; cc < 14 ; cc++)
    {
    if (aa[cc] == bb[cc])
    {
    fg++;
    }
    }
    if (fg == 14)
    {
    ff = true;
    }
    return ff;
    }
    
    
    void checkmytags() // compares each tag against the tag just read
    {
    ok = 0; // this variable helps decision-making,
    // if it is 1 we have a match, zero is a read but no match,
    // -1 is no read attempt made
    if (comparetag(newtag, tag1) == true)
    {
    ok++;
    Serial.println("Bonjour Maxime");
    }
    if (comparetag(newtag, tag2) == true)
    {
    ok++;
    }
    if (comparetag(newtag, tag3) == true)
    {
    ok++;
    Serial.println("Bonjour Nathan");
    }
    }
    
    
    void readTags()
    {  
     
    ok = -1;
    
    if (RFID.available() > 0)
    {
    // read tag numbers
    delay(100); // needed to allow time for the data to come in from the serial buffer.
    for (int z = 0 ; z < 14 ; z++) // read the rest of the tag
    {
    data1 = RFID.read();
    newtag[z] = data1;
    }
    RFID.flush(); // stops multiple reads
    // do the tags match up?
    checkmytags();
    }
    // now do something based on tag type
    if (ok > 0) // if we had a match
    {
    
    digitalWrite(yes, HIGH);
    
    digitalWrite(9, HIGH); //Eengage the Brake for Channel A
    
    delay(400);
    
      
    digitalWrite(yes, LOW);
    ok = -1;
    
      digitalWrite(12, HIGH); //Establishes forward direction of Channel A
      digitalWrite(9, LOW);   //Disengage the Brake for Channel A
      analogWrite(3, 250);   //Spins the motor on Channel A at full speed
    
       delay(3000);
    
       digitalWrite(9, HIGH); //Eengage the Brake for Channel A
                           
    }
    else if (ok == 0) // if we didn't have a match
    {
    Serial.println("Rejected");
    digitalWrite(no, HIGH);
    
    digitalWrite(9, HIGH); //Eengage the Brake for Channel A
     
     
    delay(1000);
    digitalWrite(no, LOW);
    ok = -1;
    
    
      
    }
    }
    
    
    
    
    void loop()
    {  
      
      // read the state of the switch value:
      switchState = digitalRead(switchPin);
    
      
      if (switchState == HIGH) {
           
        
         if (RFID.available() > 0) { 
           
         
            i = RFID.read();
             
            Serial.print(i, DEC);
             Serial.print(" ");
             
              
         }
      } 
      if (switchState == LOW) {
       
        readTags();
     
        
      }
    }
    Ainsi nos codes ne fonctionnent pas avec la Mega mais ils fonctionnent normalement sur une carte Uno
    Dernière modification par Antoane ; 12/05/2016 à 08h57. Motif: Réparation balises [code] (et non <code>)

  7. #6
    tchitchou

    Re : Carte MEGA

    Salut,
    pour les brochages, compatibles ou pas.. Les pins utilisés sont-ils identifiés de la même façon sur uno et mega ? Aux mêmes endroits ?

    Et... si ça fonctionne avec une Uno, pourquoi ne pas la garder ?

  8. #7
    Yoruk

    Re : Carte MEGA

    Attention au software serial, la MEGA ne les gère pas de la même façon. Et elle possède plusieurs UART matériels, qu'il faudrait utiliser en lieu et place des ports virtuels.

    CF la doc de la mega : https://www.arduino.cc/en/Main/ArduinoBoardMega2560
    La robotique, c'est fantastique !

  9. #8
    cobrafox

    Re : Carte MEGA

    Je dois utiliser une carte MEGA car je n'ai pas assez d'entrées ( c'est un projet de groupes).
    On m'a dit qu'il y avait un problème avec le SoftSerial sur la Mega donc je vais essayer de le changer mais j'utilise un système groove RFID donc ça veut dire que je dois acheter un système RFID sans le groove ?

  10. #9
    Yoruk

    Re : Carte MEGA

    ...remplace les virtual serial par des uarts physiques !
    La robotique, c'est fantastique !

  11. #10
    cobrafox

    Re : Carte MEGA

    C'est à dire des UARTS physiques ?

  12. #11
    Yoruk

    Re : Carte MEGA

    Les ports séries physiques de la machine... (ceux qui ne sont pas virtuels !) La UNO en comporte seulement un, la MEGA en a plus :

    Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. Pins 0 and 1 are also connected to the corresponding pins of the ATmega16U2 USB-to-TTL Serial chip.
    La robotique, c'est fantastique !

  13. #12
    cobrafox

    Re : Carte MEGA

    Nous utilisons également le shield bluetooth mais il ne fonctionne pas non plus.
    Donc pour mes entrée je peut déclarer 0 et 1 et en le branchant sur le UART 0 et ça devrait fonctionner ?

  14. #13
    Yoruk

    Re : Carte MEGA

    Sans schéma, impossible de conclure...

    Tu déclares autant de UARTS physiques dont tu as besoin, et tu utilises les pins associées.

    PS : empiler des shields les uns sur les autres est une mauvaise idée... (pins en conflit)
    La robotique, c'est fantastique !

  15. #14
    cobrafox

    Re : Carte MEGA

    Je mettrais une photo du schéma dans 2h

  16. #15
    cobrafox

    Re : Carte MEGA

    Bon finalement nous avons décidé d'utiliser deux cartes Arduino Uno 1 étant esclave et l'autre maître.
    Mais j'ai un nouveau problème le but du projet est d'utiliser un panneau solaire avec une batterie pour alimenter directement l'ouverture du portail.
    Je n'arrives pas à comprendre si
    - je dois relier la carte arduino uno à la batterie directement (si oui avec quelle type de cable)
    - je dois relier la carte Arduino Uno au regulateur et comment les relier

    J'ai pris ce kit:
    http://www.ase-energy.com/kit-pannea...r,4,KIT10W.cfm

Discussions similaires

  1. Carte Arduino UNO R3 ou Arduino Mega 2560 R3 ?
    Par theoze dans le forum Électronique
    Réponses: 10
    Dernier message: 11/03/2015, 15h36
  2. Utiliser un capteur à effet Hall avec une carte Arduino mega
    Par Stefen89 dans le forum Électronique
    Réponses: 15
    Dernier message: 20/05/2014, 15h35
  3. tester une carte Arduino MEGA
    Par croco01 dans le forum Électronique
    Réponses: 9
    Dernier message: 27/06/2013, 07h15
  4. Arduino mega
    Par zener57 dans le forum Électronique
    Réponses: 0
    Dernier message: 14/09/2009, 17h55
  5. mega-mosaique!!!!
    Par invite757da740 dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 3
    Dernier message: 31/03/2007, 18h49
Découvrez nos comparatifs produits sur l'informatique et les technologies.