SlideShare uma empresa Scribd logo
1 de 22
UNIVERSIDADE PAULISTA
INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS- ICET

TRABALHO DE APS - 8º SEMESTRE
ENGENHARIA MECATRÔNICA

SÃO JOSÉ DOS CAMPOS-SP
2013
UNIVERSIDADE PAULISTA
INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGICASICET

RELÓGIO ANALÓGICO POV
PROPELLER CLOCK
(PERSISTENCE OF VISION)

FABIANO FORMAGINI– A554JI0
JENNIFER DINIZ MACIEL-A496157
ANDRESS HEIJI NOMURA-A578CD5
JONATHAN YUJIRO GONDO-A4764J8
EDSON GABRIEL COLMAN MAIA-A4286I0
JONATHAN GUILHERME T DE MORAES-A480080

SÃO JOSÉ DOS CAMPOS-SP
Novembro de 2013
ÍNDICE
RESUMO

Pg4

ILUSÃO DE ÓPTICA

Pg4

EXPLICANDO O FENÔMENO POV

Pg5

O PROJETO

Pg5

PCI e MOTOR

Pg6

ALIMENTAÇÃO

Pg6

LEDs

Pg7

DRIVER

Pg7

MICROCONTROLADOR E SOFTWARE

Pg7

ACIONAMENTO DA BARRA DE LEDs

Pg8

MOSTRAGEM DOS PONTEIROS

Pg9

CÓDIGO FONTE

Pg10

DIAGRAMA ESQUEMÁTICO

Pg19

LAYOUT DA PLACA

Pg20

FOTO DO PROTÓTIPO

Pg21

REFERÊNCIAS BIBLIOGRÁFICAS

Pg22

3
RESUMO

Este é um dispositivo diferenciado, pois diferentemente dos relógios convencionais,
neste não existem ponteiros reais nem painéis estáticos.
Como o próprio nome deixa subentendido, “The PropellerClock ” é um relógio
constituído de uma hélice acoplada ao eixo de um motor. A interface deste é efetivada
através de uma barra de LEDs que se encontra acoplada a esta hélice.
Utilizando os princípios de varrimento mecânico, a barra de LEDs é previamente
programada para que, em determinados momentos já pré-estabelecidos, pisquem,
provocando aos observadores a ilusão de imagens serem exibidas no ar. Estes são
conhecidos também como Displays Aéreos.
Especificamente o “The PropellerClock”, consiste em um RTC – implementado por
software – que exibe, no ar, a imagem de um pseudo-relógio analógico mecânico.
ILUSÃO DE ÓPTICA

O termo Ilusão de Óptica aplica-se a todos os fenômenos que tem a capacidade de
distorcer a resposta do sistema visual humano, sendo capaz de induzir o ser a ver algo
que não está fisicamente presente ou simplesmente alterar a forma de percepção visual.
Estas podem assumir caráter fisiológico ou até mesmo cognitivo, surgindo
naturalmenteou sendo induzidas.As cores e as formas usuais sobre o que pode ser visto, surge
instantaneamente noscircuitos neurais dos seres humanos e influenciam na representação de
alguma cena. Aspropriedades percebidas dos objetos, tais como o brilho, tamanho angular e
cor sãodeterminadas inconscientemente e não são propriedades físicas reais. A interpretação
doque o ser humano vê no mundo exterior é uma tarefa muito complexa.
Estudos mostram que existem mais de trinta áreas diferentes de cérebro humano
voltadas a reproduzir e processar as imagens do mundo exterior. Algumas áreas
parecem corresponder ao movimento outras à cor, outras à profundidade e mesmo à
direção de um contorno. Existe também uma tendência do cérebro humano a simplificar
as coisas em relação ao que elas realmente são. E é essa simplificação que permite ao
ser humano uma apreensão mais rápida. - ainda que imperfeita - da realidade exterior, o
que dá origem às ilusões de óptica.

4
Foi em 1995 que Bob Blick desenvolver um relógio utilizando o conceito de escrita
por varrimento mecânico, utilizando um array de sete LEDs acopladas a um motor.Batizou
seu projeto de PropellerClock , a partir de então, inúmeros outros projetos foram criados.

EXPLICANDO O FENÔMENO POV
Foram encontradas em cavernas pré-históricas as primeiras sequências de figuras
desenhadas pelo homem de modo a produzirem a sensação de movimento.Essa descoberta
confirma a percepção de que quando folheamos rapidamente desenhos ou fotografias em
sequência elas parecem se mover. Foi só em 1826 que o médico e filólogo inglês Peter Mark
Rogetpublicou um estudo sobre o assunto.
Segundo o cientista, o olho humano retém a imagem que se forma na retina por alguns
décimos de segundo a mais (aproximadamente 1/24 de segundo) mesmo após o clarão que a
provocou haver desaparecido.Essa peculiaridade do sistema óptico humano capaz de reter a
imagem por esse pequeno lapso de tempo é conhecida como persistência da visão ou
persistência retiniana.
Três anos após essa descoberta, o físico belga Joseph-Antoine Plateau foi o primeiro a
medir o tempo da persistência da visão ao concluir quepara uma série de imagens darem a
ilusão de movimento é necessário que se sucedam à razão de dez por segundo.
Baseados nessas descobertas, inúmeros equipamentos foram criados para captar a
imagem do movimento. Os primeiros aparelhos de projeção eram formados por discos com
várias imagens coladas em posições diferentesque ao serem rodados, davam a impressão de
mobilidade. Para filmar um corpo em movimento, são feitas várias fotos (fotogramas) em
intervalos bem curtos e hoje a velocidade de filmagem e projeção é padronizada em 24
fotogramas por segundo.
Como a imagem na retina persiste no intervalo de tempo compreendido entre duas
imagens sucessivas, o fotograma seguinte é projetado no exato instante em que o fotograma
anterior está desaparecendo de nossa "memória visual", o que produz a sensação de
movimento contínuo.
A ciência da visão é muito mais complexa do que tudo que foi acima citado.

5
O PROJETO
Todos os componentes com exceção do microcontrolador são em SMD
( Surface Mounting Devices) em razão da miniaturização constate nos dias de hoje.

PCI e MOTOR
A PCI ( placa de circuito impresso) é de fenolite com um lado cobreado, o layout foi
montado no software Eagle, (EasilyApplicableGraphicalLayout Editor) da Cadsoft , e
impresso em folha A4 ,este foi transferido para a placa de fenolite por compressão e calor e
assim mergulhada na solução de percloreto de ferro para a corrosão do cobre. As partes
pintadas não são corroídas eas partes nú o ácido reage com o cobre corroendo o mesmo.
O alinhamento e o balanceamento foi observado com critério, uma vez que a placa
desbalanceada causa vibração no momento do giro. O motor usado é um Motor DC Mabuchi,
e com giro de 950RPM. A rotação do motor foi setada variando-se a tensão de alimentação do
mesmo e o eixo do motor foi acoplado ao centro de gravidade da placa.

