Gente eu to com esse programa e coloquei ele para compilar mais ela nao sai disso ja to a 15 min esperando e nd de ele carregar ou terminar o compilamento esse e o programa 

#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
#include <LiquidCrystal.h> //Inclui a biblioteca do LCD


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


Servo s; // Variável Servo
int pos; // Posição Servo

// sensor LDR
#define LDRSensor A14
int LDRValor = 0;
int LDRok = 0;


// Leitor de vagas
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Configura os pinos do Arduino para se comunicar com o LCDint LDR; //declara variavel
int Threshold = 500; // Controle do limite de luz
int LDR0, LDR1, LDR2, LDR3, LDR4, LDR5, LDR6, LDR7, LDR8, LDR9, LDR10, LDR11; // Valor lido nos LDR's
int Vaga0, Vaga1, Vaga2, Vaga3, Vaga4, Vaga5, Vaga6, Vaga7, Vaga8, Vaga9, Vaga10, Vaga11; // Indicação do estado da vaga
int VagasT = 0; // Total de vagas ocupadas


void setup(){

Serial.begin(9600); // Inicia a serial
SPI.begin(); // Inicia SPI bus

//Função do cartão RFID
mfrc522.PCD_Init(); // Inicia MFRC522


// Funções do monitor serial
Serial.println("Aproxime o seu cartao do leitor..."); // Mensagem inicial do lcd



// Função do motor
s.attach(SERVO); // Serial do servo motor

// Função do lcd
lcd.begin(16, 2); //Inicia o LCD com dimensões 16x2(Colunas x Linhas)
pinMode(Luz_Fundo,OUTPUT); //define o pino como saída
digitalWrite(Luz_Fundo,HIGH); // Liga a luz do display.



}

void loop(){

//Procura por novos cartões
if ( ! mfrc522.PICC_IsNewCardPresent()){
return;
}

// Seleciona um dos cartões
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();


// Identifica a tag do cartao e nega ou permite o acesso e imprimi na tela do lcd a mensagem em *azul

if (conteudo.substring(1) == "65 C1 20 29"){ //UID 1 - Chaveiro
Serial.println("Acesso Permitido");
Serial.println();


//abre a cancela
s.write(0);
delay(3000);

//fecha a cancela
while(LDRok == 0){
testeFechar();
}

LDRok = 0;
mensageminicial();
}


// Identifica a tag do cartao e nega ou permite o acesso

if (conteudo.substring(1) == "A0 69 41 63"){ //UID 2 - Cartao

Serial.println("Acesso negado ");
Serial.println();
s.write(90);
delay(3000);
mensageminicial();
}
delay(1000);

}


void testeFechar(){

LDRValor = analogRead(LDRSensor);


Serial.print(" Valor lido pelo LDR = ");
Serial.println(LDRValor);

if(LDRValor <=250){
s.write(0);


Serial.println("Mantendo a Cancela ABERTA");
delay(1000);
}else{

Serial.println("FECHANDO a Cancela");
delay(1000);
s.write(90);
LDRok = 1;
}
}


void mensageminicial(){


}

LDR0 = analogRead(A0); // Le LDR0
delay(1); // Delay de leitura analoga
if (LDR0 >Threshold) Vaga0 = 1;else Vaga0 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR1 = analogRead(A1); // Le LDR1
delay(1); // Delay de leitura analoga
if (LDR1 >Threshold) Vaga1 = 1;else Vaga1 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR2 = analogRead(A2); // Le LDR2
delay(1); // Delay de leitura analoga
if (LDR2 >Threshold) Vaga2 = 1;else Vaga2 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR3 = analogRead(A3); // Le LDR3
delay(1); // Delay de leitura analoga
if (LDR3 >Threshold) Vaga3 = 1;else Vaga3 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR4 = analogRead(A4); // Le LDR4
delay(1); // Delay de leitura analoga
if (LDR4 >Threshold) Vaga4 = 1;else Vaga4 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR5 = analogRead(A5); // Le LDR5
delay(1); // Delay de leitura analoga
if (LDR5 >Threshold) Vaga5 = 1;else Vaga5 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR6 = analogRead(A6); // Le LDR6
delay(1); // Delay de leitura analoga
if (LDR6 >Threshold) Vaga6 = 1;else Vaga6 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR7 = analogRead(A7); // Le LDR7
delay(1); // Delay de leitura analoga
if (LDR7 >Threshold) Vaga7 = 1;else Vaga7 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR8 = analogRead(A8); // Le LDR8
delay(1); // Delay de leitura analoga
if (LDR8 >Threshold) Vaga8 = 1;else Vaga8 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR9 = analogRead(A9); // Le LDR9
delay(1); // Delay de leitura analoga
if (LDR9 >Threshold) Vaga9 = 1;else Vaga9 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR10 = analogRead(A10); // Le LDR10
delay(1); // Delay de leitura analoga
if (LDR10 >Threshold) Vaga10 = 1;else Vaga10 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1
LDR11 = analogRead(A11); // Le LDR11
delay(1); // Delay de leitura analoga
if (LDR11 >Threshold) Vaga11 = 1;else Vaga11 = 0; // Se LDR Coberto Vaga ocupada = 0 ou Vaga vazia = 1

VagasT = Vaga11 + Vaga10 + Vaga9 + Vaga8 + Vaga7 + Vaga6 + Vaga5 + Vaga4 + Vaga3 + Vaga2 + + Vaga1 + Vaga0 ; // Soma vagas vazias
lcd.setCursor(0, 0); //Posiciona o cursor na primeira coluna(0) e na primeira linha(0) do LCD
lcd.print("ESTACIONAMENTO"); //Escreve no LCD
lcd.setCursor(0,1 ); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print("Num de Vagas "); //Escreve no LCD
if (VagasT<10)
{
lcd.setCursor(14, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print(" "); //Escreve no LCD
lcd.setCursor(15, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print(VagasT); //Escreve no LCD
}
else
lcd.setCursor(14, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do LCD
lcd.print(VagasT); //Escreve no LCD
}

Exibições: 2478

Responder esta

Respostas a este tópico

Não sei se esse pode ser o seu caso, mas quando acontece isso comigo é pq a porta serial do arduino ja esta em uso. Desconecte o arduino e abra o gerenciador de taregas Ctrl+Alt+Del, vá em processo, dentro de processo procure a coluna descrição e feche a porta virtual que seu arduino usa, depois tenta de novo. Comigo da certo.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço