66
UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE TECNOLOGIA E GEOCIÊNCIAS CURSO DE ENGENHARIA ELETRÔNICA TRABALHO DE GRADUAÇÃO Pedro Filipe Leite Correia de Toledo Pedro Lyra Pereira Cabral Interruptor Eletrônico Controlado por Palmas RECIFE, 28 DE JULHO DE 2010

Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

Embed Size (px)

DESCRIPTION

Trabalho de Graduação apresentado como requisito para obtenção do título de Bacharel em Engenharia Elétrica Eletrônica em Julho de 2010, pelo Curso de Engenharia Elétrica Eletrônica da Universidade Federal de Pernambuco

Citation preview

Page 1: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

UNIVERSIDADE FEDERAL DE PERNAMBUCO

CENTRO DE TECNOLOGIA E GEOCIÊNCIAS

CURSO DE ENGENHARIA ELETRÔNICA

TRABALHO DE GRADUAÇÃO

Pedro Filipe Leite Correia de Toledo

Pedro Lyra Pereira Cabral

Interruptor Eletrônico Controlado por Palmas

RECIFE,

28 DE JULHO DE 2010

Page 2: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

UNIVERSIDADE FEDERAL DE PERNAMBUCO

CENTRO DE TECNOLOGIA E GEOCIÊNCIAS

CURSO DE ENGENHARIA ELETRÔNICA

TRABALHO DE GRADUAÇÃO

Pedro Filipe Leite Correia de Toledo

Pedro Lyra Pereira Cabral

Interruptor Eletrônico Controlado por Palmas

RECIFE,

28 DE JULHO DE 2010

Trabalho de Graduação apresentado como

requisito para obtenção do título de Bacharel

em Engenharia Elétrica Eletrônica em Julho

de 2010, pelo Curso de Engenharia Elétrica

Eletrônica da Universidade Federal de

Pernambuco

Orientador: João Paulo Cerquinho Cajueiro

Page 3: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

Pedro Filipe Leite Correia de Toledo

Pedro Lyra Pereira Cabral

Interruptor Eletrônico Controlado por Palmas

Aprovado em 28 de Julho de 2010

BANCA EXAMINADORA

___________________________________________________________________

Professor João Paulo Cerquinho Cajueiro – Universidade Federal de Pernambuco

___________________________________________________________________

Professor Mauro Rodrigues dos Santos – Universidade Federal de Pernambuco

___________________________________________________________________

Professor Tomaz de Carvalho Barros – Universidade Federal de Pernambuco

Trabalho de Graduação apresentado como

requisito para obtenção do título de Bacharel

em Engenharia Elétrica Eletrônica em Julho

de 2010, pelo Curso de Engenharia Elétrica

Eletrônica da Universidade Federal de

Pernambuco

Orientador: João Paulo Cerquinho Cajueiro

Page 4: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

DEDICATÓRIA

Eu dedico este trabalho a toda minha família e amigos, em especial a minha avó Edite Leite

da Silva (in memoriam)

Pedro Toledo

Dedico este trabalho a meus queridos pais e irmãs, que sempre me apoiaram nesta longa

empreitada da graduação

Pedro Cabral

Page 5: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

“Probabilitas enim est gradus certitudinis, et ab hac differt ut pars à toto."

Jacob Bernoulli

Page 6: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

RESUMO

Este trabalho se constitui do desenvolvimento de um circuito que tem a função de um

interruptor controlado a palmas. O circuito tem uma parte analógica e outra digital. A parte

analógica deve receber o sinal sonoro através de um microfone e filtrá-lo para gerar um im-

pulso digital correspondente a palma e utiliza componentes como capacitores, resistores, am-

plificadores operacionais, além do circuito integrado LM 555, operando como monoestável. O

processamento digital foi feito utilizando o microcontrolador PIC 16F877A do fabricante mi-

crochip. O circuito também possibilita gravar uma sequência de palmas, para que o interrup-

tor seja ativado apenas quando esta sequência for repetida.

Page 7: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

LISTA DE FIGURAS

Figura 1 - Diagrama de Blocos do Circuito .............................................................................. 12

Figura 2 - Circuito do sensor completo .................................................................................... 13

Figura 3 - Microfone de carvão (Esquemas Eletrônicos, 2010) .............................................. 14

Figura 4 - Microfone de cristal (Esquemas Eletrônicos, 2010) ................................................ 14

Figura 5 - Microfone condensador (PCB Piezotronics, 2010) ................................................. 15

Figura 6 - Microfone condensador de eletreto.......................................................................... 15

Figura 7 - Microfone magnético dinâmico ............................................................................... 15

Figura 8 - Um microfone magnético dinâmico típico .............................................................. 16

Figura 9 - Principais diagramas direcionais de microfones (WIKIPEDIA, 2010) ................... 16

Figura 10 - Esquema do filtro passa altas ativo ........................................................................ 17

Figura 11 - Resposta em frequência do filtro passa alta ativo .................................................. 18

Figura 12 – Esquema de conexão dos pinos do 555 (STMicroelectronics, 2008) ................... 18

Figura 13 - Esquema simplificado do 555 (STMicroelectronics, 2008) .................................. 18

Figura 14 - Esquema de ligação como monoestável (STMicroelectronics, 2008) ................... 19

Figura 15 - Esquema da ligação do 555 ................................................................................... 20

Figura 16 - Filtro passa-baixas ................................................................................................. 20

Figura 17 - Resposta em frequência do filtro passa-baixa ....................................................... 21