ALIMENTAÇÃO
A alimentação do circuito é feita com 3 bobinas de 33uH, L1,L2 e L3 estas acopladas
posterior a placa. Estaticamente temos um imã , que com a rotação da PCI as bobinas geram
um campo eletromagnético e a DDP gerada é retificada por onda completa pelos diodos
retificadores de chaveamento rápido ( Schottky) fabricados pela Rohm, de PartNumber
RB161M-20, e D1,D2 e D3, se apresentam em encapsulamento SOD-1231 . A tensão é filtrada
por dois capacitores, C3 e C4.
A tensão gerada é insuficiente para acender os LEDs, esta então é elevada e
estabilizada em 5.3Volts pelo CI Step-UP EUP2584 2. A alimentação do PIC® é feita
através de D5 e mesmo com o motor parado, temos alimentação para o PIC® graças a um
capacitor de back-up ,C7, um Gold-Cap3 da Serie SD do fabricante Panasonic, PartNumberGC5.5V0.33F .Com este cuidado o PIC continua contando as horas sem que resete o
relógio, neste momento o diodo D5 desempenha outra função, impedir que a tensão retorne e
alimente os LEDs, descarregando C7.

6
LEDs
Os LEDs são montados em linha sendo intercaladas as cores para assim se obter o
ponteiro das horas ,minutos e segundos em cores distintas, um LED foi adicionado para
marcar a posição das horas e um segundo LED faz o circulo em torno do relógio, este
mantem-se aceso constantemente e com o giro do dispositivo, temos o contorno do relógio.
Para uma melhor visualização dos ponteiros, aumentamos o numero de "pixels"
(LEDs) ,usando 21 LEDs na cor Vermelha e 26 LEDs na cor verde. Os LEDs vermelhos,
LED 1 a LED 21 e LED48, são do fabricante Multicomp ,de PartNumber
MCL-S290SRC4 e encapsulamento 06035 com 15mcd de intensidade luminosa cada. Os LEDs
verde e o LED azul,( LED 22 a LED 47e LED 49) são do fabricante KingBright, de
PartNumber KP-2012SGC6, e encapsulamento 0603 com 15mcd de intensidade luminosa
cada.
DRIVER
O controle de alimentação dos LEDs é feito por 4 transistores Mos-Fet Canal-P SMD,
fabricado pela Advance Power Electronics Corporation, de PartNumber AP2301GN7,
suportam uma corrente de até -2.6A cada. Entretanto , a corrente máxima aplicada em cada
transistor neste projeto não passa de algumas centenas de mA.
Os resistores limitadores de corrente são SMD de encapsulamento 0603. R1 a R21 são
de 470 Ohms e R22 a R48 são de 240 Ohms .

MICROCONTROLADOR E SOFTWARE
O Microcontrolador escolhido foi o PIC16F6848 do fabricante Microchip, uma vez
que ele consome em operação normal com cristal de 32.768Khz apenas 11µA . A
programação é em Assembly, que é a língua primitiva dos micro-controladores. Linguagem
Assembly, como opróprio nome sugere é definida como linguagem de montagem. Tem essa
definição pois é uma linguagem de baixo nível, sendo ela a mais próxima da linguagem de
máquina.
A lógica de funcionamento do software pode ser dividida em quatro etapas: a
primeira etapa é o pré-set do relógio; a segunda etapa é responsável pelo controle da
7
base de tempo do relógio; a terceira etapa é a responsável por detectar a posição da barra e a
última etapa, responsável por controlar o acionamento da barra de LEDs – levando em
consideração as duas primeiras etapas.
Primeiramente, é necessário fazer o pré-set do horário para isso utilizam-se duas
portas do micro-controlador que estão conectadas a um sensor infravermelho. Cada vez que
um sensor é ativado, tem um respectivo valor de tensão analógico, zero, este que é
reconhecido e tratado pelo micro-controlador. Cada sensor tem uma função distinta: T1 ajusta
as horas e T2 os minutos.
Como é proposto em seu próprio título, é necessário criar um relógio para o controle
da base de tempo. A idéia inicial para implementação deste relógio foi utilizar o clock gerado
pelo cristal e dividir para se obter uma freqüência de 1Hz. Pensando nas limitações mecânicas
do dispositivo e nas limitações do próprio micro-controlador optou-se em implementar um
RTC (real time clock) por software. Para implementação do RTC foi adaptada uma biblioteca
pronta. Esta biblioteca configura um timer interno do micro-controlador para atender uma
interrupção a cada segundo, fazendo assim com que haja o incremento de segundo. Para
incremento do minuto, testa-se a variável que armazena os segundos. Para incremento da
hora, testa-se a variável dos minutos.
O monitor de posição é efetuado através da resposta do Sensor de efeito Hall, IC2
PartNumberA11049, da Allegro Micro Systems. Este sensor atua sempre que o motor
completa um giro de 360º marcando cada volta. Nos micro-controladores da família PIC®
existe um pino que pode ser configurado para atender uma interrupção externa toda vez que
detectar uma troca de nível de sinal,ou seja, sempre que o sensor atuar.
Para calcular a rotação do motor utiliza-se uma interrupção externa, esta que será
atendida sempre que o sensor atuar detectando uma borda de descida no pino do microcontrolador. Toda vez que esta interrupção externa for atendida, o programa incrementa uma
variável, que a cada segundo conta quantas vezes foram detectadas estas interrupções ou seja,
guarda o número de voltas que foram dadas pelo motor durante um segundo.

ACIONAMENTO DA BARRA DE LEDs
O controle para o acionamento dos LEDs é dependente das supra-referidas etapas,
pois o acionamento dos mesmos ocorre com base na hora e velocidade atual.
8
Primeiramente é necessário salientar o número de posições que cada ponteiro pode assumir.
O ponteiro responsável pela exibição das horas pode assumir 12 posições, enquanto os
ponteiros responsáveis pela exibição dos minutos e segundos assumem 60 posições cada.
Para saber a posição exata de cada ponteiro, é necessário que exista um ponto de
referência fixo. Para isto, o sensor de efeito Hall foi estrategicamente posicionado, servindo
de referência ao software e fazendo com que, no momento em que o sensor é acionado, o
dispositivo esteja na posição 12 Horas. É este ponto de referencia que possibilita estimar o
tempo necessário para atingir cada passo dos ponteiros. Partindo destas premissas, é possível
controlar devidamente o dispositivo.Feita a leitura do horário atual calcula-se a velocidade de
rotação do motor para corrigir o tempo de passo dos ponteiros. Com base no horário obtido,
sabem-se quantos passos é necessário dar para o ponteiro chegar à respectiva posição. Após
saber o número de passos necessários, configura-se um timer interno do micro-controlador
para aguardar o tempo correto para poder efetivar o acionamento da barra de LEDs no ponto
correspondente. Este procedimento é efetuado para os três ponteiros.

