Você está na página 1de 10

UNIVERSIDADE DO MINDELO

CURSO DE LICENCIATURA em
ENGENHARIA INFORMATICA e
SISTEMA E COMPUTACIONAIS

Autor: Hernâni Baptista, nº 4933


Mindelo,2020
Introdução
Este trabalho pratico surgiu no âmbito da disciplina de lab. Sistemas computacionais através
professor Samuel Lima na Universidade do Mindelo no curso de Engenharia Informática e sistema do
3º ano com o objetivo de implementar sistema automação de um elevador com o micro-controlador
arduino uno R3 aplicando conceitos e técnicas vistas durante as aulas da referida cadeira.

O sistema ira monitorizar quando o elevador era chegar em cada piso , ou seja, quando for
pressionado o botão um dos pisos o elevador era entrar em movimento ,ira gravar um registo desse
movimento no ficheiro utilizando um shield SD.

Para chamar o elevador em um piso vamos utilizar botão conectados na porta 8 ,9 e 10 . Cada
piso tem um lâmpada led branca que estão ligadas nas portas 5, 6 e 7 , cada lâmpada ficara ligado
representando em que piso encontra no momento . O motor CC conectado a porta 11,12 e 13 , a porta
11 controla a velocidade de rotação do motor , a porta 12 controla o movimento inverso do relógio e a
porta 13 controla o movimento do relógio. E o cartão SD ira gravar registo de cada piso que o elevador
esteve.

Equipamento necessário

• Arduino uno R3 2x;


• Lâmpadas led branca 3x;
• Resistor 3x;
• Botão 3x;
• Comparador quad 1x;
• Bateria 9v 1x;
• Capacitor polarizado 1x;
• Motor cc 1x;

Automação de um elevador

Primeiro Arduino :
Declaração e inicializações das variáveis.
Aqui importamos um biblioteca (Wire) para podermos ter comunicação entre os 2 arduinos;Em
seguida definimos as constantes as portas leds , botões e motor cc.

Void setup()
Começamos inicializando o monitor para veremos as saidas durante a utilizaçao do
elevador.Seguida inicializamos a coneçao entre os 2 arduinos em que este arduino sera o Master
.Depois é inicilizadas as portas com a função pinMode() que recebe um inteiro e o mode da porta.
Neste caso as portas das Leds e motor CC do como modo OUTPUT , os botoes como
INPUT_PULLUP e criado um default o elevador era começar no primeiro andar com o funçao
digitalWrite com HIGH(led ligada);
void primer_andar():
responsável para ligar a led do primeiro piso e desliga as outras leds.

Void segund_andar():
responsável para ligar a led do segundo piso e desliga as outras leds.
Void tercer_andar():
responsável para ligar a led do terceiro piso e desliga as outras leds .

Void paracima():
responsável pelo movimento inverso dos ponteiros do relógio no motor cc na velocidade
minima .

Void parabaixo():
responsável pelo movimento dos ponteiros do relógio no motor cc na velocidade mínima.

Void parar():
responsável para parar o movimento do motor cc .
Void loc_primer () :
responsável para quando e pressionado o primeiro botão vai ser verificado qual led esta ligado
caso se a led do primeiro piso estiver ligado o elevador mantém parado, caso estiver nos outros 2 pisos
o elevador era descer ate o primeiro piso chegando la a led do piso anterior e desligado e a led do
primeiro piso e ligado. Finalmente é enviada para serial motivor e para o outro arduino uma mensagem
“Primeiro andar”.
Void loc_segund():
Responsável para quando e pressionado o segundo botão vai verificar qual led esta ligado caso
a led do segundo piso estiver ligado o elevador mantém parado , caso a led do primeiro piso estiver
ligado o elevador ira subir para o segundo andar no espaço de 3segundos para e liga a led do segundo
piso. Caso a led do terceiro piso estiver ligado o elevador era descer para o segundo piso em 3
segundos, para e liga a led do terceiro piso .

Void loc_tercer():
Responsável para quando e pressionado o terceiro botão vai verificar qual led esta ligado caso a
led do terceiro piso estiver ligado o elevador mantém parado , caso a led do primeiro piso estiver
ligado o elevador ira subir para o terceiro piso no espaço de 6segundos para e liga a led do terceiro
piso. Caso a led do segundo piso estiver ligado o elevador era subir para o segundo piso em 3
segundos, para e liga a led do terceiro piso.
Void loop():
executa as funçoes loc_primer(), loc_segund() e log_tercer().

Segundo arduino :

Declaraçao e inicializaçao das variaveis.


Aqui importamos 2 bibliotecas (SD e SPI) para podermos utilizar shield SD para leitura e
escrita a outra biblioteca (wire) é para poder fazer comunicação entre arduino ; cs é a variável que
guarda a porta de transferência do shield ; e de seguida criei o ficheiro (myFile); f é a variável para
carácter.

Void setup()
Começamos inicilizando o monitor para veremos as saidas durante desenvolvimento,
inicilizamos o Wire() na porta logica 4 e que o arduino ira receber evento .Depoi e feito a verificaçao
se o SD esta ligado ou nao .

Void receiveEvent()
Abrimos o ficheiro declaramos para ficheiro de escrita vai ser monitorizado no monitor
quando esta disponível o arduino master vai mandar informaçao para o slave arduino para em que vai
ler o contido e transmitir esta informação para o ficheiro o vai guardar esta informação no SD.

Problemas com o resultado:


Consegui colocar tudo a funcionar menos a parte do guardar histórico no SD card ligado Arduino slave
tive dificuldade em encontrar solução para o problema.

Você também pode gostar