Escolar Documentos
Profissional Documentos
Cultura Documentos
UNIVERSIDADE PAULISTA
INSTITUTO DE CINCIAS EXATAS E TECNOLGICASICET
NDICE
RESUMO
Pg4
ILUSO DE PTICA
Pg4
Pg5
O PROJETO
Pg5
PCI e MOTOR
Pg6
ALIMENTAO
Pg6
LEDs
Pg7
DRIVER
Pg7
MICROCONTROLADOR E SOFTWARE
Pg7
Pg8
Pg9
CDIGO FONTE
Pg10
DIAGRAMA ESQUEMTICO
Pg19
LAYOUT DA PLACA
Pg20
FOTO DO PROTTIPO
Pg21
REFERNCIAS BIBLIOGRFICAS
Pg22
RESUMO
Foi em 1995 que Bob Blick desenvolver um relgio utilizando o conceito de escrita
por varrimento mecnico, utilizando um array de sete LEDs acopladas a um motor.Batizou
seu projeto de PropellerClock , a partir de ento, inmeros outros projetos foram criados.
O PROJETO
Todos os componentes com exceo do microcontrolador so em SMD
( Surface Mounting Devices) em razo da miniaturizao 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 compresso e calor e
assim mergulhada na soluo de percloreto de ferro para a corroso do cobre. As partes
pintadas no so corrodas eas partes n o cido reage com o cobre corroendo o mesmo.
O alinhamento e o balanceamento foi observado com critrio, uma vez que a placa
desbalanceada causa vibrao no momento do giro. O motor usado um Motor DC Mabuchi,
e com giro de 950RPM. A rotao do motor foi setada variando-se a tenso de alimentao do
mesmo e o eixo do motor foi acoplado ao centro de gravidade da placa.
ALIMENTAO
A alimentao do circuito feita com 3 bobinas de 33uH, L1,L2 e L3 estas acopladas
posterior a placa. Estaticamente temos um im , que com a rotao da PCI as bobinas geram
um campo eletromagntico e a DDP gerada retificada por onda completa pelos diodos
retificadores de chaveamento rpido ( Schottky) fabricados pela Rohm, de PartNumber
RB161M-20, e D1,D2 e D3, se apresentam em encapsulamento SOD-1231 . A tenso filtrada
por dois capacitores, C3 e C4.
A tenso gerada insuficiente para acender os LEDs, esta ento elevada e
estabilizada em 5.3Volts pelo CI Step-UP EUP2584 2. A alimentao do PIC feita atravs
de D5 e mesmo com o motor parado, temos alimentao para o PIC graas 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
relgio, neste momento o diodo D5 desempenha outra funo, impedir que a tenso retorne e
alimente os LEDs, descarregando C7.
LEDs
Os LEDs so 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 posio das horas e um segundo LED faz o circulo em torno do relgio, este
mantem-se aceso constantemente e com o giro do dispositivo, temos o contorno do relgio.
Para uma melhor visualizao 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, so 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) so do fabricante KingBright, de
PartNumber KP-2012SGC6, e encapsulamento 0603 com 15mcd de intensidade luminosa
cada.
DRIVER
O controle de alimentao 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 mxima aplicada em cada
transistor neste projeto no passa de algumas centenas de mA.
Os resistores limitadores de corrente so SMD de encapsulamento 0603. R1 a R21 so
de 470 Ohms e R22 a R48 so de 240 Ohms .
MICROCONTROLADOR E SOFTWARE
O Microcontrolador escolhido foi o PIC16F6848 do fabricante Microchip, uma vez que
ele consome em operao normal com cristal de 32.768Khz apenas 11A . A programao
em Assembly, que a lngua primitiva dos micro-controladores. Linguagem Assembly, como
oprprio nome sugere definida como linguagem de montagem. Tem essa definio pois
uma linguagem de baixo nvel, sendo ela a mais prxima da linguagem de mquina.
A lgica de funcionamento do software pode ser dividida em quatro etapas: a
primeira etapa o pr-set do relgio; a segunda etapa responsvel pelo controle da
base de tempo do relgio; a terceira etapa a responsvel por detectar a posio da barra e a
ltima etapa, responsvel por controlar o acionamento da barra de LEDs levando em
considerao as duas primeiras etapas.
Primeiramente, necessrio fazer o pr-set do horrio para isso utilizam-se duas
portas do micro-controlador que esto conectadas a um sensor infravermelho. Cada vez que
um sensor ativado, tem um respectivo valor de tenso analgico, zero, este que
reconhecido e tratado pelo micro-controlador. Cada sensor tem uma funo distinta: T1 ajusta
as horas e T2 os minutos.
Como proposto em seu prprio ttulo, necessrio criar um relgio para o controle
da base de tempo. A idia inicial para implementao deste relgio foi utilizar o clock gerado
pelo cristal e dividir para se obter uma freqncia de 1Hz. Pensando nas limitaes mecnicas
do dispositivo e nas limitaes do prprio micro-controlador optou-se em implementar um
RTC (real time clock) por software. Para implementao do RTC foi adaptada uma biblioteca
pronta. Esta biblioteca configura um timer interno do micro-controlador para atender uma
interrupo a cada segundo, fazendo assim com que haja o incremento de segundo. Para
incremento do minuto, testa-se a varivel que armazena os segundos. Para incremento da
hora, testa-se a varivel dos minutos.
O monitor de posio efetuado atravs 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 famlia PIC existe um
pino que pode ser configurado para atender uma interrupo externa toda vez que detectar
uma troca de nvel de sinal,ou seja, sempre que o sensor atuar.
Para calcular a rotao do motor utiliza-se uma interrupo externa, esta que ser
atendida sempre que o sensor atuar detectando uma borda de descida no pino do microcontrolador. Toda vez que esta interrupo externa for atendida, o programa incrementa uma
varivel, que a cada segundo conta quantas vezes foram detectadas estas interrupes ou seja,
guarda o nmero de voltas que foram dadas pelo motor durante um segundo.
Primeiramente necessrio salientar o nmero de posies que cada ponteiro pode assumir.
O ponteiro responsvel pela exibio das horas pode assumir 12 posies, enquanto os
ponteiros responsveis pela exibio dos minutos e segundos assumem 60 posies cada.
Para saber a posio exata de cada ponteiro, necessrio que exista um ponto de
referncia fixo. Para isto, o sensor de efeito Hall foi estrategicamente posicionado, servindo
de referncia ao software e fazendo com que, no momento em que o sensor acionado, o
dispositivo esteja na posio 12 Horas. este ponto de referencia que possibilita estimar o
tempo necessrio para atingir cada passo dos ponteiros. Partindo destas premissas, possvel
controlar devidamente o dispositivo.Feita a leitura do horrio atual calcula-se a velocidade de
rotao do motor para corrigir o tempo de passo dos ponteiros. Com base no horrio obtido,
sabem-se quantos passos necessrio dar para o ponteiro chegar respectiva posio. Aps
saber o nmero de passos necessrios, 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 trs ponteiros.
CDIGO 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
movwf
w_save
; salvaWreg
swapf
STATUS, w
movwf
stat_save
; troca flags
btfss
PIR1, TMR1IF
; TMR1 interrupo
goto
start
movlw
128
movwf
TMR1H
; separa 1 segundo
incf
seconds, f
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
; hrpos = horas
; hrpos = horas * 5
; hrpos += floor(minutos/12)
movlw 12
subwf
hours, w
11
btfss
STATUS, Z
goto
ISR_end
clrf
hours
bcf
PIR1, TMR1IF
; limpainterrupo
swapf
stat_save, w
movwf
STATUS
swapf
w_save, f
swapf
w_save, w
ISR_end
; restore Wreg
retfie
main
; cdigo principal
clrf
PORTA
clrf
PORTC
movlw 0x07
movwf
CMCON0
; comparadores OFF
bsf
STATUS, RP0
; chaveiapara BANK 1
clrf
ANSEL ^ 0x80
clrf
TRISA ^ 0x80
; PORTA sada
bsf
TRISA ^ 0x80, 2
clrf
TRISC ^ 0x80
bsf
TRISC ^ 0x80, 5
bsf
bcf
OPTION_REG^0x80, 6
bcf
STATUS, RP0
movlw b'00001111'
movwfT1CON
bsf
INTCON, PEIE
bsf
INTCON, INTE
bcf
PIR1, TMR1IF
clrf
hours
clrf
hrpos
clrf
minutes
clrf
seconds
clrf
tick
; posioatual da placa
clrf
tickNotch
incf
tickNotch, f
bcf
INTCON, INTF
bsf
INTCON, GIE
start
loop
; loop
movlw
b'011011'
movwf
PORTC
decfsz
tickNotch, f
goto
$+4
bsf
PORTC, 2
movlw
movwf
tickNotch
movf
seconds, w
subwf
tick, w
btfss
STATUS, Z
; apaga display
; tickNotch = 5
13
goto
check_min
bcf
PORTC, 0
bcf
PORTC, 1
check_min
movf
minutes, w
subwf
tick, w
btfss
STATUS, Z
goto
check_hours
bcf
PORTC, 3
bcf
PORTC, 4
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
; apaga display
movlw 60
subwf
tick, w
btfss
STATUS, Z
14
goto
loop
setTime
call
wait4Release
call
wait4Press
goto
setTime
wait4Release
clrf
debounce
clrf
debounce+1
btfss
PORTA, 3
goto
wait4Release
; NAO-aguarda soltar
btfss
PORTC, 5
goto
wait4Release
incf
debounce, f
btfsc
STATUS, Z
incf
debounce+1, f
btfss
debounce+1, 4
goto
$-6
; 4096*8 = 32msec
return
wait4Press
clrf
debounce
clrf
debounce+1
btfsc
PORTC, 5
goto
checkMinButt
incf
debounce, f
btfsc
STATUS, Z
15
incf
debounce+1, f
btfss
debounce+1, 4
goto
$-6
call
incHours
; atualiza horas
call
blink
btfsc
PORTA, 3
goto
wait4Press
; No - aguarde pressionar
incf
debounce, f
btfsc
STATUS, Z
incf
debounce+1, f
btfss
debounce+1, 4
goto
$-6
call
incMinutes
; atualiza minutos
call
blink
; 4096*8 = 32msec
return
checkMinButt
; 4096*8 = 32msec
return
incHours
bcf
INTCON, GIE
incf
hours, f
; desabillita interrupes
movlw 12
subwf
hours, w
btfsc
STATUS, C
; hora >= 12 ?
clrf
hours
; SIM - limpa
movf
hours, w
movwfhrpos
addwf
; hrpos = hours
hrpos, f
hrpos, f
addwf
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
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
return
delayOn
movlw
10
addlw
-1
btfss
STATUS, Z
goto
$-2
; e ponteiros
return
delayOff
movlw 90
; mostrador
addlw -1
btfss STATUS, Z
; a soma dos dois ltimos retardos no dever
exceder 110 msec para prevenir efeitoflicker
goto
$-2
return
END
18
DIAGRAMA ESQUEMTICO
19
20
LAYOUT DA PLACA
FOTO DO PROTTIPO
21
REFERENCIAS BIBLIOGRFICAS
22
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
23