MOSTRAGEM DOS PONTEIROS
HORA
Para a mostrar o ponteiro marcador das horas as portas RC0 e RC4 do PIC® passam
o nível lógico para "1" para "0".
MINUTOS
Para a mostrar o ponteiro marcador dos minutos as portas RC3 e RC4 do PIC®
passam o nível lógico para "1" para "0".
SEGUNDOS
Para a mostrar o ponteiro marcador dos segundos as portas RC0 e RC1 do PIC®
passam o nível lógico para "1" para "0".

9
CÓDIGO FONTE
LIST P=16F684, R=DEC
INCLUDE "p16f684.inc"
__CONFIG _FCMEN_OFF & _IESO_OFF & _BOD_OFF & _CPD_OFF & _CP_OFF &
_MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
CBLOCK 0x20
hours, minutes, seconds, hrpos
w_save, stat_save, pc_save
temp, tick, tickNotch
debounce:2
ENDC

ORG 0
goto

; iniciaprograma
main

ORG 4

; ISR é chamado a cada segundo

movwf

w_save

; salvaWreg

swapf

STATUS, w

; salvasem stat reg

movwf

stat_save

; troca flags

btfss

PIR1, TMR1IF

; TMR1 interrupção

goto

start

; -processo de sinc de pulso

movlw

128

; seta prox. interrupção

movwf

TMR1H

; separa 1 segundo

incf

seconds, f

; carrega o código ISR

movlw

60

subwf

seconds, w

btfss

STATUS, Z
10
goto

ISR_end

clrf

seconds

incf

minutes, f

movf

hours, w

movwf

hrpos

addwf

hrpos, f

addwf

hrpos, f

addwf

hrpos, f

addwf

hrpos, f

movf

minutes, w

movwf

temp

movlw

12

incf

hrpos, f

subwf

temp, f

btfsc

STATUS, C

goto

$-3

decf

hrpos, f

movlw

60

subwf

minutes, w

btfss

STATUS, Z

goto

ISR_end

clrf

minutes

incf

hours, f

; seconds = segundos (mod 60)

; hrpos = horas

; hrpos = horas * 5

; hrpos += floor(minutos/12)

; minutes = minutos (mod 60)

movlw 12
subwf

hours, w
11
btfss

STATUS, Z

goto

ISR_end

clrf

hours

; horas = horas (mod 12)

bcf

PIR1, TMR1IF

; limpainterrupção

swapf

stat_save, w

; carrega original flags in STATUS

movwf

STATUS

swapf

w_save, f

swapf

w_save, w

ISR_end

; restore Wreg

retfie
main

; código principal
clrf

PORTA

clrf

PORTC

movlw 0x07
movwf

CMCON0

; comparadores OFF

bsf

STATUS, RP0

; chaveiapara BANK 1

clrf

ANSEL ^ 0x80

; todas entradas digitais

clrf

TRISA ^ 0x80

; PORTA saída

bsf

TRISA ^ 0x80, 2

; INT pin para entrada

clrf

TRISC ^ 0x80

; enable PORTC para saída

bsf

TRISC ^ 0x80, 5

; PORTC pin 5 é entrada

bsf

PIE1 ^ 0x80, TMR1IE

; enable TMR1 interrupts

bcf

OPTION_REG^0x80, 6

; interromper ao cair nível RA2

bcf

STATUS, RP0

; retorna para BANK 0

movlw b'00001111'

; enable TMR1 com clock externo
12
movwfT1CON
bsf

INTCON, PEIE

bsf

INTCON, INTE

bcf

PIR1, TMR1IF

clrf

hours

clrf

hrpos

clrf

minutes

clrf

seconds

clrf

tick

; posiçãoatual da placa

clrf

tickNotch

; led azul, posição

incf

tickNotch, f

bcf

INTCON, INTF

; clear INT flag

bsf

INTCON, GIE

; (re)-enable todas interrupções

start

loop

; loop
movlw

b'011011'

movwf

PORTC

decfsz

tickNotch, f

goto

$+4

bsf

PORTC, 2

movlw

5

movwf

tickNotch

movf

seconds, w

subwf

tick, w

btfss

; apaga display

STATUS, Z

; set the Z flag

; liga led azul

; tickNotch = 5

13
goto

check_min

bcf

PORTC, 0

bcf

PORTC, 1

; exibir ponteiro segundos

check_min
movf

minutes, w

subwf

tick, w

btfss

STATUS, Z

goto

check_hours

bcf

PORTC, 3

bcf

PORTC, 4

; exibir ponteiro minutos

check_hours
movf

hrpos, w

subwf

tick, w

btfss

STATUS, Z

goto

$+3

bcf

PORTC, 1

bcf

PORTC, 4

call

delayOn

movlw

b'010111'

movwf

PORTC

call

delayOff

; gap delay

incf

tick, f

; atualiza mostrador de horas

; exibir ponteiro horas

; apaga display

movlw 60
subwf

tick, w

btfss

STATUS, Z
14
goto

loop

setTime
call

wait4Release

; aguarda 32 msec para soltar botão

call

wait4Press

; aguarda 32 msec para pressionar botão

goto

setTime

wait4Release
clrf

debounce

; aguarda soltar botões

clrf

debounce+1

btfss

PORTA, 3

; botão de minutos solto?

goto

wait4Release

; NAO-aguarda soltar

btfss

PORTC, 5

; botão horas liberado?

goto

wait4Release

; NAO - aguardar liberar

incf

debounce, f

btfsc

STATUS, Z

incf

debounce+1, f

btfss

debounce+1, 4

goto

$-6

; 4096*8 = 32msec

return
wait4Press
clrf

debounce

; aguardar botão ser pressionado

clrf

debounce+1

btfsc

PORTC, 5

; botão horas pressionado?

goto

checkMinButt

; NO - check outro botão

incf

debounce, f

btfsc

STATUS, Z
15
incf

debounce+1, f

btfss

debounce+1, 4

goto

$-6

call

incHours

; atualiza horas

call

blink

; pisca led azul

btfsc

PORTA, 3

; botão de minutos pressionado?

goto

wait4Press

; Não - aguarde pressionar

incf

debounce, f

btfsc

STATUS, Z

incf

debounce+1, f

btfss

debounce+1, 4

goto

$-6

call

incMinutes

; atualiza minutos

call

blink

;pisca led azul

; 4096*8 = 32msec

return
checkMinButt

; 4096*8 = 32msec

return
incHours

; incrementa horas mod 12

bcf

INTCON, GIE

incf

; desabillita interrupções

hours, f

movlw 12
subwf

hours, w

btfsc

STATUS, C

; hora é >= 12 ?

clrf

hours

; SIM - limpa

movf

hours, w

; computa nova posição de hrpos
16
movwf hrpos

