Dernière révision : septembre 2023 |
Sommaire Introduction L’électronique et l’informatique ont profondément modifié notre société. C’est certainement la révolution industrielle la plus rapide de l’histoire de l’humanité. En effet, l’ordinateur que nous connaissons aujourd’hui était tout simplement inimaginable il y a seulement une cinquantaine d’années. Et avec les Arduino, les ESP8266 ou les Raspberry Pi Pico, l'aventure est loin d'être terminée. L’auteur ne pourra en aucun cas être tenu responsable des dommages qui résulteraient de l’utilisation des informations publiées sur ce site, sous licence Creative Commons BY-NC-SA. Toute reproduction ou modification d'un document, même partielle, est autorisée à condition que son origine et le nom de l'auteur soient clairement indiqués (BY), qu'il soit utilisé à des fins non commerciales (NC), que son mode de diffusion soit identique au document initial (SA), et que cela ne porte pas atteinte à l’auteur. Ce document présente un projet utilisant une carte Arduino, en espérant toujours être le plus clair et précis possible. Malgré tout le soin apporté à la rédaction, l'auteur vous remercie de bien vouloir le contacter si vous relevez la moindre erreur ou omission, et vous souhaite une agréable lecture. Si vous avez apprécié ce document, vous pouvez faire un don ici. Merci pour votre soutien. Objectif Gérer 4 relais au passage de tags RFID (module MFRC522). Niveau Matériel utilisé
Programme (sketch) // gérer 4 relais au passage de tags RFID (module MFRC522) #include <SPI.h> #include <MFRC522.h> #define CS 10 #define RST 9 #define R1 2 #define R2 3 #define R3 4 #define R4 5 MFRC522 rfid(CS,RST); unsigned char etatR1=0,etatR2=0,etatR3=0,etatR4=0; void setup() { pinMode(R1,OUTPUT); digitalWrite(R1,HIGH); pinMode(R2,OUTPUT); digitalWrite(R2,HIGH); pinMode(R3,OUTPUT); digitalWrite(R3,HIGH); pinMode(R4,OUTPUT); digitalWrite(R4,HIGH); SPI.begin(); rfid.PCD_Init(); } void loop() { unsigned char i,tag[4]; if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) { for (i=0;i<4;i++) tag[i]=rfid.uid.uidByte[i]; rfid.PICC_HaltA(); // relais 1 if ((tag[0]==165) && (tag[1]==219) && (tag[2]==76) && (tag[3]==20)) if (etatR1==0) { digitalWrite(R1,LOW); etatR1=1; } else { digitalWrite(R1,HIGH); etatR1=0; } // relais 2 if ((tag[0]==60) && (tag[1]==137) && (tag[2]==139) && (tag[3]==171)) if (etatR2==0) { digitalWrite(R2,LOW); etatR2=1; } else { digitalWrite(R2,HIGH); etatR2=0; } // relais 3 if ((tag[0]==25) && (tag[1]==231) && (tag[2]==82) && (tag[3]==40)) if (etatR3==0) { digitalWrite(R3,LOW); etatR3=1; } else { digitalWrite(R3,HIGH); etatR3=0; } // relais 4 if ((tag[0]==241) && (tag[1]==17) && (tag[2]==136) && (tag[3]==171)) if (etatR4==0) { digitalWrite(R4,LOW); etatR4=1; } else { digitalWrite(R4,HIGH); etatR4=0; } } } |
Haut de page |