Buscar

Arduino Projeto de um estacionamento Simples

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

domingo, 25 de novembro de 2012 
Projeto de um estacionamento Simples: 
Wellington Cássio Faria 
Engenharia da Computação 
INATEL – Instituto Nacional de Telecomunicações 
wellingtonf@gec.inatel.br 
 
 
 
Problema: 
 
 Apresenta na entrada led’s com objetivo de orientar o motorista se há vagas ou não, 
em cada vaga há sensores que são utilizados para verificar a presença de carros e quanto 
tempo os mesmos estão estacionados. Quando o carro sai do estacionamento mostra no 
display quando teve ser pago, existe uma chave que altera o preço para dias de semana e 
finais de semana. 
 
Programação: 
 
#include <LiquidCrystal.h> 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 
const int 
vaga1=6,vaga2=7,vaga3=8,entrada=9,saida=10,led1=14,led2=15,led3=16,ChPreco=0,chOnOff=
1; 
float tempo1,tempo2,tempo3,preco,total,ti1,ti2,ti3; 
int cont; 
void definirpreco(); 
void vagas(); 
void contatempo(); 
void imprimir(); 
void tempoinicial(); 
void setup() 
{ 
 lcd.begin(16,2); 
domingo, 25 de novembro de 2012 
 tempo1=tempo2=tempo3=total=ti1=ti2=ti3=0; 
 pinMode(vaga1,INPUT); 
 pinMode(vaga2,INPUT); 
 pinMode(vaga3,INPUT); 
 pinMode(entrada,INPUT); 
 pinMode(saida,INPUT); 
 pinMode(ChPreco,INPUT); 
 pinMode(chOnOff,INPUT); 
 digitalWrite(vaga1,HIGH); 
 digitalWrite(vaga2,HIGH); 
 digitalWrite(vaga3,HIGH); 
 digitalWrite(entrada,HIGH); 
 digitalWrite(saida,HIGH); 
 digitalWrite(ChPreco,HIGH); 
 digitalWrite(chOnOff,HIGH); 
 pinMode(led1,OUTPUT); 
 pinMode(led2,OUTPUT); 
 pinMode(led3,OUTPUT); 
 digitalWrite(led1,LOW); 
 digitalWrite(led2,LOW); 
 digitalWrite(led3,LOW); 
 cont=0; 
} 
void loop() 
{ 
 if(digitalRead(chOnOff)==LOW) 
 { 
 definirpreco(); 
 vagas(); 
 
 if(digitalRead(entrada)==LOW) 
 { 
 tempoinicial(); 
 } 
 contatempo(); 
 
 if(digitalRead(saida)==LOW) 
 { 
 if((digitalRead(vaga1)==HIGH)&&(tempo1>0)) 
 { 
 total=preco*tempo1; 
 
 tempo1=0; 
 ti1=0; 
 } 
 if((digitalRead(vaga2)==HIGH)&&(tempo2>0)) 
 { 
 total=preco*tempo2; 
 tempo2=0; 
 ti2=0; 
 
 } 
domingo, 25 de novembro de 2012 
 if((digitalRead(vaga3)==HIGH)&&(tempo3>0)) 
 { 
 total=preco*tempo3; 
 tempo3=0; 
 ti3=0; 
 
 } 
 if(cont==0) 
 { 
 imprimir(); 
 } 
 cont++; 
 total=0; 
 }else 
 { 
 lcd.setCursor(0,0); 
 lcd.print("Estacionamento TOP"); 
 lcd.setCursor(0,1); 
 lcd.print("Aguardando......"); 
 cont=0; 
 } 
 }else 
 { 
 lcd.clear(); 
 } 
} 
void definirpreco() //Definicao dos precos dos segundos 
{ 
 if(digitalRead(ChPreco)==LOW) 
 { 
 preco=1; //Dia de semana 
 }else 
 { 
 preco=2; //FIM de Semana 
 } 
} 
void vagas() //Controle dos Leds 
{ 
 if(digitalRead(vaga1)==LOW) 
 { 
 digitalWrite(led1,HIGH); 
 }else 
 { 
 digitalWrite(led1,LOW); 
 } 
 
 if(digitalRead(vaga2)==LOW) 
 { 
 digitalWrite(led2,HIGH); 
 }else 
 { 
 digitalWrite(led2,LOW); 
domingo, 25 de novembro de 2012 
 } 
 
 if(digitalRead(vaga3)==LOW) 
 { 
 digitalWrite(led3,HIGH); 
 }else 
 { 
 digitalWrite(led3,LOW); 
 } 
} 
void contatempo() //Conta o Tempo 
{ 
 if(digitalRead(vaga1)==LOW) 
 { 
 tempo1=tempo1+millis()/1000-ti1; 
 } 
 if(digitalRead(vaga2)==LOW) 
 { 
 tempo2=tempo2+millis()/1000-ti2; 
 } 
 if(digitalRead(vaga3)==LOW) 
 { 
 tempo3=tempo3+millis()/1000-ti3; 
 } 
} 
void imprimir() 
{ 
 lcd.setCursor(0,0); 
 lcd.print("Estacionamento TOP"); 
 lcd.setCursor(0,1); 
 lcd.print("Valor a Pagar="); 
 lcd.print(total); 
} 
void tempoinicial() 
{ 
 if(digitalRead(vaga1==HIGH)) 
 { 
 ti1=millis()/1000; 
 } 
 if(digitalRead(vaga2==HIGH)) 
 { 
 ti2=millis()/1000; 
 } 
 if(digitalRead(vaga3==HIGH)) 
 { 
 ti3=millis()/1000; 
 } 
}

Outros materiais