; hrpos = hours

addwf

hrpos, f

addwf

hrpos, f

addwf

hrpos, f

addwf

hrpos, f

movf

minutes, w

movwf

temp

movlw

12

incf

hrpos, f

subwf

temp, f

btfsc

STATUS, C

goto

$-3

decf

hrpos, f

bsf

INTCON, GIE

inc

Minutes

bcf

INTCON, GIE

incf

minutes, f

; hrpos = hours * 5

; hrpos += floor(minutes/12)

return
; incrementa minutos mod 60

movlw 60
subwf

minutes, w

btfsc STATUS, C

; minutos é >= 60 ?

clrf

minutes

; YES - limpa

bsf

INTCON, GIE

return
blink

; pisca led azul base te tempo de 100ms
17
bsf

PORTC,2

movlw

100

movwf

temp

movlw

250

addlw

-1

btfss

STATUS, Z

goto

$-2

decfsz

temp, f

goto

$-5

bcf

PORTC, 2

; led azul, on

; desliga led azul

return
delayOn

; formar intervalo de tempo para mostrar posição horas

movlw

10

addlw

-1

btfss

STATUS, Z

goto

; e ponteiros

$-2

return
delayOff

; formar intervalos entre minutos

movlw 90

; mostrador

addlw -1
btfss STATUS, Z
; a soma dos dois últimos retardos não deverá
exceder 110 msec para prevenir efeitoflicker
goto

$-2

return
END

18
DIAGRAMA ESQUEMÁTICO

19
LAYOUT DA PLACA

20
FOTO DO PROTÓTIPO

21
REFERENCIAS BIBLIOGRÁFICAS
1-http://www.icbank.com/icbank_data/semi_package/sod123_dim.pdf
2-http://www.bdtic.com/DataSheet/EUTECH/EUP2584.pdf

3 -http://www.panasonic.com/industrial/components/pdf/goldcap_tech-guide_052505.pdf
4-http://www.farnell.com/datasheets/1671538.pdf
5-http://www.panasonic.com/industrial/components/pdf/AOA0000CE1.pdf
6-http://datasheet.octopart.com/KP-2012SGC-Kingbright-datasheet-7584627.pdf
7- http://www.tme.eu/at/Document/b0c1ffacb22e23996c5177b97bc3c132/AP2301GN-3.pdf
8- http://ww1.microchip.com/downloads/en/devicedoc/41202f-print.pdf
9-http://www.farnell.com/datasheets/926082.pdf

22

Mais conteúdo relacionado

Mais procurados

