Aide System rfid arduino uno

Bonjour

J'essaye de faire marcher un system arduino avec:
-Un module rfid rc522
-Un buzzer
-Une led rouge verte et une rouge
-Un servo moteur

Voicie le code

#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
 
#define SS_PIN 10
#define RST_PIN 9
#define LED_G 5 //define green LED pin
#define LED_R 4 //define red LED
#define BUZZER 2 //buzzer pin
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
Servo myServo; //define servo name
 
void setup() 
{
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  myServo.attach(3); //servo pin
  myServo.write(90); //servo start position
  pinMode(LED_G, OUTPUT);
  pinMode(LED_R, OUTPUT);
  pinMode(BUZZER, OUTPUT);
  noTone(BUZZER);
  Serial.println("Put your card to the reader...");
  Serial.println();

}
void loop() 
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "D0 06 07 25") //change here the UID of the card/cards that you want to give access
  {
    Serial.println("Authorized access");
    Serial.println();
    
    digitalWrite(LED_G, HIGH);
   
    
    tone(BUZZER, 620, 75);
    delay(50);
    tone(BUZZER, 883, 75);
    delay(50);
    tone(BUZZER, 1405, 75);
    delay(50);
    tone(BUZZER, 1930, 95);
    myServo.write(0);
    delay(2000);
    myServo.write(90);
   
    digitalWrite(LED_G, LOW);
  }
 
 else   {
    Serial.println(" Access denied");
    digitalWrite(LED_R, HIGH);
    tone(BUZZER,300,50);
    delay(100);
    tone(BUZZER, 300, 300);
    delay(1500);
    digitalWrite(LED_R, LOW);
    
  }
}

Ci quelqu'un pourrait m'aider

Merci d'avance

vous aider à quoi ??

M'aider car quand je téléverse le code et que j'essaie ça marche pendant 1 minute et après ça ne fonctionne plus

comment est-ce que le tout est alimenté? ça veut dire quoi "ça ne fonctionne plus" ? avez vous mis de traces de debug + qu'avez vous essayé ?

--> Commencez par tout débrancher sauf le lecteur MFRC522 et simplifiez le code pour qu'il n'imprime que les actions à faire sur la console série (à 115200 bauds, pas 9600...) et enlevez tout le reste. assurez vous que cela fonctionne de manière stable.

tant que ça ne fonctionne pas, pas la peine d'ajouter de la complexité et des trucs qui mangent du courant.

une fois que ce code fonctionne, vous pourrez commencer à ajouter des trucs

PS: n'utilisez pas des String à tout va... la mémoire est chère et cette classe est une plaie ... vos UID sont de suite d'octets, donc déclarez en variable globale le UID de la bonne carteconst byte OKUID[] = {0xD0, 0x06, 0x07, 0x25};et ensuite vous pouvez simplement comparer des tableaux d'octets en mémoire avec ceux lus dans la carte avec un memcmp()

  if (memcmp ( mfrc522.uid.uidByte, OKUID, 4) == 0) {// http://www.cplusplus.com/reference/cstring/memcmp/
    Serial.println("Authorized access");
  } else {
    Serial.println(" Access denied");
  }