Figura 18 - Foto do PIC 16F877A (Fonte: HTTP://www.solarbotics.com) ............................. 23

Figura 19 - Esquema do PIC 16F877A (fonte: http://derbytimer.com/diy/) ............................ 24

Figura 20 - Esquemático do modo de operação astável (STMicroelectronics, 2008) .............. 25

Figura 21 - Esquema de ligação do astável .............................................................................. 26

Figura 22 - Displays de 7 segmentos comerciais (Soares, 2009) ............................................. 27

Figura 23 - Ligação dos pinos do display de 7 segmentos (Soares, 2009) ............................... 27

Figura 24 - Ligação cátodo comum e ânodo comum (Soares, 2009) ....................................... 28

Figura 25 - Esquema do modo de varredura (Soares, 2009) .................................................... 28

Figura 26 - Ligação do circuito para fazer a varredura ............................................................ 29

Figura 27 - Foto de um display LCD de 16 pinos .................................................................... 30

Figura 28 - Esquema de ligação do LCD (Messias, 2007) ....................................................... 31

Figura 29 - Diagrama de tempo do protocolo de comunicação ................................................ 32

Figura 30 - Tempo entre duas palmas ...................................................................................... 37

Figura 31 - Diagrama de tempo de varredura dos displays de 7 segmentos ............................ 37

Figura 32 - Fluxograma do programa detector de duas palmas ............................................... 38

Figura 33 - Fluxograma do programa detector de sequência de palmas .................................. 40

Page 8: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

LISTA DE TABELAS

Tabela 1 - Pinagem do LCD ..................................................................................................... 30

Tabela 2 - Descrição do RS ...................................................................................................... 31

Tabela 3 - Descrição do R/W ................................................................................................... 31

Tabela 4 - Comando 0x30 ........................................................................................................ 32

Tabela 5 - Comando de comunicação em 8 vias ...................................................................... 33

Tabela 6 - Comando para limpar o display............................................................................... 33

Tabela 7 - Comando para ligar display sem cursor .................................................................. 33

Tabela 8 - Comando para deslocamento automático do cursor para direita ............................. 33

Tabela 9 - Limpeza do display ................................................................................................. 34

Tabela 10 - Retorno do cursor .................................................................................................. 34

Tabela 11 - Modo de operação ................................................................................................. 34

Tabela 12 - Descrição dos modos de operação......................................................................... 35

Tabela 13 - Controle de display e cursor .................................................................................. 35

Tabela 14 - Descrição de controle de display e cursor ............................................................. 35

Tabela 15 - Deslocamento do cursor ou da mensagem ............................................................ 35

Tabela 16 - Descrição do deslocamento do cursor ou da mensagem ....................................... 35

Tabela 17 - Configuração para utilização ................................................................................. 36

Tabela 18 - Descrição de configuração para utilização ............................................................ 36

Page 9: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

SUMÁRIO

1 INTRODUÇÃO ..................................................................................................................... 10

2 OBJETIVO ............................................................................................................................ 11

3 VISÃO GERAL DO CIRCUITO .......................................................................................... 12

4 SENSOR PARA RECONHECER A PALMA ...................................................................... 13

4.1 Captação do Som ............................................................................................................ 13

4.2 Filtro Ativo ..................................................................................................................... 17

4.3 Temporizador 555 ........................................................................................................... 18

4.4 Última Filtragem ............................................................................................................. 20

5 MICROCONTROLADOR .................................................................................................... 22

5.1 Microcontroladores PIC .................................................................................................. 22

5.2 Histórico .......................................................................................................................... 22

5.3 Estrutura .......................................................................................................................... 22

5.4 PIC 16F877A .................................................................................................................. 23

6 PERIFÉRICOS ...................................................................................................................... 25

6.1 Oscilador Astável ............................................................................................................ 25

6.2 Display de Sete Segmentos ............................................................................................. 27

6.3 Display LCD ................................................................................................................... 29

7 ALGORITMO ....................................................................................................................... 37

7.1 Sensor de Palmas Simples .............................................................................................. 37

7.1.1 Fluxograma............................................................................................................... 38

7.2 Sensor de Palmas com Detector de Sequência (música) ................................................ 39

7.2.1 Fluxograma............................................................................................................... 40

8 MANUAL DE OPERAÇÃO DO CIRCUITO ...................................................................... 41

8.1 Funcionamento do Sensor de Duas Palmas .................................................................... 41

8.2 Funcionamento Sensor Sequência de Palmas ................................................................. 43

Page 10: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

9 RESULTADOS OBTIDOS ................................................................................................... 47

9.1 Circuito de Captação de Duas Palmas ............................................................................ 47

9.2 Circuito de Captação de Sequência de Palmas ............................................................... 47

10 CONCLUSÃO ..................................................................................................................... 49

REFERÊNCIAS ....................................................................................................................... 50

APÊNDICE A – CÓDIGO DUAS PALMAS .......................................................................... 52

APÊNDICE B – CÓDIGO SEQUÊNCIA DE PALMAS ........................................................ 55

APÊNDICE C – ESQUEMA CIRCUITO COMPLETO DUAS PALMAS ............................ 60

APÊNDICE D – ESQUEMA CIRCUITO COMPLETO SEQUÊNCIA DE PALMAS ......... 61

APÊNDICE E – CUSTOS DO CIRCUITO ............................................................................. 62

ANEXO A – PRINCIPAIS FIGURAS DOS DATASHEETS ................................................. 64

Page 11: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

10

1 INTRODUÇÃO

Nos dias de hoje a eletrônica está cada vez mais presente no cotidiano. Um dos objeti-

vos da engenharia é desenvolver aplicações tecnológicas que possam tornar a vida das pessoas

mais confortável.

Apesar de ser uma tecnologia já existente no mercado, foi desenvolvido um interruptor

de palmas. É muito prático, por exemplo, ao chegar em casa simplesmente acender as luzes

com o bater de palmas. Também é útil quando se está deitado e deseja-se apagar as luzes.

Para isto foi desenvolvido um circuito completo com diversas etapas analógicas e digi-

tais que tem por objetivo processar o sinal sonoro das palmas e com isso ativar o interruptor.

Page 12: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

11

2 OBJETIVO

O objetivo básico do projeto é detectar o som do bater de palmas das mãos e com isso

ativar uma lâmpada.

O primeiro objetivo é desenvolver um sensor que com duas palmas acenda uma luz e

com uma única palma apague-a. Outro ponto crucial do projeto é a ampliação do mesmo para

que ao toque de uma sequência de palmas o interruptor seja ativado.

É um requisito do projeto a utilização do microcontrolador PIC 16F877A, por ser o

disponível para uso.

Page 13: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

12

3 VISÃO GERAL DO CIRCUITO

O princípio de funcionamento do circuito se baseia na utilização de um microfone,

capaz de gerar um sinal muito intenso devido a intensidade do som propagado pelo bater pal-

mas ou estalar os dedos.

Esse sinal deve ser interpretado por um circuito como um pulso de entrada que está

ligado a um microcontrolador, o qual será responsável por ligar ou desligar o interruptor do

sistema.

O microcontrolador PIC 16F877A recebe um pulso e faz toda a parte de processamen-

to. Inicialmente o microcontrolador é usado apenas para capturar duas palmas e ativar uma

saída.

Depois várias palmas são registradas, formando uma sequência. Ele terá a função de

gravar a sequência e sempre que ela for executada novamente deverá ativar o interruptor.

Figura 1 - Diagrama de Blocos do Circuito

Page 14: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

13

4 SENSOR PARA RECONHECER A PALMA

Para reconhecer o som da palma é necessário um transdutor que converta o sinal me-

cânico do som em um sinal elétrico, ou seja, um microfone. Em seguida uma interface para

digitalizar o sinal.

São necessários vários estágios para realizar esta função. Inicialmente há um microfo-

ne que faz a conversão entre o sinal mecânico do som e um sinal elétrico. Em seguida um

filtro ativo passa-altas depois há um capacitor de acoplamento e um circuito LM555 ligado

como monoestável. Na saída do LM 555 é colocado um filtro passa-baixas.

Figura 2 - Circuito do sensor completo

4.1 Captação do Som

Para captar o sinal sonoro é utilizado um microfone. Ele capta a vibração do ar provo-

cado pelo som, transformando essa vibração mecânica em impulsos elétricos, produzindo on-

das de mesma frequência que o som que a gerou.

O microfone converte vibrações mecânicas na faixa audível (em frequências de 20 Hz

a 20 kHz - seja no ar, água ou num material sólido) em um sinal elétrico. Na maioria dos mi-

crofones em uso as ondas sonoras são convertidas em vibrações mecânicas através de um dia-

fragma (palavra oriunda do grego diáphragma, significa literalmente barreira, separação) fino

e flexível e em seguida convertidas em sinal elétrico. Serão brevemente analisados aqui al-

guns dos tipos mais comuns de microfone: carvão, cristal, condensador, eletreto e dinâmico.

O microfone de carvão possui um grande número de grânulos de carvão dentro de pe-

queno invólucro. Quando esses grânulos são comprimidos, sua resistência é baixa e quando

Page 15: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

14

são soltos, sua resistência é alta, o que faz com que a resistência varie quando ondas sonoras

atingem o diafragma.

O microfone de carvão é um exemplo de transdutor passivo pois não pode produzir

uma tensão de saída por si mesmo. É necessário ter uma fonte de tensão contínua para obter

corrente através de R. Essa corrente é necessária para produzir a tensão de áudio.

Figura 3 - Microfone de carvão (Esquemas Eletrônicos, 2010)

Também existe o microfone de cristal. Este cristal é um material piezoelétrico que

gera uma tensão quando submetido à pressão. A pressão das ondas sonoras que deslocam o

diafragma para frente e para trás provoca a vibração do cristal, o que produz uma tensão de

saída. A tensão de saída está diretamente relacionada com a onda sonora que incide sobre o

microfone. O microfone de cristal é um transdutor ativo, porque pode produzir uma tensão de

saída por si mesmo.

Figura 4 - Microfone de cristal (Esquemas Eletrônicos, 2010)

Um microfone condensador funciona com um princípio capacitivo. Um diafragma fino

colocado a uma pequena distância de uma placa de metal estacionária forma um capacitor.

Quando ocorre uma variação de pressão o diafragma se move, fazendo com que a distância

entre diafragma e placa varie, produzindo uma variação na capacitância proporcional a varia-

ção de pressão.

Page 16: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

15

Figura 5 - Microfone condensador (PCB Piezotronics, 2010)

Um eletreto, material ferroelétrico permanentemente carregado ou polarizado, pode ser

colocado na placa metálica a fim de criar uma “pré-polarização” fazendo com que sejam cria-

dos microfones de baixo custo e fácil utilização.

Figura 6 - Microfone condensador de eletreto

Um microfone magnético ou dinâmico é baseado no princípio de indução magnética.

Este sistema simples pode ser obtido juntando uma bobina de fio a um diafragma fino. Quan-

do ocorrer uma variação de pressão a bobina irá se mover. Como a bobina está submetida a

um campo magnético, o seu movimento cria uma tensão proporcional à pressão exercida.

Figura 7 - Microfone magnético dinâmico

Page 17: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

16

Em relação ao tipo de transdução acústica há dois tipos de microfone: microfones de

pressão (geralmente de pior qualidade) e microfones de gradiente de pressão (microfones com

propriedades direcionais). Os microfones de gradiente de pressão apresentam um fenômeno

chamado efeito de proximidade que resulta num aumento acentuado da amplitude das fre-

quências graves na proximidade da fonte sonora.

Figura 8 - Um microfone magnético dinâmico típico

Sendo assim, os microfones podem ser classificados quanto à diretividade da seguinte

forma:

Omnidirecionais - Captam o som da fonte não importando a direção em que este che-

gue a sua cápsula.

Bidirecionais - Captam o som igualmente no eixo da cápsula (0º e 180º), rejeitando o

som que chega a 90º e a 270º.

Cardioides - Captam com maior eficácia os sons emitidos na sua frente. À medida que

a fonte sonora se desloca do eixo central do microfone, sua captação é reduzida. Desta

forma, sons vindos de trás não são captados ou são captados com pequena intensidade.

Super e Hipercardioides - Captam além dos sons emitidos na sua frente, parte dos sons

emitidos na parte de trás. Isto é bastante útil para aumentar o ganho do som, sem que

haja microfonia.

Figura 9 - Principais diagramas direcionais de microfones (WIKIPEDIA, 2010)

Page 18: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

17

4.2 Filtro Ativo

Como se deseja que o circuito atue quando houver uma palma, mas não quando hou-

ver uma voz muito alta, um filtro que separe um sinal do outro foi implementado. Dado que a

voz humana se concentra em baixas frequências, enquanto que uma palma pode ser aproxi-

mada por um delta de Dirac e, portanto, tem componentes em todas as frequências, um filtro

passa-altas deve atenuar a voz e deixar passar apenas as palmas.

É o utilizado o circuito com amplificador operacional, mostrado na Figura 10.

Figura 10 - Esquema do filtro passa altas ativo

Procedendo com a análise no domínio de Laplace, considerando o amplificador opera-

cional ideal.

Tem-se então o ganho

E a frequência de corte

Para os valores escolhidos de componentes

Page 19: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

18

Encontra-se então o gráfico na resposta em frequência mostrado na Figura 11, este

encontrado através de simulação pelo programa Circuit Maker 2000.

Figura 11 - Resposta em frequência do filtro passa alta ativo

4.3 Temporizador 555

O circuito 555 é extremamente popular e encontra diversas aplicações. Ele pode ser

utilizado em geração de pulsos, temporização sequencial, atraso de tempo, modulação de lar-

gura de pulso (PWM) e geração de rampa linear.

Figura 12 – Esquema de conexão dos pinos do 555 (STMicroelectronics, 2008)

O circuito equivalente interno é como mostrado na Figura 13.

Figura 13 - Esquema simplificado do 555 (STMicroelectronics, 2008)

Page 20: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

19

O CI 555 pode ser conectado de diversas maneiras. No caso escolheu-se a ligação co-

mo monoestável para detectar quando ocorreu uma palma.

O multivibrador monoestável ou one-shot é uma variação do flip-flop, que é um mul-

tivibrador biestável, no qual uma das saídas está capacitivamente acoplada a uma das entra-

das. Assim o circuito permanece em um estado, sendo forçado a outro estado por um pulso

momentâneo. Ele retorna ao estado inicial após certo tempo determinado pelo valor do resis-

tor e capacitor.

Figura 14 - Esquema de ligação como monoestável (STMicroelectronics, 2008)

Neste modo de operação o timer funciona como um one-shot. O capacitor externo está

inicialmente descarregado. Após a aplicação de um pulso trigger negativo de menos de um

⅓VCC (Pino 2) o flip-flop é ativado e capacitor começa a ser carregado.

A voltagem no capacitor cresce exponencialmente por um período T=1,1.R1.C1, até

que a voltagem se iguala a ⅔VCC. O comparador do threshold então reseta o flip-flop, o qual

descarrega o capacitor a partir do transistor do pino e leva a saída para o nível lógico zero.

Deseja-se um tempo de aproximadamente 8 ms e escolheu-se arbitrariamente um ca-

pacitor de 680 nF, então R deve ser igual a 10,7 kΩ. Considerando esse valor, foi utilizado o

valor comercial mais próximo e mais comum, que é 10 kΩ. Logo, o novo valor para o tempo

será de 7,48 ms.

A forma como foi ligado no circuito é mostrada na Figura 15.

Page 21: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

20

Figura 15 - Esquema da ligação do 555

4.4 Última Filtragem

Na saída do monoestável, para evitar a ocorrência de mais de um pulso é colocado um

filtro passa-baixas. Isto evita oscilações indesejadas na saída do monoestável.

Figura 16 - Filtro passa-baixas

Page 22: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

21

Para os valores utilizados

Através da simulação foi encontrado o gráfico da Figura 17.

Figura 17 - Resposta em frequência do filtro passa-baixa

Page 23: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

22

5 MICROCONTROLADOR

5.1 Microcontroladores PIC

Os PICs (PICmicro) são uma família de microcontroladores fabricados pela Microchip

Technology, que processam dados de 8 bits, de 16 bits e, mais recentemente, de 32 bits. Seu

nome é oriundo de "Programmable Interface Controller". Contam com extensa variedade de

modelos e periféricos internos. Possuem alta velocidade de processamento devido a sua arqui-

tetura Harvard e conjunto de instruções RISC.

Os PICs podem ser programados em linguagem mnemônica (assembly) ou usando-se

compiladores de linguagem de alto nível (Pascal-petasse, C, Basic) que geram um código para

ser gravado na memória de programa desses microcontroladores.

5.2 Histórico

As raízes dos PICs se originaram na universidade de Harvard com um projeto para o

Departamento de Defesa, mas este foi vencido por um projeto de memória mais simples (e

mais confiável na época) da Universidade de Princeton. A arquitetura Harvard foi primeira-

mente usada no 8x300 da Signetics, e foi adotada pela General Instruments para uso como

interface controladora de periféricos (PIC) que foi projetada para compensar o fraco barra-

mento de I/O da sua CPU CP1600 de 16 bits. A divisão de microeletrônica foi depois trans-

formada na Arizona Microchip Technology (por volta de 1985), com os PICs como seu pro-

duto principal.

5.3 Estrutura

O PIC16x é muito simples, tem somente 33 instruções de 12 bits de largura fixa, inclu-

indo diversas instruções de salto condicional a flags para a próxima instrução (para loops e

rotinas condicionais), produzindo um código enxuto importante para aplicações em sistemas

embarcados. Ele tem pipelines marginais (2 estágios, 1 de busca e 1 de execução), combina-

dos com execução em um ciclo (exceto para saltos, com 2 ciclos), tendo um desempenho mui-

to bom para a sua categoria.

Page 24: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

23

O PIC 17x tem mais modos de endereçamento (direto, indireto, e relativo; as instru-

ções de modo indireto gastam 2 ciclos para execução), mais instruções (58 de 16 bits), mais

registradores (232 a 454), mais até 64k palavras de espaço de programa (2k a 8k no chip). As

versões top de linha também possuem instruções de multiplicação de 8 bits sem sinal de 1

ciclo. Esse modelo está obsoleto, não sendo mais recomendado para novos projetos de acordo

com a Microchip.

5.4 PIC 16F877A

O modelo de controlador disponível para este projeto foi o PIC 16F877A da empresa

Microchip. Este modelo possui 40 pinos, sendo que destes 40 pinos, 7 pinos são usados para

alimentação e controle do mesmo.

Figura 18 - Foto do PIC 16F877A (Fonte: HTTP://www.solarbotics.com)

Os demais pinos são conhecidos por I/Os (Inputs/Outputs). Estas I/Os são agrupadas

em portas (ports), de no máximo 8 pinos cada (limitação pois o componente possui um núcleo

de 8 bits).

Há um total de 33 I/Os disponíveis, que podem ser configuradas como entradas ou

saídas em tempo de execução.

Page 25: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

24

Figura 19 - Esquema do PIC 16F877A (fonte: http://derbytimer.com/diy/)

Alguns pinos, porém, possuem outras funções além de serem entradas ou saídas digi-

tais. Por exemplo, pode-se observar que os pinos 2 a 10 (exceto o pino 6) são entradas analó-

gicas, e podem ser usados para detectar uma variação de tensão entre 0V e 5V, transformando

esta variação em uma informação binária de 10 bits. Os pinos 39 e 40 também são pinos usa-

dos na gravação do microcontrolador, e os pinos 25 e 26 são usados para comunicação SERI-

AL padrão RS232. Os pinos 16 e 17 são pinos geradores de pulso (PWM), muito útil para

controle de velocidade de motores, por exemplo. O pino 6 é um pino usado para contagem

rápida.

Page 26: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

25

6 PERIFÉRICOS

6.1 Oscilador Astável

Para o funcionamento do circuito é necessário o uso de um oscilador de 10 Hz. Deci-

diu-se utilizar um circuito integrado 555 ligado no modo astável. A partir disto foi possível

conseguir a frequência desejada.

Figura 20 - Esquemático do modo de operação astável (STMicroelectronics, 2008)

Se o circuito for conectado da forma mostrada na Figura 20 ele dispara a si próprio e

funciona como um multivibrador. O capacitor externo carrega através de RA+RB e descarrega

através de RB. Então o duty cycle pode ser precisamente ajustado pela razão desses dois resis-

tores.

Neste modo de operação o capacitor carrega e descarrega entre ⅓VCC e ⅔VCC. No

modo de disparo os tempos de carga e descarga do capacitor e também a frequência indepen-

dem da tensão de alimentação.

O tempo de carregamento do capacitor é dado por

O tempo de descarregamento do capacitor é dado por

Então o período total de oscilação é

Page 27: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

26

Assim a frequência de oscilação é dada por

O duty cycle é dado por

Escolheram-se os seguintes valores para os componentes

Sendo assim tem-se uma frequência

E um duty cycle

Figura 21 - Esquema de ligação do astável

Page 28: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

27

6.2 Display de Sete Segmentos

Os displays de sete segmentos são compostos, basicamente, de sete LEDs internos

dispostos de maneira a formar um dígito. De acordo com a forma que são “acesos” ou “apa-

gados” é possível demonstrar os números de 0 a 9 e até mesmo algumas letras. Na Figura 22

são mostrados alguns tamanhos encontrados no mercado.

Figura 22 - Displays de 7 segmentos comerciais (Soares, 2009)

Na Figura 23 é possível observar a posição de cada segmento, sua nomenclatura, as-

sim como sua ligação através dos pinos. Existem muitos outros modelos, com pinagens dife-

rentes e até mesmo com mais segmentos. E antes de usá-los é recomendável uma consulta

ao datasheet do fabricante.

Figura 23 - Ligação dos pinos do display de 7 segmentos (Soares, 2009)

Além dos tipos, tamanhos, cores e pinagens diferentes é preciso também observar a

ligação do pino comum. Ele pode ser do tipo Anodo Comum com ligação no VCC ou Catodo

Comum com ligação no GND. A escolha de um ou outro depende do tipo do projeto, mas um

não substitui o outro.

Page 29: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

28

Figura 24 - Ligação cátodo comum e ânodo comum (Soares, 2009)

São necessários sete (ou oito se for considerado o ponto) pinos de I/O do microcontro-

lador para ligar um display. Se for necessário ligar mais de um display seriam necessários

muitos pinos. Para isto é possível utilizar o modo de varredura.

A varredura não serve apenas para entradas, mas também saídas. A Figura 25 mostra

como isso pode ser implementado. Ligam-se todas as linhas dos segmentos juntas. Assim

quando é enviado um valor para um display, é enviado para todos.

Figura 25 - Esquema do modo de varredura (Soares, 2009)

O que determinará qual display mostrará o valor é o controle do anodo/catodo. Ao

inserir um valor na linha, estando todos os anodos (ou catodos) desligados, nenhum display

acende e não há nenhum valor em nenhuma posição. Porém se é ligado um dos displays atra-

vés de seu anodo (ou catodo) o valor será apresentado por este display e na posição desejada.

Para mostrar outro valor, em outro ponto, basta trocar o valor da linha e ligar apenas o

display desejado. Assim é possível fazer uma varredura, usando mais de um display e apenas

uma linha de dados para sete segmentos. O ponto mais importante é a velocidade com que

isso é feito, pois devido à limitação da visão humana não é possível perceber que os valores

estão sendo trocados e muito menos que a posição dos mesmos variou. Dessa forma é possí-

Page 30: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

29

vel visualizar um valor com um número de dígitos, todos mostrados ao mesmo tempo. Em

média podem-se usar tempos de 5 ms (0,005s) a 30 ms (0,03s).

No caso do circuito montado foi utilizado esse modo varredura no circuito de duas

palmas para visualizar o tempo entre as duas palmas.

Figura 26 - Ligação do circuito para fazer a varredura

6.3 Display LCD

Para uma melhor interface máquina–usuário, um display de cristal líquido (LCD) está

configurado para mostrar todas sequências gravadas do experimento. Mas antes, devemos

inicializá-lo, isto é, configurar o LCD. Para isso, exige-se que um protocolo de configuração

seja implementado.

Existem muitos LCDs no mercado, mas trabalhar-se-á com o modelo mais padrão de

todos. Trata-se de um display de duas linhas com 16 caracteres cada uma. Esse display é bem

conhecido por ser o modelo utilizado nos telefones públicos (orelhões). Outra característica

importante do display que estaremos estudando é que ele já possui um drive de controle inter-

Page 31: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

30

no. Desta forma, nos comunicaremos com ele através de uma comunicação paralela, passando

comandos e caracteres que desejamos escrever, diretamente em código ASCII.

Figura 27 - Foto de um display LCD de 16 pinos

Neste LCD possuímos 16 pinos para ligação do mesmo ao PIC. A Tabela

1identifica cada um desses pinos:

Tabela 1 - Pinagem do LCD

Os dois primeiros pinos (Vss e Vdd) são relativos à alimentação do componente e de-

vem ser ligados a uma tensão nominal de 5VDC. As tensões mínima e máxima para alimenta-

ção podem variar conforme o fabricante, mas na maioria dos casos ficam entre 4,75 e

5,25Vdc.

O pino Vo é utilizado para controle contraste e normalmente o ligamos ao centro de

um potenciômetro de 10k com as extremidades ligadas ao Vss e ao Vdd. Na verdade, esse

pino deve possuir uma tensão entre Vss e Vdd.

Page 32: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

31

Figura 28 - Esquema de ligação do LCD (Messias, 2007)

O pino RS (Register Select) é utilizado para definirmos o tipo de informação passada

através da comunicação paralela.

Tabela 2 - Descrição do RS

O pino R/W muda o estado do LCD entre Leitura (Read) e Escrita (Write). Essa mu-

dança pode ser feita para escrevermos um comando ou dado e checarmos quando o LCD ter-

minou a operação e está pronto para darmos continuidade ao processo.

Tabela 3 - Descrição do R/W

Neste caso, o LCD só opera em modo de escrita. Por isso, precisamos garantir o ter-

mino das operações internas do módulo de LCD através de tempos pré-estabelecidos. Esses

tempos serão descritos adiante.

O pino E(Enable) é utilizado para efetivar a leitura da informação escrita no barramen-

to de dados. Essa leitura é efetuada na borda de descida deste sinal.

Os pinos DB0 na DB7 equivalem ao barramento de dados paralelo. Apesar de existi-

rem oito vias de dados, esses displays também podem operar com apenas quatro vias (DB4 a

Page 33: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

32

DB7), com as demais vias ficando sem função. Neste caso, as informações são enviadas em

dois pacotes de 4 bits cada um. O pinoas A(Anode) e K(Katode) são usados para ligação do

Backligth(iluminação de fundo). O fato é que, apesar da existência dos pinos, nem todos os

displays possuem essa iluminação.

Para nós, então, valerá a comunicação em oito vias de dados, acrescida dos controles

RS e E, dando um total de dez pinos interligando o PIC ao LCD. Desta forma, para enviarmos

uma informação ao LCD precisaremos primeiramente ajustar RS para informarmos se é um

comando ou um dado. Em seguida, devemos escrever a informação no barramento de dados.

Próximo passo é darmos um pulso em E.

Figura 29 - Diagrama de tempo do protocolo de comunicação

A primeira ação a ser efetuada no display é a sua inicialização, garantido a

comunicação em 8 vias. Para isso, devemos criar ma rotina baseada no seguinte roteiro:

1. Aguarde pelo menos 15 ms após a energização do LCD para garantir que ele já es-

tá operando corretamente.

2. Envie o comando 0x30 para o display 3 vezes e aguarde pelo menos 3 ms para ca-

da vez.

Tabela 4 - Comando 0x30

3. Estabeleça as condições de utilização. Neste caso, comunicação em oito vias, dis-

play de duas linhas e matriz de 7x5 e aguarde 2ms.

Page 34: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

33

Tabela 5 - Comando de comunicação em 8 vias

4. Comando de para limpar o display e posicionar o cursor na primeira linha, primei-

ra coluna(esquerda) e aguarde 2ms.

Tabela 6 - Comando para limpar o display

5. Envie o comando para ligar o display sem cursor e aguarde 2ms.

Tabela 7 - Comando para ligar display sem cursor

6. Envie o comando para estabelecer o modo de operação. Por exemplo, deslocamen-

to automático do cursor para a direita e aguarde 2ms.

Tabela 8 - Comando para deslocamento automático do cursor para direita

O código abaixo mostra como foi configurado.

“char const tabela[6] = 0x30,0x38,0x0f, 0x01, 0x06 ;

void lcd_ini(void)

delay_ms(15);

char contador = 0;

RS=0;

E = 0;

for(contador=0;contador<3; contador++)

DATA = tabela[0];

E = 1;

E = 0;

delay_ms(3);

Page 35: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

34

for(contador=0;contador<4 ;contador ++ )

DATA = tabela [ contador + 1] ;

E = 1;

E = 0;

delay_ms(2);

Vejamos agora quais são os comandos existentes no display. As nomeclaturas utiliza-

das respeitam a maioria dos datasheets existentes para esse tipo de componente. Para infor-

mações mais detalhadas, recomendamos a consulta direta ao manual do modelo em uso no seu

projeto. Os tempos apresentados também podem variar de um modelo pra outro. Alguns co-

mandos estão tabelados.

Tabela 9 - Limpeza do display

Tabela 10 - Retorno do cursor

Tabela 11 - Modo de operação

Page 36: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

35

Tabela 12 - Descrição dos modos de operação

Tabela 13 - Controle de display e cursor

Tabela 14 - Descrição de controle de display e cursor

Tabela 15 - Deslocamento do cursor ou da mensagem

Tabela 16 - Descrição do deslocamento do cursor ou da mensagem

Page 37: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

36

Tabela 17 - Configuração para utilização

Tabela 18 - Descrição de configuração para utilização

No código em anexo é mostrado o que foi realizado para a configuração do LCD.

Page 38: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

37

7 ALGORITMO

7.1 Sensor de Palmas Simples

Conhecido um pouco mais do PIC, é preciso entender o que o algoritmo do programa

faz. A cada palma um pulso quadrado será gerado e processado pelo PIC. A ideia principal é

contar o tempo entre as palmas como mostrado no diagrama da Figura 30 e verificar se essa

diferença é maior ou menor que um tempo definido.

Figura 30 - Tempo entre duas palmas

Com o periférico capture será capturado cada pulso para entrar em uma interrupção.

Dentro de cada interrupção será gravada a diferença de tempo entre pulsos, isto é, entre pal-

mas em um registrador.

Outro ponto principal é a varredura a qual tem como objetivo mostrar os tempos entre

palmas. A varredura consiste em maximizar o uso dos pinos para jogar informação em cada

Displays de 7-segmentos. Nesse caso, são usados 4 transistores npn para chavear cada display

de 7 segmentos. Em cada ciclo de trabalho de cada display as informações são jogadas através

de 8 pinos do PIC.A figura abaixo mostra o diagrama temporal do chaveamento do displays e

o layout do circuito. Existe um pequeno delay para ativar cada display que está relacionado

com o tempo de chaveamento do transistor.

Figura 31 - Diagrama de tempo de varredura dos displays de 7 segmentos

Page 39: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

38

7.1.1 Fluxograma

A Figura 32 mostra o fluxograma do código do implementado mostrando o uso do

capture e o uso da varredura pra mostrar o tempo entre as palmas.

Figura 32 - Fluxograma do programa detector de duas palmas

Page 40: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

39

7.2 Sensor de Palmas com Detector de Sequência (música)

A ideia principal do sensor a música é armazenar as diferenças de tempos entre palmas

em um vetor e compará-lo com outro vetor que armazena outra sequência de tempos entre

palmas. Isto é, uma musica é armazenada a priori e comparada com outra musica. Se a se-

quência de tempos dos dois vetores forem iguais então acionará a carga desejada.

Considerando quatro sequências e uma variável de controle:

(a1,a2,a3....aN)

(b1,b2,b3....bN)

(c1,c2,c3..c[N-1])

(d1,d2,d3...d[N-1])

AcendE=0.

As sequências são “c” e “d” são dadas por:

c(i) = a(i+1)-a(i)

d(i) = b(i+1)-b(i)

Caso c(i) = d(i) para todo i E (1,2,3....,n) , então AcendE = AcendE +1. Nesse caso, se

AcendE = N-1 , então as sequências são iguais.Consequentemente, a Luz acenderá. Algorit-

micamente resolvido.

Page 41: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

40

7.2.1 Fluxograma

As próximas figuras mostram o fluxograma do programa correspondente a sequência

de palmas.

Figura 33 - Fluxograma do programa detector de sequência de palmas

Page 42: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

41

8 MANUAL DE OPERAÇÃO DO CIRCUITO

8.1 Funcionamento do Sensor de Duas Palmas

1 – Estrutura geral: Azul -> LED de operação, Amarelo-> Simulação do sensor da palma e

Verde-> dysplays de 7 segmentos (varredura)

2 –Azul -> Indica que aconteceu a primeira palma

Page 43: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

42

3 - Azul-> Indica que a segunda palma aconteceu. Verde-> Como o tempo foi maior que 3

segundos(3,3 segundos jah que o oscilador externo está em 10Hz) então a LUZ(Vermelho)

não acendeu.

4 - Azul-> Indica que a segunda palma aconteceu. Verde-> Como o tempo foi menor que 3

segundos(1,7 segundos jah que o oscilador externo está em 10Hz) então a LUZ(Vermelho)

acendeu.

Page 44: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

43

8.2 Funcionamento Sensor Sequência de Palmas

1 – Apresentação do trabalho de graduação: Vermelho->LED de Operação, Azul->LCD, Ver-

de->simulação do sensor de palma e Amarelo->Botões de controle.

2 – Fase de gravação da musica, isto é, da primeira sequencia (a1, a2,..., aN): Amarelo -> bo-

tão de gravação ativado. Azul -> sequencia de tempos gravados.

Page 45: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

44

3 – Gravação da segunda sequencia (b1,b2,b3....bN): Verde- Está habilitado para tentar ligar a

luz ; Vermelho: A musica não está sendo gravada e sim testada ; Azul: O LCD está mostrando

as duas sequencias.

4 – Gerando as seqüência: (a2-a1,a3-a2,a4-a3,....,an-a(n-1)) e (b2-b1,b3-b2,b4-b3,....,bn-b(n-

1)) e que serão comparadas para ligar a LUZ.

Page 46: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

45

5 – Se tudo OK, então a Luz ligará:

6- Mais uma palma desligará a LUZ.

Page 47: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

46

8 – Botão que mostra o vetor : (a2-a1,a3-a2,a4-a3,....,an-a(n-1))

9 – Botão que mostra o vetor : (b2-b1,b3-b2,b4-b3,....,bn-b(n-1))

Page 48: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

47

9 RESULTADOS OBTIDOS

Inicialmente foram encontradas dificuldades para simular o circuito. As funções de

interrupção de capture e outras do PIC não estavam sendo simuladas da forma esperada. Foi

verificado que o problema era com a versão do programa Labcenter Electronics Proteus 7.6

SP0. Quando foi utilizada a versão 7.1 SP2 do Proteus a simulação funcionou da forma espe-

rada.

Outra dificuldade encontrada foi quanto a captação de som. O transdutor do microfone

e o circuito tinha um alcance limitado. Foram feitas algumas melhorias no circuito, trocando

componentes e procurando melhorar o ganho, a fim de obter o resultado satisfatório. Decidiu-

se por utilizar o amplificador operacional em malha aberta para obter maior ganho.

9.1 Circuito de Captação de Duas Palmas

O programa de captação de palmas funcionou da maneira esperada, ativando a saída e

ligando o LED com duas palmas e desligando com uma palma.

Foram utilizados neste caso três displays de sete segmentos ativados pelo modo de

varredura. Isto foi feito no sentido de economizar I/O do PIC, já que cada display no modo

normal consome sete (ou oito, se tiver o ponto) pinos de I/O. Neste caso foi recomendável

utilizar o modo de varredura, que nada mais é do que atualizar um display de cada vez, tendo

um pino que ativa esse display. Desta forma se usam 8 pinos para enviar as informações e

mais os pinos para ativar o display. Este display mostrou da forma esperada o tempo entre

batidas de palmas.

9.2 Circuito de Captação de Sequência de Palmas

Também foi feita uma melhoria para detectar uma sequência de palmas, ou seja, uma

“música”. Ele recebe uma sequência de palmas, gravando os tempos correspondentes e depois

verifica se a sequência é repetida.

Neste caso, como havia vários valores de tempos, foi preferível utilizar um mostrador

de LCD. Foi utilizado o popular mostrador de LCD que tem duas linhas com 16 caracteres

cada uma. Após alguns estudos, funcionou como esperado, mostrando os tempos das palmas e

Page 49: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

48

depois mostrando a comparação entre as diferenças. Se estivesse dentro do limite tolerável ele

ativava a saída.

Foram encontradas algumas dificuldades quanto a montagem do display LCD pois

este tem 16 pinos. Quando foi ser feita a ligação do PIC com o LCD foi escolhida a porta D

do PIC. Porém verificou-se que os pinos da porta D não estão adjacentes no PIC, fazendo com

que se tornasse trabalhoso ligar todos os pinos do PIC e do LCD. Uma melhoria possível seria

escolher pinos no PIC colocados de forma contínua, fazendo com que a ligação entre PIC e

display LCD fosse mais prática.

Page 50: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

49

10 CONCLUSÃO

Este trabalho de graduação foi desenvolvido no intuito de complementar os conheci-

mentos adquiridos ao longo do curso. Foi utilizado o aprendizado de eletrônica analógica e

digital.

A parte do sensor abrangeu disciplinas como Circuitos Elétricos, Eletrônica Analógi-

ca, Sinais e Sistemas e Princípios de Comunicação, no intuito de digitalizar um sinal analógi-

co: as palmas. O programa do microcontrolador foi desenvolvido em linguagem C. Esta havia

sido estudada em disciplinas como Computação Eletrônica, Métodos Computacionais e Mi-

crocomputadores.

O microcontrolador PIC, que foi utilizado neste projeto, já havia sido estudado ao lon-

go do curso na disciplina de microcomputadores. O PIC é largamente utilizado e esta foi ape-

nas uma aplicação possível para este microcontrolador.

A metodologia de projeto utilizada foi muito importante. Desenvolver o sensor de

palmas em blocos e depois acoplá-los foi a melhor escolha para detectar oportunidades de

melhoria, pois o projeto de um circuito grande acaba tornando sua análise muito complexa.

Quanto à parte da programação foi interessante desenvolver primeiro um exemplo

mais simples, que foi o sensor de detector de duas palmas para depois desenvolver o mais

complexo sensor detector de sequência de palmas.

Concluiu-se que a utilização da teoria em conjunto com a prática, com o auxílio da

matemática, física, simulações computacionais, fazendo um planejamento e divisão do traba-

lho é essencial para o sucesso em um projeto desta magnitude.

Em relação ao projeto final concluí-se que talvez seja mais vantajosa à produção deste

circuito em larga escala, pois o custo unitário cairia bastante, estima-se metade do preço. Nes-

te caso, os custos foram altos por que os componentes foram comprados no varejo.

Para futuros projetos de graduação poderia ser proposto o desenvolvimento de um

circuito de alimentação de corrente contínua, a montagem em circuito impresso e um estudo

mais aprofundado da parte de captação.

Page 51: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

50

REFERÊNCIAS

CUSTOM COMPUTER SERVICES. CCS Downloads. C Compiler Reference Manual,

2010. Disponivel em: <http://www.ccsinfo.com/downloads/ccs_c_manual.pdf>. Acesso em:

15 de Junho de 2010.

ESQUEMAS ELETRÔNICOS. Como Funciona um Microfone?, 2010. Disponivel em:

<http://eletronicos.etc.br/tag/microfones/>. Acesso em: 23 de Julho de 2010.

HOROWITZ, P.; HILL, W. The Art of Electronics. 2ª. ed. Cambridge: Cambridge

University Press, 1989.

MAIA, T. A. C.; RETES, P. F. L. eletronica.org. Interruptor Eletrônico Controlado por

Som, 2008. Disponivel em: <http://www2.eletronica.org/projetos/interruptor-eletronico-

controlado-por-som/>. Acesso em: 12 de Julho de 2010.

MESSIAS, A. R. Rogercom. Conectando um Pen-drive a um Microcontrolador, 2007.

Disponivel em: <http://www.rogercom.com/Microcontrolador/Pag05.htm>. Acesso em: 25 de

Julho de 2010.

PCB PIEZOTRONICS. Microphone Handbook, 2010. Disponivel em:

<http://www.pcb.com/Linked_Documents/Vibration/Microphone_Handbook.pdf>. Acesso

em: 22 de Julho de 2010.

PEREIRA, F. Microcontroladores PIC: Programação em C. São Paulo: Érica, 2003.

SILVA JÚNIOR, V. P. Linguagem C para microcontroladores PIC. [S.l.]: Vidal Projetos

Personalizados, 1999.

SOARES, M. J. Arne Robotics. Controle de Displays de Sete Segmentos, 2009. Disponivel

em: <http://www.arnerobotics.com.br/eletronica/Microcontrolador_PIC_pratica_4.htm>.

Acesso em: 24 de Julho de 2010.

Page 52: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

51

SOUZA, D. J.; LAVINIA, N. C. Conectando o PIC 16F877A: Recursos Avançados. 3ª. ed.

São Paulo: Érica, 2003.

STMICROELECTRONICS. General-purpose single bipolar timers. NE555, SA555, SE555,

2008. Disponivel em: <http://www.st.com/stonline/products/literature/ds/2182.pdf>. Acesso

em: 20 de Julho de 2010.

STMICROELECTRONICS. General-purpose single operational amplifier. UA741, 2009.

Disponivel em: <http://www.st.com/stonline/products/literature/ds/5304/ua741.pdf>. Acesso

em: 21 de Julho de 2010.

WIKIPEDIA. Wikipedia. Microfone, 2010. Disponivel em:

<http://pt.wikipedia.org/wiki/Microfone>. Acesso em: 13 de Julho de 2010.

Page 53: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

52

APÊNDICE A – CÓDIGO DUAS PALMAS

#include <16f877A.h>

#device adc=8

#use delay(clock=4000000)

#fuses HS,NOWDT,PUT

#priority timer0, ccp1

int codificacao[] = // DPGFEDCBA

0b00111111, // 0

0b00000110 // I-1

0b01011011, // T-2

0b01001111, // A-3

0b01100110, // E-4

0b01101101, // U-5

0b01111101, // M1-6

0b00000111, // M2-7

0b01111111, // O-8

0b01101111;// vazio -9

int diferenca=0,unidade=0,dezena=0,centena=0,milhar=0,controle=0,controle2=0;

int tempoPassado,tempoAtual;

#INT_CCP1

void trata_ccp1()

//teste para ver se essa interrupção está funcionando//

if(controle2%3 == 0)

output_high(PIN_B2);

tempoPassado = CCP_1;

output_low(PIN_B3);

if(controle2%3 == 1)

output_low(PIN_B2);

tempoAtual = CCP_1;

diferenca= tempoAtual - tempoPassado;

if(diferenca<30)

output_high(PIN_B3);

else

output_low(PIN_B3);

controle2=-1;

if(controle2%3==2)

output_low(PIN_B3);

Page 54: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

53

controle2++;

#int_timer0

void trata_t0()

if(controle%4==0)

//varre a unidade

output_a(2);

output_d(codificacao[unidade]);

if(controle%4==1)

//varre a dezena

output_a(16);

output_d(codificacao[dezena]);

if(controle%4==2)

//varre a dezena

output_a(8);

output_d(codificacao[centena]);

if(controle%4==3)

//varre a dezena

output_a(4);

output_d(codificacao[milhar]);

controle++;

int pegaDezena(int numero)

int temp=0;

temp = numero;

temp = temp%100;

temp = temp - temp%10;

temp = temp/10;

return(temp);

int pegaCentena(int numero)

int temp=0;

temp = numero;

temp = temp - temp%100;

temp = temp/100;

return(temp);

Page 55: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

54

void atualiza(long int numero )

unidade = numero%10;

dezena = pegaDezena(numero);

centena = pegaCentena(numero);

void main()

/* Configuração */

//configuração da conversao

setup_adc(ADC_OFF);

//configuração da varredura

setup_timer_0(RTCC_INTERNAL | RTCC_DIV_2);

set_timer0(0);

//habilitação da interrupção

enable_interrupts(GLOBAL);

enable_interrupts(INT_TIMER0);

enable_interrupts(INT_CCP1);

/* liga o computador */

output_high(PIN_B1); //ligando a maquina

/* configuração do capture 1 */

setup_timer_1(T1_EXTERNAL); // habilita o timer 1 com clock externo

set_timer1(0); //limpando o timer 1

setup_ccp1(CCP_CAPTURE_FE) ; // coloca a entrada CCP1 em captura com sensibilidade na borda descida

/*Computador*/

while(true)

atualiza(diferenca);

Page 56: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

55

APÊNDICE B – CÓDIGO SEQUÊNCIA DE PALMAS

#include <16f877.h>

#include <REGS.h>

#device adc=8

#use delay(clock=4000000)

#fuses HS,NOWDT,PUT

//definição das variáveis de controle//

int botaoDeGravacao=0,verificacaoIgualdade=0,botaoDeMostraTempoGravados = 0,

botaoDeMostraTempoTestados = 0,acende=0,apagaLuz=0,i2=0;

int numeroDePalmas=0;

int numeroDePalmasTeste=0;

int numeroDePalmasTotal=0;

int vetorDeTempos[15]= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;

int vetorDeRazoes[14]=0,0,0,0,0,0,0,0,0,0,0,0,0,0;

int vetorDeTemposTeste[15] = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;

int vetorDeRazoesTeste[14]=0,0,0,0,0,0,0,0,0,0,0,0,0,0;

//rotina da interrupção de borda de descida da entrada CCP1 pino 17//

#define DATA PORTD

#define RS PORTE_0

#define E PORTE_1

#define lcd_seg_lin 0x40

char const tabela[6] = 0x30,0x38,0x0f, 0x01, 0x06,0x01;

void lcd_pos_xy(char x ,char y)

char endereco;

if(y!=1) endereco = lcd_seg_lin;

else

endereco = 0 ;

endereco = endereco + (x - 1);

RS=0;

endereco = 0x80 | endereco;

DATA = endereco ;

E = 1;

E = 0;

delay_ms(2);

void lcd_ini(void)

delay_ms(15);

char contador = 0;

RS=0;

E = 0;

for(contador=0;contador<3; contador++)

DATA = tabela[0];

Page 57: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

56

E = 1;

E = 0;

delay_ms(3);

for(contador=0;contador<4;contador ++ )

DATA = tabela [ contador + 1] ;

E = 1;

E = 0;

delay_ms(2);

void lcd_escreve(char caracter)

RS = 1 ;

delay_us(100);

DATA = caracter ;

E = 1;

E = 0;

void limpa_lcd()

lcd_pos_xy(1,1);

lcd_escreve(" ");

lcd_pos_xy(1,2);

lcd_escreve(" ");

#INT_CCP1

void trata_ccp1()

//zerando a variavel acende//

acende = 0;

//caso a opção de gravação foi requisitada//

if(botaoDeGravacao==1)

//começando a gravação//

numeroDePalmas++; //conta o numero de palmas

vetorDeTempos[numeroDePalmas-1] = CCP_1; //grava os tempos entre as palmas

//imprimindo os tempos das palmas

lcd_pos_xy(2*(numeroDePalmas)-1,1);

printf(lcd_escreve,"%d",vetorDeTempos[numeroDePalmas-1]);

numeroDePalmasTotal = numeroDePalmas; //grava o numero total de palmas

//se não for a palma para desligar a luz, então essa rotina grava os interlos entre as palmas que serão compa-

rados

//com os intervalos gravados anteriormente

if(apagaLuz == 0)

//verificação da música

if((botaoDeGravacao==0)&&(vetorDeTempos[0]!=0))

Page 58: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

57

numeroDePalmas=0; //essa variável é zerada caso uma nova musica seja gravada denovo

numeroDePalmasTeste++; //conta o número de palmas

vetorDeTemposTeste[numeroDePalmasTeste-1] = CCP_1; //grava os tempos entre as palmas

//imprimindo os tempos das palmas de testes

lcd_pos_xy(2*(numeroDePalmasTeste)-1,2);

printf(lcd_escreve,"%d",vetorDeTemposTeste[numeroDePalmasTeste-1]);

if(numeroDePalmasTeste == numeroDePalmasTotal)

output_high(PIN_B2);

numeroDePalmasTeste = 0; //zera a variavel de contagem para uma nova comparação

verificacaoIgualdade = 1; //permite que os intervalos dos dois eventos diferentes sejam

comparados

else

//caso seja palma para desligar entao a luz será desligada

lcd_pos_xy(1,1);

lcd_escreve("Luz OFF");

output_low(PIN_B3); //apaga a luz

apagaLuz=0; //variável que define se a palma é para ser gravada ou a que apagará a luz

void main()

/*definição*/

int i=0,botaoDeApagamento=0;

/* Configuração */

//configuração da conversao

setup_adc(ADC_OFF);

//configuração da varredura

setup_timer_0(RTCC_INTERNAL | RTCC_DIV_2);

set_timer0(0);

//habilitação da interrupção

enable_interrupts(GLOBAL);

enable_interrupts(INT_CCP1);

/* liga o computador */

output_high(PIN_B1); //ligando a maquina

/* configuração do capture 1 */

setup_timer_1(T1_EXTERNAL); // habilita o timer 1 com clock externo

set_timer1(0); //limpando o timer 1

setup_ccp1(CCP_CAPTURE_FE) ; // coloca a entrada CCP1 em modo de captura com sensibilidade na borda

de descida

//configurando o LCD;

TRISD=0b00000000;

Page 59: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

58

TRISE=0b00000000;

lcd_ini();

lcd_pos_xy(1,1);

lcd_escreve("TG 2010.1");

lcd_pos_xy(1,2);

lcd_escreve("Pedro s");

delay_ms(2000);

limpa_lcd();

set_timer1(0);

/*Computador*/

while(true)

//verificando se o sistema está em fase de gravação ou não

botaoDeGravacao = input(PIN_B4);

botaoDeMostraTempoGravados = input(PIN_C3);

botaoDeMostraTempoTestados = input(PIN_C4);

if((botaoDeGravacao == 1))

output_low(PIN_B2);

else

output_high(PIN_B2);

//verificando se o sistema está em fase de apagamento

botaoDeApagamento = input(PIN_B5);

//atualiza os display para verificar os tempos entre as palmas

if((verificacaoIgualdade == 1))

output_high(PIN_B6);

//formando as razoes para a verificação e comparando as razoes

limpa_lcd();

for(i=1;i<numerodePalmasTotal;i++)

//formando o vetor de razões da musica gravada//

vetorDeRazoes[i-1]=vetorDeTempos[i] - vetorDeTempos[i-1];

lcd_pos_xy(2*i-1,1);

printf(lcd_escreve,"%d",vetorDeRazoes[i-1]);

//formando o vertor de razões da musica de teste//

vetorDeRazoesTeste[i-1] = vetorDeTemposTeste[i] - vetorDeTemposTeste[i-1];

lcd_pos_xy(2*i-1,2);

printf(lcd_escreve,"%d",vetorDeRazoesTeste[i-1]);

//testando a igualdade//

if((vetorDeRazoesTeste[i-1]>=vetorDeRazoes[i-1]-2)&&(vetorDeRazoesTeste[i-1]<=vetorDeRazoes[i-

1]+2))

acende++;

delay_ms(3000);

Page 60: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

59

//ligando o led de acordo com a comparação anterior

if ((acende >= numerodePalmasTotal-1))

output_high(PIN_B3);

apagaLuz = 1;

limpa_lcd();

lcd_pos_xy(1,1);

lcd_escreve("Luz ON");

delay_ms(300);

verificacaoIgualdade=0;

if(botaoDeApagamento ==1)

for(i=0;i<9;i++)

//limpando os dados totais//

vetorDeRazoes[i]=0;

vetorDeTempos[i]=0;

limpa_lcd();

if((botaoDeMostraTempoGravados == 1))

limpa_lcd();

for(i2=1;i2<numerodePalmasTotal;i2++)

//Mostando todas diferenças de tempos gravados//

lcd_pos_xy(2*i2-1,1);

printf(lcd_escreve,"%d",vetorDeRazoes[i2-1]);

lcd_pos_xy(1,2);

lcd_escreve("Tempos Gravados");

delay_ms(1000);

if((botaoDeMostraTempoTestados ==1))

limpa_lcd();

for(i2=1;i2<numerodePalmasTotal;i2++)

//Mostando todas diferenças de tempos de testes gravados//

lcd_pos_xy(2*i2-1,1);

printf(lcd_escreve,"%d",vetorDeRazoesTeste[i2-1]);

lcd_pos_xy(1,2);

lcd_escreve("Tempos Testes");

delay_ms(1000);

Page 61: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

60

APÊNDICE C – ESQUEMA CIRCUITO COMPLETO DUAS PALMAS

Page 62: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

61

APÊNDICE D – ESQUEMA CIRCUITO COMPLETO SEQUÊNCIA DE PALMAS

Page 63: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

62

APÊNDICE E – CUSTOS DO CIRCUITO

CIRCUITO DETECTOR DE DUAS PALMAS

Quantidade Referencia Valor Preço Unitário Preço Total

2 Capacitor 100nF 0,53 1,06

2 Capacitor 10nF 0,26 0,52

2 Capacitor 680nF 1,46 2,92

1 Capacitor 220n 0,53 0,53

2 Resistor 330k 0,10 0,2

1 Resistor 1k 0,10 0,1

4 Resistor 10k 0,10 0,4

1 Resistor 560k 0,10 0,1

3 Resistor 220 0,41 1,23

1 AMPOP UA741 1,46 1,46

2 TIMER NE555 0,80 1,6

1 LED AMARELO 0,29 0,29

1 LED VERMELHO 0,29 0,29

1 LED VERDE 0,29 0,29

1 TRANS PIC16F877A 29,90 29,9

1 MICROFONE ELETRETO 0,71 0,71

TOTAL 41,6

Page 64: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

63

CIRCUITO DETECTOR DE SEQUÊNCIA DE PALMAS

Quantidade Referencia Valor Preço Unitário Preço Total

2 Capacitor 680nF 1,46 2,92

2 Capacitor 10nF 0,26 0,52

2 Capacitor 100nF 0,53 1,06

1 Capacitor 220nF 0,53 0,53

2 Resistor 330k 0,10 0,20

5 Resistor 1k 0,10 0,50

1 Resistor 560k 0,10 0,10

3 Resistor 330 0,10 0,30

4 Resistor 10k 0,10 0,40

0,00

2 TIMER NE555 0,80 1,60

1 AMPOP UA741 1,46 1,46

1 DIODO AMARELO 0,29 0,29

1 DIODO VERMELHO 0,29 0,29

1 DIODO VERDE 0,29 0,29

1 LCD1 JHD162A 28,60 28,60

1 PIC PIC16F877A 29,90 29,90

2 TRIMPOT 2K2 1,00 2,00

1 MICROFONE ELETRETO 0,71 0,71

TOTAL 71,67

Page 65: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

64

ANEXO A – PRINCIPAIS FIGURAS DOS DATASHEETS

Page 66: Cabral e Toledo - Interruptor Eletronico Controlado por Palmas - 2010

65