Bs en 13889 2003(forged steel shackles for general use - gra
Bs en 13889 2003(forged steel shackles for general use - graBs en 13889 2003(forged steel shackles for general use - gra
Bs en 13889 2003(forged steel shackles for general use - gra
Atef1982
 
Abnt nbr 14639 posto de servico - instalacoes eletricas
Abnt nbr 14639   posto de servico - instalacoes eletricasAbnt nbr 14639   posto de servico - instalacoes eletricas
Abnt nbr 14639 posto de servico - instalacoes eletricas
Mônica Nobrega
 
Fainor sapatas - estacas - tubulões
Fainor   sapatas - estacas - tubulõesFainor   sapatas - estacas - tubulões
Fainor sapatas - estacas - tubulões
Ramon Dutra Lobo Lobo
 

Mais procurados (20)

Cloud Telesol FTTH proposal - India
Cloud Telesol FTTH proposal - IndiaCloud Telesol FTTH proposal - India
Cloud Telesol FTTH proposal - India
 
Bs en 13889 2003(forged steel shackles for general use - gra
Bs en 13889 2003(forged steel shackles for general use - graBs en 13889 2003(forged steel shackles for general use - gra
Bs en 13889 2003(forged steel shackles for general use - gra
 
Gerência de redes e computadores
Gerência de redes e computadoresGerência de redes e computadores
Gerência de redes e computadores
 
Palestra de Windows Server 2016
Palestra de Windows Server 2016Palestra de Windows Server 2016
Palestra de Windows Server 2016
 
Apostila agregados - 2016.02
Apostila   agregados - 2016.02Apostila   agregados - 2016.02
Apostila agregados - 2016.02
 
Condutores da prysmiam guia dimensionamento baixa_tensao
Condutores da prysmiam guia dimensionamento baixa_tensaoCondutores da prysmiam guia dimensionamento baixa_tensao
Condutores da prysmiam guia dimensionamento baixa_tensao
 
4.pilares de concreto armado
4.pilares de concreto armado4.pilares de concreto armado
4.pilares de concreto armado
 
Gerenciamento e Monitoramento de Rede.pdf
Gerenciamento e Monitoramento de Rede.pdfGerenciamento e Monitoramento de Rede.pdf
Gerenciamento e Monitoramento de Rede.pdf
 
Telhados e coberturas
Telhados e coberturas   Telhados e coberturas
Telhados e coberturas
 
linhas de transmissão mecânica (Rubens Alves Dias)
linhas de transmissão mecânica (Rubens Alves Dias)linhas de transmissão mecânica (Rubens Alves Dias)
linhas de transmissão mecânica (Rubens Alves Dias)
 
Abnt nbr 14639 posto de servico - instalacoes eletricas
Abnt nbr 14639   posto de servico - instalacoes eletricasAbnt nbr 14639   posto de servico - instalacoes eletricas
Abnt nbr 14639 posto de servico - instalacoes eletricas
 
Anexo 4 lista verificao spda - final
Anexo 4   lista verificao spda - finalAnexo 4   lista verificao spda - final
Anexo 4 lista verificao spda - final
 
3 Métodos para calcular a corrente de curto circuito (1) (7)
3 Métodos para calcular a corrente de curto circuito (1) (7)3 Métodos para calcular a corrente de curto circuito (1) (7)
3 Métodos para calcular a corrente de curto circuito (1) (7)
 
Serviços de Redes.pdf
Serviços de Redes.pdfServiços de Redes.pdf
Serviços de Redes.pdf
 
Weg Transformadores à SECO
Weg Transformadores à SECOWeg Transformadores à SECO
Weg Transformadores à SECO
 
Fainor sapatas - estacas - tubulões
Fainor   sapatas - estacas - tubulõesFainor   sapatas - estacas - tubulões
Fainor sapatas - estacas - tubulões
 
Implications of super channels on CDC ROADM architectures
Implications of super channels on CDC ROADM architecturesImplications of super channels on CDC ROADM architectures
Implications of super channels on CDC ROADM architectures
 
Nbr 14931 2004 - execucao de estruturas de concreto - procedimento
Nbr 14931   2004 - execucao de estruturas de concreto - procedimentoNbr 14931   2004 - execucao de estruturas de concreto - procedimento
Nbr 14931 2004 - execucao de estruturas de concreto - procedimento
 
Norma EDP-Escelsa Instalações Individuais
Norma EDP-Escelsa Instalações IndividuaisNorma EDP-Escelsa Instalações Individuais
Norma EDP-Escelsa Instalações Individuais
 
Catalogo tecnico telhas
Catalogo tecnico telhasCatalogo tecnico telhas
Catalogo tecnico telhas
 

Destaque (8)

Mmm aula 05
Mmm   aula 05Mmm   aula 05
Mmm aula 05
 
Redes
RedesRedes
Redes
 
Processador
ProcessadorProcessador
Processador
 
Mmm aula 06 processador
Mmm   aula 06 processadorMmm   aula 06 processador
Mmm aula 06 processador
 
Aula 4 processadores Notebooks
Aula 4 processadores NotebooksAula 4 processadores Notebooks
Aula 4 processadores Notebooks
 
Construção de Redes de Distribuição
Construção de Redes de DistribuiçãoConstrução de Redes de Distribuição
Construção de Redes de Distribuição
 
Arduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the ArduinoArduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the Arduino
 
Introduction to arduino
Introduction to arduinoIntroduction to arduino
Introduction to arduino
 

Semelhante a POV- Propeller Clock- Relógio Analógico

Apostila _levitador__olho___roda_de_hamilton__forno_de_inducao
Apostila  _levitador__olho___roda_de_hamilton__forno_de_inducaoApostila  _levitador__olho___roda_de_hamilton__forno_de_inducao
Apostila _levitador__olho___roda_de_hamilton__forno_de_inducao
Junior Moreira
 
Experiência 02 osciloscópio
Experiência 02   osciloscópioExperiência 02   osciloscópio
Experiência 02 osciloscópio
Matheus Selis
 
Lcd – tecnologia de cristais líquidos’
Lcd – tecnologia de cristais líquidos’Lcd – tecnologia de cristais líquidos’
Lcd – tecnologia de cristais líquidos’
BLACKDUCK Company
 
Dissertação Mestrado Marcus Lima
Dissertação Mestrado Marcus LimaDissertação Mestrado Marcus Lima
Dissertação Mestrado Marcus Lima
Marcus Lima
 
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWERTCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
Gerson Roberto da Silva
 
Osciloscopio%20digital
Osciloscopio%20digitalOsciloscopio%20digital
Osciloscopio%20digital
trinxa15
 
Astrofotografia simples campus party 2011
Astrofotografia simples campus party 2011Astrofotografia simples campus party 2011
Astrofotografia simples campus party 2011
Campus Party Brasil
 
Unidade 2.1.8 PeriféRicos Fundamentais
Unidade 2.1.8   PeriféRicos FundamentaisUnidade 2.1.8   PeriféRicos Fundamentais
Unidade 2.1.8 PeriféRicos Fundamentais
guest18dcd9
 
Dispositivo de controle automático
Dispositivo de controle automáticoDispositivo de controle automático
Dispositivo de controle automático
Camila Mairinques
 

Semelhante a POV- Propeller Clock- Relógio Analógico (20)

Apostila _levitador__olho___roda_de_hamilton__forno_de_inducao
Apostila  _levitador__olho___roda_de_hamilton__forno_de_inducaoApostila  _levitador__olho___roda_de_hamilton__forno_de_inducao
Apostila _levitador__olho___roda_de_hamilton__forno_de_inducao
 
Som
SomSom
Som
 
Automação industrial: Encoder - Transdutor de posição angular
Automação industrial:  Encoder - Transdutor de posição angularAutomação industrial:  Encoder - Transdutor de posição angular
Automação industrial: Encoder - Transdutor de posição angular
 
Experiência 02 osciloscópio
Experiência 02   osciloscópioExperiência 02   osciloscópio
Experiência 02 osciloscópio
 
Lcd – tecnologia de cristais líquidos’
Lcd – tecnologia de cristais líquidos’Lcd – tecnologia de cristais líquidos’
Lcd – tecnologia de cristais líquidos’
 
Projeto BUS-BUS
Projeto BUS-BUSProjeto BUS-BUS
Projeto BUS-BUS
 
Dissertação Mestrado Marcus Lima
Dissertação Mestrado Marcus LimaDissertação Mestrado Marcus Lima
Dissertação Mestrado Marcus Lima
 
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWERTCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
TCC - DISPOSITIVO PARA TESTE DE SISTEMA VENTILAÇÃO TIPO BLOWER
 
Osciloscopio%20digital
Osciloscopio%20digitalOsciloscopio%20digital
Osciloscopio%20digital
 
Astrofotografia simples campus party 2011
Astrofotografia simples campus party 2011Astrofotografia simples campus party 2011
Astrofotografia simples campus party 2011
 
Painel Eletrônico Luminoso Para Auxiliar No Tratamento De Pacientes Com Defic...
Painel Eletrônico Luminoso Para Auxiliar No Tratamento De Pacientes Com Defic...Painel Eletrônico Luminoso Para Auxiliar No Tratamento De Pacientes Com Defic...
Painel Eletrônico Luminoso Para Auxiliar No Tratamento De Pacientes Com Defic...
 
Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino
 
Artigo Ilha Digital - Controlador de Motor de Passo
Artigo Ilha Digital - Controlador de Motor de PassoArtigo Ilha Digital - Controlador de Motor de Passo
Artigo Ilha Digital - Controlador de Motor de Passo
 
Desenvolvimento de elevador remoto instrumentado
Desenvolvimento de elevador remoto instrumentadoDesenvolvimento de elevador remoto instrumentado
Desenvolvimento de elevador remoto instrumentado
 
Projetos seguidor linha_2
Projetos seguidor linha_2Projetos seguidor linha_2
Projetos seguidor linha_2
 
Unidade 2.1.8 PeriféRicos Fundamentais
Unidade 2.1.8   PeriféRicos FundamentaisUnidade 2.1.8   PeriféRicos Fundamentais
Unidade 2.1.8 PeriféRicos Fundamentais
 
Dispositivo de controle automático
Dispositivo de controle automáticoDispositivo de controle automático
Dispositivo de controle automático
 
Módulo_03
Módulo_03Módulo_03
Módulo_03
 
Resumo de MCU (Movimento Circular e Uniforme)
Resumo de MCU (Movimento Circular e Uniforme)Resumo de MCU (Movimento Circular e Uniforme)
Resumo de MCU (Movimento Circular e Uniforme)
 
Palestra simulação3
Palestra simulação3Palestra simulação3
Palestra simulação3
 

Último

Último (6)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

POV- Propeller Clock- Relógio Analógico

  • 1. UNIVERSIDADE PAULISTA INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS- ICET TRABALHO DE APS - 8º SEMESTRE ENGENHARIA MECATRÔNICA SÃO JOSÉ DOS CAMPOS-SP 2013
  • 2. UNIVERSIDADE PAULISTA INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGICASICET RELÓGIO ANALÓGICO POV PROPELLER CLOCK (PERSISTENCE OF VISION) FABIANO FORMAGINI– A554JI0 JENNIFER DINIZ MACIEL-A496157 ANDRESS HEIJI NOMURA-A578CD5 JONATHAN YUJIRO GONDO-A4764J8 EDSON GABRIEL COLMAN MAIA-A4286I0 JONATHAN GUILHERME T DE MORAES-A480080 SÃO JOSÉ DOS CAMPOS-SP Novembro de 2013
  • 3. ÍNDICE RESUMO Pg4 ILUSÃO DE ÓPTICA Pg4 EXPLICANDO O FENÔMENO POV Pg5 O PROJETO Pg5 PCI e MOTOR Pg6 ALIMENTAÇÃO Pg6 LEDs Pg7 DRIVER Pg7 MICROCONTROLADOR E SOFTWARE Pg7 ACIONAMENTO DA BARRA DE LEDs Pg8 MOSTRAGEM DOS PONTEIROS Pg9 CÓDIGO FONTE Pg10 DIAGRAMA ESQUEMÁTICO Pg19 LAYOUT DA PLACA Pg20 FOTO DO PROTÓTIPO Pg21 REFERÊNCIAS BIBLIOGRÁFICAS Pg22 3
  • 4. RESUMO Este é um dispositivo diferenciado, pois diferentemente dos relógios convencionais, neste não existem ponteiros reais nem painéis estáticos. Como o próprio nome deixa subentendido, “The PropellerClock ” é um relógio constituído de uma hélice acoplada ao eixo de um motor. A interface deste é efetivada através de uma barra de LEDs que se encontra acoplada a esta hélice. Utilizando os princípios de varrimento mecânico, a barra de LEDs é previamente programada para que, em determinados momentos já pré-estabelecidos, pisquem, provocando aos observadores a ilusão de imagens serem exibidas no ar. Estes são conhecidos também como Displays Aéreos. Especificamente o “The PropellerClock”, consiste em um RTC – implementado por software – que exibe, no ar, a imagem de um pseudo-relógio analógico mecânico. ILUSÃO DE ÓPTICA O termo Ilusão de Óptica aplica-se a todos os fenômenos que tem a capacidade de distorcer a resposta do sistema visual humano, sendo capaz de induzir o ser a ver algo que não está fisicamente presente ou simplesmente alterar a forma de percepção visual. Estas podem assumir caráter fisiológico ou até mesmo cognitivo, surgindo naturalmenteou sendo induzidas.As cores e as formas usuais sobre o que pode ser visto, surge instantaneamente noscircuitos neurais dos seres humanos e influenciam na representação de alguma cena. Aspropriedades percebidas dos objetos, tais como o brilho, tamanho angular e cor sãodeterminadas inconscientemente e não são propriedades físicas reais. A interpretação doque o ser humano vê no mundo exterior é uma tarefa muito complexa. Estudos mostram que existem mais de trinta áreas diferentes de cérebro humano voltadas a reproduzir e processar as imagens do mundo exterior. Algumas áreas parecem corresponder ao movimento outras à cor, outras à profundidade e mesmo à direção de um contorno. Existe também uma tendência do cérebro humano a simplificar as coisas em relação ao que elas realmente são. E é essa simplificação que permite ao ser humano uma apreensão mais rápida. - ainda que imperfeita - da realidade exterior, o que dá origem às ilusões de óptica. 4
  • 5. Foi em 1995 que Bob Blick desenvolver um relógio utilizando o conceito de escrita por varrimento mecânico, utilizando um array de sete LEDs acopladas a um motor.Batizou seu projeto de PropellerClock , a partir de então, inúmeros outros projetos foram criados. EXPLICANDO O FENÔMENO POV Foram encontradas em cavernas pré-históricas as primeiras sequências de figuras desenhadas pelo homem de modo a produzirem a sensação de movimento.Essa descoberta confirma a percepção de que quando folheamos rapidamente desenhos ou fotografias em sequência elas parecem se mover. Foi só em 1826 que o médico e filólogo inglês Peter Mark Rogetpublicou um estudo sobre o assunto. Segundo o cientista, o olho humano retém a imagem que se forma na retina por alguns décimos de segundo a mais (aproximadamente 1/24 de segundo) mesmo após o clarão que a provocou haver desaparecido.Essa peculiaridade do sistema óptico humano capaz de reter a imagem por esse pequeno lapso de tempo é conhecida como persistência da visão ou persistência retiniana. Três anos após essa descoberta, o físico belga Joseph-Antoine Plateau foi o primeiro a medir o tempo da persistência da visão ao concluir quepara uma série de imagens darem a ilusão de movimento é necessário que se sucedam à razão de dez por segundo. Baseados nessas descobertas, inúmeros equipamentos foram criados para captar a imagem do movimento. Os primeiros aparelhos de projeção eram formados por discos com várias imagens coladas em posições diferentesque ao serem rodados, davam a impressão de mobilidade. Para filmar um corpo em movimento, são feitas várias fotos (fotogramas) em intervalos bem curtos e hoje a velocidade de filmagem e projeção é padronizada em 24 fotogramas por segundo. Como a imagem na retina persiste no intervalo de tempo compreendido entre duas imagens sucessivas, o fotograma seguinte é projetado no exato instante em que o fotograma anterior está desaparecendo de nossa "memória visual", o que produz a sensação de movimento contínuo. A ciência da visão é muito mais complexa do que tudo que foi acima citado. 5
  • 6. O PROJETO Todos os componentes com exceção do microcontrolador são em SMD ( Surface Mounting Devices) em razão da miniaturização constate nos dias de hoje. PCI e MOTOR A PCI ( placa de circuito impresso) é de fenolite com um lado cobreado, o layout foi montado no software Eagle, (EasilyApplicableGraphicalLayout Editor) da Cadsoft , e impresso em folha A4 ,este foi transferido para a placa de fenolite por compressão e calor e assim mergulhada na solução de percloreto de ferro para a corrosão do cobre. As partes pintadas não são corroídas eas partes nú o ácido reage com o cobre corroendo o mesmo. O alinhamento e o balanceamento foi observado com critério, uma vez que a placa desbalanceada causa vibração no momento do giro. O motor usado é um Motor DC Mabuchi, e com giro de 950RPM. A rotação do motor foi setada variando-se a tensão de alimentação do mesmo e o eixo do motor foi acoplado ao centro de gravidade da placa. ALIMENTAÇÃO A alimentação do circuito é feita com 3 bobinas de 33uH, L1,L2 e L3 estas acopladas posterior a placa. Estaticamente temos um imã , que com a rotação da PCI as bobinas geram um campo eletromagnético e a DDP gerada é retificada por onda completa pelos diodos retificadores de chaveamento rápido ( Schottky) fabricados pela Rohm, de PartNumber RB161M-20, e D1,D2 e D3, se apresentam em encapsulamento SOD-1231 . A tensão é filtrada por dois capacitores, C3 e C4. A tensão gerada é insuficiente para acender os LEDs, esta então é elevada e estabilizada em 5.3Volts pelo CI Step-UP EUP2584 2. A alimentação do PIC® é feita através de D5 e mesmo com o motor parado, temos alimentação para o PIC® graças a um capacitor de back-up ,C7, um Gold-Cap3 da Serie SD do fabricante Panasonic, PartNumberGC5.5V0.33F .Com este cuidado o PIC continua contando as horas sem que resete o relógio, neste momento o diodo D5 desempenha outra função, impedir que a tensão retorne e alimente os LEDs, descarregando C7. 6
  • 7. LEDs Os LEDs são montados em linha sendo intercaladas as cores para assim se obter o ponteiro das horas ,minutos e segundos em cores distintas, um LED foi adicionado para marcar a posição das horas e um segundo LED faz o circulo em torno do relógio, este mantem-se aceso constantemente e com o giro do dispositivo, temos o contorno do relógio. Para uma melhor visualização dos ponteiros, aumentamos o numero de "pixels" (LEDs) ,usando 21 LEDs na cor Vermelha e 26 LEDs na cor verde. Os LEDs vermelhos, LED 1 a LED 21 e LED48, são do fabricante Multicomp ,de PartNumber MCL-S290SRC4 e encapsulamento 06035 com 15mcd de intensidade luminosa cada. Os LEDs verde e o LED azul,( LED 22 a LED 47e LED 49) são do fabricante KingBright, de PartNumber KP-2012SGC6, e encapsulamento 0603 com 15mcd de intensidade luminosa cada. DRIVER O controle de alimentação dos LEDs é feito por 4 transistores Mos-Fet Canal-P SMD, fabricado pela Advance Power Electronics Corporation, de PartNumber AP2301GN7, suportam uma corrente de até -2.6A cada. Entretanto , a corrente máxima aplicada em cada transistor neste projeto não passa de algumas centenas de mA. Os resistores limitadores de corrente são SMD de encapsulamento 0603. R1 a R21 são de 470 Ohms e R22 a R48 são de 240 Ohms . MICROCONTROLADOR E SOFTWARE O Microcontrolador escolhido foi o PIC16F6848 do fabricante Microchip, uma vez que ele consome em operação normal com cristal de 32.768Khz apenas 11µA . A programação é em Assembly, que é a língua primitiva dos micro-controladores. Linguagem Assembly, como opróprio nome sugere é definida como linguagem de montagem. Tem essa definição pois é uma linguagem de baixo nível, sendo ela a mais próxima da linguagem de máquina. A lógica de funcionamento do software pode ser dividida em quatro etapas: a primeira etapa é o pré-set do relógio; a segunda etapa é responsável pelo controle da 7
  • 8. base de tempo do relógio; a terceira etapa é a responsável por detectar a posição da barra e a última etapa, responsável por controlar o acionamento da barra de LEDs – levando em consideração as duas primeiras etapas. Primeiramente, é necessário fazer o pré-set do horário para isso utilizam-se duas portas do micro-controlador que estão conectadas a um sensor infravermelho. Cada vez que um sensor é ativado, tem um respectivo valor de tensão analógico, zero, este que é reconhecido e tratado pelo micro-controlador. Cada sensor tem uma função distinta: T1 ajusta as horas e T2 os minutos. Como é proposto em seu próprio título, é necessário criar um relógio para o controle da base de tempo. A idéia inicial para implementação deste relógio foi utilizar o clock gerado pelo cristal e dividir para se obter uma freqüência de 1Hz. Pensando nas limitações mecânicas do dispositivo e nas limitações do próprio micro-controlador optou-se em implementar um RTC (real time clock) por software. Para implementação do RTC foi adaptada uma biblioteca pronta. Esta biblioteca configura um timer interno do micro-controlador para atender uma interrupção a cada segundo, fazendo assim com que haja o incremento de segundo. Para incremento do minuto, testa-se a variável que armazena os segundos. Para incremento da hora, testa-se a variável dos minutos. O monitor de posição é efetuado através da resposta do Sensor de efeito Hall, IC2 PartNumberA11049, da Allegro Micro Systems. Este sensor atua sempre que o motor completa um giro de 360º marcando cada volta. Nos micro-controladores da família PIC® existe um pino que pode ser configurado para atender uma interrupção externa toda vez que detectar uma troca de nível de sinal,ou seja, sempre que o sensor atuar. Para calcular a rotação do motor utiliza-se uma interrupção externa, esta que será atendida sempre que o sensor atuar detectando uma borda de descida no pino do microcontrolador. Toda vez que esta interrupção externa for atendida, o programa incrementa uma variável, que a cada segundo conta quantas vezes foram detectadas estas interrupções ou seja, guarda o número de voltas que foram dadas pelo motor durante um segundo. ACIONAMENTO DA BARRA DE LEDs O controle para o acionamento dos LEDs é dependente das supra-referidas etapas, pois o acionamento dos mesmos ocorre com base na hora e velocidade atual. 8
  • 9. Primeiramente é necessário salientar o número de posições que cada ponteiro pode assumir. O ponteiro responsável pela exibição das horas pode assumir 12 posições, enquanto os ponteiros responsáveis pela exibição dos minutos e segundos assumem 60 posições cada. Para saber a posição exata de cada ponteiro, é necessário que exista um ponto de referência fixo. Para isto, o sensor de efeito Hall foi estrategicamente posicionado, servindo de referência ao software e fazendo com que, no momento em que o sensor é acionado, o dispositivo esteja na posição 12 Horas. É este ponto de referencia que possibilita estimar o tempo necessário para atingir cada passo dos ponteiros. Partindo destas premissas, é possível controlar devidamente o dispositivo.Feita a leitura do horário atual calcula-se a velocidade de rotação do motor para corrigir o tempo de passo dos ponteiros. Com base no horário obtido, sabem-se quantos passos é necessário dar para o ponteiro chegar à respectiva posição. Após saber o número de passos necessários, configura-se um timer interno do micro-controlador para aguardar o tempo correto para poder efetivar o acionamento da barra de LEDs no ponto correspondente. Este procedimento é efetuado para os três ponteiros. MOSTRAGEM DOS PONTEIROS HORA Para a mostrar o ponteiro marcador das horas as portas RC0 e RC4 do PIC® passam o nível lógico para "1" para "0". MINUTOS Para a mostrar o ponteiro marcador dos minutos as portas RC3 e RC4 do PIC® passam o nível lógico para "1" para "0". SEGUNDOS Para a mostrar o ponteiro marcador dos segundos as portas RC0 e RC1 do PIC® passam o nível lógico para "1" para "0". 9
  • 10. CÓDIGO FONTE LIST P=16F684, R=DEC INCLUDE "p16f684.inc" __CONFIG _FCMEN_OFF & _IESO_OFF & _BOD_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT CBLOCK 0x20 hours, minutes, seconds, hrpos w_save, stat_save, pc_save temp, tick, tickNotch debounce:2 ENDC ORG 0 goto ; iniciaprograma main ORG 4 ; ISR é chamado a cada segundo movwf w_save ; salvaWreg swapf STATUS, w ; salvasem stat reg movwf stat_save ; troca flags btfss PIR1, TMR1IF ; TMR1 interrupção goto start ; -processo de sinc de pulso movlw 128 ; seta prox. interrupção movwf TMR1H ; separa 1 segundo incf seconds, f ; carrega o código ISR movlw 60 subwf seconds, w btfss STATUS, Z 10
  • 11. goto ISR_end clrf seconds incf minutes, f movf hours, w movwf hrpos addwf hrpos, f addwf hrpos, f addwf hrpos, f addwf hrpos, f movf minutes, w movwf temp movlw 12 incf hrpos, f subwf temp, f btfsc STATUS, C goto $-3 decf hrpos, f movlw 60 subwf minutes, w btfss STATUS, Z goto ISR_end clrf minutes incf hours, f ; seconds = segundos (mod 60) ; hrpos = horas ; hrpos = horas * 5 ; hrpos += floor(minutos/12) ; minutes = minutos (mod 60) movlw 12 subwf hours, w 11
  • 12. btfss STATUS, Z goto ISR_end clrf hours ; horas = horas (mod 12) bcf PIR1, TMR1IF ; limpainterrupção swapf stat_save, w ; carrega original flags in STATUS movwf STATUS swapf w_save, f swapf w_save, w ISR_end ; restore Wreg retfie main ; código principal clrf PORTA clrf PORTC movlw 0x07 movwf CMCON0 ; comparadores OFF bsf STATUS, RP0 ; chaveiapara BANK 1 clrf ANSEL ^ 0x80 ; todas entradas digitais clrf TRISA ^ 0x80 ; PORTA saída bsf TRISA ^ 0x80, 2 ; INT pin para entrada clrf TRISC ^ 0x80 ; enable PORTC para saída bsf TRISC ^ 0x80, 5 ; PORTC pin 5 é entrada bsf PIE1 ^ 0x80, TMR1IE ; enable TMR1 interrupts bcf OPTION_REG^0x80, 6 ; interromper ao cair nível RA2 bcf STATUS, RP0 ; retorna para BANK 0 movlw b'00001111' ; enable TMR1 com clock externo 12
  • 13. movwfT1CON bsf INTCON, PEIE bsf INTCON, INTE bcf PIR1, TMR1IF clrf hours clrf hrpos clrf minutes clrf seconds clrf tick ; posiçãoatual da placa clrf tickNotch ; led azul, posição incf tickNotch, f bcf INTCON, INTF ; clear INT flag bsf INTCON, GIE ; (re)-enable todas interrupções start loop ; loop movlw b'011011' movwf PORTC decfsz tickNotch, f goto $+4 bsf PORTC, 2 movlw 5 movwf tickNotch movf seconds, w subwf tick, w btfss ; apaga display STATUS, Z ; set the Z flag ; liga led azul ; tickNotch = 5 13
  • 14. goto check_min bcf PORTC, 0 bcf PORTC, 1 ; exibir ponteiro segundos check_min movf minutes, w subwf tick, w btfss STATUS, Z goto check_hours bcf PORTC, 3 bcf PORTC, 4 ; exibir ponteiro minutos check_hours movf hrpos, w subwf tick, w btfss STATUS, Z goto $+3 bcf PORTC, 1 bcf PORTC, 4 call delayOn movlw b'010111' movwf PORTC call delayOff ; gap delay incf tick, f ; atualiza mostrador de horas ; exibir ponteiro horas ; apaga display movlw 60 subwf tick, w btfss STATUS, Z 14
  • 15. goto loop setTime call wait4Release ; aguarda 32 msec para soltar botão call wait4Press ; aguarda 32 msec para pressionar botão goto setTime wait4Release clrf debounce ; aguarda soltar botões clrf debounce+1 btfss PORTA, 3 ; botão de minutos solto? goto wait4Release ; NAO-aguarda soltar btfss PORTC, 5 ; botão horas liberado? goto wait4Release ; NAO - aguardar liberar incf debounce, f btfsc STATUS, Z incf debounce+1, f btfss debounce+1, 4 goto $-6 ; 4096*8 = 32msec return wait4Press clrf debounce ; aguardar botão ser pressionado clrf debounce+1 btfsc PORTC, 5 ; botão horas pressionado? goto checkMinButt ; NO - check outro botão incf debounce, f btfsc STATUS, Z 15
  • 16. incf debounce+1, f btfss debounce+1, 4 goto $-6 call incHours ; atualiza horas call blink ; pisca led azul btfsc PORTA, 3 ; botão de minutos pressionado? goto wait4Press ; Não - aguarde pressionar incf debounce, f btfsc STATUS, Z incf debounce+1, f btfss debounce+1, 4 goto $-6 call incMinutes ; atualiza minutos call blink ;pisca led azul ; 4096*8 = 32msec return checkMinButt ; 4096*8 = 32msec return incHours ; incrementa horas mod 12 bcf INTCON, GIE incf ; desabillita interrupções hours, f movlw 12 subwf hours, w btfsc STATUS, C ; hora é >= 12 ? clrf hours ; SIM - limpa movf hours, w ; computa nova posição de hrpos 16
  • 17. movwf hrpos ; hrpos = hours addwf hrpos, f addwf hrpos, f addwf hrpos, f addwf hrpos, f movf minutes, w movwf temp movlw 12 incf hrpos, f subwf temp, f btfsc STATUS, C goto $-3 decf hrpos, f bsf INTCON, GIE inc Minutes bcf INTCON, GIE incf minutes, f ; hrpos = hours * 5 ; hrpos += floor(minutes/12) return ; incrementa minutos mod 60 movlw 60 subwf minutes, w btfsc STATUS, C ; minutos é >= 60 ? clrf minutes ; YES - limpa bsf INTCON, GIE return blink ; pisca led azul base te tempo de 100ms 17
  • 18. bsf PORTC,2 movlw 100 movwf temp movlw 250 addlw -1 btfss STATUS, Z goto $-2 decfsz temp, f goto $-5 bcf PORTC, 2 ; led azul, on ; desliga led azul return delayOn ; formar intervalo de tempo para mostrar posição horas movlw 10 addlw -1 btfss STATUS, Z goto ; e ponteiros $-2 return delayOff ; formar intervalos entre minutos movlw 90 ; mostrador addlw -1 btfss STATUS, Z ; a soma dos dois últimos retardos não deverá exceder 110 msec para prevenir efeitoflicker goto $-2 return END 18