Baixe o app para aproveitar ainda mais
Prévia do material em texto
SENAI – Centro de Formação Profissional “Alvimar Carneiro de Rezende” RELATÓRIO FINAL - EXPOTEC ESTACIONAMENTO Apresentado à: Breno Andrade Projetos III Elaborado por: Fabio André dos santos Duarte Roseane de Sousa Gomes Técnico em Eletrônica Contagem; Junho de 2011 SUMÁRIO ITEM TÍTULOS PÁGINA 1 Introdução 3 2 O projeto 2 3 Objetivo especifico 2 4 Aplicação 2 5 Inicio do projeto 5 6 Estudo dos drives 6 6.1 Periféricos 6 7 Montagem do minimo 11 8 Montagem do mínimo ( programa 1 ) 11 9 Testes executado durante o semestre 12 10 Drives para as cancelas 13 11 Diagrama de comando estacionamento 14 12 Objetivo do programa 15 12.1 Sub_rotinas de tempo 16 13 Dificuldades e soluções encontradas encontradas 18 14 Melhorias sugeridas 19 15 Conclusão 20 16 Anexos 21 INTRODUÇÃO A disciplina de projetos III se encaixa no curso técnico em eletrônica que busca a visar um entendimento pratico para colocar em pratica os conhecimentos adquiridos no decorrer do curso. Varias disciplina forão submetidas para o estudo do estacionamento durante a elaboração desse projeto, tais como, por exemplo, a eletrônica analógica e eletrônica digital, com o foco em microcontroladores. O microcontrolador utilizado foi o PIC16F877A, que já estudamos do decorrer deste curso. Este relatório final tem como objetivo a descrever o projeto do estacionamento que foi elaborado durante todo este semestre e o seu funcionamento com suas características elétricas, programação, desenvolvimento da maquete, testes finais etc... O estacionamento foi uma escolha do grupo que devido a varias idéias de projetos chegou a uma conclusão única, a escolha do estacionamento. Nesse relatório final emplementamos todo o estudo que foi elaborado durante o primeiro e segundo bimestre. Apresentaremos suas dificuldades e superações para o desenvolvimento final do projeto. 2. O projeto Após pesquisamos varias opção de projetos decidimos em fazer um estacionamento. Implementamos duas cancelas (entrada e saída) e um LCD, com 10 vagas que quando estiver totalmente ocupada a cancela de entrada será travada até que aja vaga livre, no LCD teremos os controles das vagas que mostrara se esta vazia ou cheia, e nas cancelas temos sensores ópticos elaborados a partir de ledes, emissores e receptores. 3. Objetivo especifico ao microcomputador via canal serial. Essas informações são processadas por um programa desenvolvido em linguagem assembler na qual e gerada o código de fonte, que tem o objetivo de mostrar ao usuário quantas vagas disponíveis há em cada setor. O desenvolvimento do sistema tem como objetivo facilitar a entrada do usuário em um estacionamento, indicando quantas vagas disponíveis há em cada setor. A detecção do automóvel é realizada através de dois conjuntos de sensores ópticos instalados na entrada da seção, com uma distância que comprove a passagem do veículo; a passagem de pedestres não interfere na contagem de veículos presentes. Ao ser confirmada a passagem do veículo, é incrementada a contagem do número de vagas ocupadas. Os sinais desses sensores são processados e tratados por um microcontrolador com um programa desenvolvido especificamente para reunir as informações e, em um determinado intervalo de tempo, transmiti-las através de um circuito transmissor. O pacote de informações é recebido pela etapa receptora de rádio e será enviado 4. Aplicação Estacionamento com visualização e controle da quantidade de vagas. Por ter um sistema de acionamento microprocessado dispensa o uso de porteiros e não permite a entrada de veículos caso não haja vagas. Pode ser implementado em shoppings, supermercados e até mesmo nos centros comerciais evitando transtorno e super lotação. Hoje em dia acontece muito transtorno até mesmo nos estacionamentos por exemplo nos shoppings durante o final de semana, vira um cal para poder estacionar, muitas pessoas desrespeita as vagas para pessoas deficientes. 5. INICIO DO PROJETO A idéia de elaborar um estacionamento não surgiu do nada, porém foi preciso que o grupo se organizasse e chegasse a uma escolha, que no nosso caso escolhemos a desenvolver um estacionamento. Depois da escolha do projeto teríamos que elaborar um roteiro de atividades que seria executado durante todo semestre, o cronograma de atividades que implementava todas as atividades e conteúdo que o grupo elaborou durante todo semestre. Esse cronograma que será mostrada na tabela 1 identifica os processos de atividades que desenvolvemos durante cinco meses, deste a escolha do projeto a apresentação final. Tabela 1: Cronograma de atividades. 6. ESTUDOS DOS DRIVES Antes de desenvolver os drives que utilizamos no projeto foi preciso pesquisamos quais periféricos seria utilizado, elaborar o estudo destes periféricos, como seria esse drive, quais suas características elétricas e o mais importante entender sua funcionalidade. E a principio de tudo buscar conhecimentos que adquirimos durante a disciplina de eletrônica analógica e eletrônica digital e transmitilas para a disciplina de projetos. 6.1. Periféricos para o estacionamento LCD O LCD foi utilizado para mostrar a quantidade de vagas livres e quando estivesse totalmente cheio. Agora vamos ver um pouco de sua funcionalidade.Um LCD ou display de cristal líquido, é um painel fino usado para exibir informações comotextos, imagens e vídeos por via eletrônica. Seu uso inclui monitores para computadores, televisores, painéis de instrumentos, displays em computadores de bordo de automóveis, dispositivos de utilização diárias, tais como leitores de vídeo, dispositivos de jogos, relógios, calculadoras e telefones. Um LCD consiste de um líquido polarizador da luz, eletricamente controlado, que se encontra comprimido dentro de celas entre duas lâminas transparentes polarizadoras. Os eixos polarizadores das duas lâminas estão alinhados perpendicularmente entre si. Cada cela é provida de contatos eléctricos que permitem que um campo eletrico possa ser aplicado ao líquido no interior. Entre as suas principais características está a sua leveza, sua portabilidade, e sua capacidade de ser produzido em quantidades muito maiores do que os tubos de raios catódicos (CRT). O display de LCD é largamente utilizado em diversos aparelhos eletro-eletrônico com a finalidade de mostrar resultados preliminares ou informações que auxiliem no manejo do aparelho. Para colocá-lo em funcionamento, primeiro precisamos configurá-lo, ou seja, precisamos dizer ao display como vamos transferir os dados para ele (8 ou 4 bits), quantas linhas vamos utilizar, se a mensagem deve ficar fixa ou rolar, se a escrita será da esquerda para direita ou da direita para esquerda, ou seja, todas essas configurações são necessárias antes de escrever qualquer mensagem. O datasheet do display traz essas informações. Na tabela 2 mostra algumas das instruções que utilizamos no LCD. Instruções Descrição 0x30 Fixa condição 1ª linha5x7 8bits 0x38 Fixa condição 2ª linha 5x7 8bits 0x01 Limpa Display e retorna cursos inicio 0xC0 Cursor desloca par aposição inicial da 2ª linha 0x08 Desliga o Display 0x0F Display acesso com cursor intermitente 0x10 O cursor desloca-se para a esquerda Tabela 2: Instruções LCD. É importante também configurarmos os pinos referentes à alimentação do LCD que devem ser ligados a uma tensão de 5V continuo, podendo variar entre 4,75 e 5,25V, Vss (pino1) Vdd (pino 2). Vo é utilizado para controle de contraste e é ligado ao centro d um potenciômetro de 10K ligado a Vss e Vdd, Vo (pino 3). O pino (4) RS é utilizado para definimos o tipo de informação passada através da comunicação paralela. Veja na tabela 3 como é feita sua descrição. RS Descrição 0 A informação é um comando ou instrução. 1 A informação é um dado. Tabela 3: Instrução para o pino RS O pino (5) R/W muda o estado do LCD entre leitura e escrita. Essa mudança pode ser feita para escrevermos um comando ou dado e checarmos quando o LCD terminou a operação e está pronto para darmos continuidade ao processo. Veja na tabela 4 seu modo de operação. R/W Descrição 0 Operação de escrita. 1 Operação de leitura. Tabela 4: Instrução para o pino R/W O pino (6) E (Enable) é utilizado para efetivar a leitura da informação escrita no barramento de dados. E Descrição 1 Inicia o ciclo de escrita/leitura 0 Termina o ciclo de escrita/leitura Tabela 5: Instrução para o pino EN Os pinos (7 A 14) de DB0 a DB7 equivalem ao barramento de dados paralelo. Apesar de existirem oito vias de dados, esses displays também podem operar com quatro vias (DB4 a DB7), já que as demais vias ficam sem funções. Neste caso, as informações são enviadas em dois pacotes de 4 bits cada um. Ponte H (L293D) O CI L293D é uma ponte H quádrupla com tensão de saída de 36v e corrente de saída de 2x0,6, e não necessita de diodos de proteção no motor. Utilizamos este CI para rotacionar os dois motores para as duas cancela ( entrada e saída ), pois ele substitui a ponte H formada por transistor, como precisamos de duas pontes H, a melhor forma que encontramos para excluir os transistor foi substituir eles por este CI. Apesar de não ser tão conhecida, um dos circuitos mais importantes na elaboração de sistemas automatizados e a ponte H. Trata-se de um circuito utilizado para controlar um motor DC a partir de sinais gerados por um micro controlador. Devido a disposição dos seus componentes, tornasse extremamente fácil selecionar o sentido da rotação de um motor, apenas invertendo a polaridade sobre seus terminais. Também e importante para a utilização com circuitos digitais, pois como os sinais de saída dos microcontroladores não suportam a corrente necessária e nem possuem a tensão adequada para acionar um motor, e necessária uma unidade de potencia que possa alimentá-lo convenientemente. o L293D é um integrado que possibilita o controle de dois motores CC, utilizando quatro pinos de saída do microcontrolador. Naturalmente se tivermos um só motor bastam dois pinos. Esta solução irá ser utilizada no nosso estacionamento para as duas cancelas pois além de permitir o accionamento nos dois sentidos dos dois motores, permite ainda o controlo de velocidade por PWM, como se verá mais à frente. Motor DC A energia elétrica é fornecida aos condutores do enrolamento da armadura pela aplicação de uma tensão elétrica em seus terminais pelo anel comutador(coletor), fazendo com que se circule uma corrente elétrica nesse enrolamento que produz um campo magnético no enrolamento da armadura. Como o corpo do estator é constituído de materiais ferromagnéticos, ao aplicarmos tensão nos terminais do enrolamento de campo da máquina temos uma intensificação do campos magnéticos no mesmo e, portanto, a produção de pólos magnéticos (Norte e Sul) espalhados por toda a extensão do estator. Pela atuação do anel comutador que tem como função alternar o sentido de circulação da corrente no enrolamento da armadura, quando aplicamos uma tensão no comutador, com a máquina parada, a tensão é transferida ao enrolamento da armadura fazendo com que se circule uma corrente pelo mesmo o que produz um campo magnético e outros pares de pólos no enrolamento da armadura. A orientação desse campo, ou seja, a posição do pólo norte e sul permanece fixa, simultaneamente temos uma tensão elétrica aplicada no enrolamento de campo no estator, assim, ao termos a interação entre os campos magnéticos da armadura no rotor e do campo no estator, os mesmos tentarão se alinhar, ou seja, o pólo norte de um dos campos tentará se aproximar do pólo sul do outro. Como o eixo da máquina pode girar, caso os campos da armadura e do estator não estejam alinhados, surgirá um binário de forças que produzirá um torque no eixo, fazendo o mesmo girar. Ao girar, o eixo gira o anel comutador que é montado sobre o eixo, e ao girar o anel comutador muda o sentido de aplicação da tensão, o que faz com que a corrente circule no sentido contrário, mudando o sentido do campo magnético produzido. Assim, ao girar o anel comutador muda a posição dos pólos magnéticos norte e sul do campo da armadura e como o campo produzido pelo enrolamento de campo no estator fica fixo, temos novamente a produção do binário de forças que mantém a mudança dos pólos e conseqüentemente o movimento do eixo da máquina. Sensores ópticos Os sensores ópticos sempre são compostos por duas partes: o emissor luz, que pode ser a luz solar ou componentes eletro-eletrônicos, e o receptor de luz é um componente eletrônico que em conjunto à um circuito detecta a variação de luz. O emissor de luz, quando um componente eletrônico, trata-se de um LED (diodo emissor de luz)que emite uma luz, essa luz pode ser visível ou infravermelha. A coloração dessa luz emitida depende da constituição química dos cristais. E o receptor de luz, que no caso utilizamos o fototransistor, que é um transistor cujo encapsulamento permite a incidência de luz sobre a junção base- coletor. A corrente gerada pela luz na junção é amplificada pelo transistor, como se fosse uma corrente de base convencional. A corrente de coletor do fototransistor é, portanto, proporcional a intensidade luminosa incidente sobre o componente sobre o componente. Micro controlador PIC16F877A O PIC 16F877A é a base fundamental para o nosso projeto, pois ele precisa de uma programação que na qual programamos para executar tarefas que desejamos processar através dos drives que elaboramos para o estacionamento, como já citamos acima dos principais periféricos que iramos utilizar no projeto ( LCD, ponte H, sensores ópticos e os motores DC ) serão desenvolvidos drives que mandara sinais para o PIC na qual é processado esses sinais e armazenado na memória do PIC. Os microcontroladores PIC podem ser utilizados como “cérebro” para controlar uma enorme variedade de equipamentos, desde máquinas de lavar a telemóveis ou automóveis, etc. Existem portanto aos milhões por todo o lado, sendo o seu custo muito reduzido. E por isso que elaboramos um estacionamento concebido e dotado de sensores. Para isso as informações provenientes desses sensores, de toque, de detecção de obstáculos, de distância, etc, devem ser adaptadas de forma a serem interpretadas pelo nosso PIC. Por outro lado, o controle dos dispositivos como os motores e o LCD também exige adaptação de sinal. 7. MONTAGEM DO MINIMO Esta montagem fez parte das atividades do projeto montar o “mínimo” para inicio do projeto. A montagem do mínimo constitui-se da soldagem do microcontrolador PIC16F877A, do Cristal de 4MHz, dos capacitores de 22pF, do Botão de RESET, de um LED sinalizadorque indicará que o RESET está acionado. A figura 1 mostra o diagrama de comando deste mínimo. Figura 1: Diagrama de comando do mínimo. 8. MONTAGEM DO MINIMO EXECUTANDO O PROGRAMA 1 A execução desse programa 1 foi uns dos primeiros teste que executamos em projetos, porem deu algumas falhas e não funcionou como desejamos, pois testamos no protobord que na qual deu mal contato nos componentes e por isso não deu muito certo. Esse programa 1 foi a primeira atividade que trabalhamos na disciplina de micro controlador, que para temos conhecimento do PIC precisamos dos conteúdos que executamos em micro controlador. Na figura 2 demonstra o diagrama funcional deste programa 1. Figura 2: Diagrama funcional do programa 1. Podemos observar que no diagrama funcional, os ports de entrada esta configurados com botões, para o teste substituímos os botões por sensores ópticos, isso comprova o funcionamento do programa 1. 9. TESTES EXECUTADOS DURANTE O SEMESTRE Como já citamos acima que o programa 1 da disciplina de micro controlador foi utilizado para o primeiro teste que no qual não funcionou devidamente. Pois bem esse primeiro teste foi apenas um experimento de tudo que íamos passar durante o semestre. Tivemos o teste que executamos no protobord sem a utilização do pic, que foi o funcionamento dos motores DC com os sensores, até ai ocorreu tudo bem. Logo em seguida começo a surgir componentes queimados por causa de alguns erros cometidos. Depois veio a parte de testar os drives com o PIC onde já tínhamos programado, vimos algumas falhas cometidas e consertamos em seguida. E por ultimo quando toda programação já tinha feito resolvemos implementar os drives na maquete onde tivemos algumas dificuldade, mais depois funcionou perfeitamente. 10. DRIVES PARA AS CANCELAS Cancela de entrada Cancela de saida Figura 3: Diagrama can. Entrada. Figura 4: Diagrama can.Saída. Figura 5: Diagrama can.Entrada/Saída. Na figura 3 e 4 mostra os drives das duas pontes H usando transistos , na figura 5 mostra também uma ponte H já evoluída que podemos substituir os transistor por ela que é um CI L293D com ponte H quádrupla. 11. DIAGRAMAS DE COMANDO DO ESTACIONAMENTO Figura 6: Diagrama para o estacionamento de 10 vagas. O diagrama da figura 6 demonstra uma simulação que montamos no proteus antes de transferir para a placa, podemos observar uma estrutura bem simples, sem muitos componentes e bem razoável de entender. Vejamos bem que nesta placa possui quatros fins de curso ( dois para cada motor ) que serve para ressetar os motores em sentido diferentes , dois sensores acionado em nível baixo( um para cada cancela ), dois motores DC ( entrada/saida ) , um LCD para indicar a quantidade de vagas, uma ponte H quadrupula (L293D ) e o principal de todos o PIC que comanda toda programação do estacionamento. Na figura 7 mostra o mesmo diagrama porem com a leitura no LCD diferente, mostra quando o estacionamento estiver totalmente cheio que ao contrario da figura 6 que mostra o estacionamento totalmente vazio. Figura 7: Diagrama para o estacionamento cheio. 12. OBJETIVO DO PROGRAMA O principal objetivo do programa e mandar informações na qual ela será executada pelo micro controlador. Primeiro para que isso aconteça devemos desenvolver este programa e transformá-lo em um código onde é armazenado no PIC. Esse programa é desenvolvido da seguinte forma; elaborar Cada sub-rotina separadamente, identificar seus periféricos no programa. Essas sub-rotinas será mostrada mais adiante em anexo que identifica as sub-rotinas de abrir e fechar as cancelas de entrada e saída, sub-rotinas do tempo em que o LCD escreve, sub-rotina do tempo em que ao abrir a cancela e atingir seu fim de curso gasta um tempo para o carro passa e após esse tempo a cancela fecha automaticamente, tem também as sub-rotinas para o incremento e decremento das vagas, sub-rotinas do LCD, e a sub-rotina do programa principal ( loop ). Antes de tudo elaboramos os fluxograma das sub-rotinas que será visto em anexo. 12.1. Sub-rotina para o tempo ( LCD ) TEMPO MOVLW 0X64 ; enviar o valor 64 que em decimal vale 100 para o registrador w MOVWF REG_1 ; enviar o valor de w para o reg_1 MOVLW 0X32 ; enviar o valor de 32 que em decimal vale 50 para o registrador w MOVWF REG_2 ; enviar ovalor de w para o reg_2 TESTE DECF REG_1,1 ; decrementar 1 de 100 BTFSS STATUS,Z ; testar o nivel logico do status z GOTO $-2 ; retorna duas linhas DECF REG_2,1 ; decrementar 1 de 50 BTFSS STATUS,Z ; testar o nivel logico do status z GOTO TESTE_1 ; salta para o Segundo teste RETURN ; retornar para o inicio da sub TESTE_1 MOVLW 0X64 MOVWF REG_1 ; fazer a mesma operação do reg_2 GOTO TESTE Como descobrimos o tempo gasto nesta sub-rotina? Vejamos esta resposta agora.Primeiro calculamos o tempo do ciclo de maquina para a execução desta sub-rotina. Somando quantos ciclos de maquina gastamos para executar as linhas do programa e multiplicando por quantas vezes ela executada, descobrimos a duração do delay tempo. Como o valor de Reg_1 é 100 este registrador será decrementado 100 vezes, e , como cada decremento gasta 4µs teremos então; Ciclo de maquina = 1µs + 1µs + 2µs = 4µs 100 x 4µs = 400µs Terminada a execução dessa primeira parte o programa decrementa o Reg_2 que vale 50. Ele é decrementado uma vez e move 100 novamente para o Reg_1 e realiza mas 100 decrementos neste registrador.isto acontece 50 vezes, ou seja, até que o Reg_2 chegue a zero. 50 x 400µs = 20ms Isto nos da mais 20ms 20ms + 400µs = 20,4ms Somando tudo teremos um tempo de 20,4ms. Por isso o tempo de duração do tempo é de 20,4ms. 12.2. Sub_rotina de tempo ( cancelas ) TEMPO_1 CLRF REG_5 ; antes de começar temos que limpar o reg_5 TEMPO1_1 MOVLW 0XFF ; enviar 255 para o registrador w MOVWF REG_3 ; armazenar 255 no reg_3 MOVLW 0XFF ; enviar 255 para o registrador w MOVWF REG_4 ; armazenar 255 no reg_4 TESTE_2 DECF REG_3,1 ; decrementa 1 do reg_3 BTFSS STATUS,Z ; testar o nivel logico do status z GOTO $-2 ; retornar duas linhas DECF REG_4,1 ; decrementar 1 do reg_4 BTFSS STATUS,Z ; testar o nivel logico do status z GOTO TESTE_3 ; saltar para o teste 3 INCF REG_5,1 ; incrementar 1 no reg_5 MOVLW 0X0A ; mover 10 para registrador w XORWF REG_5,W ; fazer a operação lógica de 10 para o reg_5 BTFSS STATUS,Z ; testar o nivel logico status z GOTO TEMPO1_1 ;voltar para o inicio da sub RETURN ; retornar TESTE_3 MOVLW 0XFF MOVWF REG_3 GOTO TESTE_2 Do mesmo modo que descobrimos o tempo do primeiro delay, saberemos como executar a operação para este tempo, porem tem uma única diferença do primeiro delay, e que para este tempo temos de incrementar e decrementar valores nos Reg. Veja os cálculos para este tempo. Ciclo de maquina = 1µs + 1µs + 2µs = 4µs O valor do Reg_3 vale 255, ou seja esse registrador decrementara 255 vezes, e como cada decremento gasta 4µs, então temos um tempo de; 255 x 4µs = 1020µs ou 0,00102s Ao término desta execução temos de decrementar o registrador Reg_4 que vale 255. Ele é decrementado 1 vez e move255 novamente para o Reg_3 e realiza mas 255 decremento neste registrador. E isto acontece 255 vezes. 255 x 1020µs = 260100µs ou 0,2601s Isto nos da mais 0,2601 s Somando esse valores temos um tempo de; 0,2601s + 0,00102s = 0,26112s ou 261120µs Ao término da execução desta segunda parte temos temos o programa incrementa o registrador Reg_5 que vale 0, ou seja, antes de executar todos esses parâmetro limpamos o Reg_5 que no caso zeramos para o incremento. Temos de incrementar 1 no Reg_5 10 vezes, a cada vez que o Reg_5 incrementa 1 ele faz toda aquela operação dos Reg_3 e Reg_4, e cada incremento vale o tempo gasto que os registradores Reg_3 e Reg_4 gastarão, vejam os cálculos para esse tempo. 10 x 0,26112s = 2,6112s = 3s Arredondando este valor temos um tempo de 3s Portanto temos um tempo total de 3s para que a cancela permaneça parada para a passagem do carro. 13. DIFICULDADES E SOLUÇÕES ENCONTRADAS Ao decorrer do desenvolvimento do projeto tivemos varias dificuldades, aprincipio tivemos que enfrentar problemas com o display (LCD). Compramos um display, alimentamos conforme o datasheet mas o display não estava ajustando o ajuste de fundo , tivemos que comprar outro display. Também tivemos que substituir o potenciômetro de 10K por 1K. Display estava ressetando, fazendo medições com multímetro e osciloscópio detectamos que tinha uma queda de tensão na habilitação do display causando o ressetamento do display , foi colocado um capacitor eletrolítico de 100uf para estabilizar a tenção de entrada. Dificuldade do fim de curso foi que o pic na entrada de nível alto dos fins de curso estava flutuando por isto o programa não funcionava corretamente, a solução foi coloca resistores grampeados em GND para causar o efeito pul dal colocando o nível lógico da entrada em nível baixo,ou seja, o PIC teria que estar grampeado em “1”. 14. MELHORIAS SUGERIDAS Sugerimos que futuramente haja um estudo para realizar o funcionamento das cancelas implementando senhas ou até mesmo cartões eletrônicos. Isso nos da credibilidade para desenvolvemos um estacionamento com uma tecnologia melhor, supondo que tenha dois andares e quatro cancelas ( 2 de entrada e 2 de saída ) para prevenir os meios de lotações nas ruas. É importante que desenvolva sistemas processados para as vagas , ou seja, colocar sensores em cada vaga e indicar qual vaga esta ocupada ou vazia, para que isso aconteça precisamos do LCD e uma programação mais desenvolvida. 15. CONCLUSÃO Vários desafios foram encontrados durante esses meses, mas com o desenvolver da disciplina de microprocessadores o projeto foi sendo cada vez mais aperfeiçoado. O cronograma foi cumprido, porém alguns defeitos foram encontrados durante este período, pois como já disse as soluções foram encontradas e solucionada. Melhorias foram sugeridas e soluções paliativas foram tomadas. A importância dos testes de bancada não pode deixar de ser salientada, pois a partir dessas alguns erros foram resolvidos antes da montagem da placa, como a troca do LCD, pois tínhamos comprado com defeito de loja, também tivemos de trocar o PIC, pois tínhamos queimado durante um teste que estávamos executando. � 16. ANEXOS: 16.1. Fluxograma para cancela de entrada Figura 8: Fluxograma cancela de entrada. Na figura 8 mostra como foi executada a programação para o funcionamento do motor de entrada por isso elaboramos este fluxograma para desenvolver melhor e conhecemos melhor a cada passo desse processo. Podemos observar ao abrir a cancela de entrada testamos o sensor 1 e para fechar conta um tempo e fecha automaticamente. 16.2. Fluxograma para cancela de saída Figura 9: Fluxograma cancela de saída. Para a figura 9 temos o mesmo processo que desenvolvemos na figura 8, um fluxograma que mostra toda execução elaborada para o motor de entrada, lembrando que na cancela de entrada é incrementada o numero de vagas ocupadas, já na cancela de saída é decrementada o números de vagas ocupadas. � 16.3. Fluxograma programa principal ( Loop ) Figura 10: Fluxograma programa principal. � 16.4. Fluxograma contador ( Cont ) Figura 11: Fluxograma contador. Na figura 11 demonstra um fluxograma para executar a programação do contador, vimos que a cada vez que o contador incrementa ou decrementa um valor, ele escreve no display . já na figura 10 mostra o fluxograma da execução do programa principal que toda programação tem que ter um programa principal caso contrario este programa não funcione corretamente. � 16.5. PROGRAMA ESTACIONAMENTO � #INCLUDE <P16F877A.INC> BANK0 MACRO BCF STATUS,RP0 BCF STATUS,RP1 ENDM BANK1 MACRO BSF STATUS,RP0 BCF STATUS,RP1 ENDM INICIALIZA MACRO BCF RS CALL TEMPO CALL TEMPO MOVLW 0X30 MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO MOVLW 0X38 MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO MOVLW 0X08 MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO MOVLW 0X01 MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO MOVLW 0X0C MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO ENDM #DEFINE EN PORTA,1 #DEFINE RS PORTA,2 #DEFINE S1 PORTB,2 #DEFINE S2 PORTB,0 #DEFINE FC1 PORTB,4 #DEFINE FC2 PORTB,5 #DEFINE FC3 PORTB,6 #DEFINE FC4 PORTB,7 #DEFINE NUM_1 0X64 #DEFINE NUM_2 0X32 CBLOCK 0X20 CONT REG_1 REG_2 REG_3 REG_4 REG_5 ENDC ORG 0X00 GOTO INICIO INICIO BANK1 MOVLW 0X00 MOVWF TRISA MOVLW 0XFF MOVWF TRISB MOVLW 0X00 MOVWF TRISC MOVLW 0X00 MOVWF TRISD MOVLW 0X04 MOVWF TRISE MOVLW 0X07 MOVWF ADCON1 BANK0 CLRF PORTA CLRF PORTB CLRF PORTC CLRF PORTD CLRF PORTE CLRF 0X20 INICIALIZA BSF RS MOVLW '"' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'E' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'S' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'T' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'A' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'C' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'I' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'O' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'N' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'A' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'M' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'E' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'N' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'T' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'O' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '"' MOVWF PORTD BSF EN CALL TEMPO BCF EN BCF RS MOVLW 0XC0 MOVWF PORTD BSF EN CALL TEMPO BCF EN BSF RS MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF ENMOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '1' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'V' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'A' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'G' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'A' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'S' MOVWF PORTD BSF EN CALL TEMPO BCF EM LOOP MOVLW 0X0A XORWF CONT,W BTFSS STATUS,Z GOTO $+2 GOTO BLOQUEIA_CANCELA BTFSC S1 GOTO TESTACAN_SAIDA CALL ABRIR_1 INCF CONT,1 CALL FECHAR_1 CALL DISPLAY_2 TESTACAN_SAIDA BTFSC S2 GOTO LOOP CALL ABRIR_2 DECF CONT,1 CALL FECHAR_2 CALL DISPLAY_2 GOTO LOOP ABRIR_1 BSF PORTC,1 BCF PORTC,2 BTFSS FC1 GOTO ABRIR_1 BCF PORTC,1 BCF PORTC,2 RETURN FECHAR_1 BTFSS S1 GOTO FECHAR_1 CALL TEMPO_1 BSF PORTC,2 BCF PORTC,1 BTFSS FC2 GOTO $-3 BCF PORTC,2 BCF PORTC,1 RETURN ABRIR_2 BSF PORTC,4 BCF PORTC,5 BTFSS FC3 GOTO ABRIR_2 BCF PORTC,4 BCF PORTC,5 RETURN FECHAR_2 BTFSS S2 GOTO FECHAR_2 CALL TEMPO_1 BSF PORTC,5 BCF PORTC,4 BTFSS FC4 GOTO $-3 BCF PORTC,4 BCF PORTC,5 RETURN BLOQUEIA_CANCELA BCF PORTC,1 BCF PORTC,2 CALL DISPLAY_1 GOTO TESTACAN_SAIDA � � DISPLAY_1 BSF RS MOVLW 0XC0 MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO BSF RS MOVLW '"' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'E' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'S' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'T' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'A' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'C' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'I' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'O' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'N' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'A' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'M' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'E' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'N' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'T' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'O' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '"' MOVWF PORTD BSF EN CALL TEMPO BCF EN BCF RS MOVLW 0XC0 MOVWF PORTD BSF EN CALL TEMPO BCF EN BSF RS MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'C' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'H' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'E' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'I' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'O' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ':' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '1' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'O' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN DISPLAY_2 BCF RS MOVLW 0XC0 MOVWF PORTD BSF EN CALL TEMPO BCF EN BSF RS MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'V' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'A' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'G' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'A' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'S' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'L' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'I' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'V' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'R' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'E' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW 'S' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW ' ' MOVWF PORTD BSF EN CALL TEMPO BCFEN ATIVAR_VAG1 MOVLW 0X00 XORWF CONT,W BTFSS STATUS,Z GOTO ATIVAR_VAG2 BCF RS MOVLW 0XCE MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO BSF RS MOVLW '1' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN ATIVAR_VAG2 MOVLW 0X01 XORWF CONT,W BTFSS STATUS,Z GOTO ATIVAR_VAG3 BCF RS MOVLW 0XCE MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO BSF RS MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '9' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN ATIVAR_VAG3 MOVLW 0X02 XORWF CONT,W BTFSS STATUS,Z GOTO ATIVAR_VAG4 BCF RS MOVLW 0XCE MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO BSF RS MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '8' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN ATIVAR_VAG4 MOVLW 0X03 XORWF CONT,W BTFSS STATUS,Z GOTO ATIVAR_VAG5 BCF RS MOVLW 0XCE MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO BSF RS MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '7' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN ATIVAR_VAG5 MOVLW 0X04 XORWF CONT,W BTFSS STATUS,Z GOTO ATIVAR_VAG6 BCF RS MOVLW 0XCE MOVWF PORTD BSF EN CALL TEMPOBCF EN CALL TEMPO BSF RS MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '6' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN ATIVAR_VAG6 MOVLW 0X05 XORWF CONT,W BTFSS STATUS,Z GOTO ATIVAR_VAG7 BCF RS MOVLW 0XCE MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO BSF RS MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '5' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN ATIVAR_VAG7 MOVLW 0X06 XORWF CONT,W BTFSS STATUS,Z GOTO ATIVAR_VAG8 BCF RS MOVLW 0XCE MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO BSF RS MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '4' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN ATIVAR_VAG8 MOVLW 0X07 XORWF CONT,W BTFSS STATUS,Z GOTO ATIVAR_VAG9 BCF RS MOVLW 0XCE MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO BSF RS MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '3' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN ATIVAR_VAG9 MOVLW 0X08 XORWF CONT,W BTFSS STATUS,Z GOTO ATIVAR_VAG10 BCF RS MOVLW 0XCE MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO BSF RS MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '2' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN ATIVAR_VAG10 MOVLW 0X09 XORWF CONT,W BTFSS STATUS,Z GOTO ATIVAR_VAG11 BCF RS MOVLW 0XCE MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO BSF RS MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '1' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN ATIVAR_VAG11 MOVLW 0X0A XORWF CONT,W BTFSS STATUS,Z GOTO LOOP BCF RS MOVLW 0XCE MOVWF PORTD BSF EN CALL TEMPO BCF EN CALL TEMPO BSF RS MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN MOVLW '0' MOVWF PORTD BSF EN CALL TEMPO BCF EN RETURN TEMPO MOVLW 0X64 MOVWF REG_1 MOVLW 0X32 MOVWF REG_2 TESTE DECF REG_1,1 BTFSS STATUS,Z GOTO $-2 DECF REG_2,1 BTFSS STATUS,Z GOTO TESTE_1 RETURN TESTE_1 MOVLW 0X64 MOVWF REG_1 GOTO TESTE � � TEMPO_1 CLRF REG_5 TEMPO1_1 MOVLW 0XFF MOVWF REG_3 MOVLW 0XFF MOVWF REG_4 TESTE_2 DECF REG_3,1 BTFSS STATUS,Z GOTO $-2 DECF REG_4,1 BTFSS STATUS,Z GOTO TESTE_3 INCF REG_5,1 MOVLW 0X0A XORWF REG_5,W BTFSS STATUS,Z GOTO TEMPO1_1 RETURN TESTE_3 MOVLW 0XFF MOVWF REG_3 GOTO TESTE_2 END � 16.6. DIAGRAMA ELETRICO PONTE H Figura 12: Diagrama ponte H. Na figura 12 mostra uma ponte H basica que é composta por 4 chaves mecanicas ou eletronicas posicionadas formando a letra “H”, sendo que cada uma localiza-se num extremo e o motor e posicionado no meio. Figura 13: Controle ponte H. Figura 13 mostra o controle de cada sentido que o motor Dc gira, podemos observar pelo diagrama que de um lado fica o controle para esquerda e do outro o controle para direita. Figura 14: Diagrama LCD. Figura 14 demonstra como é feito a ligação do LCD. Figura 15: Imagem de um cristal liquido ( LCD ). �� Figura 16: Estrutura interna do motor DC. Na figura 16 mostra o sentido de rotacionamento do motor DC ( norte ou sul ). Figura 17: Simbologia foto-transistor. Figura 17 mostra a simbologia de um fototransistor, como podemos ver ele possui três terminais na qual se da o nome de B ( base ), E ( emissor ), C ( coletor ). 16.7. ORÇAMENTO Componentes Quant. Preço Unitário Preço Total PIC 16F877A 2 R$ 20,00 R$ 40,00 LCD 16x2 1 R$ 26,00 R$ 26,00 Capacitor eletrolítico 3 R$ 2,00 R$ 6,00 LM 7912 1 R$ 1,50 R$ 1,50 LM 7812 1 R$ 1,50 R$ 1,50 LM 7805 1 R$ 1,50 R$ 1,50 Placa padrão 2 R$ 4,50 R$ 9,00 Transformador tap cantral 1 R$ 20,00 R$ 20,00 Resistor 1K 10 R$ 0,20 R$ 2,00 Potenciômetro 1 R$ 2,00 R$ 2,00 Capacitor cerâmico 2 R$ 0,20 R$ 0,40 Bornes 5 R$ 0,60 R$ 3,00 conectores 1 R$ 3,00 R$ 3,00 Cabo manga 3m R$ 3,00m R$ 9,00 Madeira MDF 10m R$ 5,00m R$ 50,00 LED azul 1 R$ 1,00 R$ 1,00 LED emissor 2 R$ 1,50 R$ 3,00 Transistor receptor 2 R$ 2,30 R$ 4,60 carrinhos 10 R$ 5,99 R$ 59,99 Porta paralela macho 1 R$ 1,50 R$ 1,50 Porta paralela fêmea 1 R$ 1,50 R$ 1,50 Estanho 5m R$ 0,50 R$ 2,50 Soquete 2 R$ 1,00 R$ 2,00 Cola rapida 1 R$ 12,00 R$ 12,00 Fita isolante preta 1 R$ 3,00 R$ 3,00 Fita isolante amarela 1 R$ 3,00 R$ 3,00 Fita isolante azul 1 R$ 3,00 R$ 3,00 Drive de CD ( sucata ) 2 R$ 4,00 R$ 8,00 Palito de picolé 2 R$ 0,10 R$ 0,20 Acrilicos 10x15 2 R$ 5,00 R$ 10,00 Parafuso M6 x 50 4 R$ 2,30 R$ 9,20 TOTAL APROXIMADO R$ 138,69 R$ 299,39 Tabela 6: Orçamento do projeto. 16.8. FOTOS DA MAQUETE figura 18: Imagem de frente maquete estacionamento. Figura 19: Imagem com vista de cima do estacionamento. Figura 20: Fonte de alimentação. Figura 21: Imagem display de cristal liquido ( LCD ). Figura 22: Imagem dos drivers nas duas cancelas. Figura 23: Imagem das duas cancelas. Figura 24: Folder para expotec. � PAGE \* MERGEFORMAT �4�
Compartilhar