estou com problema pois quando passo o cartao de acesso pemitido o motor levanta e quando passo o de cartao recusado ele tambem aciona o motor

#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>
#include <Servo.h>

#define SERVO 9 // Porta Digital 9 PWM
#define Luz_Fundo 7
#define SS_PIN 53
#define RST_PIN 8
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

char st[20];
Servo s; // Variável Servo
int pos; // Posição Servo

void setup()
{
Serial.begin(9600); // Inicia a serial
SPI.begin(); // Inicia SPI bus
mfrc522.PCD_Init(); // Inicia MFRC522
Serial.println("Aproxime o seu cartao do leitor...");
Serial.println();
//Define o número de colunas e linhas do LCD:
lcd.begin(16, 2);
mensageminicial();
pinMode(Luz_Fundo,OUTPUT); //define o pino como saída
digitalWrite(Luz_Fundo,HIGH); // Liga a luz do display.
{
s.attach(SERVO);
Serial.begin(9600);

}

}

void loop()
{
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Mostra UID na serial
Serial.print("UID da tag :");
String conteudo= "";
byte letra;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
conteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Mensagem : ");
conteudo.toUpperCase();
if (conteudo.substring(1) == "65 C1 20 29") //UID 1 - Chaveiro
{
Serial.println("Ola Alessandro !");
Serial.println();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ola Alessandro !");
lcd.setCursor(0,1);
lcd.print("Acesso liberado!");
s.write(0); // Inicia motor posição zero
delay(3000);
mensageminicial();
}

if (conteudo.substring(1) == "A0 69 41 63") //UID 2 - Cartao
{
Serial.println("Ola Cartao !!!");
Serial.println();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ola Cartao !");
lcd.setCursor(0,1);
lcd.print("Acesso Negado !");

delay(3000);
mensageminicial();
}
{
for(pos = 0; pos < 90; pos++)
{
s.write(pos);
delay(15);
}
delay(1000);
for(pos = 90; pos < 0; pos--)
{

}
}
}

void mensageminicial()
{
lcd.clear();
lcd.print(" Aproxime o seu");
lcd.setCursor(0,1);
lcd.print("cartao do leitor");
}

 

Exibições: 422

Responder esta

Respostas a este tópico

A parte que controla o servo tem que estar dentro do laço IF que tem a permissão para abrir o portão, no seu caso o UID 1 chaveiro
Alessandro, eu já fiz esse exemplo e o que eu fiz, que dava erro, foi tirar essas duas linhas do fim do cartão UID 2
Serial.println(Olá Cartão !!!);
Serial.println();

No ,
Meu caso, quando tirei essas duas linhas, funcionou direitinho.

Espero ter ajudado.
Posta depois quando vc resolver.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço