Arduino RFID et moteur

activation par rfid

a marqué ce sujet comme résolu.

bonjour à tous, je bosse actuellement sur un système de securité, j'ai réalisé un programme afin de faire tourner mon moteurs dans les deux sens ainsi qu'un programme avec la carte RFID RC522. Ce dernier lorsqu'il lit la carte active une LED verte (laisse passer), cependant je ne sais pas comment lorsque La LED s'active déclancher le fonctionnement de mon programme moteur

voici la programmation de ma partie RFID qui fonctionne:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Pin                      Pin  
// MFRC522 board            Arduino Uno  
// RST                      9
// SDA                      10
// MOSI                     11
// MISO                     12
// SCK                      13
// GND                      GND
// Vcc                      3.3V                    
// IRQ                      Non connecté
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create MFRC522 instance.
pinMode(4,OUTPUT); // Branche la led sur le port 4.
void setup() {
  Serial.begin(9600); // Initialize serial communications with the PC
  SPI.begin();      // Init SPI bus
  mfrc522.PCD_Init(); // Init MFRC522 card
}
void loop() {  
 // Look for new cards
 if ( ! mfrc522.PICC_IsNewCardPresent()) 
return;
digitalWrite(4,HIGH);
delay(3000);
digitalWrite(4,LOW);
}

voici la programmation de mon moteur qui fonctionne également:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
const int controlPin1 = 2;
const int controlPin2 = 3;
const int enablePin = 9;
const int directionSwitchPin= 4;
const int onOffSwitchStateSwitchPin = 5;
const int potPin = A0;
int onOffSwitchState = 0;
int previousOnOffSwitchState = 0;
int directionSwitchState = 0;
int previousDirectionSwitchState = 0;
int motorEnabled = 0;
int motorSpeed= 0;
int motorDirection = 1;

void setup() {
 pinMode(directionSwitchPin, INPUT);
 pinMode(onOffSwitchStateSwitchPin, INPUT);
 pinMode(controlPin1, OUTPUT);
 pinMode(controlPin2, OUTPUT);
 pinMode(enablePin, OUTPUT);
 digitalWrite(enablePin, LOW);
}

void loop() {
  onOffSwitchState =
    digitalRead(onOffSwitchStateSwitchPin);
  delay(1);
  directionSwitchState =
    digitalRead(directionSwitchPin);
  motorSpeed = analogRead(potPin)/4;
  if(onOffSwitchState != previousOnOffSwitchState){
    if(onOffSwitchState == HIGH){
      motorEnabled = !motorEnabled;
    }
  }
   if(directionSwitchState != previousDirectionSwitchState) {
    if(directionSwitchState== HIGH) {
      motorDirection == !motorDirection;
    }
  } 
  if(motorDirection == 1) {
    digitalWrite(controlPin1, HIGH);
    digitalWrite(controlPin2, LOW);
  }
  else {
    digitalWrite(controlPin1, LOW);
    digitalWrite(controlPin2, HIGH);
  }
  if(motorEnabled == 1) {
    analogWrite(enablePin, motorSpeed);
  }
  else {
    analogWrite(enablePin, 0);
  }
  previousDirectionSwitchState =
    directionSwitchState;
  previousOnOffSwitchState = onOffSwitchState;
}

Merci de votre attention,

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte