Processamento de Sinais: Série Automação E Mecatrônica Industrial

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 296

SÉRIE AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL

PROCESSAMENTO
DE SINAIS
SÉRIE AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL

PROCESSAMENTO
DE SINAIS
CONFEDERAÇÃO NACIONAL DA INDÚSTRIA – CNI

Robson Braga de Andrade


Presidente

DIRETORIA DE EDUCAÇÃO E TECNOLOGIA

Rafael Esmeraldo Lucchesi Ramacciotti


Diretor de Educação e Tecnologia

SENAI-DN – SERVIÇO NACIONAL DE APRENDIZAGEM INDUSTRIAL

Conselho Nacional

Robson Braga de Andrade


Presidente

SENAI – DEPARTAMENTO NACIONAL

Rafael Esmeraldo Lucchesi Ramacciotti


Diretor-Geral

Gustavo Leal Sales Filho


Diretor de Operações

Regina Maria de Fátima Torres


Diretora Associada de Educação Profissional
SÉRIE AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL

PROCESSAMENTO
DE SINAIS
© 2015. SENAI – Departamento Nacional

© 2015. SENAI – Departamento Regional do Rio Grande do Sul


2º edição
A reprodução total ou parcial desta publicação por quaisquer meios, seja eletrônico,
mecânico, fotocópia, de gravação ou outros, somente será permitida com prévia autorização,
por escrito, do SENAI – Departamento Regional do Rio Grande do Sul.

Esta publicação foi elaborada pela equipe da Gerência de Desenvolvimento Educacional


– GDE/Núcleo de Educação a Distância – NEAD, do SENAI do Rio Grande do Sul, com
a coordenação do SENAI Departamento Nacional, para ser utilizada por todos os
Departamentos Regionais do SENAI nos cursos presenciais e a distância.

SENAI Departamento Nacional


Unidade de Educação Profissional e Tecnológica – UNIEP

SENAI Departamento Regional do Rio Grande do Sul


Gerência de Desenvolvimento Educacional – GDE/Núcleo de Educação a Distância – NEAD

FICHA CATALOGRÁFICA

S491

Serviço Nacional de Aprendizagem Industrial. Departamento Nacional


Processamento de sinais / Serviço Nacional de Aprendizagem Industrial.
Departamento Nacional, Serviço Nacional de Aprendizagem Industrial.
Departamento Regional do Rio Grande do Sul. -2.ed. - Brasília: SENAI/DN, 2015.
292 p. : il. (Automação e Mecatrônica Industrial).

ISBN 978-85-7519-850-6

1. Dispositivos eletrônicos. 2. Eletrônica. I Serviço Nacional de Aprendizagem


Industrial. Departamento Regional do Rio Grande do Sul. II. Título. III. Série.

CDU 621.38

Bibliotecário Responsável: Cristiane Mesquita T. Luvizetto – CRB-10/1266

SENAI Sede
Serviço Nacional de Setor Bancário Norte . Quadra 1 . Bloco C . Edifício Roberto
Aprendizagem Industrial Simonsen . 70040-903 . Brasília – DF . Tel.: (0xx61)3317-9190
Departamento Nacional http://www.senai.br
Lista de ilustrações
Figura 1 -  Circuito...............................................................................................................................................................22
Figura 2 -  Raio - Tensão...................................................................................................................................................22
Figura 3 -  Corrente contínua.........................................................................................................................................23
Figura 4 -  Corrente alternada........................................................................................................................................24
Figura 5 -  Símbolo do diodo.........................................................................................................................................24
Figura 6 -  LED (diodo emissor de luz)........................................................................................................................24
Figura 7 -  Diodo retificador...........................................................................................................................................25
Figura 8 -  Diodo em série na alimentação de um circuito eletrônico............................................................25
Figura 9 -  Diodo de proteção contra transientes de tensão..............................................................................26
Figura 10 -  Interior de um diodo, a junção PN (anodo e catodo)....................................................................27
Figura 11 -  Diodo inversamente polarizado............................................................................................................28
Figura 12 -  Diodo diretamente polarizado..............................................................................................................28
Figura 13 -  Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de fluxo
de elétrons............................................................................................................................................................................28
Figura 14 -  Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de
repulsão na junção, interrompendo o fluxo de elétrons.....................................................................................28
Figura 15 -  Símbolo do diodo retificador, segundo norma IEEE 315..............................................................29
Figura 16 -  Conversor de corrente alternada para corrente contínua, com retificador de onda
completa...............................................................................................................................................................................30
Figura 17 -  Ponte retificadora e seus diodos convertendo corrente contínua em corrente
alternada...............................................................................................................................................................................30
Figura 18 -  Símbolo de diodo zener, segundo norma IEEE315, e diodo zener...........................................32
Figura 19 -  Circuito...........................................................................................................................................................32
Figura 20 -  Diodo 1N746 ...............................................................................................................................................33
Figura 21 -  Símbolo de LED e um LED ......................................................................................................................35
Figura 22 -  Imagem interna de um diodo ...............................................................................................................35
Figura 23 -  Sinaleiros LEDs usados em quadros de comando elétricos e em sistemas de automação
industrial................................................................................................................................................................................36
Figura 24 -  Máquina utilizando os sinaleiros de LED............................................................................................36
Figura 25 -  LEDs junto a resistores em um circuito série....................................................................................36
Figura 26 -  Dígito de 7 segmentos, composto por 7 leds para mostar o número, mais um para o
ponto .....................................................................................................................................................................................37
Figura 27 -  Fotodiodo .....................................................................................................................................................39
Figura 28 -  Cortina ótica de segurança com LED ..................................................................................................39
Figura 29 -  Multímetro....................................................................................................................................................40
Figura 30 -  Diodo diretamente polarizado..............................................................................................................40
Figura 31 -  Diodo inversamente polarizado............................................................................................................40
Figura 32 -  Optoacopladores........................................................................................................................................41
Figura 33 -  Circuito divisor de tensão .......................................................................................................................42
Figura 34 -  Optoacoplador ...........................................................................................................................................42
Figura 35 -  Diagrama de um sistema automatizado............................................................................................43
Figura 36 -  Circuito integrado.......................................................................................................................................44
Figura 37 -  Transmissores NPN e PNP........................................................................................................................45
Figura 38 -  Símbolo de um transistor bipolar NPN e diagrama da junção NPN.........................................46
Figura 39 -  Transistor NPN polarizado. Carga representa um circuito ou componente que está
sendo energizado..............................................................................................................................................................46
Figura 40 -  Símbolo de um transistor bipolar PNP e diagrama da junção PNP..........................................47
Figura 41 -  Transistor NPN polarizado. Carga representa um circuito ou componente que está
sendo energizado..............................................................................................................................................................47
Figura 42 -  Circuito de acionamento de relé utilizando transistor NPN........................................................48
Figura 43 -  Circuito de acionamento de relé utilizando transistor PNP........................................................50
Figura 44 -  Encapsulamento: principais encapsulamentos de transistores e suas potências...............51
Figura 45 -  Datasheet do transistor pesquisado....................................................................................................53
Figura 46 -  Detalhe do multímetro, marcado para teste de diodo.................................................................53
Figura 47 -  Teste transistor NPN...................................................................................................................................54
Figura 48 -  Teste transistor PNP....................................................................................................................................54
Figura 49 -  Transistor Darlington.................................................................................................................................55
Figura 50 -  Símbolo de JFET e representação da estrutura construtiva........................................................56
Figura 51 -  Estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P
tipo enriquecimento e seus respectivos símbolos.................................................................................................57
Figura 52 -  Estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P
tipo depleção e seus respectivos símbolos..............................................................................................................58
Figura 53 -  Motor de corrente contínua convencional .......................................................................................58
Figura 54 -  Motor de corrente contínua convencional 1....................................................................................59
Figura 55 -  Motor DC........................................................................................................................................................59
Figura 56 -  Ponte H para controle da rotação de um motor utilizando transistores MOS......................60
Figura 57 -  Detalhamento..............................................................................................................................................60
Figura 58 -  Terminal de controle de um transistor ...............................................................................................61
Figura 59 -  Terminal de controle de um transistor 1............................................................................................61
Figura 60 -  Conexão da carga a um transistor NPN usado como chave.......................................................62
Figura 61 -  Circuito CMOS ou MOS.............................................................................................................................62
Figura 62 -  Símbolos CMOS ..........................................................................................................................................63
Figura 63 -  Tipos de tiristores .......................................................................................................................................64
Figura 64 -  Símbolo do SCR...........................................................................................................................................65
Figura 65 -  Analogia entre um SCR e um circuito com dois transistores......................................................65
Figura 66 -  Representação da Curva V x A de um SCR.........................................................................................66
Figura 67 -  Símbolo de DIAC.........................................................................................................................................66
Figura 68 -  Circuito de um dimmer.............................................................................................................................67
Figura 69 -  Voltímetro para milivolts conectado a um sensor de temperatura tipo termopar.............68
Figura 70 -  Da direita para esquerda: a)sensor de pressão que envia sinal analógico por meio de
variação de corrente (4 a 20 mA); b) sensor tubular indutivo analógico, que envia sinal de 0 a 10V
conforme proximidade; c) sensores analógicos por ultrasom, que envia sinal de 0 a 10V.....................69
Figura 71 -  Amplificador operacional. CI LM741....................................................................................................71
Figura 72 -  Amplificador inversor ...............................................................................................................................72
Figura 73 -  Amplificador.................................................................................................................................................72
Figura 74 -  Tanque de fluido.........................................................................................................................................73
Figura 75 -  Tanque de fluido 1......................................................................................................................................73
Figura 76 -  Divisor de tensão........................................................................................................................................74
Figura 77 -  Circuito...........................................................................................................................................................75
Figura 78 -  Circuito 1........................................................................................................................................................75
Figura 79 -  Circuito somador inversor.......................................................................................................................77
Figura 80 -  Amplificador operacional como subtrator........................................................................................78
Figura 81 -  Amplificador operacional como subtrator 1.....................................................................................78
Figura 82 -  Representação do sinal de entrada (Vin) e saída (Vo) de um oscilador astável...................79
Figura 83 -  Circuito integrado 555 e gráfico de saída..........................................................................................79
Figura 84 -  Gráfico de PWM a 1kHz.............................................................................................................................80
Figura 85 -  cálculo para obtenção da taxa de trabalho menor que 50%......................................................80
Figura 86 -  Oscilador monoestável.............................................................................................................................81
Figura 87 -  Filtro com capacitor, aplicado e fontes para diminuição do “ripple”........................................82
Figura 88 -  Gráfico da Intensidade de sinal x Frequência...................................................................................83
Figura 89 -  Filtro passa baixa.........................................................................................................................................83
Figura 90 -  Filtro passa alta............................................................................................................................................84
Figura 91 -  Filtro passa-faixa, usando capacitor, indutor e resistor.................................................................84
Figura 92 -  Filtro rejeita-faixa, também conhecido como rejeita-banda......................................................84
Figura 93 -  Filtro passa-baixa .......................................................................................................................................85
Figura 94 -  Filtro passa-alta ...........................................................................................................................................85
Figura 95 -  Filtro ativo passa-banda...........................................................................................................................86
Figura 96 -  Fonte de bancada.......................................................................................................................................86
Figura 97 -  Fonte de
microcomputador..............................................................................................................................................................86
Figura 98 -  Fonte chaveada 2A.....................................................................................................................................86
Figura 99 -  Gráfico da tensão após retificação, sem aplicação de filtros.......................................................87
Figura 100 -  Transformador utilizado em uma fonte linear...............................................................................88
Figura 101 -  Fonte simétrica..........................................................................................................................................88
Figura 102 -  Esquema de fonte simétrica.................................................................................................................89
Figura 103 -  Esquema de fonte simétrica.................................................................................................................89
Figura 104 -  Fases de uma fonte chaveada..............................................................................................................90
Figura 105 -  Reservatórios d’água...............................................................................................................................93
Figura 106 -  Reservatórios d’água com sensor potenciométrico....................................................................94
Figura 107 -  Reservatórios d’água com sensor de ultrassom............................................................................94
Figura 108 -  Reservatórios d’água medido através do ângulo e refração....................................................94
Figura 109 -  Reservatórios d’água sensor de nível................................................................................................95
Figura 110 -  Reservatórios d’água de célula de carga.........................................................................................95
Figura 111 -  Reservatórios d’água com terminais condutivos.........................................................................95
Figura 112 -  Sensor de nível digital e um sensor de nível analógico.............................................................96
Figura 113 -  Chave de contato normalmente aberto com princípio de acionamento magnético.....97
Figura 114 -  Botão de emergência com contato normalmente fechado.....................................................97
Figura 115 -  Sensor NPN e PNP, forma de ligação e tipo de sinal de retorno..............................................98
Figura 116 -  Sensores NPN e PNP com resistor de definição de sinal para alta impedância.................99
Figura 117 -  Sensores NPN e PNP............................................................................................................................. 100
Figura 118 -  Dispositivos de acoplamento eletromecânicos a relé............................................................. 100
Figura 119 -  Sistema de sinaleiro e botoeiras cuja alimentação e comunicação é realizada por um
único cabo de dois fios condutores, usando comunicação digital serial em rede padrão AS-I......... 101
Figura 120 -  Sensor analógico................................................................................................................................... 102
Figura 121 -  Sensor eletrônico de temperatura.................................................................................................. 103
Figura 122 -  Princípio físico........................................................................................................................................ 103
Figura 123 -  Chaves mecânicas ................................................................................................................................ 104
Figura 124 -  Sensor óptico de reflexão, e suas partes emissora/receptora .............................................. 105
Figura 125 -  Sensor óptico por retrorreflexão com espelho refletor especial, usado como
barreira óptica para a deteção de objetos ........................................................................................................... 107
Figura 126 -  Sensor óptico por reflexão difusa .................................................................................................. 107
Figura 127 -  Sensores ópticos por transmissão .................................................................................................. 108
Figura 128 -  Sistema de sensor óptico por transmissão usando fibra óptica .......................................... 108
Figura 129 -  Cortina de luz ......................................................................................................................................... 109
Figura 130 -  Sensor de barreira óptica .................................................................................................................. 110
Figura 131 -  Sensor infravermelho........................................................................................................................... 111
Figura 132 -  Relés fotoelétricos e um resistor dependente de luz............................................................... 112
Figura 133 -  Sensor de visão...................................................................................................................................... 112
Figura 134 -  Sensor com ultrasom........................................................................................................................... 113
Figura 135 -  Equipamento aplicado à análise por ultrassom, permitindo identificar fissuras internas
no material através da análise da propagação do som através do material.............................................. 113
Figura 136 -  Sensores indutivos................................................................................................................................ 114
Figura 137 -  Aplicação de sensores indutivos................................................................................................... 115
Figura 138 -  Sensores capacitivos............................................................................................................................ 116
Figura 139 -  Sensores magnéticos........................................................................................................................... 116
Figura 140 -  Cilindro pneumático com êmbolo magnético........................................................................... 117
Figura 141 -  Circuito integrado sensor de efeito HALL A1101, da Allegro MicroSystems Inc........... 117
Figura 142 -  Sensor de pressão microcontrolado, de seu componente interno (sensor de pressão) e
do piezorresistor utilizado nesta última como elemento detector de pressão........................................ 118
Figura 143 -  Sensor de pressão do tipo pressostato de membrana............................................................ 118
Figura 144 -  Circuitos integrados acelerômetros................................................................................................ 119
Figura 145 -  Sensor industrial.................................................................................................................................... 119
Figura 146 -  Equipamentos que utilizam acelerômetros................................................................................. 119
Figura 147 -  Sensor strain-gage acoplado à célula de carga.......................................................................... 120
Figura 148 -  Modelo de posicionamento.............................................................................................................. 120
Figura 149 -  Strain-gage.............................................................................................................................................. 120
Figura 150 -  Sensores de turbinas............................................................................................................................ 120
Figura 151 -  Tubulação com ponto de estrangulamento................................................................................ 121
Figura 152 -  Representação de um sensor tipo pitot........................................................................................ 121
Figura 153 -  Rotâmetro................................................................................................................................................ 122
Figura 154 -  Gráfico da curva de sensores NTC e PTC genéricos.................................................................. 123
Figura 155 -  Voltímetro................................................................................................................................................ 124
Figura 156 -  Sonda com termopar........................................................................................................................... 126
Figura 157 -  Gráfico das curvas de termopares, entre temperatura e tensão gerada em milivolts.126
Figura 158 -  Imagem térmica de um motor elétrico em funcionamento................................................. 127
Figura 159 -  Sensor infravermelho para a medição de temperaturas........................................................ 127
Figura 160 -  Braço robótico........................................................................................................................................ 128
Figura 161 -  Encoders ópticos usados em suas articulações e seu princípio de funcionamento..... 128
Figura 162 -  Sensor de posição linear..................................................................................................................... 129
Figura 163 -  Encoders analógico potenciométrico............................................................................................ 130
Figura 164 -  Encoders absolutos óptico................................................................................................................ 130
Figura 165 -  Encoders incrementais ou relativos óptico.................................................................................. 131
Figura 166 -  Encoders incrementais........................................................................................................................ 131
Figura 167 -  Diagrama de funcionamento de um transdutor........................................................................ 133
Figura 168 -  Transdutor de corrente, usado para medir a corrente através do campo elétrico gerado
pelo condutor................................................................................................................................................................... 135
Figura 169 -  Esquema de um transdutor industrial de corrente................................................................ 135
Figura 170 -  Transdutores de posição tipo LVDT................................................................................................ 135
Figura 171 -  Transdutores de pressão..................................................................................................................... 136
Figura 172 -  Transdutor de força – célula de carga............................................................................................ 136
Figura 173 -  Conversor de 4 a 20mA para sinal de radiofrequência............................................................ 136
Figura 174 -  Comparação analógica e digital...................................................................................................... 139
Figura 175 -  Manômetro analógico (ponteiro).................................................................................................... 140
Figura 176 -  Manômetro digital................................................................................................................................ 140
Figura 177 -  Sistemas numéricos.............................................................................................................................. 141
Figura 178 -  Exemplo tabela verdade..................................................................................................................... 147
Figura 179 -  Portas Lógicas......................................................................................................................................... 150
Figura 180 -  Operadores da álgebra booleana.................................................................................................... 151
Figura 181 -  Mapas de Karnaugh para 5 e para 6 variáveis............................................................................. 159
Figura 182 -  Diagrama de um multiplexador....................................................................................................... 160
Figura 183 -  Multiplexador de 2 canais ................................................................................................................. 161
Figura 184 -  Multiplexador de quatro entradas a) Tabela verdade b) Circuito implementado......... 161
Figura 185 -  Multiplexador de 8 entradas - a) Tabela verdade b) Símbolo lógico c)
Diagrama lógico............................................................................................................................................................... 162
Figura 186 -  Portas lógicas utilizadas como circuitos de habilitação.......................................................... 163
Figura 187 -  Multiplexador quádruplo de 2 entradas 74xx157 a)Tabela verdade b) Símbolo lógico
c) Diagrama lógico.......................................................................................................................................................... 163
Figura 188 -  Diagrama de um demultiplexador ................................................................................................ 164
Figura 189 -  Demultiplexador de 2 canais............................................................................................................ 165
Figura 190 -  Projeto de um demultiplexador 1:4 a) Tabela verdade b) Expressões para as saídas c)
Circuito implementado................................................................................................................................................. 165
Figura 191 -  Demultiplexador 1:8 a) Tabela verdade b) Expressões para as saídas c) Diagrama
lógico................................................................................................................................................................................... 166
Figura 192 -  Circuito 74xx138, Decodificador/Demultiplexador configurado como demultiplexador
com a entrada de
habilitação funcionando como entrada de dados.............................................................................................. 167
Figura 193 -  Circuito 74xx154 configurado como demultiplexador 1:16 a) e b) Configurações para
funcionamento como demultiplexador 1:16 c) Diagrama lógico................................................................ 167
Figura 194 -  Decodificador/Demultiplexador 74xx155: a) Tabela verdade; b) Diagrama de conexões;
c) Diagrama lógico.......................................................................................................................................................... 168
Figura 195 -  Conversores DA e AD........................................................................................................................... 169
Figura 196 -  Conversão de um sinal analógico para digital............................................................................ 170
Figura 197 -  Conversor AD muito utilizado, o ADC0808.................................................................................. 172
Figura 198 -  Conversor D/A de 4 bits...................................................................................................................... 173
Figura 199 -  Diagrama esquemático de uma calculadora.............................................................................. 174
Figura 200 -  Código BCD (Binary Coded Decimal)............................................................................................. 176
Figura 201 -  Display de 7 segmentos...................................................................................................................... 176
Figura 202 -  Circuitos decodificadores................................................................................................................... 177
Figura 203 -  Decodificador 74xx138, diagrama lógico e tabela verdade em relação às entradas de
habilitação (enable)........................................................................................................................................................ 177
Figura 204 -  Esquema de ligação de um decodificador de 2 bits para controlar até 4
saídas, usadas em um motor de passo de 4 bobinas......................................................................................... 178
Figura 205 -  Diagrama geral de um codificador................................................................................................. 178
Figura 206 -  Painel de equipamento com chave seletora de 8 posições................................................... 179
Figura 207 -  CP usando 3 entradas digitais para ler sinal de 8 diferentes combinações possíveis.. 179
Figura 208 -  Codificador de 8 para 3 linhas.......................................................................................................... 180
Figura 209 -  Flip-flop RS a) implementação do circuito com portas NOR b) símbolo lógico............. 181
Figura 210 -  Flip-flop RS a) implementação do circuito com portas NAND b) símbolo lógico......... 182
Figura 211 -  Flip-flop RS síncrono a) implementação do circuito com portas lógicas b) símbolo
lógico................................................................................................................................................................................... 182
Figura 212 -  Implementação do circuito de um flip-flop JK com portas lógicas.................................... 183
Figura 213 -  Implementação do circuito de um flip-flop JK mestre-escravo........................................... 184
Figura 214 -  Símbolo lógico de um flip-flop JK mestre-escravo................................................................... 185
Figura 215 -  Flip-flop sensível à borda................................................................................................................... 185
Figura 216 -  Flip-flop JK mestre-escavo com entradas Preset e Clear a) implementação do circuito
com portas lógicas b) símbolo lógico..................................................................................................................... 186
Figura 217 -  Flip-flop tipo D a) implementação do circuito a partir de um flip-flop JK b) símbolo
lógico................................................................................................................................................................................... 186
Figura 218 -  Flip-flop tipo T a) implementação do circuito a partir de um flip-flop JK b) símbolo
lógico................................................................................................................................................................................... 187
Figura 219 -  Circuito com Flip-Flop J-K aplicado à configuração de Toggle. CI utilizado: 74xx73.... 187
Figura 220 -  Gráfico de Aplicações de microcontroladores PIC por família.............................................. 196
Figura 221 -  Encapsulamentos do microcontrolador PIC16F877A.............................................................. 198
Figura 222 -  Microcontrolador PIC16F877A I/P e seus principais pinos de alimentação, conexão e
I/O......................................................................................................................................................................................... 199
Figura 223 -  Microcontrolador PIC16f877A e alguns dos terminais de funções especiais.................. 201
Figura 224 -  Diagrama que demonstra o caminho percorrido por um programa, desde sua criação
até a gravação no microcontrolador de destino, e seu uso no equipamento.......................................... 202
Figura 225 -  Controlador multifunção.................................................................................................................... 203
Figura 226 -  DB25 femea porta paralela física..................................................................................................... 204
Figura 227 -  Fluxograma.............................................................................................................................................. 208
Figura 228 -  Janela de novo aquivo......................................................................................................................... 213
Figura 229 -  Tela “Salvar Como”, que aparece ao se iniciar um novo programa...................................... 213
Figura 230 -  Demonstrando a opção para compilação (pode ser obtida pela tecla de atalho F9).. 215
Figura 231 -  Demonstrando a compilação em processo................................................................................. 215
Figura 232 -  Hardware criado em um simulador de circuitos eletrônicos................................................. 217
Figura 233 -  Esquema Elétrico................................................................................................................................... 219
Figura 234 -  Comandos para acionamento das saídas digitais..................................................................... 224
Figura 235 -  Controle de motor de passo unipolar............................................................................................ 226
Figura 236 -  Comandos para leitura das saídas digitais 1............................................................................... 231
Figura 237 -  Tipos de dados complexos................................................................................................................. 236
Figura 238 -  Máquina de cálculo inadequada..................................................................................................... 244
Figura 239 -  Máquina de cálculo inadequada 1.................................................................................................. 244
Figura 240 -  Fluxograma.............................................................................................................................................. 246
Figura 241 -  Hardware.................................................................................................................................................. 251
Figura 242 -  Fluxo de execução em um programa com estruturas de repetição while....................... 253
Figura 243 -  Chamadas a funções/sub-rotinas.................................................................................................... 257
Figura 244 -  Esquema de ligação de um microcontrolador PIC16F877A.................................................. 260
Figura 245 -  Display alfanumérico........................................................................................................................... 265
Figura 246 -  LCD............................................................................................................................................................. 266
Figura 247 -  Uso com o LCD....................................................................................................................................... 267
Figura 248 -  Uso com o LCD 1.................................................................................................................................... 268
Figura 249 -  Uso com o LCD 2.................................................................................................................................... 270
Figura 250 -  Comunicação serial.............................................................................................................................. 270
Figura 251 -  Esquema de ligação de um MAX232 a um microcontrolador e uma porta serial padrão
DB9....................................................................................................................................................................................... 271
Figura 252 -  Pinos do PIC16F877A que podem ser configurados para conversão
analógica/digital.............................................................................................................................................................. 273
Figura 253 -  Potenciômetro de 10K conectado a um microcontrolador. Para facilitar entendimento,
demais ligações de alimentação e clock do microcontrolador foram suprimidas.................................. 274
Figura 254 -  Sensor de temperatura LM35DZ, de característica linear,
conectado diretamente ao canal AN0 de um microcontrolador................................................................... 275
Figura 255 -  Ligação de um LDR em um microcontrolador usando o canal AN1................................... 277
Figura 256 -  Ligação de um transistor a um motor............................................................................................ 278
Tabela 1: Diodos retificadores e suas principais características........................................................................31
Tabela 2: Principais modelos e valores comerciais.................................................................................................33
Tabela 3: Principais modelos de transistores NPN e PNP disponíveis.............................................................52
Tabela 4: Circuito A e B.................................................................................................................................................. 147
Tabela 5: Circuito A e B.................................................................................................................................................. 148
Tabela 6: Verdade para as expressões equivalentes: a) XY e b) X + Y ....................................................... 153
Tabela 7: Verdade para as expressões complementares a) XY e b) XY ........................................................ 154
Tabela 8: Função de duas variáveis.......................................................................................................................... 155
Tabela 9: Função de três variáveis............................................................................................................................ 155
Tabela 10: Função de quatro variáveis .................................................................................................................... 156
Tabela 11: Verdade considerando condições irrelevantes.............................................................................. 158
Tabela 12: Tabela verdade para o circuito.............................................................................................................. 165
Tabela 13: Código binário natural de 4 bits.......................................................................................................... 175
Tabela 14: Verdade de um codificador com entradas negadas...................................................................... 180
Tabela 15: Verdade para o flip-flop RS implementado com portas NOR.................................................... 181
Tabela 16: Verdade para o flip-flop RS implementado com portas NAND................................................. 182
Tabela 17: Verdade para o flip-flop síncrono......................................................................................................... 183
Tabela 18: Verdade para o flip-flop JK ..................................................................................................................... 184
Tabela 19: Verdade para o flip-flop RS Mestre-Escravo..................................................................................... 185
Tabela 20: Verdade para o flip-flop JK mestre-escravo com preset e clear ............................................... 186
Tabela 21: Verdade para o flip-flop tipo D ............................................................................................................. 187
Tabela 22: Verdade para o flip-flop tipo T .............................................................................................................. 188
Tabela 23: Modelos comerciais de flip-flop .......................................................................................................... 188
Tabela 24: Programa escrito em assembly, e a representação de instruções em linguagem binária.
Código binário tem caráter ilustrativo, podendo haver variações................................................................ 209
Tabela 25: Comando executado em linguagem C, e a produção (em código executável) gerada pela
instrução............................................................................................................................................................................. 210
Tabela 26: Tipos de dados para armazenar valores............................................................................................ 232
Tabela 27: Prefixo de declaração das variáveis..................................................................................................... 232
Tabela 28: Operadores................................................................................................................................................... 239
Tabela 29: Operadores avançados............................................................................................................................ 242

Quadro 1 - Principais portas lógicas......................................................................................................................... 149


Quadro 2 - Equivalência das portas lógicas........................................................................................................... 150
Quadro 3 - Universalidade das portas NAND e NOR.......................................................................................... 154
Quadro 4 - Execução de um algoritmo.................................................................................................................... 206
Quadro 5 - Especificadores de formato................................................................................................................... 269
Sumário

1  INTRODUÇÃO..................................................................................................................................................................19

2  ELETRÔNICA ANALÓGICA..........................................................................................................................................21
2.1 Diodos .............................................................................................................................................................24
2.1.1 Diodo retificador / diodo de sinal .......................................................................................30
2.1.2 Diodo zener..................................................................................................................................32
2.1.3 Diodo emissor de luz................................................................................................................35
2.1.4 Fotodiodo.....................................................................................................................................39
2.1.5 Varicap...........................................................................................................................................40
2.1.6 Diodo schottky............................................................................................................................41
2.1.7 Diodo túnel..................................................................................................................................41
2.1.8 Como testar um diodo.............................................................................................................41
2.1.9 Optoacopladores.......................................................................................................................42
2.2 Acionamentos a transistor........................................................................................................................44
2.2.1 Características e aplicações....................................................................................................46
2.2.2 Transistor bipolar ......................................................................................................................47
2.2.3 Transistor darlington.................................................................................................................58
2.2.4 Transistores de efeito de campo...........................................................................................58
2.2.5 Transistores CMOS.....................................................................................................................65
2.3 Tiristores..........................................................................................................................................................66
2.3.1 SCR..................................................................................................................................................68
2.3.2 DIAC................................................................................................................................................70
2.3.3 TRIAC...............................................................................................................................................70
2.4 Condicionamento de sinal........................................................................................................................71
2.4.1 Amplificador operacional ......................................................................................................74
2.4.2 Amplificador operacional como comparador.................................................................78
2.4.3 Amplificador operacional como somador........................................................................81
2.4.4 Amplificador operacional como subtrator.......................................................................81
2.5 Osciladores ....................................................................................................................................................83
2.5.1 Oscilador astável........................................................................................................................83
2.5.2 Oscilador monoestável............................................................................................................85
2.6 Filtros................................................................................................................................................................86
2.6.1 Filtro passivo................................................................................................................................86
2.6.2 Filtro ativo.....................................................................................................................................89
2.7 Fontes de alimentação...............................................................................................................................90
2.7.1 Fonte linear..................................................................................................................................92
2.7.2 Fonte simétrica...........................................................................................................................93
2.7.3 Fonte chaveada..........................................................................................................................94
3  SENSORES.........................................................................................................................................................................99
3.1 Sensores digitais........................................................................................................................................ 103
3.2 Sensores analógicos................................................................................................................................. 107
3.3 Princípio físico............................................................................................................................................ 110
3.4 Sensores eletromecânicos..................................................................................................................... 111
3.5 Sensores ópticos....................................................................................................................................... 111
3.5.1 Sensor óptico por retrorreflexão....................................................................................... 114
3.5.2 Sensor óptico por reflexão difusa..................................................................................... 114
3.5.3 Sensores ópticos por transmissão.................................................................................... 115
3.5.4 Sensores ópticos através de cabos de fibra óptica..................................................... 115
3.5.5 Sensor de barreira óptica de segurança......................................................................... 116
3.5.6 Sensores a laser....................................................................................................................... 117
3.5.7 Sensor infravermelho............................................................................................................ 118
3.5.8 Relés fotoelétricos.................................................................................................................. 118
3.5.9 Visão artificial............................................................................................................................ 119
3.6 Sensor de ultrassom................................................................................................................................. 119
3.7 Sensores indutivos................................................................................................................................... 121
3.8 Sensores capacitivos................................................................................................................................ 122
3.9 Sensores magnéticos............................................................................................................................... 124
3.10 Sensor de pressão.................................................................................................................................. 125
3.11 Sensores de aceleração........................................................................................................................ 126
3.12 Extensômetros e células de carga................................................................................................... 127
3.13 Sensores de vazão.................................................................................................................................. 128
3.14 Sensores de temperatura.................................................................................................................... 130
3.14.1 Tipos de termopares............................................................................................................ 132
3.14.2 Sensor infravemelho aplicado à medição de temperatura................................... 135
3.14.3 Termodinâmica aplicada à leitura de temperatura.................................................. 135
3.15 Sensores de posicionamento............................................................................................................. 136
3.15.1 Sensores de posição linear................................................................................................ 137
3.15.2 Encoders absolutos.............................................................................................................. 138
3.15.3 Encoders incrementais ou relativos............................................................................... 139
3.16 Transdutores / Conversores................................................................................................................ 142
3.16.1 Transdutores passivos......................................................................................................... 143
3.16.2 Transdutores ativos.............................................................................................................. 143
3.16.3 Transdutores industriais..................................................................................................... 144
3.16.4 Conversores de sinal............................................................................................................ 145

4  SISTEMAS DIGITAIS..................................................................................................................................................... 149


4.1 Vantagens das técnicas digitais........................................................................................................... 153
4.1.1 Limitações das técnicas digitais......................................................................................... 154
4.2 Circuitos combinacionais e sequenciais........................................................................................... 156
4.3 Circuitos lógicos........................................................................................................................................ 156
4.3.1 Noções de álgebra booleana.............................................................................................. 156
4.3.2 Tabela verdade......................................................................................................................... 157
4.3.3 Portas lógicas........................................................................................................................... 158
4.3.4 Operadores da álgebra booleana..................................................................................... 160
4.3.5 Teoremas e leis da álgebra booleana............................................................................... 161
4.3.6 Expressões equivalentes e complementares................................................................ 163
4.3.7 Universalidade das portas NAND e NOR........................................................................ 164
4.3.8. Simplificação de circuitos lógicos.................................................................................... 165
4.4 Circuitos multiplexadores e demultiplexadores............................................................................ 169
4.4.1 Circuitos multiplexadores.................................................................................................... 169
4.4.2 Circuitos demultiplexadores............................................................................................... 173
4.5 Conversores D/A e A/D........................................................................................................................... 177
4.5.1 Conversor A/D.......................................................................................................................... 180
4.5.2 Conversor D/A.......................................................................................................................... 181
4.6 Circuitos codificadores e decodificadores....................................................................................... 183
4.6.1 Códigos numéricos e alfanuméricos............................................................................... 183
4.6.2 Código BCD (Binary Coded Decimal)............................................................................... 184
4.6.3 Circuitos decodificadores..................................................................................................... 186
4.6.4 Circuitos codificadores.......................................................................................................... 188
4.7 Flip-flop (multivibrador biestável)...................................................................................................... 189
4.7.1 Flip-flop RS (“reset-set”)........................................................................................................ 190
4.7.2 Flip-flop RS síncrono.............................................................................................................. 191
4.7.3 Flip-flop JK................................................................................................................................. 192
4.7.4 Flip-flop JK mestre-escravo (master-slave).................................................................... 193
4.7.5 Flip-flop JK mestre-escravo com preset e clear........................................................... 195
4.7.6 Flip-flop D.................................................................................................................................. 195
4.7.7 Flip-flop Tipo T......................................................................................................................... 196
4.7.8 Modelos comerciais de flip-flop........................................................................................ 197

5  MICROCONTROLADORES........................................................................................................................................ 201
5.1 Sistemas embarcados na automação industrial............................................................................ 201
5.1.1 Microprocessadores na Automação Industrial............................................................. 202
5.2 Microcontrolador...................................................................................................................................... 204
5.3 Microcontrolador MICROCHIP PIC...................................................................................................... 206
5.3.1 Recursos de um microcontrolador PIC............................................................................ 208
5.4 Arquivos executáveis para microcontrolador................................................................................. 213
5.5 Transferindo o programa........................................................................................................................ 214
5.5.1 BOOTLOADER – Técnica para autoprogramação......................................................... 216
5.6 Algoritmos................................................................................................................................................... 217
5.7 Fluxograma................................................................................................................................................. 220
5.8 Compilador................................................................................................................................................. 221
5.8.1 Erros de compilação............................................................................................................... 224
5.9 Linguagem C.............................................................................................................................................. 224
5.9.1 Criação de um programa..................................................................................................... 225
5.9.2 Como compilar........................................................................................................................ 227
5.9.3 Transferindo o programa HEX............................................................................................ 230
5.9.4 Laço infinito.............................................................................................................................. 231
5.9.5 Cuidados com pontuação e alinhamento...................................................................... 233
5.9.6 Comandos para acionamento das saídas digitais....................................................... 236
5.9.7 Comandos para leitura das Entradas digitais............................................................... 239
5.9.8 Tipos de dados......................................................................................................................... 241
5.9.9 Nome das variáveis................................................................................................................ 246
5.9.10 Local da declaração de variáveis..................................................................................... 246
5.9.11 Tipos de dados complexos................................................................................................ 248
5.9.12 Operadores............................................................................................................................. 250
5.9.13 Paradigmas de programação........................................................................................... 257
5.9.14 Estruturas de controle de fluxo....................................................................................... 258
5.9.15 GOTO (vá para...)................................................................................................................... 259
5.9.16 IF (condição se...)................................................................................................................... 260
5.9.17 SWITCH / CASE (escolha).................................................................................................... 262
5.9.18 WHILE – Estrutura de repetição....................................................................................... 265
5.9.19 DO – WHILE (faça/enquanto)........................................................................................... 267
5.9.20 FOR (para)................................................................................................................................ 267
5.9.21 Chamadas a funções / sub-rotinas................................................................................. 269
5.9.22 Passagem de parâmetros.................................................................................................. 271
5.9.23 Passagem de parâmetros por referência..................................................................... 275
5.9.24 Retorno de dados................................................................................................................. 276
5.9.25 Uso de display alfanumérico............................................................................................ 276
5.9.26 PRINTF...................................................................................................................................... 279
5.9.27 Comunicação serial.............................................................................................................. 282
5.9.28 ADC – Conversão analógica/digital............................................................................... 285
5.9.29 PWM.......................................................................................................................................... 290

REFERÊNCIAS.................................................................................................................................................................... 295

MINICURRÍCULO DO AUTOR........................................................................................................................................ 298

ÍNDICE.................................................................................................................................................................................. 299
INTRODUÇÃO

A Unidade Curricular Processamento de Sinais compõe o Módulo Introdutório comum aos


Cursos de Habilitação Profissional da Área de Automação e Mecatrônica Industrial.
O Curso Técnico em Mecatrônica tem o objetivo de formar Técnicos em Mecatrônica com
sólidos conhecimentos para atuar no desenvolvimento de sistemas automatizados de manufatura
e na implementação e manutenção de máquinas e equipamentos automatizados, respeitando
procedimentos e normas técnicas, bem como normas de qualidade, de saúde, de segurança e de
meio ambiente.
Esta unidade curricular tem o objetivo de familiarizar o aluno com o processamento de sinais
eletrônicos em sistemas automatizados. Desse modo, trabalharemos com os conhecimentos relativos
à eletrônica analógica e digital, a microcontroladores e a sensores. Analisaremos o funcionamento
de dispositivos sensores aplicáveis em sistemas automatizados. Estudaremos as características dos
sistemas digitais e identificaremos a aplicabilidade dos fundamentos de eletrônica digital relativos
aos sistemas automatizados. Concluiremos, com o estudo dos microcontroladores e a identificação
da aplicabilidade dos fundamentos de programação de microcontroladores relativos aos sistemas
automatizados.
ELETRÔNICA ANALÓGICA

Eletricidade é o fenômeno físico que tem origem na movimentação dos elétrons. Estudar
eletricidade significa estudar as grandezas relacionadas a esta movimentação, como corrente,
tensão e resistência elétrica.
Eletrônica, por sua vez, é a ciência que estuda a forma de controlar a energia elétrica, ou
seja, de que forma podemos condicionar a movimentação dos elétrons em um circuito para
obter o efeito desejado.
Por várias décadas, o homem tem usado a energia elétrica com o objetivo de transformá-
la em outras formas de energia, a fim de produzir um efeito específico, como, por exemplo,
produzir luz, movimentar um motor elétrico, aquecer ou resfriar algo, gerar vibração e
transformações físicas e químicas. A energia elétrica deve ser controlada para que sua
transformação seja possível.
Controlar esta energia é o objetivo da ciência conhecida como eletrônica.
Na Eletrônica Analógica estudamos as formas mais abrangentes de controle da
energia elétrica. Dedicamo-nos ao estudo de comportamentos de campos elétricos,
materiais condutores e semicondutores e sua aplicação no controle do fluxo de elétrons,
para obter o resultado esperado da forma mais eficiente possível. Embora o conceito de
Eletrônica Analógica seja bastante abrangente, neste material vamos utilizar uma visão
mais voltada ao seu uso na Mecatrônica, estudando os principais componentes utilizados
em circuitos eletrônicos básicos presentes na área. Tais componentes são utilizados em
máquinas e equipamentos para realizar o controle dos elétrons e obter o efeito desejado,
geralmente relacionado à transformação da energia elétrica em outros tipos de energia
(térmica, cinética, magnética etc.). Além dos já estudados resistores e capacitores, existem
indutores, transformadores, relés, e ainda diversos componentes semicondutores, como
diodos, transistores e circuitos integrados, entre outros.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
22

Durante este curso, vamos procurar estudar os principais componentes utilizados em circuitos eletrônicos
(FIGURA 1) relacionados à área de Mecatrônica. Para isso precisamos rever os conceitos já estudados sobre
eletricidade. Sendo assim, vamos fazer uma breve recapitulação desses conteúdos.

Chave

Transistor
Capacitor
Capacitor
Relés
Circuitos integrados
Resistores
Chave táctil
Conectores
Diodos emissores de luz (LED)

Figura 1 -  Circuito
Fonte: SENAI-RS

A seguir, veja os principais conceitos de eletricidade.


Tensão Elétrica
Grandeza representada pelas letras E, U ou V, tem como unidade de medida o volt (V). Ela representa a
diferença de potencial elétrico entre dois pontos. Por exemplo, para medir a tensão de uma bateria, precisamos
medir a tensão entre os dois polos da mesma bateria. Tensão define a força capaz de movimentar cargas elétricas
de um ponto a outro. Para ficar mais claro, podemos imaginar a tensão como a “pressão que os elétrons exercem
para ir de um ponto a outro”(FIGURA 2).

VOCÊ Em condições normais de temperatura e pressão, uma tensão de 1.000V pode romper
a rigidez dielétrica de 1 mm de ar, criando uma “faísca” entre dois pontos. Chamamos
SABIA? essa faísca de “arco elétrico” ou “arco voltáico”.

Figura 2 -  Raio - Tensão


Fonte: SENAI-RS
2 ELETRÔNICA ANALÓGICA
23

Resistência Elétrica
Grandeza representada pela letra R, tem como unidade de medida o ohm (Ω). É a capacidade dos
materiais em se opor à passagem de corrente elétrica. Quanto maior a resistência, mais difícil para as cargas
se deslocarem pelo corpo. Além de oferecerem diferentes resistências entre si, alguns materiais ainda variam
a resistência quando submetidos a variações de temperatura e pressão. A adição de alguns elementos em
uma solução ou na composição de um determinado material também pode alterar significativamente sua
capacidade condutiva. Graças a esta diversidade de comportamentos que os materiais apresentam ao serem
submetidos a uma tensão elétrica, a eletrônica evoluiu.
Corrente Elétrica
Grandeza representada pela letra I, tem como unidade de medida o Ampère (A). Ela define o movimento
ordenado de cargas elétricas em uma determinada direção em um determinado período de tempo. Quanto
mais elétrons se deslocarem de um ponto a outro e período de tempo, maior a corrente. Segundo a lei de
Ohm, existe uma relação diretamente proporcional entre corrente e tensão, e inversamente proporcional
entre corrente e resistência, que é dada pela fórmula: I = U / R. Quanto maior a tensão, maior a corrente, e
quanto maior a resistência por onde a eletricidade passa, menor a corrente.

Uma das grandes variantes que determina a fatalidade de um choque elétrico não é dada
FIQUE pela TENSÃO, mas pela CORRENTE. Como a corrente é determinada pela resistência do cor-
po em um choque elétrico, uma pessoa desprotegida, sem luvas isolantes e usando ferra-
ALERTA mentas inadequadas, pode ser submetida a uma corrente muito mais elevada do que um
trabalhador usando EPIs adequados em uma linha de alta-tensão energizada.

Corrente Contínua
Refere-se a uma corrente que tem sempre o mesmo sentido. Nos acumuladores de energia (como
baterias e capacitores) temos dois polos que sempre possuem a mesma polaridade (+ e -) e oferecem
uma diferença de potencial específica. Se ligarmos esta fonte de energia em uma carga, teremos a energia
sempre fluindo em uma mesma direção.
A seguir, veja a Imagem de uma bateria e de um gráfico mostrando que a corrente se mantém constante
durante o tempo (FIGURA 3).

Corrente tem um único sentido


Corrente elétrica(A)

+
Carga

Tempo
-
Figura 3 -  Corrente contínua
Fonte: SENAI-RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
24

Corrente Alternada
Como o nome já diz, neste tipo de corrente o sentido da carga varia, alternando várias vezes por segundo.
Esta quantidade de variações (frequência) é medida em ciclos por segundo, usando-se a unidade de medida
Hz (Hertz). No Brasil, a rede elétrica é disponibilizada em 60Hz (proveniente de sistemas de geração e
transmissão), enquanto em alguns outros países, como o Paraguai, a rede elétrica é 50Hz (FIGURA 4).

Corrente mude de
sentido periodicamente
elétrica (A)
Corrente

F +/-

Carga
Tempo N

Figura 4 -  Corrente alternada


Fonte: SENAI-RS

O Paraguai vende ao Brasil a energia elétrica excedente gerada por sua parte da hi-
VOCÊ droelétrica de Itaipú, onde a corrente alternada de 50Hz proveniente das turbinas
SABIA? geradoras paraguaias é convertida para corrente contínua, e posteriormente volta a
ser transformada em corrente alternada de 60Hz.

Em um sistema de corrente alternada monofásico (maioria das tomadas elétricas residenciais) sempre
há ao menos um condutor que possui tensão positiva e negativa (oscilando várias vezes por segundo), e
um sistema condutor de referência, chamado de NEUTRO. Em alguns casos, deve haver ainda um terminal
de equipotencialização, que conhecemos como “terra”.

2.1 DIODOS
Os diodos são componentes geralmente usados com o intuito de definir a movimentação dos elétrons
em um circuito. Em alguns casos também são usados com o objetivo de transformar energia elétrica em
ondas eletromagnéticas. São produzidos por meio de semicondutores, materiais que reagem de forma
diferente e controlada à passagem da corrente elétrica (FIGURA 5 e FIGURA 6).

(A) (K)

Figura 5 -  Símbolo do diodo Figura 6 -  LED (diodo emissor de luz)


Fonte: SENAI-RS Fonte: SENAI-RS
2 ELETRÔNICA ANALÓGICA
25

Para que servem os diodos?

Em alguns circuitos são usados para fazer que a corrente ter um sentido único, funcionando
como uma “válvula unidirecional”, deixando os elétrons passarem somente em um sentido. Neste
caso, imagine a válvula de enchimento do pneu de um automóvel, também conhecida como válvula
Schrader. Quando em perfeito funcionamento, ela permite que o ar entre no pneu, mas não permite
que saia, senão o pneu perderia pressão. Da mesma forma, o diodo pode ser utilizado para criar um
caminho de “mão única” aos elétrons, impedindo que voltem pelo circuito. Isso pode ser observado
em circuitos retificadores, que são circuitos utilizados para converter a corrente alternada em corrente
contínua (FIGURA 7).

- +

+ -

Figura 7 -  Diodo retificador


Fonte: SENAI-RS

O diodo também pode ser utilizado para proteger circuitos contra sobretensão ou, ainda, contra a
polarização invertida de circuitos e componentes. Na imagem abaixo, um circuito é protegido por um diodo
em série com a alimentação, impedindo que haja corrente se o sistema for polarizado incorretamente. Isso
é muito útil em equipamentos eletrônicos onde uma bateria ou o conector de alimentação DC possa ser
instalado acidentalmente de forma invertida. Neste caso, sem a proteção oferecida por um diodo, o circuito
energizado poderia fazer com que alguns componentes fossem incorretamente polarizados, o que leva o
danos permanentes e à inutilização do circuito (FIGURA 8).

+
+ - ? CIRCUITO
- +? -
BATERIA

Figura 8 -  Diodo em série na alimentação de um circuito eletrônico


Fonte: SENAI-RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
26

Outra aplicação bastante comum de diodos é em circuitos para proteger contra transientes de tensão
(também conhecidos como picos de tensão ou surtos de tensão). Estes transientes ocorrem quando uma
corrente elétrica é bruscamente interrompida, causando grande elevação de tensão (em um curto espaço de
tempo). Diodos supressores de tensão são ligados em um circuito comumente conhecido pelos termos de
“freewheeling” ou, ainda, “roda-livre”, eliminando ou minimizando os efeitos deste “pico” de tensão (FIGURA 9).

V+

DIODO

RELÉ
Figura 9 -  Diodo de proteção contra transientes de tensão
Fonte: SENAI-RS
TRANSISTOR
RESISTOR
Na imagem acima, quando o transistor (que será estudado em breve) é comutado para estado
de condução, a corrente elétrica passa por ele, energizando a bobina do relé. Quando o transistor é
GND
desligado o fluxo de elétrons é bruscamente interrompido. A bobina do relé, devido a suas características
construtivas, possui uma acentuada propriedade de indutância, que faz o componente tentar manter o
fluxo eletromagnético, elevando a tensão várias vezes. Isso pode danificar componentes se não houver
uma região de “escape” para esta energia. A função do diodo nesse circuito é fazer com que estes elétrons
fiquem circulando pelo componente, dissipando a energia de forma graduada e controlada, sem haver o
surto de tensão no transistor, protegendo-o e aumentando sua vida útil.
Outra aplicação dos diodos é no controle de tensão, pois, devido a características relativas aos materiais e à
forma da construção, diodos podem ser utilizados para realizar uma queda controlada de tensão, e são úteis em
circuitos reguladores por apresentarem um comportamento bastante estável e previsível. Veremos mais sobre
isso ao falar sobre diferença de potencial de junção e sobre efeito zener.
Alguns tipos de diodos são construídos de forma a gerarem luz em suas junções, algumas vezes de
forma bastante intensa, como nos diodos laser, e em outros casos em luz visível ou invisível, com excelente
eficiência. Esse é o caso dos diodos emissores de luz, também conhecidos por LEDs.

Em uma televisão ou monitor de vídeo de tecnologia LED a luz tem origem em uma
VOCÊ grande matriz de LEDs, dispostos em linhas e colunas, que iluminam o fundo de acor-
SABIA? do com a imagem. Uma tela de cristal líquido posicionada entre o espectador e os
LEDs determina, por meio de milhões de pequenos pontos, por onde a luz deve passar,
compondo, assim, a imagem que vemos.

Existem ainda aplicações relacionadas à velocidade de alguns tipos de diodos especiais, que faz com que o
componente seja ideal para os ciclos bastante rápidos, típico de circuitos utilizados em telecomunicações, como
nos aplicados em radiofrequência.
Podemos afirmar que os diodos são componentes constituídos de semicondutores bastante utilizados
em circuitos eletrônicos, e que podem auxiliar no controle de tensão, no sentido da corrente, na proteção
de circuitos, e até mesmo na geração e detecção de luz.
2 ELETRÔNICA ANALÓGICA
27

Mas como o diodo é construído? De que eles são feitos?


Todo diodo é constituído de uma junção envolvendo dois tipos de material semicondutor (FIGURA 10).

ANODO CATODO
+ -
P N
+ -

Figura 10 -  Interior de um diodo, a junção PN (anodo e catodo)


Fonte: SENAI - RS

Material semicondutor, como o nome já sugere, é um material que possui propriedades de condutividade
intermediárias, não sendo nem condutor e nem isolante. Um material semicondutor é composto de
estruturas cristalinas com adição de elementos específicos e devido a composições diferentes, pode
apresentar reações diferentes. O processo de adição de elementos para criar estes compostos envolvendo
material semicondutor é chamado de dopagem. Genericamente, os semicondutores podem ser divididos
em tipo P e tipo N. Um diodo é justamente a junção de um condutor de tipo P e outro de tipo N, conhecida
como junção PN. Devido a variações realizadas no processo de dopagem, a junção pode apresentar
variações de comportamento.

VOCÊ O nome diodo vem da junção de ”DI” (que significa duplo) com ELETRODO.
SABIA?

Portanto, um diodo possui suas características definidas pelo tipo dos semicondutores usados na
junção PN e a forma com que são propositadamente contaminados com outros elementos no processo de
dopagem. O nome junção PN se deve ao fato de a junção ser feita usando dois materiais, sendo um com
lacunas elétricas (P - positivo) e outro com elétrons que sobram (N - negativo).
Explicando melhor, nos semicondutores tipo P e tipo N existem desequilíbrios relativos à quantidade
de elétrons em suas ligações químicas. No caso do semicondutor tipo N existem elétrons sobrando, e no
do semicondutor tipo P existem elétrons faltando. Nestas “vagas” para elétrons nas ligações químicas do
semicondutor P chamamos de lacunas.
Quando submetemos o terminal de tipo P de um diodo (anodo) a uma tensão positiva, e ou terminal tipo
N (catodo) a uma tensão negativa, temos a chamada polarização direta. Como cargas iguais se repelem e
cargas opostas se atraem, a junção faz com que os elétrons fluam no circuito, havendo corrente elétrica.
Já quando submetemos o terminal de tipo P de um diodo (anodo) a uma tensão negativa, e o terminal
do tipo N (catodo) a uma tensão positiva, temos a polarização reversa e, nesse caso, as cargas iguais criam
uma área de repulsão na junção, o que faz com que o material se comporte como isolante, em decorrência,
não há corrente significativa no circuito.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
28

Portanto, em um sentido da corrente o diodo convencional se comporta como condutor, e em outro, se


comporta como isolante (FIGURA 11 e FIGURA 12).

CATODO ANODO ANODO CATODO


+ -
- +
N P P N
- + + -

+
+

CARGA
CARGA

alcalina
DC DC

1,5V - AA
1,5V - AA
alcalina

A A

, ,
POWER PK HOLD B/L DC / AC
POWER PK HOLD B/L DC / AC

AUTO POWER OFF


AUTO POWER OFF

-
-
+
+
-
-
CAT ll
CAT ll

20A mA COM VΩHz


20A mA COM VΩHz

INVERSAMENTE POLARIZADO DIRETAMENTE POLARIZADO

Figura 11 -  Diodo inversamente polarizado Figura 12 -  Diodo diretamente polarizado


Fonte: SENAI - RS Fonte: SENAI - RS

Nas figuras acima observa-se um diodo diretamente polarizado em um circuito alimentado por uma
bateria. Nesse caso, as cargas positivas (lacunas) no material P são repelidas para próximo do material N
da junção, e os elétrons do material N também são repelidos pela tensão negativa proveniente da bateria
para contra o material P. Com as lacunas e elétrons sendo repelidos uma de encontro a outra, os elétrons
preenchem as lacunas, havendo passagem de corrente elétrica (FIGURA 13).

ANODO CATODO

+ + + + + + + +++- --- - - - - - - - -
-
+
++P+ -N -
+ + -- -

Figura 13 -  Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de fluxo de elétrons
Fonte: SENAI - RS

Neste caso, devido às características da junção, uma pequena queda de tensão é observada, podendo
variar conforme as características do semicondutor. Em diodos convencionais de silício, a queda de tensão
é de aproximadamente 0,7V, e em diodos de germânio é de 0,3V. Chamamos esta queda de tensão de
diferença de potencial de junção.
Quando o diodo é inversamente polarizado, os elétrons do polo negativo da bateria atraem as lacunas da
junção, e o circuito proveniente do polo positivo da bateria atrai os elétrons da junção, criando uma zona de
afastamento entre as cargas elétricas positivas e negativas (elétrons e lacunas). Isso faz com que a corrente
elétrica encontre dificuldades em passar pela junção, assumindo um comportamento isolante (FIGURA 14).

ANODO CATODO

- - - - - - - -+
+
+
P
++
-- + + + + + + + + +
N-
-- +
Figura 14 -  Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de repulsão na junção,
interrompendo o fluxo de elétrons
Fonte: SENAI - RS
2 ELETRÔNICA ANALÓGICA
29

Embora um diodo convencional se comporte como um material não condutor quando inversamente
polarizado, propriedades da junção podem permitir uma pequena passagem de corrente elétrica.
Dependendo da forma com que a junção foi construída, esta corrente pode ser proposital (caso do diodo
zener, por exemplo) ou pode ser indesejada (corrente de fuga em um diodo retificador).

O diodo 1N4007 é um diodo retificador bastante comum, utilizado em diversas aplica-


SAIBA ções. Pesquise na internet pelo termo “datasheet 1n4007” e tente encontrar o material
MAIS de alguns fabricantes deste diodo, descobrindo qual corrente e tensão reversa máximas
são suportadas.

Algumas características podem variar de diodo para diodo, mudando também seu comportamento
e sua aplicação. Conforme essa relação de aplicação e comportamento, podemos enumerar os diodos
conforme a lista a seguir:
a) diodo retificador ou diodo de sinal;
b) diodo zener;
c) diodo emissor de luz (led);
d) fotodiodo;
e) varicap;
f ) diodo schottky;
g) diodo túnel.
Vamos discorrer um pouco sobre os diodos mais utilizados e suas principais aplicações.

2.2.1 DIODO RETIFICADOR / DIODO DE SINAL

É o diodo com o objetivo de permitir a passagem da corrente elétrica somente em um sentido (FIGURA 15).

(A) (K)

Figura 15 -  Símbolo do diodo retificador, segundo norma IEEE 315


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
30

Os diodos retificadores são comumente empregados em circuitos que convertem a Corrente Alternada
em Corrente Contínua. Dado o fato de ter como principal funcionalidade impedir que haja corrente em um
dos sentidos do circuito, o diodo retificador pode ser utilizado sozinho ou combinado a outros diodos em
circuitos conhecidos como “pontes retificadoras”, para limitar o “vai e volta” de elétrons existentes na rede
de corrente alternada. Nestes circuitos, a corrente alternada (hora positiva, hora negativa) é transformada
em corrente contínua (pulsos somente positivos), conforme Figura 16.
DIODOS
~ ~ RETIFICADORES
Corrente - + +
alternada Corrente
~
~ FILTRO contínua
-

Figura 16 -  Conversor de corrente alternada para corrente contínua, com retificador de onda completa
Fonte: SENAI - RS

Na Figura 16, notamos a presença de quatro diodos retificadores ligados em uma espécie de losângulo,
sendo que dois vértices possuem um anodo e um catodo cada, e dois vértices possuem somente anodo ou
somente catodo. Nos vértices que possuem anodo e catodo, é ligada a entrada de CA (Corrente Alternada),
lembrando que em CA existe a variação da tensão de positiva para negativa várias vezes por segundo.
Quando a tensão for positiva, ela escolhe a passagem pelo diodo cujo anodo esteja conectado, e quando
for negativa, a corrente passará pelo diodo cujo catodo esteja conectado. Dessa forma, nos vértices que
possuem os dois anodos, haverá sempre tensão positiva, e nos vértices com catodos, haverá sempre tensão
negativa (FIGURA 17).
V DIODOS
+ ~ ~ RETIFICADORES V
Corrente - +
+
corrente

+
sentido

- alternada Corrente
~
~ contínua -
-
V DIODOS
+ ~ ~ RETIFICADORES V
Corrente - +
corrente

+ +
sentido

- alternada Corrente
~
~ contínua -
-
Figura 17 -  Ponte retificadora e seus diodos convertendo corrente contínua em corrente alternada
Fonte: SENAI - RS

Devemos observar que, na saída deste tipo de circuito retificador, a tensão na saída tem sempre o mesmo
sentido, porém ainda está “pulsando” em ondas que refletem a variação de tensão da entrada CA. Para
evitar estes pulsos e estabilizar a tensão, utilizamos outros tipos de circuito como filtros e estabilizadores de
tensão. Devido a características estáveis em relação à queda de tensão de alguns diodos, muitos circuitos
para estabilizar a tensão são construídos com diodos especiais, conhecidos como diodos zener.
Alguns diodos possuem uma resposta mais rápida e menor custo, porém trabalham com correntes
menores. Estes diodos são aplicados em circuitos de baixa potência e geralmente em condicionamento de
sinal elétrico proveniente de sensores. Neste caso, chamamos de diodo de sinal, embora seu comportamento
seja similar ao dos diodos retificadores.
2 ELETRÔNICA ANALÓGICA
31

Na Tabela 1 apresentamos alguns diodos retificadores e suas principais características.


Tabela 1: Diodos retificadores e suas principais características

DIFERENCIAL
ENCAPSU- NOME(CÓDIGO) TENSÃO CORRENTE CORRENTE
DE POTENCIAL
LAMENTO DO DIODO REVERSA (V) DIRETA DE PICO
DE JUNÇÃO

1N4001 50 1A 50A < 1.1V


1N4002 100
1N4003 200
SOD - 18 1N4004 400
1N4005 600
1N4006 800
1N4007 1000
1N5400 50 3A 200A < 1.2V
1N5401 100
1N5402 200
1N5403 300
1N5404 400
1N5405 500
DO-04 1N5406 600
1N5407 800
1N5408 1000
1N3879 50 6A 75A < 1.4V
1N3881 200
1N3882 300
1N3883 400
BY126 650 1,75A 50A < 1.5V
SOD-18
BY127 1250

Fonte: SENAI - RS

Na tabela de diodos retificadores comerciais observamos as informações de encapsulamento (forma


com que o componente é fisicamente disponibilizado), Nome/código do componente, tensão reversa
máxima suportada pelo componente, corrente direta máxima, corrente de pico (suportada por um curto
espaço de tempo) e queda de tensão máxima efetuada pelo diodo.

2.1.2 DIODO ZENER


É um diodo que apresenta um comportamento similar a um diodo convencional quando diretamente
polarizado, mas que, ao ser inversamente polarizado, demonstra um comportamento particular. Após uma
determinada tensão limite na polarização reversa, o diodo zener permite a passagem de corrente devido a
uma propriedade conhecida como efeito zener (FIGURA 18).

Figura 18 -  Símbolo de diodo zener, segundo norma IEEE315, e diodo zener


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
32

Em um diodo convencional, ao ultrapassarmos a tensão reversa limite, a junção é danificada. Já em um


diodo zener, podemos obter o chamado “efeito avalanche”, sem causar dano ao componente.

VOCÊ o diodo zener tem esse nome devido a Clarence Zener, que descobriu esta propriedade elétrica
SABIA?

Quando um diodo zener é reversamente polarizado até uma tensão específica (Vz), a corrente é
praticamente nula, mas ao atingir esta tensão o diodo passa a permitir passagem de corrente (FIGURA 19).

(+) 3V (+) 6V (+) 12V


_ _ _
0.00 +8.77 +65.4
+

+
+

Amps Amps Amps

+ + +

+3.00 D1 +5.12 D1 +5.46 D1


Volts Volts
1N5231B Volts
1N5231B 1N5231B
- - -

+ + +

0.00
R1 R1 +6.54
R1
+0.88
Volts 100 Volts 100 Volts 100
- - -

Figura 19 -  Circuito
Fonte: SENAI - RS

No circuito representado na Figura 19, estão ligados em série um diodo zener reversamente
polarizado, e uma carga representada pelo resistor de 100 Ω. Este circuito foi conectado a dois
voltímetros: um mede a queda de tensão sobre o diodo, e outro sobre a carga, além de um
amperímetro que mede a corrente do circuito em mA (miliampères).
O diodo escolhido é de tensão zener (Vz) com valor 5.1V.
Com a resistência do circuito constante, e a tensão de alimentação variando de 6V para 12V, observa-se
uma grande mudança na corrente do circuito, porém uma pequena mudança na queda de tensão realizada
pelo diodo zener.
Abaixo da tensão Vz do diodo (5.1V), o diodo não permite a passagem de corrente.
Simplificando: um diodo de tensão Vz 5.1V, quando polarizado inversamente, só permite que haja
corrente no circuito se a tensão aplicada for igual ou superior a 5.1V.
Devido a essa característica, o diodo zener acaba tendo sua principal aplicação em circuitos de
controle de tensão, também conhecidos como estabilizadores de tensão.
2 ELETRÔNICA ANALÓGICA
33

É muito comum circuitos que precisam garantir uma tensão específica utilizarem este tipo de diodo para
criar um referencial de tensão estável (FIGURA 20).

v+
Ressistor
limitador de
corrente
3,3V
(1N746)
diodo zener
Vz = 3,3V
0V 0V

Figura 20 -  Diodo 1N746


Fonte: SENAI - RS

Na Figura 20 observamos o diodo 1N746 (com Vz 3,3V) sendo utilizado para estabilizar uma saída de
tensão em 3,3V para uso em um circuito.
Existem vários tipos de diodo zener disponíveis comercialmente e na maioria dos casos são categorizados
em relação à corrente e à tensão Vz. Segue na Tabela 2 os principais modelos e valores comerciais.

Tabela 2: Principais modelos e valores comerciais


CÓD. TENSÃO WATTS CÓD. TENSÃO WATTS CÓD. TENSÃO WATTS
1N746 3,3 0,4 1N5227 3,6 0,5 1N4751 30 1W
1N747 3,6 0,4 1N5228 3,9 0,5 1N4752 33 1W
1N748 3,9 0,4 1N5229 4,3 0,5 1N4753 36 1W
1N749 4,3 0,4 1N5230 4,7 0,5 1N4754 39 1W
1N750 4,7 0,4 1N5231 5,1 0,5 1N4755 43 1W
1N751 5,1 0,4 1N5232 5,6 0,5 1N4756 47 1W
1N752 5,6 0,4 1N5234 6,2 0,5 1N4757 51 1W
1N753 6,2 0,4 1N5235 6,8 0,5 1N4758 56 1W
1N754 6,8 0,4 1N5236 7,5 0,5 1N4759 62 1W
1N755 7,5 0,4 1N5237 8,2 0,5 1N4760 68 1W
1N756 8,2 0,4 1N5239 9,1 0,5 1N4761 75 1W
1N757 9,1 0,4 1N5240 10 0,5 1N4762 82 1W
1N758 10 0,4 1N5242 12 0,5 1N4763 91 1W
1N759 12 0,4 1N5245 15 0,5 1N4764 100 1W
1N957 6,8 0,4 1N5246 16 0,5 1N5333 3,3 5W
1N958 7,5 0,4 1N5248 18 0,5 1N5334 3,6 5W
1N959 8,2 0,4 1N5250 20 0,5 1N5335 3,9 5W
1N960 9,1 0,4 1N5251 22 0,5 1N5336 4,3 5W
1N961 10 0,4 1N5252 24 0,5 1N5337 4,7 5W
1N962 11 0,4 1N5254 27 0,5 1N5338 5,1 5W
1N963 12 0,4 1N5256 30 0,5 1N5339 5,6 5W
1N964 13 0,4 1N5257 33 0,5 1N5340 6,0 5W
1N965 15 0,4 1N5258 36 0,5 1N5341 6,2 5W

(Continua)
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
34

(Conclusão)
1N966 16 0,4 1N5259 39 0,5 1N5342 6,8 5W
1N967 18 0,4 1N5260 43 0,5 1N5343 7,5 5W
1N968 20 0,4 1N5261 47 0,5 1N5344 8,2 5W
1N969 22 0,4 1N5262 51 0,5 1N5345 8,7 5W
1N970 24 0,4 1N5263 56 0,5 1N5346 9,1 5W
1N971 27 0,4 1N5265 62 0,5 1N5347 10 5W
1N972 30 0,4 1N5266 68 0,5 1N5348 11 5W
1N973 33 0,4 1N5267 75 0,5 1N5349 12 5W
1N974 36 0,4 1N5268 82 0,5 1N5350 13 5W
1N975 39 0,4 1N5270 91 0,5 1N5351 14 5W
1N976 43 0,4 1N5271 100 0,5 1N5352 15 5W
1N977 47 0,4 1N4728 3,3 1W 1N5353 16 5W
1N978 51 0,4 1N4729 3,6 1W 1N5354 17 5W
1N979 56 0,4 1N4730 3,9 1W 1N5355 18 5W
1N980 62 0,4 1N4731 4,3 1W 1N5356 19 5W
1N981 68 0,4 1N4732 4,7 1W 1N5357 20 5W
1N982 75 0,4 1N4733 5,1 1W 1N5358 22 5W
1N983 82 0,4 1N4734 5,6 1W 1N5359 24 5W
1N984 91 0,4 1N4735 6,2 1W 1N5361 27 5W
1N985 100 0,4 1N4736 6,8 1W 1N5362 28 5W
1N986 110 0,4 1N4737 7,5 1W 1N5363 30 5W
1N987 120 0,4 1N4738 8,2 1W 1N5364 33 5W
1N988 130 0,4 1N4739 9,1 1W 1N5365 36 5W
1N989 150 0,4 1N4740 10 1W 1N5366 39 5W
1N990 160 0,4 1N4742 12 1W 1N5367 43 5W
1N991 180 0,4 1N4743 13 1W 1N5368 47 5W
1N992 200 0,4 1N4744 15 1W 1N5369 51 5W
1N5221 2,4 0,5 1N4745 16 1W 1N5370 56 5W
1N5222 2,5 0,5 1N4746 18 1W 1N5371 60 5W
1N5223 2,7 0,5 1N4747 20 1W 1N5372 62 5W
1N5224 2,8 0,5 1N4748 22 1W 1N5373 68 5W
1N5225 3,0 0,5 1N4749 24 1W 1N5374 75 5W
1N5226 3,3 0,5 1N4750 27 1W
Fonte: SENAI-RS

2.1.3 DIODO EMISSOR DE LUZ

É um dos tipos mais conhecidos de diodo, embora seja costumeiramente conhecido pelo termo LED,
que significa Light Emitting Diode – diodo emissor de luz. Dependendo do tipo de dopagem e do material
utilizado na junção, é possível obter luz de diferentes cores (FIGURA 21).
2 ELETRÔNICA ANALÓGICA
35

Figura 21 -  Símbolo de LED e um LED


Fonte: SENAI - RS

Por muito tempo, os LEDs foram utilizados como indicadores luminosos em painéis de operação e
equipamentos eletrônicos, como, por exemplo, para indicar se um aparelho de TV estava ou não ligado
em uma tomada. O domínio de técnicas e processos de fabricação e a globalização e o acesso a jazidas de
materiais semicondutores têm baixado significativamente o custo destes diodos, e modelos cada vez mais
poderosos têm sido utilizados, sendo hoje empregados também em iluminação predial e automotiva.
A junção de um diodo sempre tende a emitir algum tipo de energia, resultando em leve queda de
tensão no circuito. Na maioria dos diodos retificadores e zener já estudados, esta energia é transformada
em calor. No caso dos LEDs, a liberação de energia se dá pela emissão de ondas eletromagnéticas (luz) em
cores definidas pela junção e a dopagem do semicondutor.
Geralmente, os LEDs operam com tensões entre 1,5V e 3,5V, sendo que este valor pode variar
conforme a cor da luz emitida. LEDs infravermelhos (luz invisível) funcionam geralmente com menos
de 1,5V; os vermelhos, 1,6V; os amarelos, com 1,7V; os verdes 2V, e os azuis, brancos, violeta, rosa, ultra-
violeta e similares, mais de 3V.
É importante observar a corrente do circuito onde o LED está ligado, que deve ser limitada ao indicado
pelo fabricante do componente. Geralmente, em um LED convencional de 5 mm essa corrente não
ultrapassa os 30 mA (FIGURA 22).

Matrizes de LEDs orgânicos miniaturizados já são utilizadas também para construir telas
VOCÊ mais finas e menos caras, e, ao contrário dos displays de cristal líquido, os displays OLED
SABIA? (Organic LED) não precisam de luz de fundo, pois cada ponto emite sua própria luz.

Emissão de Luz

Diodo

Plastico transparente
Terminais
Figura 22 -  Imagem interna de um diodo
Fonte: SENAI - RS

SAIBA Muitos dispositivos eletrônicos utilizam LEDs como sinalizadores visuais, porém só recen-
temente os LEDs começaram a ser aplicados em iluminação. Pesquise sobre as vantagens e
MAIS desvantagens da iluminação a LED residencial e automotiva.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
36

Na automação industrial, LEDs são utilizados para sinalizar avisos luminosos em painéis de
máquinas, como em sinaleiros, indicadores de funcionamento e displays de dígitos numéricos (FIGURA
23 e FIGURA 24).

Figura 23 -  Sinaleiros LEDs usados em quadros de comando elétricos e em sistemas de automação industrial
Fonte: SENAI - RS

Figura 24 -  Máquina utilizando os sinaleiros de LED


Fonte: SENAI - RS

Como na maior parte dos atuadores industriais, um sinaleiro LED é alimentado com tensão de 24V, o que faz
necessário um circuito para a limitação de corrente em um circuito com LEDs. Dentro de um simples indicador
lumioso LED de 24V, tão comum em quadros de comando e painéis de máquinas automatizadas, encontraremos
então um ou mais LEDs junto a resistores em um circuito série, conforme a Figura 25.

24V C. C.
+ Resistor
24V
-

LED

Figura 25 -  LEDs junto a resistores em um circuito série


Fonte: SENAI - RS

O valor da resistência deve ser dimensionado levando-se em consideração a queda de tensão dos LEDs
do circuito e a corrente desejada.
2 ELETRÔNICA ANALÓGICA
37

Neste caso, temos um LED de 1,7V, recomendado para corrente de 30mA. Como a alimentação é de 24V,
vamos dimensionar um resistor que realize a queda de tensão de 22,3V (a diferença entre 24V e 1,7V) em uma
corrente de 0,030A (30mA).
Usando a lei de Ohm, temos:
I = V / R => 0,030A = 22,3V / R => R = 22,3V / 0,030A => R = 743,34 ohms
Com o valor comercial de resistor mais próximo (para cima) de 820 Ohms, teremos o LED funcionando a pouco
mais de 27mA, sem grandes variações na luminosidade gerada.
É importante lembrar que um LED é, antes de tudo, um diodo, e, portanto, deve ser corretamente
polarizado para obter o resultado esperado.
Em alguns tipos de mostradores para exibir informações numéricas, diodos emissores de luz (LEDs) são
agrupados em 7 ou mais segmentos de reta. Os LEDs são confeccionados e encapsulados com o intuito de
gerar visualmente a representação de um pequeno traço que, combinado com outros, pode representar
números de zero a nove.
Chamamos estes tipos de mostradores de “displays de 7 segmentos” (FIGURA 26).

Figura 26 -  Dígito de 7 segmentos, composto por 7 leds para mostar o número, mais um para o ponto
Fonte: SENAI - RS

SAIBA Pesquisando sobre a diferença entre displays LED de 7 segmentos dos tipos anodo comum
MAIS e catodo comum, e sobre o custo médio de um dígito numérico com 10 a 20 mm de altura.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
38

CASOS E RELATOS

Uso de LEDs no lugar de lâmpadas de filamento incandescentes


O Sr. Raul é um pequeno empreendedor, dono e único funcionário de uma empresa que produz
embalagens de alumínio descartáveis para restaurantes. Ele fundou a empresa após comprar uma
máquina usada de produzir embalagens. Apesar de bastante simples, a máquina possuía um painel com
indicadores luminosos que informavam o estado dos processos, indicando se havia falta de matéria-prima,
falta de ar comprimido, paradas de emergência, necessidade de lubrificação e final de ciclo de produção.
Estes sinaleiros eram constituídos de lâmpadas incandescentes de 24V CC com cores diferentes. Após
algum tempo, as lâmpadas começaram a queimar.
Não encontrando mais opções no mercado, pois estava difícil achar lâmpadas do tamanho adequado,
Sr. Raul resolveu aplicar a ideia de um amigo e instalar LEDs no lugar das lâmpadas. Leigo em eletrônica,
Sr. Raul substituiu cada lâmpada incandescente dos sinaleiros diretamente por LEDs, sem a aplicação de
uma resistência ao circuito. Ao testar, os sinaleiros não funcionaram e alguns LEDs queimaram. Achando
se tratar de LEDs com defeito, Sr. Raul resolveu investir em sinaleiros LEDs completos (que já possuem
resistores dimensionados para serem alimentados em 24V), e não mais substituir somente a lâmpada.
Pensando se tratar de uma simples substituição, o Sr. Raul simplesmente removeu cada sinaleiro antigo
de seus dois fios de alimentação, substituindo cada um por um sinaleiro LED 24V. Embora os sinaleiros
novos tivessem a mesma especificação de tensão que os antigos, ao reenergizar a máquina percebeu que
alguns sinaleiros ainda não funcionavam. Após uma ligação feita ao vendedor dos sinaleiros, recebeu
orientação para inverter os fios onde estavam ligados os sinaleiros que não estavam funcionando. Feito
este procedimento, todos os sinaleiros voltaram a funcionar. Já se passaram mais de três anos, e até então
nenhum dano foi observado nos novos sinaleiros LED.

2.1.4 FOTODIODO

Neste caso, o componente é utilizado como sensor para detectar luz. Um fotodiodo pode gerar uma
pequena corrente elétrica (efeito fotoelétrico) e, se reversamente polarizado, apresenta resistência maior
ou menor, dependendo da frequência e da intensidade da luz que brilha sobre a junção.
2 ELETRÔNICA ANALÓGICA
39

É bastante comum sua aplicação em circuitos receptores de controle remoto ou em sensores ópticos
(FIGURA 27).

simbologia

Led emitindo
pulsos de luz
infravermelha
Sensor
fotodiodo

Figura 27 -  Fotodiodo
Fonte: SENAI - RS

A comunicação do controle remoto com o aparelho de TV é realizada por meio de


pulsos de luz infravermelha longos e curtos, cada um com duração menor que um
VOCÊ milésimo de segundo. Ao se pressionar uma tecla do controle, são enviados pulsos
SABIA? longos e curtos (zeros e uns) que, combinados, geram a sequência binária que identi-
fica a função desejada.

Em um equipamento com controle remoto IR (infra-red = infravermelho), o equipamento possui um


“sensor” capaz de captar os pulsos de luz gerados pelo controle remoto. Este sensor geralmente é construído
utilizando-se um fotodiodo, devido a sua sensibilidade e à velocidade de resposta.
Em equipamentos de segurança usados em processos industriais, como cortinas óticas de segurança ou
sensores ópticos, os LEDs e fotodiodos são utiilizados em um processo em que a luz enviada de um para
outro componente é monitorada. Em uma cortina ótica de segurança (FIGURA 28), o sistema só é liberado
se a luz produzida por cada LED em um dos lados é captada em um fotodiodo no outro lado da abertura.

Figura 28 -  Cortina ótica de segurança com LED


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
40

Para evitar interferência de outras fontes de luz, geralmente ocorre a “modulação” do sinal luminoso,
gerando uma frequência específica que é avaliada pelos circuitos de processamento ligados ao fotodiodo,
permitindo que seja possível separar o sinal real do sinal de interferência.
Em algumas aplicações que exigem mais corrente costumamos utilizar um fototransistor no lugar
do fotodiodo. Neste caso, o princípio de funcionamento é semelhante, porém a corrente de trabalho do
componente é maior e sua velocidade de acionamento pode ser significativamente menor.

2.1.5 COMO TESTAR UM DIODO

Visto que um diodo convencional apresenta alta resistência ao ser inversamente polarizado, e baixa
resistência ao ser diretamente polarizado, podemos usar um multímetro analógico em escala de resistência
para testá-lo. Multímetros digitais, no entanto, podem oferecer um problema para este tipo de teste devido
às características de tensão aplicadas à carga para o teste.
Na Figura 29, observamos que no multímetro deve haver a indicação para teste de diodo.

DC

POWER PK HOLD B/L DC / AC

AUTO POWER OFF

+
-
CAT ll

20A mA COM VΩHz

Figura 29 -  Multímetro
Fonte: SENAI - RS

Com uma ponteira do multímetro em cada terminal do diodo, teste-o diretamente polarizado e,
depois, inversamente polarizado, observando os valores lidos pelo instrumento de medição. Geralmente,
em multímetros digitais, o valor exibido corresponde à queda de tensão realizada pelo diodo (FIGURA
30 e FIGURA 31).

DC
DC DC
DC

AA AA

POWER
POWER PKPK
HOLD
HOLD BB
/ L/ L DCDC
/ AC
/ AC POWER
POWERPKPK
HOLD
HOLD B /BL/ L DCDC
/ AC
/ AC

AUTO
AUTOPOWER
POWEROFF
OFF AUTO POWER
AUTO OFF
POWER OFF

++ ++
-- --
CAT
CATll ll CAT ll ll
CAT

20A
20A mA
mA COM
COM VΩHz
VΩHz 20A
20A mAmA COM
COM VΩHz
VΩHz

Figura 30 -  Diodo diretamente polarizado Figura 31 -  Diodo inversamente polarizado


Fonte: SENAI - RS Fonte: SENAI - RS
2 ELETRÔNICA ANALÓGICA
41

Se o diodo conduzir quando diretamente polarizado e não conduzir quando inversamente polarizado,
então provavelmente ele estará funcionando corretamente.
Se o diodo conduzir em ambas as direções, concluímos que está em curto e, consequentemente, inutilizável.
Se o diodo não conduzir em nenhuma das direções, concluímos que está aberto e, portanto, danificado.
Dica: faça o teste em diodos emissores de luz (LEDs), de preferência da cor vermelha, que apresentam
uma menor tensão de trabalho. Observe o que ocorre com o LED durante os testes.

2.1.6 OPTOACOPLADORES

Optoacopladores, também chamados de fotoacopladores, são componentes que utilizam


semicondutores para realizar acoplamento por meio de LUZ, permitindo que o sinal seja enviado de um
sistema para outro sem o uso de ligações elétricas entre estes.
Basicamente, um optoacoplador é um componente composto de um LED e um fotodiodo ou
fototransistor, encapsulados em um único componente (FIGURA 32).

Encapsulamento
Fotoacoplador Fotoacoplador para montagem
de 4 terminais de 6 terminas em superfície - 6 terminais
6 5 4
1 3
Símbolos
2 4

1 2 3

Figura 32 -  Optoacopladores
Fonte: SENAI - RS

Acima, a imagem de um sistema com fotoacoplador de 4 terminais (usando LED e fotodiodo) e um


fotoacoplador de 6 terminais (utilizando fototransistor). Em ambos os casos, a aplicação é recomendada
para casos em que devemos enviar o sinal a sistemas com fontes de alimentação distintas, ou que possam
enfrentar problemas relativos a ruídos eletromagnéticos.
O LED interno do fotoacoplador deve ser diretamente polarizado dentro dos limites de corrente
e tensão recomendados pelo fabricante do componente. Já no caso do fotodiodo ou fototransistor
interno, estudaremos mais adiante as formas de integrá-los ao circuito. Como a única conexão entre o
LED interno e o fotodiodo ou fototransistor é um feixe de luz, não existe conexão elétrica entre as partes.
Daí o nome acoplador.
Sem o uso de um fotoacoplador entre alguns sistemas, os níveis de tensão existentes entre as fontes
distintas poderiam gerar problemas de instabilidade e até de queima de componentes.
Por exemplo, ao ligar um sensor que gera um sinal de 24 V a um microcontrolador que opera a 5 V, podemos
criar um circuito divisor de tensão com resistores e baixar a tensão de 24 V para 5 V, como mostra a Figura 33.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
42

24V
24V + (GND) 5V
ligação entre (GND) 5V +
as fontes

4K7

uC
1k2
SENSOR

Figura 33 -  Circuito divisor de tensão


Fonte: SENAI - RS

Já no caso do divisor de tensão, o custo é menor, porém a fonte de alimentação do sensor deverá ter a mesma
referência da fonte que alimenta o microcontrolador. usar um optoacoplador, dimensionando um resistor em
série com o LED interno do componente para atingir a corrente ideal ao ser polarizado com 24 V (FIGURA 34).

24V
24V + (GND) 5V
(GND) 5V +

10K
1K2 uC

SENSOR

Figura 34 -  Optoacoplador
Fonte: SENAI - RS

No caso do optoacoplador, podemos usar fontes distintas, uma para o sensor e outra para o
microcontrolador, sem precisar interligá-las.
Outra vantagem do uso de optoacoplador é que a isolação elétrica impede que ruídos eletromagnéticos
de tensão elevada danifiquem o microcontrolador, aumentando a robustez do sistema.
Portanto, usamos optoacopladores com o intuito de conectar sistemas com diferentes níveis de tensão
e fontes de alimentação e, também, com o objetivo de proteger o sistema de problemas gerados por ruídos
eletromagnéticos.

2.2 ACIONAMENTOS A TRANSISTOR

Em um sistema automatizado, os sensores têm o objetivo de “sentir” as características de funcionamento


de um equipamento, e os atuadores são responsáveis por atuar, gerando um efeito específico. Alguns
exemplos de atuadores são os motores elétricos, cilindros pneumáticos e hidráulicos, eletroválvulas,
sinalizadores, relés e contactoras (FIGURA 35).
2 ELETRÔNICA ANALÓGICA
43

Processamento
Sensores
Equipamento
Controlador
+
ambiente Atuadores

Figura 35 -  Diagrama de um sistema automatizado


Fonte: SENAI - RS

Entre o sinal capturado pelos sensores e o controle dos atuadores existe a necessidade de circuitos
físicos (hardware) ou lógicos (software) que definirão como o equipamento deve funcionar.
Para a construção do controlador de um sistema automatizado existem diversas estratégias, que vão
desde estratégias mais simples, como dispositivos eletromecânicos (lógica de relés), até mais complexas,
como sistemas computacionais com vários processadores interligados.
Em casos que envolvem circuitos de controle mais complexos, os dispositivos eletrônicos compostos
basicamente de semicondutores trabalham utilizando limites de tensão e corrente que os impedem de
acionar diretamente um atuador. Por exemplo, um microcontrolador tem saídas digitais limitadas a poucas
dezenas de miliampères, geralmente, com níveis de tensão que não ultrapassam 5 volts. Isso se deve
ao fato de, internamente, o microcontrolador ser composto de uma quantidade enorme de transistores
com alguns nanômetros (bilionésimos de metro), em que complexas e numerosas redes de circuitos são
construídas em pastilhas minúsculas.
Com a redução do tamanho dos transistores, houve a redução de custos, aumento de velocidade,
redução do tamanho do hardware final e redução significativa no consumo de energia. O problema é que
esses semicondutores, como no caso do microcontrolador, ficam impedidos de controlar diretamente
cargas utilizadas em sistemas automatizados, como motores elétricos ou até mesmo a simples bobina de
um relé convencional.
A Figura 36 mostra o interior de um circuito integrado, em que a nanotecnologia permitiu a
integração de milhares de transistores em uma única pastilha de alguns milímetros.

Figura 36 -  Circuito integrado


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
44

Portanto, devido a suas características construtivas, um circuito integrado não permite acionamentos
diretos de dispositivos por meio de correntes e tensões significativas. Uma tensão elevada (acima de 5 V)
poderia romper a isolação minúscula entre as trilhas; e correntes elevadas poderiam facilmente romper os
minúsculos filamentos e ligações internas do C.I.
Na mecatrônica, costumamos utilizar circuitos elétricos combinados com circuitos pneumáticos
(eletropneumática), porém, para realizar o acionamento de uma eletroválvula pneumática industrial,
faz-se necessário um sinal geralmente com tensão de 24V e mínimo de 0,2A. A princípio, estes valores
podem parecer baixos, mas são valores considerados elevados para grande parte dos circuitos integrados,
incluindo-se os já citados microcontroladores. Devido principalmente a esse motivo, faz-se necessária a
utilização de uma interface que permita que um circuito integrado acione um circuito eletropneumático.
Os transistores, além de constituírem a essência dos circuitos integrados, também são utilizados
externamente a eles em versões maiores com o intuito de amplificar os sinais elétricos, aumentando a
tensão e a corrente para uso no controle de atuadores.
Outra aplicação bastante comum de transistores é no controle de tensão e corrente em fontes de
alimentação. Em sistemas digitais, geralmente utilizamos o transistor como uma “chave eletrônica”, fazendo
com que tenha dois comportamentos distintos: conduzir ou não conduzir elétrons. Porém, o transistor é
bastante versátil e pode ser usado também com o objetivo de controlar a corrente, permitindo que mais ou
menos elétrons passem pelo condutor por meio do controle realizado por um sinal elétrico.
Considerando uma fonte de alimentação estabilizada, por exemplo, com saída de 24 V, se a tensão limite for
ultrapassada, os componentes ligados a esta fonte podem queimar devido à sobretensão. Por outro lado, se a
tensão ficar muito abaixo da desejada podemos ter variações indesejadas no funcionamento do circuito que
será alimentado. Em casos como estes, as fontes possuem estratégias de regulação de tensão, fazendo com
que ela se adapte ao circuito alimentado dentro de faixas predeterminadas e mantendo a tensão desejada na
saída, não importando se a corrente aumenta ou diminui em um determinado espaço de tempo.

2.2.1 CARACTERÍSTICAS E APLICAÇÕES

Como já citado anteriormente, as duas principais aplicações de transistores são seu uso como chave (ligando
e desligando um circuito) ou como estratégia de controle de corrente (dosando a passagem da corrente elétrica
em um circuito).
No uso como chave eletrônica, o transistor oferece uma resposta muito rápida e de baixo custo se
comparado à estratégias eletromecânicas como relés; além isso, o acionamento da carga pode ser feito com
um sinal mínimo de corrente e tensão.
Quando é usado como controle de corrente, o transistor substituiu as antigas válvulas termoiônicas por
ter um consumo de energia muito menor, assim como tamanho e custo bastante reduzidos.
Assim como os diodos, os transistores também são construídos com base em junções de
semicondutores. A principal diferença está no fato de haver mais de uma junção.
Anteriormente afirmamos que a eletrônica é a ciência que estuda a forma de controlar a energia elétrica.
Neste caso, o transistor é, sem sombra de dúvidas, um dos principais instrumentos de controle utilizados.
2 ELETRÔNICA ANALÓGICA
45

2.2.2 TRANSISTOR BIPOLAR

Os transistores bipolares de junção, também conhecidos pelo acrônimo TBJ, ou BJT (inglês), podem
variar bastante conforme suas características construtivas, mas de forma geral são compostos por duas
junções formadas pela intercalação de material semicondutor do tipo P e do tipo N, adquirindo, assim,
duas polaridades, podendo ser NPN ou PNP (FIGURA 37).

N P N P N P

Coletor
Emissor

Emissor
Base

Base

Coletor
Figura 37 -  Transmissores NPN e PNP
Fonte: SENAI - RS

Nos transistores, as camadas de semicondutor com diferentes dopagens são denominadas de emissor,
base e coletor.
O emissor é uma camada fortemente dopada e, como o nome sugere, sua função é emitir as cargas elétricas.
A base é uma fina camada com uma dopagem média; através dela polarizamos o transistor, permitindo
que as cargas elétricas fluam. Entendemos por cargas elétricas as cargas positivas (lacunas) ou negativas
(elétrons), dependendo do tipo do transistor (NPN ou PNP).
O coletor é uma camada levemente dopada e tem a função de coletar as cargas elétricas.

VOCÊ O transistor foi inventado em 1947 pelos pesquisadores da Bell Telephones, nos EUA,
SABIA? para substituir as válvulas eletrônicas nas aplicações de telefonia.

Podemos dividir os transistores bipolares em duas categorias, de acordo com o arranjo entre seus tipos
de material semicondutor: NPN (FIGURA 38) e PNP.

coletor
N P N
base
NPN
emissor

coletor
base

emissor

Figura 38 -  Símbolo de um transistor bipolar NPN e diagrama da junção NPN


Fonte: SENAI - RS

Em um transistor NPN, três cristais semicondutores diferentemente dopados criam duas


junções elétricas dispostas em camadas. A camada do meio é do tipo P (+), composta de material
semicondutor com lacunas elétricas disponíveis (cargas positivas).
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
46

Inicialmente, podemos imaginar o transistor NPN como um diodo, em que a base faz papel de
anodo e o emissor faz o papel de catodo.
Chamamos de polarização direta de um transistor NPN quando temos uma corrente entre a base
e o emissor, causada pela tensão entre estes dois terminais (VBE), o que permite a passagem de uma
corrente maior entre o coletor e o emissor.
Em resumo, para ligar um transistor NPN como uma “chave eletrônica”, aplicamos tensão positiva
na base e negativa no emissor. Para “desligar”, devemos remover esta tensão positiva da base para
interromper a corrente entre a base e o emissor (FIGURA 39).

NPN

carga

coletor corrente
maior
base

corrente
menor emissor

Figura 39 -  Transistor NPN polarizado. Carga representa um circuito ou componente que está sendo energizado
Fonte: SENAI - RS

Observe que a convenção do sentido de corrente é do polo positivo para o negativo e ocorre no sentido
inverso do movimento de elétrons (FIGURA 40).

emissor
P N P
base
PNP
emissor

coletor
base

coletor

Figura 40 -  Símbolo de um transistor bipolar PNP e diagrama da junção PNP


Fonte: SENAI - RS

Em um transistor PNP, três cristais semicondutores diferentemente dopados criam duas junções
elétricas dispostas em camadas. A camada do meio é do tipo N (-), composta de material semicondutor
com elétrons disponíveis (cargas negativas).
Inicialmente, podemos imaginar o transistor PNP como um diodo, em que o emissor faz o papel
de anodo e a base faz o papel de catodo.
Um transistor PNP está polarizado quando temos uma corrente entre o emissor e a base que,
por sua vez, é causada pela tensão entre estes dois terminais (V EB), permitindo a passagem de uma
corrente maior entre o emissor e o coletor.
2 ELETRÔNICA ANALÓGICA
47

A corrente entre emissor e coletor é muitas vezes maior do que a corrente entre emissor e base.
Em um transistor, esta propriedade é denominada “GANHO” e é representada por hfe ou β (beta).
Se um transistor oferece um ganho de 100, significa que ele pode permitir uma corrente 100 vezes
maior entre o emissor e o coletor do que entre o emissor e a base.
Resumindo, em um transistor PNP, para “ligar a chave eletrônica”, aplicamos uma tensão negativa
na base. Para “desligar”, basta retirar essa tensão negativa da base. A carga deve ser ligada no coletor
e a tensão de alimentação positiva no emissor (FIGURA 41).

PNP

corrente emissor
menor
corrente
base maior

coletor
carga

Figura 41 -  Transistor NPN polarizado. Carga representa um circuito ou componente que está sendo energizado
Fonte: SENAI - RS

Embora possamos controlar a corrente que passa por um transistor por meio da variação da corrente
em sua base, nosso objetivo agora é utilizar o transistor como uma chave eletrônica, na qual iremos utilizar
transistores em dois estados possíveis: saturado (como uma chave fechada, operando na corrente máxima
para o circuito) ou em corte (como uma chave aberta).
De forma simplificada, podemos pensar que bastaria, apenas, um transistor e o componente a ser
acionado conectados em uma fonte de alimentação. Porém, serão necessários alguns outros elementos
para limitar a corrente na base do transistor (resistor de base) e também para estabilizar o nível de tensão
da base (resistor de pull-up ou pull-down).
Para os circuitos que seguem, vamos supor que o sinal proveniente de um circuito de controle tem as
seguintes características :
a) fornece tensão de 0V ou de 5V (sinal digital);
b) a corrente máxima para o sinal fornecido pelo circuito é de 0,02A (20mA). No caso de corrente acima deste
valor, haverá danos permanentes no circuito de controle.
No circuito da Figura 42, o objetivo é ligar ou desligar um relé com bobina de 5 V. Ao ligá-lo, a corrente
do circuito da bobina ultrapassa 70 mA, várias vezes maior do que o limite de corrente do circuito de
controle informado, que é de 20mA.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
48

atuador atuador
(desligado) (ligado)

5V + 0.00
RL1 5V + +70.2
Amps
RL1
Amps
5V D1 5V
D1

C C
R2 B TRANSISTOR SINAL 5V + R2 B TRANSISTOR
0V + 0.00 +3.28
Amps
1K2 NPN (MAX 0,02A) Amps
1K2 NPN
E E
R3 R3
20K 20K

Figura 42 -  Circuito de acionamento de relé utilizando transistor NPN


Fonte: SENAI - RS

Então um transistor NPN será usado para amplificar a corrente de 20mA para uma corrente
superior, necessária para que a bobina do relé funcione.
O sinal de 5V proveniente do circuito de controle é utilizado para polarizar o transistor, sendo
conectado a sua base após passar pelo resistor R2 para limitar a corrente a níveis seguros e não
danificar o circuito de controle.
Sem o resistor R2, a corrente seria ainda mais elevada, pois seria como termos um diodo em série entre
o sinal do circuito de controle e a referência (GND). Por isso, o resistor R2 é muito importante e deve ser
corretamente dimensionado.
Sabendo que o transistor do circuito oferece um ganho de 100 vezes ( β =100), vamos dimensionar o
circuito para que a base do transistor seja polarizada com uma corrente próxima a 4 mA, obtendo uma
corrente entre coletor e emissor máxima de 400 mA, mais do que suficiente para o acionamento proposto.
O transistor então é conectado de forma a interligar o terminal do relé ao GND.
Como o R2 foi calculado? Inicialmente, temos que lembrar que a corrente usada para polarizar
o transistor NPN percorre o caminho entre base e emissor. Assim como na junção de um diodo,
esperamos que haja uma queda de tensão na junção do transistor. Estimamos esta queda em 0,7V
para transistores de silício, porém cada transistor pode apresentar características diferentes neste
aspecto. Em caso de dúvida, pesquise pela folha de dados (ou datasheet) do componente.
Como o sinal que chega à base é de 5 V, sobram 5 V – 0,7 V = 4,3 V para o restante do circuito.
Sendo que esse transistor suporta até 500 mA, e sabendo que uma corrente de 400 mA é mais do
que suficiente para acionar a carga, para o ganho de 100 vezes, vamos polarizar o transistor com
uma corrente de aproximadamente 4mA (4mA * 100 = 400mA). Conhecendo a queda de tensão
desejada (4,3V), resta calcular o valor da resistência a ser aplicada no circuito.
Usando a fórmula I = V / R, temos:
4 mA = 4,3V / R
0,004 A . R = 4,3V
R = 4,3V / 0,004 A
R = 1075 Ohms.
2 ELETRÔNICA ANALÓGICA
49

Valores comerciais mais próximo são 1000 e 1200 Ohms


Escolheremos o valor mais elevado, baixando um pouco a corrente do circuito da base para
aproximadamente 3,6mA.
E por que o resistor R3? Esse resistor é utilizado para estabilizar e ajudar a definir o nível de tensão
de 0V na base, quando o sinal estiver em nível baixo. Sem ele, pequenas oscilações de corrente, fugas
na junção do transistor e até mesmo ruídos eletromagnéticos gerariam pequenas correntes elétricas que
poderiam acionar indevidamente o transistor, mesmo em curtos espaços de tempo. Para evitar problemas
com ruídos, este resistor (R3) possibilita um caminho alternativo para os elétrons a fim de estabilizar sua
base. Como este resistor interfere na corrente aplicada na base, seu valor não pode ser muito baixo.
Este resistor pode ser suprimido se o sinal proveniente do circuito de controle for bem definido
(nível de tensão alto: 5V ou baixo: 0V). O resistor R3 interliga a base do transistor ao nível de tensão
baixo (0V ou GND), e neste caso é chamado de resistor de pull-down. Em outros casos, veremos que
é necessário estabilizar a base em nível alto, e ai usaremos um resistor de pull-up, interligando-a ao
nível alto de tensão.
É importante também observar que no circuito há um diodo (D1) inversamente polarizado e em
paralelo com a carga, no caso, representada pela bobina do relé RL1. Ele tem a função de supressor de
picos de tensão. Devido a características da carga acionada, ao interrompermos (despolarizarmos)
o transistor há uma momentânea, porém grande elevação de tensão entre as partes do circuito.
Podemos fazer a comparação deste circuito elétrico com um circuito hidráulico: se houver uma súbita
interrupção da passagem do fluído, como, por exemplo, o fechamento brusco de uma torneira, a
inércia (tendência do fluído em manter o movimento) causará um brusco e momentâneo aumento
na pressão. No caso do circuito elétrico, esta tensão pode ser elevada a algumas centenas ou até
milhares de volts durante alguns microsegundos, dependendo da corrente que é interrompida.
O diodo age, então, por este curto período de tempo, permitindo que os elétrons encontrem um
caminho alternativo, dissipando a energia resultante na carga e preservando a delicada junção do
transistor do brusco aumento de tensão, aumentando sua vida útil.
No circuito anterior, o transistor NPN pode ser posto entre o relé e a alimentação de 5V com
a carga ligada ao emissor? Isso não é recomendado, uma vez que, para polarizar o transistor,
é importante que dimensionemos a corrente entre a base e o emissor. Com o emissor ligado à
referência (GND), o circuito fica simples e bem definido. Se o emissor estivesse ligado em série
com a carga, o comportamento da carga deveria ser considerado na corrente do circuito e, devido
a características inerentes à dinâmica do circuito, haveria problemas, pois a diferença de potencial
entre a base e o emissor mudará durante o funcionamento do circuito e criando uma cadeia de
realimentação negativa que pode gerar efeitos indesejados. Portanto, isso não é recomendado.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
50

Para todos os efeitos, é recomendado ligar o emissor de um transistor NPN na referência de


tensão (GND ou V-), e o emissor de um transistor PNP na alimentação positiva (V+). Ou seja, a carga
deve estar sempre conectada ao coletor do transistor em qualquer circuito de acionamento.
Um transistor pode ser acionado por uma tensão de 5V na base, mas ser conectado a uma
carga com uma tensão mais elevada, como, por exemplo, 12V? No caso dos transistores NPN, sim.
Lembramos que o que define o funcionamento do transistor bipolar é a corrente e, se houver
corrente entre a base e o emissor, haverá muito mais corrente entre o coletor e o emissor. Lembre-
se, no entanto, de limitar a corrente da base do transistor NPN usando um resistor.
A Figura 43 mostra um circuito similar ao anterior; porém, usando um transistor PNP.

5V 5V
R3 R3
20K 20K
CONTROLE
CONTROLE

R2 Q2 R2 Q2
BC557 BC557
1K2 1K2 PNP
PNP
RL1 RL1
5V
D1 5V D1
1N4007 1N4007

Figura 43 -  Circuito de acionamento de relé utilizando transistor PNP


Fonte: SENAI - RS

Observe que a diferença está no transistor utilizado (PNP), na forma em que o circuito é interligado
(a carga fica entre o coletor e o GND) e, principalmente, no sinal utilizado para polarizar o transistor
(0V para ativar o relé, e 5V para desativar).
O resistor R2, como anteriormente descrito, continua com o objetivo de limitar a corrente da
base e segue as mesmas regras de cálculo antes citadas, variando somente em relação ao sentido
da corrente.
O resistor R3 agora apresenta o comportamento de pull-up, mantendo o sinal da base em nível
alto de tensão (5V) para evitar acionamentos indevidos causados por ruídos.
O diodo D1 continua reversamente polarizado, atuando como supressor de picos de tensão por
uma fração de segundos, quando o transistor passa do estado de condução para o estado de corte,
interrompendo o circuito.
2 ELETRÔNICA ANALÓGICA
51

ENCAPSULAMENTO DE TRANSISTORES
Embora os transistores em geral tenham um funcionamento bastante similar, possuindo junções PNP
ou NPN, variações de corrente, tensão, potência e montagem em circuitos, exigem encapsulamentos
diferentes (FIGURA 44).

TO92/TO237
TO 1 T05/T018 TO 7 2
TO39/TO205 2
E-Line 2 2
1 3
1 3 1 3
1 2 3 4 1 2 3

TO 3 / TO 2 0 4 S OT 1 0 3 T0250
4 T0218/T0220 T02205
1 2 3 1 3 SOT93/TAB
1 4º
2 4 (TAB) 3
3
(CASA) 2
TO 3 ( 4 P I N ) 12345
1 2 3

4 3 4
123

SOTB2 TO247/5
TO246 4 3
T03P/T0247 4 (TAB) ( TAB)
4
( TAB) ( TAB)

1 2 3 1 2 3 1 2 34 5

TO 262/TO 251 SOT199


TO126/SOT32 ISO TOP / SOT227B
4 4 3
4
(TAB)

1 2

1 2 3 1 2 3
1 2 3

ISO 218/220 SOT186 ISO 221 ISO126

1 2 3 1 2 3 1 2 3 1 2 3

Figura 44 -  Encapsulamento: principais encapsulamentos de transistores e suas potências:


Fonte: SENAI-RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
52

A Tabela 3 demonstra os principais modelos de transistores NPN e PNP disponíveis.


Tabela 3: Principais modelos de transistores NPN e PNP disponíveis

NPN PNP CORRENTE ENCAPSULAMENTO TENSÃO


GANHO ( β )
MÁXIMA MÁXIMA
COLETOR- COLETOR-
EMISSOR (A) EMISSOR (V)
BC546A BC556A 0.1 to-92 65 220
BC547B BC557B 0.1 to-92 45 450
BC548C BC558C 0.1 to-92 30 800
BC549A BC559A 0.1 to-92 30 250
BC550B BC560B 0.1 to-92 45 450
BC846B BC856B 0.1 sot-23 80 450
BC847C BC857C 0.1 sot-23 50 800
BC848B BC858B 0.1 sot-23 30 450
BC817-16 BC807-16 0.5 sot-23 50 160
BC817-25 BC807-25 0.5 sot-23 50 250
BC817-40 BC807-40 0.5 sot-23 50 350
BC818-16 BC808-16 0.5 sot-23 30 160
BC818-25 BC808-25 0.5 sot-23 30 250
BC818-40 BC808-40 0.5 sot-23 30 350
2N2219 2N2905 0.6 to-39 40 300
2N2222 2N2907 0.6 to-18 40 300
PN2222A PN2907A 1 to-92 40 300
MMB- 2N2905 1 sot-23 40 300
T2222A
PZT2222A 1 sot-223 40 300
2N3019 2N2905 1 to-39 80 300
BC141-16 BC161-16 1 to-39 60 250
TIP31 TIP32 3 to-220 40 50
TIP31A TIP32A 3 to-220 60 50
TIP31B TIP32B 3 to-220 80 50
TIP31C TIP32C 3 to-220 100 50
TIP120 TIP125 5 to-220 60 1000
TIP121 TIP126 5 to-220 80 1000
TIP122 TIP127 5 to-220 100 1000
TIP140 TIP145 5 TO-3P 60 1000
TIP141 TIP146 5 TO-3P 80 1000
TIP142 TIP147 5 TO-3P 100 1000
TIP41 TIP42 6 to-220 40 75
TIP41A TIP42A 6 to-220 60 75
TIP41B TIP42B 6 to-220 80 75
TIP41C TIP42C 6 to-220 100 75
2N3055 MJ2955 15 to-3 60 70
Fonte: SENAI - RS
2 ELETRÔNICA ANALÓGICA
53

A Tabela 3 deve ser utilizada como uma referência rápida e superficial. Consulte a documentação (folha
de dados, ou “datasheet”) do componente para informações atualizadas.

COMO TESTAR TRANSISTORES BIPOLARES

Para testar os transistores bipolares precisamos identificar os pinos e o tipo do transistor. Embora haja
certa padronização em relação ao encapsulamento, essa identificação dos pinos relativos ao emissor, à
base e ao coletor é importante. Em caso de dúvida, pesquise na internet pelo datasheet.
Provavelmente, a maior parte das páginas encontradas remeterão às folhas de dados (datasheet) de
diversos fabricantes do componente. Embora para o mesmo código o componente possa não apresentar
variações significativas, pode haver variações de um para outro fabricante.
Por hora, vamos nos ater no fato de o transistor a ser testado ser PNP ou NPN, e quais são os pinos de
emissor, base e coletor (FIGURA 45).

NPN

Figura 45 -  Datasheet do transistor pesquisado


Fonte: SENAI - RS

Depois, para verificar o transistor bipolar, podemos usar um multímetro digital na posição de teste de
diodo (FIGURA 46).

Ω
mV mA
A
V

V
µA
OFF

Figura 46 -  Detalhe do multímetro, marcado para teste de diodo


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
54

Se for um transistor NPN, siga os testes conforme Figura 47.

infinito infinito infinito


DC DC DC

C C
A A A

POWER PK HOLD B/L DC / AC


C POWER PK HOLD B/L DC / AC POWER PK HOLD B/L DC / AC

AUTO POWER OFF


E AUTO POWER OFF
E AUTO POWER OFF
B E
B B
+ + +
- - -
CAT ll CAT ll CAT ll

20A mA COM VΩHz 20A mA COM VΩHz 20A mA COM VΩHz

tensão junção PN tensão junção PN infinito


DC DC DC

C C
A A A

POWER PK HOLD B/L DC / AC POWER PK HOLD B/L DC / AC POWER PK HOLD B/L DC / AC


C
AUTO POWER OFF
B E AUTO POWER OFF
E AUTO POWER OFF
E
B B
+ + +
- - -
CAT ll CAT ll CAT ll

20A mA COM VΩHz 20A mA COM VΩHz 20A mA COM VΩHz

Figura 47 -  Teste transistor NPN


Fonte: SENAI - RS

Se o transistor for PNP, faça os testes conforme Figura 48.

tensão junção PN tensão junção PN infinito


DC DC DC

POWER PK HOLD B/L DC / AC


C POWER PK HOLD B/L DC / AC
C POWER PK HOLD B/L DC / AC
C
AUTO POWER OFF
E AUTO POWER OFF
E AUTO POWER OFF
B E
B B
+ + +
- - -
CAT ll CAT ll CAT ll

20A mA COM VΩHz 20A mA COM VΩHz 20A mA COM VΩHz

infinito infinito infinito


DC DC DC

POWER PK HOLD B/L DC / AC


C POWER PK HOLD B/L DC / AC
C POWER PK HOLD B/L DC / AC
C
AUTO POWER OFF
B E AUTO POWER OFF
E AUTO POWER OFF
E
B B
+ + +
- - -
CAT ll CAT ll CAT ll

20A mA COM VΩHz 20A mA COM VΩHz 20A mA COM VΩHz

Figura 48 -  Teste transistor PNP


Fonte: SENAI - RS

Caso alguma medição que deva resultar em infinito demonstre algum valor, há indícios de que esse
transistor se encontra em curto. Para o valor de tensão de junção, é esperado um valor próximo a 700 mV
(0,7V) para transistores de silício e a 300 mV (0,3V) para transistores de germânio.

FIQUE Caso um transistor esteja em curto, a provável causa é dada ao excesso de corrente
ALERTA coletor - emissor ou base – emissor. Se o transistor apresentar junções abertas, a pro-
vável causa será dada a uma tensão reversa acima do limite suportado.
2 ELETRÔNICA ANALÓGICA
55

2.2.3 TRANSISTOR DARLINGTON

Quando nos referimos ao transistor darlington, estamos falando em um agrupamento de dois transistores
bipolares em um mesmo encapsulamento, com intuito de aumentar o ganho do circuito, conforme a Figura 49.
(NPN) C (PNP) E
Q2

B Q1
Q1 B

Q2
E C

Figura 49 -  Transistor Darlington


Fonte: SENAI - RS

É importante observar que a tensão mínima de polarização é mais elevada (aprox. 1,2V), pois são duas
junções, como se houvesse dois diodos em série no circuito. Este tipo de configuração de transistores
pode apresentar instabilidade em altas frequências (faixa dos MHz), mas é uma excelente alternativa para
acionamentos de atuadores devido ao ganho elevado (geralmente superior a 1000).

2.2.4 TRANSISTORES DE EFEITO DE CAMPO

Nos transistores bipolares anteriormente estudados, o fator que controla a passagem da corrente é
dado pela própria corrente elétrica entre a base e o emissor e é chamado de transistor bipolar devido às
características de suas junções sobrepostas (FET - Field Effect Transistor).
Porém, outra forma de transistor que não utiliza corrente para polarização, e sim tensão, vem sendo
largamente empregada em circuitos de acionamento, pois atuam com cargas mais elevadas tanto em
corrente como em tensão, sem haver a necessidade de uma corrente, mesmo que pequena, diminuindo o
consumo de energia e aumentando a eficiência do circuito.
Os transistores de efeito de campo, também conhecidos como transistores unipolares, utilizam um
campo elétrico proporcionado por um sinal de tensão, sem necessidade de correntes significativas para seu
controle. São assim chamados, porque a corrente elétrica é determinada por um único tipo de portador,
podendo ser ELÉTRONS (N-Channel) ou LACUNAS (P-Channel).
No lugar da base presente nos transistores bipolares, nos transistores de efeito de campo usamos a
porta (ou gate) como elemento de controle. Como vantagens podemos citar a impedância de entrada
elevada (sendo bastante sensível nos elementos de controle) e baixas perdas relativas a fugas.
Basicamente, existem dois tipos distintos de transistores de efeito de campo, o JFET – Junction Field
Effect Transistor (transistor de efeito de campo de junção) e o MOSFET - Metal Oxide Semiconductor Field
Effect Transistor (Transistor de efeito de campo de óxido de metal). Este último ainda é dividido em outras
duas subcategorias, conhecidas como MOSFET tipo crescimento ou intensificação e MOSFET tipo depleção.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
56

Segue o símbolo e a representação da junção de um transistor tipo JFET. Nos transistores JFET existem
duas regiões constituídas de um mesmo tipo de semicondutor (ou tipo N ou tipo P) eletricamente
interligadas, chamadas de porta (gate). A região de material semicondutor de tipo inverso entre as duas
regiões de gate é chamada de canal e em seus extremos são conectados dois terminais: o dreno (drain) e a
fonte (source), conforme Figura 50.
dreno(D) dreno(D)

canal N

canal P
porta(G) porta(G)

fonte(S) fonte(S)
D D

N P
G P P G N N

S S
Figura 50 -  Símbolo de JFET e representação da estrutura construtiva
Fonte: SENAI - RS

Em um JFET canal N, o elemento de controle são os elétrons. Neste caso, drain (ou dreno) é o terminal
que drenará os elétrons, gate (ou porta) controlará o fluxo de elétrons, e source (fonte) fornece os elétrons.
Alguns autores associam o comportamento dos JFET a resistores controláveis, pois, por meio da tensão
aplicada ao gate, podemos abrir um canal maior ou menor para a passagem da corrente elétrica, simulando
o efeito de um resistor variável.
Em um JFET canal P, os elementos controlados são as lacunas. Neste caso, DRAIN drena as lacunas, source
fornece lacunas e gate controla a passagem de lacunas.

VOCÊ Pesquise sobre o uso de transistores JFET em amplificadores, fontes de corrente, cir-
SABIA? cuitos recortadores (ou chopper) e chaves analógicas.

O JFET é empregado em aplicações de pequenos sinais, não sendo o transistor de efeito de campo mais
indicado para acionamentos de dispositivos. Para estas aplicações, é recomendado o uso dos MOSFETs.

MOS – Metal-Óxido-Semicondutor

Outro transistor de efeito de campo é do tipo Metal-Óxido-Semicondutor (MOS). Ele é atualmente um


dos dispositivos eletrônicos mais importantes. Graças ao desenvolvimento da tecnologia MOS, é possível
obter a miniaturização dos circuitos, ampliando a capacidade de processamento de informações.
2 ELETRÔNICA ANALÓGICA
57

Os transistores MOS podem ser divididos de acordo com o tipo de portador de carga predominante
(elétrons ou lacunas) ou pelo modo de funcionamento (crescimento ou depleção) dado por sua construção
física. Assim, temos:
a) transistor MOS canal N (ou NMOS) tipo crescimento ou enriquecimento;

b) transistor MOS canal N tipo depleção;

c) transistor MOS canal P (ou PMOS) tipo crescimento ou enriquecimento;

d) transistor MOS canal P tipo depleção.

A Figura 51 mostra a estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P
tipo enriquecimento e seus respectivos símbolos.

Dreno Dreno
N+ P+
(drain) (drain)
Substrato Porta Substrato Porta
P N
(body) (gate) (body) (gate)

N+ Fonte P+ Fonte
(source) (source)

N-MOS ou MOSFET canal N P-MOS ou MOSFET canal P

D D

SUB SUB

G G

S S

CANAL N CANAL P

Figura 51 -  Estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P


tipo enriquecimento e seus respectivos símbolos
Fonte: SENAI - RS

Observamos que na estrutura deste tipo de transistor surge um quarto terminal, chamado de substrato
ou bulk. Esse terminal é conectado no bloco de semicondutor (silício ou germânio) a partir do qual são
construídas as demais estruturas que dão origem aos terminais do transistor. Em geral, para as estruturas
MOS o terminal do substrato é conectado ao terminal de fonte e, por essa razão, em muitas montagens ele
é ignorado.
O funcionamento de um transistor NMOS tipo enriquecimento pode ser resumido como segue: aplicando-
se uma tensão entre o dreno e a fonte (VDS), a condução de corrente entre esses terminais dependerá da tensão
aplicada na porta (VGS). Se a tensão aplicada ao terminal de porta for positiva e grande o suficiente, atrairá
cargas negativas para a superfície do semicondutor tipo P (substrato) abaixo dele. Aumentando ainda mais
a tensão aplicada na porta, haverá uma camada de elétrons formando um canal ligando os semicondutores
tipo N do dreno e da fonte, possibilitando a condução de corrente entre esses terminais.
Analogamente, nos transistores PMOS deve ser aplicada uma tensão negativa no terminal de porta, a qual
atrairá cargas positivas para a superfície do semicondutor tipo N, induzindo a formação de uma camada de
lacunas (canal) entre o dreno e a fonte, que permitirá a condução de corrente entre eles.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
58

Os transistores MOS tipo depleção diferenciam-se construtivamente dos anteriores pelo fato de já
possuírem uma camada de mesmo tipo de material que o dreno e a fonte, embora com uma dopagem mais
fraca (menor número de portadores) que a região dos terminais.
A Figura 52 mostra a estrutura construtiva de um transistor MOS canal N e um transistor MOS canal P tipo
depleção e seus respectivos símbolos.

N+ Dreno P+ Dreno
(drain) (drain)
Substrato P Porta Substrato Porta
(body) N (body) N P
(gate) (gate)

N+ Fonte P+ Fonte
(source) (source)

MOSFET canal N MOSFET canal P

D D

SUB SUB

G G

S S

CANAL N CANAL P

Figura 52 -  Estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P


tipo depleção e seus respectivos símbolos
Fonte: SENAI - RS

Os transistores MOS tipo depleção foram muito importantes para os primeiros circuitos integrados. Esse
transistor é pouco usado nas tecnologias atuais, cujos circuitos se baseiam quase exclusivamente em transistores
MOS tipo enriquecimento. Ele é bastante similar ao JFET, podendo ser empregado nos mesmos circuitos.
Uma aplicação de circuito que utiliza transistores MOS na eletrônica é a chamada ponte H. Este circuito
é utilizado em situações em que, além de controlar os acionamentos, desejamos controlar a tensão de
uma determinada saída de potência de forma rápida. Este tipo de circuito é utilizado essencialmente em
equipamentos que produzem diferentes efeitos, dependendo da forma de polarização.
Por exemplo, um motor de corrente contínua convencional pode girar no sentido horário ou anti-
horário, dependendo da forma como é conectado à fonte de alimentação (FIGURA 53).

horário anti-horário _
+
+
_

Figura 53 -  Motor de corrente contínua convencional


Fonte: SENAI - RS
2 ELETRÔNICA ANALÓGICA
59

Por meio de um circuito com quatro chaves podemos definir o sentido de rotação do motor (FIGURA 54).

Chave 2 Chave 1
Chave 2 Chave1

Chave 4 Chave 3

Chave 4 Chave 3
+ +
_ _

Chave 2 Chave 1

Chave 4 Chave 3
+
_

Figura 54 -  Motor de corrente contínua convencional 1


Fonte: SENAI - RS

Porém, desejamos realizar o controle eletrônico das chaves. Uma alternativa é usar relés. Segue um esquema
de ligação válido de um motor DC usando relés NA/NF (FIGURA 55).

na
bobina

nf

C
+
_
na
bobina

nf

Figura 55 -  Motor DC
Fonte: SENAI - RS

Apesar de o circuito acima funcionar, existem limitações, como:


a) tamanho - o circuito usando relés tende a ser maior do que usando semicondutores;
b) lentidão - o uso de dispositivos eletromecânicos, como os relés, é, muitas vezes, mais lento que os
que usam semicondutores como transistores;
c) nível de sinal - a necessidade de um sinal de controle amplificado o suficiente para poder acionar os relés.
Usando transistores no lugar das chaves, podemos ter um circuito mais leve, de menor custo
e que permite acionamentos por meio de sinais de baixa corrente. Utilizando transistores MOS,
existe ainda a vantagem de ter acionamento feito por tensão, minimizando problemas relativos ao
controle de corrente no acionamento da carga.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
60

Na Figura 56 é apresentado o esquema de uma ponte H controlando um motor DC.

+V

Q1 Q3
D1 D3
Q2 M Q4
Controle
D2 D4

Figura 56 -  Ponte H para controle da rotação de um motor utilizando transistores MOS


Fonte: SENAI - RS

Uma característica da ponte H é que os transistores, ou chaves, estão diagonalmente interligados.


Assim, quando Q1 for acionado, Q4 também será acionado. Analogamente, quando Q2 for acionado,
Q3 também será acionado. Desta forma, cada vez que o circuito de controle (microcontrolador)
acionar um dos pares de transistores, o caminho que a corrente elétrica percorrerá no circuito da
ponte fará com que o motor gire em um sentido diferente, conforme mostrado na Figura 57.
V+ V+ V+ V+

Figura 57 -  Detalhamento
Fonte: SENAI - RS

É importante lembrar que a construção de uma ponte H pode ser realizada utilizando qualquer tipo de
transistores (MOS, bipolares ou JFET), bem como relés.

Em uma PONTE H, é importante avaliar a implementação de um circuito de controle


FIQUE robusto e proteção em caso de acionamento indevido, pois caso haja acionamento em
ALERTA ambas as direções, ocorrerá um “curto circuito”, elevando drasticamente a corrente e
podendo causar danos irreversíveis aos componentes.

SAIBA Pesquise pelo termo HALF BRIDGE e sua aplicação no controle de motores de corrente
contínua. Verifique se existe algum circuito integrado que possa substituir quatro ou
MAIS mais transistores para acionamentos em ponte H.
2 ELETRÔNICA ANALÓGICA
61

OBSERVAÇÕES SOBRE A UTILIZAÇÃO DE TRANSISTORES BIPOLARES E MOSFETS

A seguir, veja algumas observações sobre a utilização de transistores bipolares e mosfets:


a) o transistor bipolar e o MOSFET não servem para controlar correntes alternadas;
b) os MOSFETS são mais caros que os transistores bipolares, mas funcionam melhor como chaves em
altas frequências;
c) o terminal de controle de um transistor (base ou gate) tem sua tensão comparada com a tensão no emissor
ou na fonte. Portanto, não é uma boa ideia colocar a carga em série com estes terminais. Costumeiramente, a
carga, quando em série com um terminal, é colocada junto ao coletor ou ao dreno (FIGURA 58);

C D

B
G

E
S
carga NÃO! carga

Figura 58 -  Terminal de controle de um transistor


Fonte: SENAI - RS

d) é preciso ainda lembrar que, entre o emissor e a base, o transistor se comporta como um diodo
e, portanto, não é boa ideia acionar os transistores bipolares ligando sua base diretamente à tensão de
alimentação ou ao terra. Isto equivale a um curto-circuito. Para evitar o problema, um simples resistor em
série com a base evitará esse curto, além de limitar a corrente de base (FIGURA 59);

+V

+V
carga
E
C
B
NÃO!
B

carga E

Figura 59 -  Terminal de controle de um transistor 1


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
62

e) Sempre devemos colocar um diodo em paralelo com uma carga indutiva, como mostra a Figura
60. Quando a corrente flui normalmente, o diodo não conduz, mas quando o fluxo de corrente é
cortado, o indutor gera uma tensão inversa muito alta que seria capaz de destruir o transistor se não
fosse dissipada pelo diodo.
+V

Carga indutiva
Diodo ( indutor, relé,
transformador etc.)

Chave eletrônica
(transistor bipolar,
MOSFET, SCR etc.)

Figura 60 -  Conexão da carga a um transistor NPN usado como chave


Fonte: SENAI - RS

2.2.5 TRANSISTORES CMOS

A grande maioria dos MOSFETs fabricados atualmente encontram-se na forma de circuito integrado. O
tipo de circuito integrado construído tem ambos os dispositivos PMOS e NMOS embutidos em um mesmo
substrato, como mostrado na Figura 61. Esses circuitos são chamados de CMOS ou MOS complementar
(Complementary Metal-Oxide Semiconductor).
NMOS PMOS

S G G D
B D S B

p+ n+ n+ p+ p+ n+
n-well
P= substrate

Figura 61 -  Circuito CMOS ou MOS


Fonte: SENAI - RS

As principais vantagens apresentadas pela tecnologia CMOS são o baixo consumo de potência, alta
imunidade a ruído, alto nível de integração, simplicidade de projeto e operação confiável em ampla
faixa de valores de tensão e também para altas frequências. Por essas razões, esses dispositivos são
largamente utilizados para a implementação de circuitos digitais, como portas lógicas.
2 ELETRÔNICA ANALÓGICA
63

Além de suas aplicações na Eletrônica Digital, a tecnologia CMOS também é utilizada em aplicações
analógicas, em especial para a construção de amplificadores operacionais ou em radiofrequência, neste
último caso sendo usada em frequências superiores a GHz.
Para o projeto de circuitos com transistores CMOS utilizamos os seguintes símbolos para representar os
transistores PMOS e NMOS (FIGURA 62).

D D

G G

S S

D D

G G

S S
CMOS canal P CMOS canal N

Figura 62 -  Símbolos CMOS


Fonte: SENAI - RS

2.3 TIRISTORES

A característica mais relevante destes semicondutores é atuar como uma chave biestável e de ação
rápida, sendo construídos por meio de quatro ou mais camadas P e N.
O efeito biestável se dá pelo fato de haver uma condição definida para mudar do estado de
bloqueio para o estado condutivo, e vice-versa. De forma geral, um tiristor pode ser colocado em
modo condutivo por um terminal de disparo (gate), ou por meio de uma tensão limite atingida. Uma
vez no estado condutivo, o componente assim se mantém enquanto houver uma corrente principal
fluindo pelo componente superior a um limite mínimo pré-determinado (IH).
São componentes construídos por um mínimo de três junções e de quatro elementos semicondutores
(PNPN) de forma a permitir ou bloquear a passagem da corrente elétrica.
Devido a características apropriadas para o chaveamento (liga e desliga), e sua característica biestável,
aliados à possibilidade de uso em grandes níveis de tensão e corrente, os tiristores são comumente utilizados
em circuitos de chaveamento para controle de potência, em fontes e equipamento de controle de motores e
aquecimento. Podemos encontrar tiristores em sistemas controlados de retificação de corrente alternada, em
sistemas de controle de iluminação (dimmer), inversores de frequência e relés de estado sólido. Devido à sua
simples e rápida ação biestável, os tiristores também são empregados em aplicações de segurança.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
64

Conforme a construção e a forma de disparo, os tiristores são classificados como mostra a Figura 63.
SCR TRIAC SUS ASBS
(Silicon Controlled Rectifier) (Triode AC Switch) (Silicon Unilateral Switch) (Assymmetrical Silicon Bilateral
A M1 A Switch) M1

G G

G G

K M2 K M2

PUT LASCAR SCS GTO


(Programmable Unijunction (Light Activated SCR) (Silicon Controlled Switch) (Gate Turn-Off Switch)
Transistor) A A
A1

G2
G

G G G

K K K
K

SBS DIAC LAPUT LASCS


(Silicon Bilateral Switch) (Bidirectional Diode (Light Activated PUT) (Light Activated SCS)
M1 Thyristor) M1

G
G2

G1

M2 A2 K
K

Figura 63 -  Tipos de tiristores


Fonte: SENAI - RS

MODOS DE DISPARO

Os tiristores são controlados por uma ação específica que faz com que mudem de estado de bloqueio
para estado condutivo. Essa ação é chamada de disparo e pode ser realizada por processos diferentes,
explicados a seguir:
a) injeção de corrente de gate - usado nos SCR, SCS e TRIAC, é o processo mais conhecido de disparo, que
ocorre após a aplicação de uma pequena corrente no terminal de GATE, iniciando o processo de reação em
cadeia (efeito avalanche);
b) tensão entre anodo e catodo - neste caso, o efeito avalanche é determinado pelo aumento da tensão
entre anodo e catodo acima de um limite específico, sem a necessidade de um terceiro terminal. Este
procedimento é usado para o tiristor do tipo DIAC;
c) taxa de subida da tensão anodo e catodo - quando o disparo é realizado por uma rápida variação na
tensão entre anodo e catodo;
d) temperatura - alguns tipos de tiristores são bastante sensíveis à temperatura. Com a elevação da temperatura,
há um aumento na corrente de fuga das junções. Quando o nível de corrente suficiente é atingido, ocorre a
mudança de estado (disparo);
2 ELETRÔNICA ANALÓGICA
65

e) ondas eletromagnéticas (luz) - a incidência de radiação eletromagnética com comprimento de onda


adequado (luz) age aumentando as lacunas no material semicondutor, provocando o disparo.

Um relé de estado sólido é uma alternativa a relés eletromecânicos devido a maior


VOCÊ vida útil, ausência de arco elétrico durante comutações, e velocidade muito mais ele-
SABIA? vada? Este componente, bastante utilizado em sistemas de automação, utiliza tiristo-
res como componente de comutação da parte de potência.

SAIBA Pesquisando por relés de estado sólido e optoacopladores baseados em tiristores.


MAIS

2.3.1 SCR

SCR significa Silicon Controlled Rectifier – Retificador Controlado de Silício. Assim como a maioria dos
tiristores, um SCR possui dois terminais nominados anodo e catodo, que podem ser direta ou inversamente
polarizados.
Para permitir a passagem de corrente, um SCR (FIGURA 64) deve estar diretamente polarizado, e receber
um pulso por meio de seu pino gate, que alguns autores acabam associando ao termo “gatilho” devido à
característica do disparo, embora a tradução literal seja “comporta”.
ANODO CATODO

PORTA
Figura 64 -  Símbolo do SCR
Fonte: SENAI - RS

Símbolo de um SCR. A semelhança com um diodo não é mero acaso. Alguns consideram o SCR um
tipo de diodo, já que possui anodo e catodo. O SCR tem o comportamento de um diodo com controle,
permitindo que definamos o momento que ele deve passar a conduzir quando diretamente polarizado.
De forma genérica, podemos associar um SCR à ligação de dois transistores bipolares, como na Figura 65.
ANODO
ANODO
PNP

PORTA NPN
PORTA

CATODO
CATODO

Figura 65 -  Analogia entre um SCR e um circuito com dois transistores


Fonte: SENAI - RS

Apresentamos agora um gráfico que representa a curva característica VxA de um SCR, que demonstra a
relação da tensão de polarização direta com a corrente.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
66

Tomando por análise o valor da corrente quando diretamente polarizado, observe, na Figura 66, que, após
a corrente de disparo ser atingida, a tensão necessária para manter o estado condutivo cai repentinamente.
Corrente direta
Característica
(A) de condução direta
Intensidade da corrente
de disparo

Ig2 > Ig1


Intensidade da corrente

Ig1>0

Ig= 0
de manutenção
(IH)

Tensão Inversa Tensão direta


VT Corrente de fuga VRO (V)

Corrente de fuga

Zona de ruptura inversa


(dano no componente) Corrente inversa

Figura 66 -  Representação da Curva V x A de um SCR


Fonte: SENAI - RS

IAC

O nome DIAC (FIGURA 67) vem de “Diode for Alternating Current” e significa diodo para corrente alternada.

ANODO 1 ANODO 2

Figura 67 -  Símbolo de DIAC


Fonte: SENAI - RS

Em relação a outros tiristores, é importante observar que os terminais não são nominados anodo e
catodo, mas anodo1 e anodo2, ou, ainda, M1 e M2, variando conforme o fabricante e a literatura.
O DIAC também tem seu funcionamento determinado pelo conjunto de três junções, com materiais P
e N dispostos em camadas. A diferença está em caminhos alternativos e em materiais semicondutores que
permitem a passagem de corrente elétrica em ambas as formas de polarização. Geralmente, um DIAC passa a
conduzir quando uma tensão mínima é atingida (normalmente de 20V a 30V) e entra em estado de bloqueio
quando a corrente fica abaixo de um nível mínimo.
O efeito biestável do DIAC em relação à tensão é similar a algumas lâmpadas NEON, e é utilizado em
circuitos geralmente com o intuito de implementar mecanismos analógicos de disparo de baixo custo.
No próximo tópico há um exemplo de circuito de um DIMMER (para controle de luminosidade em
lâmpadas incandescentes) onde um DIAC é usado para promover o disparo controlado de outro tiristor
(TRIAC) a cada semiciclo da rede de corrente alternada.
2 ELETRÔNICA ANALÓGICA
67

2.3.3 TRIAC

O nome TRIAC vem de “Triode for Alternating Current” e significa triodo para corrente alternada.
De forma geral, o TRIAC é um DIAC com terminal para disparo (gate). Enquanto em um DIAC o que
determina o momento de disparo é a tensão entre os terminais, em um TRIAC isso é determinado
principalmente pela corrente do terminal gate, que chamaremos de corrente de gatilho.
O TRIAC é constituído de dois SCRs em uma configuração antiparalela (paralelo, mas em
sentidos opostos).
Uma aplicação interessante de um TRIAC é em circuitos detectores de zero para acionamento de
relés ou contactoras que comutam cargas elevadas em corrente alternada.
Quando um relé ou contactora convencional é utilizado para acionar uma carga, pode haver erosão e
carbonização nos contatos devido à excessiva corrente de partida do circuito acionado no momento que
o contato do relé é fechado. Com corrente alternada, isso pode ser minimizado se o contato do relé for
acionado ou desativado no momento em que a tensão estiver cruzando o nível zero, pois sem tensão não
há corrente e, consequentemente, não haverá dano.
O TRIAC é aplicado quase exclusivamente em circuitos de corrente alternada, sendo o principal
componente de sistemas de controle de potência em equipamentos AC, largamente utilizado em aplicações
de iluminação, temperatura e controle de velocidade de motores.
Segue o circuito de um DIMMER, que pode ser aplicado nestes tipos de controle, em que a onda senoidal
proveniente da rede elétrica AC é controlada pelo TRIAC, sendo que o disparo do TRIAC é realizado por um
circuito que utiliza um DIAC a fim de realizar um disparo controlado em determinado momento da onda
senoidal AC, ajustado por um potenciômetro.
O DIMMER (FIGURA 68) pode ser utilizado em sistemas de aquecimento (chuveiros, aquecedores e sistemas
que utilizam resistências elétricas), lâmpadas elétricas incandescentes e motores elétricos (eletrodomésticos,
furadeira, parafusadeira etc.)
R1= R2 = 10K V+
F
220K (p/110V) V- t(ms)
R1 RV1= 470K (p/220V)
CARGA
RV1 V+
DIAC
C1 = C2 = 100nF / 400V
220V TRIAC R2 V- t(ms)
TRIAC = TIC226D
V+
N C1 C2
V- t(ms)
chave Efeito do triac
“ceifando” a curva
da corrente alternada

Figura 68 -  Circuito de um dimmer


Fonte: SENAI - RS

FIQUE TRIACs e DIACs são tipicamente utilizados em circuitos de corrente alternada, em tensões
de 110V ou superiores. Sempre observe as práticas de segurança para implementar circui-
ALERTA tos deste tipo, utilizando EPIs e procedimentos adequados.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
68

2.4 CONDICIONAMENTO DE SINAL

Na eletrônica, um sinal é uma informação enviada ou recebida por um meio físico. Os sinais podem ser
digitais ou analógicos.
Em um sinal digital, a informação é representada por estados finitos e definidos, geralmente é
representada por meio de contrastes binários, como 0 e 1, ligado e desligado, tensão positiva ou negativa,
com corrente ou sem corrente, pulso breve ou pulso longo, entre outros.
Em sinais analógicos, a limitação é dada pelos valores máximo e mínimo de uma informação, porém,
pode variar dentro desta faixa, na qual existem infinitas representações possíveis. Um sinal analógico pode
representar uma informação através de uma variação em uma grandeza. Em sistemas elétricos, geralmente,
isso é representado pelas variações de tensão, de corrente ou de frequência.
Um exemplo de sinal analógico é o gerado por um sensor de temperatura do tipo termopar. O sistema
é analógico do ponto de vista da representação da informação porque, apesar de haver um limite máximo
e mínimo de temperaturas suportadas, podem ser representadas todas as possíveis e infinitas informações
dentro deste limite (FIGURA 69).

INFINITOS VALORES

DC

V
,
POWER PK HOLD B/L DC / AC

AUTO POWER OFF

(mV)

+
-
CAT ll

20A mA COM VΩHz

- + 0C
termopar
Figura 69 -  Voltímetro para milivolts conectado a um sensor de temperatura tipo termopar
Fonte: SENAI - RS

SAIBA Os termopares são agrupamentos de dois metais que geram uma pequena tensão
MAIS (geralmente em milésimos de volts) que varia proporcionalmente à temperatura.

A informação analógica é constituída de infinitos valores possíveis em um determinado intervalo. Um


sinal analógico é a representação desta informação por um meio físico (eletricidade, luz, pressão, som,
radiofrequência etc.)
Do ponto de vista eletrônico, é necessário controlar a informação analógica representada eletricamente
pelas variações na resistência, corrente, tensão ou frequência, grandezas estas que sofrem alterações devido
à interferências dos mais diversos tipos, como características dos condutores, ruídos eletromagnéticos e
imprecisões inerentes a partes do circuito.
2 ELETRÔNICA ANALÓGICA
69

Em um sistema elétrico, podemos enviar um sinal de corrente a um transistor bipolar, ou um sinal de


tensão a um MOSFET, conforme estudado anteriormente. Em um sistema de comunicação ótico, enviamos
pulsos de luz por meio de LEDs e os capturamos com fotodiodos ou fototransistores. Na automação
industrial e mecatrônica, sensores padronizados enviam sinais de temperatura, pressão, vazão e outras
grandezas por variações de tensão ou de corrente elétricas.
No caso dos sinais elétricos analógicos, enviar a informação em níveis de tensão e corrente elevados
pode gerar problemas, pois o custo dos condutores seria muito elevado, e sinais elétricos em correntes
elevadas poderiam limitar velocidades e, consequentemente, a troca de informações mais complexas.
Por este motivo, os sinais elétricos geralmente são de baixa tensão e com correntes bastante reduzidas,
menores do que a necessária para acionamentos da maioria dos atuadores (FIGURA 70).

a) b) c)

Figura 70 -  a) sensores analógicos por ultrasom, que envia sinal de 0 a 10V ; b) sensor tubular indutivo analógico, que envia sinal de 0 a 10V conforme proximidade; c)
sensor de pressão que envia sinal analógico por meio de variação de corrente (4 a 20 mA)
Fonte: SENAI - RS

Cabe salientar que eletricidade é somente um dos tipos de energia que utilizamos. Existem outras
formas, como ondas eletromagnéticas, energia térmica, energia cinética, entre outros. A energia pode ser
transformada de uma forma para outra. É o que ocorre, por exemplo, em um transformador, onde a energia
elétrica gera um campo elétrico por meio do enrolamento de fios chamado de primário, e este campo
elétrico, por sua vez, é transformado novamente em energia elétrica no enrolamento secundário.
Da mesma forma, fios condutores de sinal que passam próximos a campos elétricos acabam sofrendo
interferências que podem ser prejudiciais à informação representada.

Uma das primeiras pessoas que transformou sinais elétricos em ondas eletromagné-
ticas para uso em comunicações de rádio foi o Padre Roberto Landell de Moura, um
VOCÊ padre brasileiro de Porto Alegre que, na década de 1890, realizava experiências de
SABIA? comunicação por meio de ondas de rádio.

Muitos equipamentos eletrônicos têm seu princípio de funcionamento relacionado ao envio de


ondas eletromagnéticas, como equipamentos de radiocomunicação, iluminação e aquecimento. Existem
outros que geram ondas eletromagnéticas como subproduto indesejável devido ao seu princípio de
funcionamento, como reatores de luminárias, transformadores, motores elétricos e condutores de alta
tensão. Estes dispositivos acabam gerando interferências eletromagnéticas indesejáveis que podem
interferir nos sinais de transmissão. Fios condutores em circuitos de alta impedância (altíssima resistência)
podem funcionar como antenas, captando ruídos eletromagnéticos e transformando-os em sinais elétricos
que podem interferir na informação representada.
A própria linha de transmissão de energia pode propagar interferências por meio de oscilações
indesejadas causadas por equipamentos a ela conectados.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
70

Portanto, independente da forma de propagação do sinal analógico, existem inúmeros fatores que
interferem de forma indesejável na produção e transmissão da informação. Costumamos chamar esta
interferência de ruído.
Atualmente, a quantidade de informações geradas e transferidas entre os dispositivos é enorme, exigindo
maior velocidade de troca de informaçõese utilização de um mesmo condutor elétrico para transferir várias
informações simultaneamente.

VOCÊ Algumas redes industriais, como a AS-i, permite utilizar um único par de fios para dis-
ponibilizar alimentação e um canal de troca de dados entre vários sensores e atuado-
SABIA? res, diminuindo o custo e facilitando a implantação de sistemas de automação.

Portanto, ao utilizar sinais digitais e analógicos na automação, enfrentaremos problemas relativos a:


a) ruídos: interferência indesejada nos sinais elétricos;
b) níveis de tensão e corrente limitados que precisam ser amplificados;
c) sobreposição de sinais onde precisamos enviar mais do que uma informação no mesmo condutor elétrico.
Os amplificadores operacionais são componentes que nos ajudam a condicionar um sinal elétrico,
removendo ruídos, amplificando níveis de tensão, comparando sinais, somando ou subtraindo tais sinais
elétricos, além de gerar e filtrar sinais de frequência.

2.4.1 AMPLIFICADOR OPERACIONAL

O amplificador operacional, também conhecido como OPAMP ou AMPOP, é um componente eletrônico


com velocidade de resposta bastante elevada que pode ser facilmente adaptado a diversas aplicações na
eletrônica, geralmente relacionadas ao condicionamento de sinais. Através de alguns poucos componentes
externos, é possível aplicar um amplificador operacional em um circuito com comportamento de filtro,
de amplificador, de comparador, de somador, de subtrator ou em outras funções, variando conforme
características do componente e, principalmente, em função das características do circuito de realimentação.

A realimentação (também chamada de retroalimentação ou feedback) ocorre quando a saída de um


processo é utilizada como parte de sua entrada, com um objetivo específico. No caso dos amplificadores
operacionais, a forma como a realimentação é ligada determina a função do componente no circuito.
2 ELETRÔNICA ANALÓGICA
71

Abaixo, a Figura 71 representa um amplificador operacional e um circuito integrado LM741 no


encapsulamento DIP.
V+

+ 1 8
Vo - 2 7 V+
+ 3 6 VO
V- 4 5
V- LM741
Figura 71 -  Amplificador operacional. CI LM741
Fonte: SENAI - RS

SAIBA Pesquise sobre os encapsulamentos possíveis para os amplificadores operacionais, ob-


servando quanto à tecnologia de montagem e à quantidade de amplificadores em um
MAIS mesmo CI.

Muitos autores iniciam o conteúdo de amplificadores operacionais propondo o modelo de um OPAMP ideal,
tendo esse componente as características a seguir:
a) possui ganho de tensão infinito;
b) a impedância de entrada é infinita, não havendo corrente;
c) saída com impedância zero, sem promover perda alguma no sinal gerado;
d) não há retardo algum no tempo de resposta;
e) apresenta a mesma eficiência para qualquer frequência.
Porém, devido a fatores construtivos, os amplificadores operacionais apresentam um comportamento
diferente do ideal, havendo vários modelos no mercado que podem ser selecionados tendo em vista a
aplicação desejada.
Para a maioria das aplicações há um modelo de amplificador operacional que se comporta próximo ao
OPAMP ideal, sendo importante pesquisar sobre as diferentes características de amplificadores operacionais
existentes no mercado.

Pesquisando sobre características de diferentes modelos de amplificadores operacionais,


SAIBA como frequência máxima suportada, ganho máximo, corrente ou impedância de entrada e
MAIS tensão máxima.

Em uma primeira configuração, vamos aplicar um OPAMP genérico para amplificar um sinal de baixo nível de
tensão para posterior uso em um sistema de controle.
A configuração que segue é conhecida como Amplificador Inversor, utilizada como uma configuração
bastante comum para amplificador de ganho constante.
O nome amplificador é devido ao fato de o amplificador operacional inverter a tensão de saída em relação
a de entrada.
Este circuito não é recomendado para amplificar sinais limitados em corrente devido à baixa impedância
do circuito causado, principalmente pelo resistor Rf.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
72

Veja, na Figura 72 que, no gráfico em vermelho, o sinal de entrada (Vi), e em azul, o sinal de saída já
amplificado e invertido (Vo):

VO
Vi
Ri
Vi VO
Rf

ganho = VO =
Rf
Vi Ri
Figura 72 -  Amplificador inversor
Fonte: SENAI - RS

Para sinais de entrada fracos (de baixíssima corrente) é recomendada a configuração de Amplificador
Operacional não inversor, a qual não inverte o sinal, variando conforme a qualidade e o modelo do componente.
A Figura 73 mostra um amplificador não inversor, cujo gráfico em vermelho indica o sinal de entrada (Vi) e
em azul, o sinal de saída já amplificado (Vo). Observe a mudança na fórmula para cálculo do ganho para essa
configuração, que é dada por Av = 1 + (Rf / Ri).
Aplicação: aumentar a amplitude de um sinal elétrico para um ganho definido.
Exemplo: um termopar conectado a um sistema de controle.
Vi

VO
Vi
Ri
VO
Rf

Rf
ganho = 1+
Ri
Figura 73 -  Amplificador.
Fonte: SENAI - RS

Dado o exemplo de ligação de um termopar em um sistema de controle, vamos a algumas considerações


importantes sobre esse sensor:
a) termopares são dispositivos muito utilizados em medição de temperatura, visto sua eficiência e,
principalmente, seu custo;
b) seu funcionamento é baseado no fato de uma junção de dois metais poder gerar tensão de acordo
com a temperatura à qual ele é submetido;
c) dependendo da faixa de temperatura e da precisão, utilizamos uma combinação de par metálico
específica. No momento, não nos aprofundaremos neste assunto, deixando para explicar melhor no capítulo
de sensores.
O importante é observar que em função do tipo e das dimensões da junção, um termopar gera um sinal
com tensão e corrente bastante baixas e que devem ser amplificados para o aumento da robustez do sinal,
pois caso contrário o sinal poderia ser facilmente alterado por fatores externos indesejáveis, como ruído
eletromagnético, resistência de condutores etc.
2 ELETRÔNICA ANALÓGICA
73

Para facilitar o entendimento sobre o uso de amplificadores operacionais na automação, vamos estudar o
equipamento abaixo, propondo algumas estratégias de controle utilizando eletrônica analógica por meio de
amplificadores operacionais.
Um tanque de fluído (FIGURA 74), em uma indústria de alimentos, deve ser mantido a uma temperatura
relativamente estável, próxima a 60ºC. Para a leitura da temperatura é utilizado um termopar tipo K que
pode gerar até 48,838 mV quando submetido à temperatura de 1200°C, em uma corrente praticamente
nula, de alguns microampèr ou nanoampèr. Após calcular a relação entre tensão e temperatura, levando
em consideração a curva do sensor utilizado, é informado que aos 60ºC é obtida uma tensão de 2,5 mV
(0,0025 V).

aquecedor
sinal 0...48,8 mV

CONTROLE
220V relé

0V ou 24V, 120 mA

Figura 74 -  Tanque de fluido


Fonte: SENAI - RS

Como desejamos manter a temperatura do sistema acima deste limite, um circuito de controle é
implementado de forma a acionar o relé que ativa o aquecimento sempre que a temperatura for inferior a
60ºC, ou seja, sempre que a tensão gerada pelo termopar for inferior a 2,5 mV.
Sendo a tensão muito baixa para aplicar diretamente em um circuito de controle, agravado pelo fato de
a corrente disponibilizada por este sinal ser extremamente baixa, vamos usar um amplificador operacional
segundo o esquema a seguir (FIGURA 75).

5V
VO
aquecedor Ri

220V relé
1K 5V
Rf

1M
OPAMP não inversor

ganho = 1+ Rf / Ri = 1 + 1000000 / 1000 = 1001

Figura 75 -  Tanque de fluido 1


Fonte: SENAI - RS

Devida à configuração de ganho 1001, a tensão de 2,5 mV (limite para o controle do aquecedor) será
amplificada pelo OPAMP, gerando uma tensão 1001 vezes maior.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
74

Após passar pelo OPAMP, o sinal é amplificado 1001 vezes. Desta forma, o sinal de alguns milivolts passa
a ser bem maior, facilitando o uso da informação por ele representada no restante do circuito de controle.
Embora nosso circuito tenha amplificado o sinal de alguns milivolts para uma tensão mais significativa,
ainda há um problema: como fazer com que um sinal deste circuito acione o aquecedor se e, somente se, este
sinal for inferior a 2,5025 V?
Para provar a versatilidade dos amplificadores operacionais, no próximo tópico estudaremos como
utilizar outro OPAMP neste circuito como um circuito de comparação, obtendo uma saída que indique
se o sinal ultrapassou ou não o limite definido.

2.4.2 AMPLIFICADOR OPERACIONAL COMO COMPARADOR

Em um circuito comparador, o objetivo é realizar a comparação entre dois sinais distintos, obtendo uma
saída que indica se o primeiro sinal é maior ou menor que o segundo.
No exemplo anterior havia um sinal que deveria ser comparado com o valor da tensão limite de 2,5025V
para obtermos a informação necessária relativa ao controle do aquecedor.
Neste caso, dado que já temos o sinal a ser comparado, precisamos gerar um sinal fixo o mais próximo
possível desta tensão.
Usando um divisor de tensão (FIGURA 76), podemos obter, por meio da mesma fonte de alimentação
do circuito, uma tensão próxima a 2,5 V. O divisor de tensão pode ser obtido pela ligação em série de dois
resistores entre a alimentação de 5 V e a referência (GND). Recomendamos resistores de precisão (1%) para
obter melhor resultado.
Vin 5V C.C.
R1

1k2

Vout
2,5V

1k2
R2

Figura 76 -  Divisor de tensão


Fonte: SENAI - RS

Neste tipo de circuito, Vout pode ser determinado pela fórmula a seguir:
Vout = Vin . R2
(R1 + R2)
2 ELETRÔNICA ANALÓGICA
75

Tendo a referência de 2,5 V, bastante aproximada do valor desejado para a aplicação, precisamos agora
comparar o sinal proveniente do circuito de amplificação com esta referência. É importante lembrar que
o divisor de tensão acima gera uma tensão muito próxima, com uma variação inerente à precisão dos
componentes utilizados.
Podemos montar o circuito da Figura 77.
amplificador Vin5V

5V 1K2

R1
5V
aquecedor Ri 2,5V
VO
1K2

R2
220V relé
1K 5V
Vi
Rf
VO = 5V quando Vi < 2,5V
1M 0V quando Vi > 2,5V
Figura 77 -  Circuito
Fonte: SENAI - RS

Embora este sistema seja útil, na prática poderá haver alguns problemas. Observe que a saída terá tensão
próxima a 0V quando a tensão da entrada inversora do OPAMP usado como comparador estiver acima de
2,5V, e esta mesma saída será próxima a 5V quando a entrada for inferior a 2,5V. Mas, e quando o sinal estiver
exatamente em 2,5V? Neste caso, devido ao alto ganho do componente e à instabilidade típica dos sinais
elétricos em circuitos reais, podemos esperar pequenas oscilações em frequências aleatórias, que farão com
que a saída oscile, variando bruscamente entre 0V e 5V, podendo danificar componentes ou partes do circuito
devido ao excessivo liga e desliga intermitente. Em outras palavras, a saída do circuito comparador ficará
muito instável quando as entradas do OPAMP comparador estiverem com valores muito próximos.
Neste caso, podemos configurar o circuito comparador na forma de um circuito Schmitt trigger, ou
em português, um “disparador Schmitt”, adicionando um comportamento que irá gerar estabilidade ao
sistema.
Esquema de um disparador Schmitt junto ao gráfico que demonstra o comportamento da saída em
função do sinal de entrada (FIGURA 78).
Vref
R3
Vc
R1 Vc ‘ Vi
Vsup:V +
(s)
Vc
V+
V0
V0
R2 Vi
V0 = 0 V0 = V +
quando sinal de quando sinal de
entrada ficar acima entrada ficar
Vinf: V - de Vc abaixo de Vc’.

Figura 78 -  Circuito 1
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
76

No circuito acima há uma faixa de deslocamento gerada pela realimentação. Quando a saída estiver em
nível baixo, a realimentação realizada pelo circuito limitado por R3 baixa o nível de tensão Vc gerado pelo
divisor de tensão na entrada não inversora para o nível Vc’. Quando Vi for inferior a Vc’, Vo é elevado para
o nível alto de tensão, realimentando o circuito e elevando a tensão da entrada não-inversora novamente
para Vc. Portanto, com este circuito acabam sendo criadas duas tensões de referência diferentes para o
comparador, uma para quando ele está com a saída em nível alto de tensão e outra para quando ele está
em nível baixo de tensão. A diferença entre duas saídas chamamos de histerese. Ela consiste em uma zona
de transição sem efeitos, pois as variações ocorridas neste intervalo não geram mudanças no estado da
saída do comparador.
De forma mais específica, histerese significa retardo, mas a utilização desse termo na automação
industrial e na mecatrônica é referente a uma área neutra, em que um estímulo externo não causa efeito
na saída.
Como R1, R2 e R3 são dimensionados?
Primeiro precisamos calcular a resistência RTOT, dada pelo cálculo:
RTOT = 1 / (1/R1 + 1/R2 + 1/R3)
Posteriormente, podemos calcular A e B, dados pela fórmula:
A = VREF . RTOT / R1
B = VSUP . RTOT / R3
Finalmente, obtemos os limites dos níveis de tensão desejados:
Vc = A + B
Vc’ = A – B

SAIBA Você pode criar uma planilha eletrônica com as fórmulas para ajudar à calcular, utilizan-
MAIS do dos valores de VSUP, R1, R2 e R3, o valor para Vc e Vc’.

Embora a fórmula para calcular estes componentes não seja muito complexa, trata-se de um sistema
com várias soluções possíveis. Alguns softwares e calculadoras foram criados e disponibilizados com o
objetivo de auxiliar nestes cálculos, permitindo encontrar valores muito próximos ao desejável utilizando
resistores comerciais simples.
Observe que o circuito proposto ainda é bastante inflexível, pois a tensão de Vc é fixa, proporcionada
pelo divisor de tensão criado pelos dois resistores R1 e R2. Porém, se no lugar dos resistores ligarmos um
potenciômetro, ou seja, um resistor variável, teremos um circuito similar, porém com a tensão de referência
do comparador variando conforme a posição do cursor do potenciômetro.
2 ELETRÔNICA ANALÓGICA
77

2.4.3 AMPLIFICADOR OPERACIONAL COMO SOMADOR

Se o sistema anteriormente proposto estivesse monitorando a temperatura de um ambiente muito


grande, em um equipamento de grandes dimensões, haveria um problema: a velocidade com que o calor é
dissipado em um corpo depende de fatores como condutividade térmica do material, massa e densidade.
Em alguns sistemas, há necessidade de mais de um sensor, espalhados em pontos afastados, onde o
controle é realizado através da média de temperatura lida por estes sensores.
Nestas situações, utilizamos a configuração de amplificador operacional como somador.
Segue, na Figura 79, o esquema de um circuito somador inversor.

Vin1 Vout
R1

Vin2
R2

Vinn Rf
Rn

Figura 79 -  Circuito somador inversor


Fonte: SENAI - RS

Vin1 + Vin2 + Vinn)


A tensão de saída será dada pela fórmula (V0ut = -Rf ( ).
R1 R2 Rn
Se todos os resistores utilizados forem de mesmo valor, teremos como saída do amplificador a média
aritmética das entradas, amplificada pelo ganho definido por Rf, e invertida. Podemos, então, aplicar
este circuito para “juntar” os sinais de diversos sensores em nosso circuito de controle e obter um sinal
proporcional e amplificado relativo à média deles.

2.4.4 AMPLIFICADOR OPERACIONAL COMO SUBTRATOR

Também conhecido como amplificador de diferença por alguns autores, é caracterizado pela disposição
do circuito em que se obtém a diferença entre os sinais multiplicado por um ganho que pode ser configurado.
Uma aplicação bastante interessante é na eliminação de ruídos em cabos de comunicação. Em sistemas
mais tradicionais de envio de informação, cabos blindados são utilizados para evitar que seu núcleo seja
submetido a ruídos eletromagnéticos e o sinal seja alterado. Estes cabos são relativamente caros, mas
impedem que a informação seja degradada ou alterada.

VOCÊ Um cabo blindado utiliza o princípio de “Gaiola de Faraday” para, por meio de sua ma-
SABIA? lha, eliminar a interferência de um campo elétrico externo em seu núcleo.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
78

Em tecnologias mais recentes na transmissão de sinais analógicos e digitais, altas velocidades e


redução de custo levaram a outras formas de lidar com ruídos eletromagnéticos em condutores elétricos,
principalmente por meio da técnica de cancelamento em par trançado.
Cabos de telefonia e de rede de computadores utilizam esta técnica, em que os dados são enviados em
um par de cabos trançados. Cada condutor é submetido praticamente as mesmas condições de ruído e o
equipamento receptor deve analisar a diferença de ruído entre os diferentes condutores do par.
Amplificadores operacionais são comumente utilizados na comparação destes sinais, podendo atuar
como “filtros” de ruído (FIGURA 80).
Amplificador
de diferenças
Vt
+
-

Transdutor
Vs

Vt V interf Vs t
Sinal filtrado
e amplificado
t t t
Sinal do Sinais de Sinal recebido
transdutor interferências (transdutor + interferências)
(sinal enviado)
Figura 80 -  Amplificador operacional como subtrator
Fonte: SENAI - RS

Na Figura 81 podemos ver uma configuração bastante comum para amplificador subtrator.

R3
Vin1
R4
Vout
Vin2
R1
R2
R1 = R3
R2 = R4

Figura 81 -  Amplificador operacional como subtrator 1


Fonte: SENAI - RS
2 ELETRÔNICA ANALÓGICA
79

Observando que R1 = R3, e R2 = R4, teremos:


Vout = ( Vin1 - Vin2) . R2
R1

2.5 OSCILADORES

Osciladores são circuitos multivibradores que apresentam dois estados possíveis na saída, variando de
um para outro após um tempo ou evento.

2.5.1 OSCILADOR ASTÁVEL

No caso de osciladores astáveis, o tempo de transição entre os estados é configurável por meio de uma
malha de componentes externos (FIGURA 82).

Vin

Vo

Figura 82 -  Representação do sinal de entrada (Vin) e saída (Vo) de um oscilador astável


Fonte: SENAI - RS

Em termos de circuitos eletrônicos, são várias as possibilidades de construção para circuitos


multivibradores astáveis, que podem ser construídos utilizando amplificadores operacionais, transistores
ou portas lógicas.
Um dos componentes mais utilizados para a construção de circuitos com este comportamento é o
temporizador (timer) 555 (LM555, NE555, SE555).
O circuito integrado 555 pode ser configurado pela adição de componentes externos para operar como
um multivibrador em qualquer uma de suas funções (astável, monoestável ou biestável). A vantagem de
utilizar esse componente em lugar de circuitos com amplificadores, transistores e portas lógicas encontra-
se em sua flexibilidade, seu baixo custo e sua confiabilidade.
Observando o gráfico da Figura 83, podemos perceber que a duração dos pulsos t1 (em estado alto) e t2
(em estado baixo) não é a mesma, e pode ser configurada pelos resistores R1, R2 e C1.

+Vcc

R1+R2
R1 4 8 R2
Saída Capacitor 2/3 Vcc
7 3 (V6= V2)
1/3 Vcc
0V
R2
Saída + Vcc
6 (V3) 0V
2 5 10n
C1 1 1 2

Figura 83 -  Circuito integrado 555 e gráfico de saída


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
80

A definição dos valores de t1 e t2 é dada pelo cálculo a seguir.


t1 = 0,7 . (R1 + R2 ) C1 e t2 = 0.7 . R2C1
Para calcular a frequência do sinal gerado pelo 555 usamos:

f = (R1 1,44
+ 2R2) C1
No circuito apresentado anteriormente, a presença opcional do diodo permite que a carga do capacitor
C1 ocorra apenas por R1 e que a descarga ocorra somente por R2. Dessa forma, t1 = 0,7 . R1 . C1 e t2 = 0.7 . R2C1.
O capacitor de 10nF conectado entre os pinos 1 e 5 é sugestão do fabricante.
Com o diodo, a relação entre t1 e t2 fica respectivamente vinculada a R1 e R2, facilitando a implementação
de circuitos que utilizam resistências variáveis para mudar a largura e o tempo do pulso. O uso de variações
na largura do pulso sem alterações na frequência é bastante útil no uso de PWM.
PWM: Pulse Wide Modulation, ou modulação por largura de pulso, consiste na geração de pulsos
(geralmente onda quadrada) com frequência fixa e largura variável, como ilustrado na Figura 84.
5V
tensão

tempo (ms)

5V
tensão
média

tempo (ms)
Figura 84 -  Gráfico de PWM a 1kHz
Fonte: SENAI - RS

A taxa de trabalho (Duty Cycle) é definida proporcionalmente de 0% a 100%, dependendo do tempo em que
a saída permanece em nível alto em cada ciclo. Em circuitos simples usando o circuito integrado 555 sem o diodo,
como a duração do pulso (sinal em nível alto) é maior que a duração do sinal em nível baixo, a taxa de trabalho
sempre é igual ou superior a 50%. Para a obtenção de uma taxa menor que 50%, um diodo deve ser conectado
(como no exemplo anterior) em paralelo com R2, fazendo com que a duração do pulso dependa apenas de R1 e
C1. Desse modo, temos o que é representado na Figura 85.
Sem o diodo:
R1 +R2
DH =
R1 + 2R2
DH = 0.5 (mín)
R2 DH = 1 (máx)
DL =
R1+2R2

Com o diodo:
R1
DH =
R1+R2 DH = 0 (mín)
R2 DH = 1 (máx)
DL = DL DH
R1+R2
Figura 85 -  Cálculo para obtenção da taxa de trabalho menor que 50%
Fonte: SENAI - RS
2 ELETRÔNICA ANALÓGICA
81

FIQUE O limite de saída de um CI 555 é de 10mA. Portanto, se for necessário amplifique este
ALERTA sinal conectando o pino 3 a um resistor em série com a base de um transistor, dimen-
sione o resistor para uma corrente não superior a 10mA usando a fórmula R = V / I.

SAIBA Consultando a folha de dados (datasheet) do circuito integrado 555. Pesquise também
MAIS sobre aplicações deste circuito integrado relacionadas a timers e frequência.

2.5.2 OSCILADOR MONOESTÁVEL

Trata-se de um oscilador em que a transição para um estado se dá por um evento externo (disparo) e
o retorno para o estado de origem ocorre pela passagem de um tempo determinado pelo capacitor C1 e
resistor R1 (FIGURA 86).
+Vcc

R1 4 8
Saída Disparo
Disparo 7 3 (V2)
6
C1 Saída + Vcc
(V3) 0V
2 5 10n t t t
1

Figura 86 -  Oscilador monoestável


Fonte: SENAI - RS

A fórmula do tempo do pulso gerado (t) é dada por:


t = R1 . C1 . 1,1
Observe que, para o circuito comercial 555, o disparo ocorre quando um pulso negativo é percebido
pelo pino 2 do componente. A aplicação deste circuito na automação industrial é dada essencialmente em
circuitos simples de temporização.
Essencialmente, o 555 configurado como oscilador monoestável age como um temporizador. No
exemplo anterior, quando houver um pulso na chave de disparo, a saída será ativada, permanecendo assim
por um tempo determinado (t) que é configurado pelos valores de R1 e C1.
Em alguns casos, utiliza-se resistore variáveis (potenciômetros) no lugar de R1, criando-se um
temporizador ajustável.

SAIBA Pesquise sobre a configuração de um circuito biestável utilizando o CI 555. Descubra as


MAIS diferenças de funcionamento em relação aos circuitos osciladores já estudados.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
82

2.6 FILTROS

Filtros são limitadores que permitem a passagem de alguns elementos desejáveis, retendo elementos
indesejáveis. Quando usamos um filtro para filtrar água, deixamos passar a água, procurando reter as
impurezas.
Na eletrônica, os filtros são basicamente aplicados aos sinais elétricos representados pelas grandezas de
tensão, corrente e frequência, permitindo que sinais sejam bloqueados ou separados.

2.6.1 FILTRO PASSIVO

Um Filtro passivo é um tipo de filtro construído com resistores, capacitores e indutores e, geralmente, são
elementos de baixo custo e com resultados satisfatórios.
Filtros passivos são aplicados em sistemas de áudio para separar os sinais de alta frequência (mais
agudos) dos de baixa frequência (mais graves). Filtros também são usados em linhas de alimentação, na
rede de corrente alternada, para evitar que ruídos elétricos interfiram no funcionamento dos equipamentos.
Um exemplo de filtro passivo é o utilizado em uma fonte de alimentação com transformador, onde
a corrente alternada é reduzida a um nível de tensão menor, e posteriormente retificada, porém ainda
com um ripple (ondulação). Esse ripple precisa ser filtrado, para que o resíduo da frequência de entrada
desapareça. É aplicado, então, um filtro capacitivo, reduzindo a ondulação significativamente (FIGURA 87).
DIODOS
RETIFICADORES
Corrente
V+
alternada
Corrente
contínua CAPACITOR

GND

V V V V
+ + + +
t t t t
- - - -

Figura 87 -  Filtro com capacitor, aplicado e fontes para diminuição do “ripple”


Fonte: SENAI - RS

Nos sistemas de comunicação, com correntes e tensões menores, filtros passivos podem ser uma
solução simples e de baixo custo para eliminar sinais indesejados.
Como a maioria dos filtros são aplicados no domínio da frequência, nos ateremos aos seguintes tipos:
a) passa baixa - somente deixa passar frequências abaixo de um valor.
b) passa alta - somente deixa passar frequência acima de um valor.
c) passa faixa- somente deixa passar frequências em uma determinada faixa.
d) rejeita faixa - bloqueia a passagem de frequências específicas.
É importante observar que, nos filtros supracitados, o funcionamento real não é igual ao funcionamento
ideal, pois os filtros atenuam as frequências indesejadas, mas não as eliminam por completo.
2 ELETRÔNICA ANALÓGICA
83

A resposta de um filtro geralmente é representada por um gráfico, conforme a Figura 88.


frequência de corte

70,7%

intensidade
sinal
indesejado

do sinal
sinal desejado
frequência

Figura 88 -  Gráfico da Intensidade de sinal x Frequência


Fonte: SENAI - RS

A eficiência do filtro pode variar devido a seus aspectos construtivos. Os filtros passivos tendem a
ser menos eficientes que os filtros ativos, mas seu custo e simplicidade justifica a aplicação na maioria
das situações.
Melhores respostas em filtros passivos também podem ser obtidas com a realização de combinações
entre mais de um filtro simples. Quando dois filtros são combinados, obtemos uma curva mais íngreme
após o valor de corte. Chamamos a combinação destes dois filtros de filtro de segunda ordem. Aplicando
um terceiro filtro, a curva apresenta uma queda ainda mais acentuada e o chamamos de filtro de terceira
ordem. No entanto, a cada “camada” adicionada ao filtro há uma perda considerável na intensidade do sinal
para filtros passivos. Cabe a quem projeta o circuito dimensionar o filtro mais adequado para a aplicação.
Vamos, agora, estudar a aplicação de um filtro utilizado para eliminar ruídos de alta frequência em um
sensor digital de velocidade. Embora haja mais de uma configuração de circuito possível para um filtro
passivo, nos ateremos a configurações mais comuns para este primeiro nível de estudo.
Segue a implementação de um filtro Passa Baixa (FIGURA 89) de primeira ordem, utilizado para eliminar
ruídos de alta frequência em um sinal de um sensor que conta pulsos gerados pela polia de um motor. A
frequência máxima destes pulsos é de 200 Hz, e este circuito foi dimensionado para eliminar sinais com
frequências superiores a esta.
R
1
Vout

Frequência de corte =
Vin

C 2. π . R . C

Figura 89 -  Filtro passa baixa


Fonte: SENAI - RS

Portanto, para 200 Hz, temos:


Fc = 1 / (2 . π . R . C)

200 = 1 / (2 . 3,1416 . R . C)
R . C = 1 / (2 . 3,1416 . 200)
R . C = 0,000796
Então, para obter a frequência de corte de 200 Hz, o resistor é dado por 0,000796 / C.
Por exemplo, com um capacitor de 33uF, temos um resistor de 0,000796 / 0,000033F = 24,12 W. Usando
valor comercial de 22 W, a frequência de corte pode ser recalculada para o valor pouco superior a 219 Hz. Acima
desta frequência, os sinais serão atenuados, e quanto maior a frequência do sinal, mais ele será atenuado.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
84

Em situações de sinais de alta velocidade, em frequências mais elevadas, podemos ter problemas devido a
ruídos gerados principalmente pela rede de corrente alternada (no Brasil, 60Hz), que pode causar alterações nas
informações enviadas.
Nestas situações, a aplicação de filtros Passa Alta permite eliminar ruídos abaixo de uma frequência
específica (FIGURA 90).
Vin Vout

Figura 90 -  Filtro passa alta


Fonte: SENAI - RS

Neste tipo de ligação, os sinais de baixa frequência (abaixo da frequência de corte: fc) são atenuados. A
frequência de corte é definida pela fórmula a seguir.
Fc = 1 / (2 . π . R . C)
Para situações em que é necessário filtrar sinais acima e abaixo de uma determinada frequência, pode
ser implementado um circuito de passa-faixa, que atenua sinais acima e abaixo de um determinado nível
de frequência (FIGURA 91).

Vin C L Vout

Figura 91 -  Filtro passa-faixa, usando capacitor, indutor e resistor


Fonte: SENAI - RS

Neste tipo de filtro não buscamos a frequência de corte, e, sim, a frequência de ressonância, onde o sinal
não será atenuado. Ela pode ser calculada segundo a fórmula a seguir.

1
fR =
2 . π . LC
Onde L é o valor do indutor, em henry.
Em um filtro rejeita-faixa, o objetivo é atenuar o sinal justamente em uma frequência específica, deixando
passar sinais acima e abaixo da faixa definida (FIGURA 92).
Vin C Vout

L
R

Figura 92 -  Filtro rejeita-faixa, também conhecido como rejeita-banda


Fonte: SENAI - RS
2 ELETRÔNICA ANALÓGICA
85

Devemos observar que os filtros passivos acabam por atenuar o sinal, não só do sinal que desejamos
filtrar, mas também do sinal que deve passar, necessitando de uma etapa de amplificação em casos de
sinais mais fracos. Outro fator importante é a condição de atenuação para frequências próximas à zona de
corte, que ainda permite uma significativa passagem de sinais em casos de filtros de primeira ordem.
É sugere, portanto, a implementação destes filtros somente em situações menos críticas, com o intuito
de melhorar o sinal e reduzir interferências.
Em situações mais críticas, em filtros aplicados a sinais de baixa corrente e tensão, é recomendado o uso
de amplificadores operacionais para a construção dos filtros, a que chamamos de filtros ativos.

2.6.2 FILTRO ATIVO

Seguimos agora com configurações mais utilizadas de amplificadores operacionais para filtros de frequência.
Para os filtros que seguem, o ganho pode ser configurado pela fórmula:
Ganho = 1 + Rf / Rg
No caso do filtro passa baixa, serão atenuados sinais acima da frequência de corte (FIGURA 93).

Rg Rf

V+

R1 Amp- op Saída
+ (Vo)
V1 C1
V-

Figura 93 -  Filtro passa-baixa


Fonte: SENAI - RS

No caso do filtro passa alta, serão atenuados sinais abaixo da frequência de corte (FIGURA 94).

Rg Rf

C1 Amp- op (Vo)
V1 +

R1

Figura 94 -  Filtro passa-alta


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
86

Por meio da ligação de dois filtros, sendo um passa alta e outro passa baixa, é possível criar um filtro
passa-banda (FIGURA 95).
Rg Rf
Rg Rf

R2 Amp- op (Vo)
C1 Amp- op +
V1 +
C2
R1

Seção passa-altas Seção passa-baixas

Figura 95 -  Filtro ativo passa-banda


Fonte: SENAI - RS

Neste caso, a frequência que “passará” pelo filtro é limitada abaixo pela frequência de corte da parte
passa-baixa, e acima pela frequência de corte da parte passa alta.

2.7 FONTES DE ALIMENTAÇÃO

De forma abrangente, uma fonte de alimentação é responsável pelo fornecimento de energia. No


caso das fontes de alimentação elétricas (FIGURA 96, FIGURA 97 e FIGURA 98) utilizadas na automação
industrial, trata-se do equipamento responsável pela transformação da corrente alternada em corrente
contínua, com diminuição da tensão.
o
1

**********
**********

*** ***
*** ***

Fonte de bancada, Fonte de um microcomputador Fonte chaveada 2A


entrada AC 110V/ DESKTOP 250W. Entrada Entrada 100-240V
220V c/ chave seletora, 110V/220V (c/ chave seletora) AC Saída 24V DC (estabilizada)
saída ajustável DC de 0 a 30V e saídas DC5V 20A, -5V 1A,12V
5A, -12V 1A, 3.3V 1A

Figura 96 -  Fonte de bancada Figura 97 -  Fonte de Figura 98 -  Fonte chaveada 2A


Fonte: SENAI - RS microcomputador Fonte: SENAI - RS
Fonte: SENAI - RS

Quase todos os equipamentos eletrônicos que utilizamos, e que são conectados a uma tomada
convencional possuem fontes de alimentação. Nos eletrodomésticos e dispositivos eletrônicos de uso
residencial, a fonte é responsável por transformar a corrente alternada da tomada em corrente contínua,
reduzindo também o nível de tensão de entrada, que geralmente é 110V ou 220V, para tensões mais
baixas, como 3V, 5V, 12V, 24V, variando conforme características e aplicações dos circuitos alimentados.
2 ELETRÔNICA ANALÓGICA
87

Algumas fontes de alimentação são construídas de forma a funcionar com um nível de tensão de entrada
fixa. Outras possuem uma chave seletora em que o usuário pode definir qual o nível de tensão de entrada
(110V / 220V). Fontes mais recentes podem apresentar um recurso de ajuste automático em relação à
tensão de entrada, funcionando dentro de uma faixa específica, por exemplo de 100V a 250V. Em ambos os
casos, é importante observar a tensão de entrada antes de conectar a fonte à rede elétrica.

FIQUE Alimentar uma fonte com tensão superior à indicada pode causar superaquecimento,
ALERTA causando danos permanentes ao equipamento e aos circuitos por ela alimentados.

Algumas fontes podem ser construídas a fim de fornecer níveis de tensão diferentes, geralmente
utilizados para alimentar partes diferentes do circuito. Por exemplo, em um microcomputador são comuns
fontes de alimentação com entrada 110V ou 220V C.A. e saídas de alimentação de 5V, -5V, 12V e -12V C.C.,
podendo ainda haver outros níveis de tensão, dependendo do equipamento.
Em certas aplicações existe ainda a necessidade de um ajuste manual da tensão de saída. Neste caso,
utilizamos fontes ajustáveis em que, por meio de uma chave seletora ou potenciômetro, podemos definir
a tensão desejada na saída.
Fontes estabilizadas são as fontes que possuem a saída de tensão estabilizada por um circuito de
controle em malha fechada, impedindo que a tensão na saída fique acima do valor limite. Em fontes não
estabilizadas, a tensão da saída pode variar conforme a carga, influenciada pelos filtros nela utilizados.
Fontes não estabilizadas, quando não submetidas a carga, tendem a uma tensão de saída próxima ao
valor de pico (PMPO). Quando uma carga é submetida obtemos a tensão média (RMS), geralmente sendo
esta a tensão para a qual a fonte foi dimensionada (FIGURA 99).

PMPO
V+ RMS
t(ms)
Figura 99 -  Gráfico da tensão após retificação, sem aplicação de filtros
Fonte: SENAI - RS

O circuito estabilizador evita que a tensão de saída varie conforme a carga, mantendo sempre o mesmo
nível de tensão na saída. Para alguns tipos de circuitos, este recurso é muito importante, pois o efeito da
tensão variando conforme a carga pode fazer com que o circuito alimentado atue de forma indesejada.
Uma fonte de alimentação é composta das seguintes partes:
a) circuito de proteção de entrada, interruptor e seletor de tensão - caracterizado por fusíveis, chaves
de alimentação e circuitos de seleção de tensão para sistemas não automáticos. Algumas fontes utilizam
circuitos para proteção contra sobrecorrente (fusíveis) e contra sobretensão (varistores);
b) circuito de transformação - responsável pela diminuição ou elevação da tensão. Em algumas fontes, é
constituído de um transformador, e em outros utiliza semicondutores específicos, como tiristores e transistores;
c) circuito de retificação - responsável por transformar a corrente alternada em corrente contínua por
meio de circuitos com semicondutores (diodos), como já estudado anteriormente;
d) filtros - responsáveis por eliminar ou atenuar as oscilações no nível de tensão após a retificação;
e) regulador de tensão - responsável por estabilizar o nível de tensão de saída.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
88

Em algumas fontes, podem ainda existir circuitos de proteção de sobrecorrente na saída, evitando que o
circuito seja alimentado se a corrente máxima for excedida.

2.7.1 FONTE LINEAR

Consiste no projeto mais clássico de fontes, baseada em transformadores e filtros passivos.


Como vantagem deste tipo de fonte temos o baixo ruído e a simplicidade do circuito.
Como desvantagens, o peso inerente aos transformadores, tamanho, custo mais elevado e baixa
eficiência devido ao aquecimento indesejado.
Este tipo de fonte é, geralmente, empregado em circuitos de áudio tradicionais e tem sido cada vez
menos utilizado em equipamentos modernos (FIGURA 100).

Figura 100 -  Transformador utilizado em uma fonte linear


Fonte: SENAI - RS

FIQUE Na maioria das fontes lineares devemos observar a chave seletora de tensão de en-
ALERTA trada. Uso da fonte em tensão inadequada pode causar danos permanentes.

2.7.2 FONTE SIMÉTRICA

Caracterizada por uma fonte que possui saída de tensão positiva e negativa de características similares
(FIGURA 101).

+9V
fonte
0V
simética
-9V

Figura 101 -  Fonte simétrica


Fonte: SENAI - RS

Este tipo de fonte geralmente é aplicado em circuitos que precisam de níveis de tensão positivas e
negativas, como amplificadores operacionais e alguns tipos de sensores de temperatura.
2 ELETRÔNICA ANALÓGICA
89

A seguir, na Figura 102, é apresentado o esquema de uma fonte simétrica, que utiliza reguladores de
tensão 7812 e 7912.
Regulador
positivo

7812
SELETOR DE
TENSÃO
Ponte retificadora
1 3
CHAVE T 12V (4 diodos) 1 3 2
220V

Saída 12V
Entrada
7812

Gnd
ON/OFF
center ~ 100nF + 2
+ 220uF 0,25W +12V

120V
tape
- + 50V 16V 470 ohms
LED 0V Regulador
~ 100nF + + 220uF 0,25W
negativo

fusível 0V -12V 50V 1 16V 470 ohms


LED -12V
2 3 7912
7912

1 3
2

Gnd
Transformador

Saída -12V
Entrada
110 / 220v <--> 12+12V, 1A

Figura 102 -  Esquema de fonte simétrica


Fonte: SENAI - RS

Utilizando alguns reguladores ajustáveis, como o LM317 / LM337, podemos criar uma fonte simétrica
com saída de tensão ajustável por potenciômetros. Este tipo de fonte ajustável pode ser bastante útil em
experimentos, e é uma sugestão de montagem de uma fonte de bancada bastante versátil (FIGURA 103).

1N4004

LM317
3 2 1N4004
I O
A + VE
123 100n 220R OUT
1

1N4004 X 4
2k
+ 10uF 1k
2200uF
+ 35V
VAC 1k5 LED

(CT)
OV
+ 1k5
VAC LED
2200uF + 10uF
35V
2k 1k

220R
1 - VE
2 A OUT
3
I O
1N4004
100n LM337

1N4004

Figura 103 -  Esquema de fonte simétrica


Fonte: SENAI - RS

SAIBA Pesquise sobre fontes simétricas utilizando os reguladores de tensão 78XX e 79XX
MAIS (7805, 7905, 7812, 7912 etc.).
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
90

2.7.3 FONTE CHAVEADA

As fontes chaveadas são largamente utilizadas devido a seu tamanho reduzido, menor custo de
fabricação e melhor eficiência se comparadas às antigas e tradicionais fontes com transformadores.
Uma fonte chaveada completa também utiliza um transformador para elevar ou reduzir a tensão, porém
com menor tamanho. Como isso é possível?
Um transformador é um equipamento eletromecânico que apresenta uma resposta de eficiência relativa
à frequência da corrente alternada aplicada, porém a maior parte dos pequenos transformadores só obtêm
um rendimento satisfatório se operarem em frequências elevadas, próximas dos 200kHz, bem superiores à
frequência de 60Hz da rede de corrente alternada convencional.
O circuito de retificação, em fontes chaveadas, realiza a conversão da corrente alternada para corrente
contínua antes da elevação ou da redução da tensão. Isso não é muito difícil neste tipo de circuito, pois os
semicondutores (diodos) utilizados suportam bem níveis de tensão da rede C.A (FIGURA 104).
Saída do Saída do Saída do
Entrada
retificador filtro chaveador
V V V V

t t t t
110V CA 110V CA Onda quadrada
retificada retificada pulsante com alta
110V CA e filtrada tensão e alta
frequência

Saída do Saída do Saída do Saída do


transformador retificador filtro regulador
V V V V

t t t t
12V CA 12V CC 10V CC
alta frequência filtrado regulado
12V CA
e retificada
Figura 104 -  Fases de uma fonte chaveada
alta frequência
Fonte: SENAI - RS

Após a retificação, um transistor gera pulsos rápidos, em uma frequência geralmente entre 50 e 200 mil
ciclos por segundo, gerando uma onda quadrada com tensão máxima próxima à tensão da rede elétrica de
entrada. Até este momento, não houve reduções ou aumentos nos níveis de tensão.
Esta saída “pulsada” passa, então, por um transformador para modificar a amplitude (tensão) geralmente
para níveis inferiores da tensão de entrada, obtendo-se, ainda, uma corrente alternada em alta frequência,
que precisa ser novamente retificada e filtrada.
Devido à alta frequência, os capacitores usados como filtro desta segunda parte do circuito podem ser
bem menores do que em uma fonte convencional, reduzindo muito o tamanho do circuito, mesmo para
correntes bem mais elevadas.
Fontes chaveadas apresentam um menor aquecimento e melhor eficiência e, devido ao reduzido
tamanho dos componentes (transformador e capacitores), possuem tamanho bastante reduzido. Esse tipo
de fonte é o mais empregado em equipamentos modernos e já vem sendo largamente empregada em
produtos de automação industrial e mecatrônica.
2 ELETRÔNICA ANALÓGICA
91

Como desvantagem deste tipo de fonte, temos a geração de ruído, que em fontes menos completas pode
ser propagado pela rede de corrente alternada ou, ainda, pode ser propagado na forma de rádiofrequência,
gerando interferência em sistemas de telecomunicações.

FIQUE Ao interligar eletricamente sistemas alimentados por fontes de alimentação distintas, reali-
ALERTA ze primeiro sua equipotencialização, interligando circuitos de terra e de referência.

Sugestão para experimento: usando um multímetro e duas fontes de alimentação distintas, meça a
tensão de saída de cada fonte, e posteriormente meça a tensão entre a referência de ambas as fontes.
Tome cuidado para não tocar na fonte de alimentação e seus terminais sem o uso de EPI adequado, ou
com a rede energizada.

A redução no tamanho das fontes chaveadas também pode acarretar um isolamento


VOCÊ mais frágil entre a rede de alta tensão e a de baixa tensão, aumentando o risco de cho-
SABIA? que elétrico, mesmo na saída de baixa tensão.

RECAPITULANDO

Neste capítulo, abordamos alguns conceitos básicos da Eletrônica Analógica para automação industrial
e mecatrônica, com um enfoque nos principais componentes semicondutores e componentes básicos no
tratamento de sinais analógicos. Vimos que os diodos são componentes baseados em semicondutores,
em que uma junção de dois tipos de material semicondutor interfere na passagem de corrente elétrica
de forma diferente, dependendo de seu sentido. Vimos, também, que eles podem ser apresentados na
forma de diodos retificadores, zener, emisores de luz, que são os LEDs e fotodiodos, entre outros.
É importante salientar que os transistores e os tiristores são utilizados para amplificar sinais, permitindo
o acionamento de cargas maiores.
Vimos, ainda, que os amplificadores operacionais são componentes que, de forma genérica, podem
amplificar, comparar, somar, multiplicar ou subtrair sinais analógicos. Eles podem ser utilizados para
compor filtros ativos. Filtros são circuitos responsáveis pela eliminação de sinais indesejáveis.
Os circuitos osciladores são circuitos que possuem uma saída que varia de um estado para outro
periodicamente, o que pode ocorrer devido a um estímulo externo.
As fontes de alimentação são dispositivos que convertem corrente alternada em corrente contínua,
geralmente reduzindo o nível de tensão da rede e oferecendo tensão estabilizada.
Na automação industrial e mecatrônica, esses componentes estudados podem ser utilizados
individualmente ou de forma combinada, condicionando e amplificando sinais elétricos para a produção
de um efeito desejado.
SENSORES

Sensores são dispositivos transdutores capazes de responder a um estímulo de maneira


determinada, previsível e mensurável. Os sensores são utilizados para coletar informações
relevantes durante um processo, enviando-as para o sistema de controle para que seu
funcionamento ocorra adequadamente. São utilizados largamente nos mais diferentes tipos
de equipamentos.

Enquanto o ouvido humano não pode perceber sons acima dos 20kHz,
VOCÊ o morcego, que possui audição bastante apurada, é capaz de ouvir
SABIA? sons com frequência de até 160kHz.

Alguns seres vivos evoluíram com capacidades sensitivas, como visão, tato, olfato, audição.
Alguns répteis percebem o calor e alguns pássaros conseguem perceber cores que são invisíveis
para o ser humano. Grande parte dos animais podem perceber frequências sonoras que o ser
humano não percebe. A comparação anterior deixa claro que a diferença na percepção do ser
humano e dos outros seres vivos depende da capacidade e do alcance de seus sensores e do
processamento da informação coletada.
Existem diferentes tipos de sensores que funcionam por meio de alguns princípios físicos,
gerando informações importantes para os sistemas de controle automatizados.
Para entender mais sobre sensores de forma bastante prática, vamos imaginar um
reservatório de água (FIGURA 105).

Figura 105 -  Reservatórios d’água


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
94

De quantos modos diferentes podemos medir o nível de água no reservatório?


Abaixo listamos algumas formas de medição de nível.
Inicialmente, poderia ser utilizado um sensor potenciométrico, onde ocorre variação de resistência
conforme o movimento angular de uma bóia, similar ao processo utilizado em um tanque de combustível
de um automóvel (FIGURA 106).

Variação de resistência
Nível

Figura 106 -  Reservatórios d’água com sensor potenciométrico


Fonte: SENAI - RS

Com um sensor de ultrassom posicionado na parte superior do reservatório é possível medir o nível do
reservatório pelo tempo em que uma onda sonora de alta frequência demora para bater na superfície da
água e retornar ao sensor. Graças à velocidade da onda sonora e do tempo que demorou para retornar ao
sensor, é possível medir a distância em que a água encontra-se da parte superior (FIGURA 107).

Variação de tempo
entre emitir e receber
o reflexo sonoro
Nível

Figura 107 -  Reservatórios d’água com sensor de ultrassom


Fonte: SENAI - RS

Poderia ser medido através do ângulo de reflexão ou de refração da luz no líquido, obtendo-se, desta
forma, a altura da lâmina d´água (FIGURA 108).

Variação de
Nível

destino de um feixe
de laser (luz) devido
a refração ar - água

SENSOR ÓTICO

Figura 108 -  Reservatórios d’água medido através do ângulo e refração


Fonte: SENAI - RS
3 SENSORES
95

Poderia ainda ser utilizado um sensor de nível, tipo magnético, que pode acionar chaves sensíveis a
campos magnéticos através de um ímã conectado em um dispositivo flutuador (FIGURA 109).

Sensores captam o campo


magnético do imã do
Nível

flutuador,
revelando o nível

Figura 109 -  Reservatórios d’água sensor de nível


Fonte: SENAI - RS

Um sensor tipo célula de carga poderia também medir a deformação dos pontos de fixação do
tanque, informando o peso e estimando o volume e o nível de água (FIGURA 110).

Sensores de força
medem o peso
Nível

do recipiente

Células de carga

Figura 110 -  Reservatórios d’água de célula de carga


Fonte: SENAI - RS

Terminais condutivos poderiam ser mergulhados em alturas diferentes, informando o nível de água
através da medição de sua condutividade (FIGURA 111).

Fluído levemente
condutivo muda
Nível

resistência entre
os terminais

Figura 111 -  Reservatórios d’água com terminais condutivos


Fonte: SENAI - RS

Como você viu, são inúmeras as estratégias de medição e os sensores que podem ser utilizados para a
medição do nível de um tanque.
A escolha do sensor para realizar uma determinada medição deve levar em consideração alguns fatores: o
tipo de grandeza a ser medida, o local da medição e algumas informações sobre o sensor, tais como: robustez,
tempo de resposta, tipo de informação gerada, sensibilidade, resolução, precisão e custo, dentre outros.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
96

Para escolher o melhor sensor a ser utilizado em uma medição, veremos neste capítulo algumas
características relevantes.
Um sensor é definido através do tipo da informação gerada, podendo ser um sensor digital ou analógico.
Quando um sensor é utilizado para a detecção de um estado específico, gerando uma informação contida
em um número finito e limitado de possibilidades, o chamamos de sensor digital.
Exemplo: Um sensor utilizado para detectar a presença ou a ausência de determinado produto, para
detectar se uma determinada temperatura foi ou não atingida, para detectar se há ou não luz suficiente em
um local, detectar se há ou não pressão suficiente em uma tubulação.
Note que a resposta destes sensores pode ser interpretada simplesmente como verdadeiro ou falso.
Nestes casos, são sensores digitais com sinal binário, ou seja, podem representar dois estados distintos,
representando os valores lógicos verdadeiro ou falso.
Os sensores analógicos são capazes de quantificar uma determinada grandeza medida, gerando uma
informação que pode variar em infinitas possibilidades em um intervalo específico.
Exemplo: Detectar a variação de corrente de um circuito, detectar a proximidade de um objeto, detectar
o valor de pressão. No caso de um sensor de temperatura analógico, além de saber se uma temperatura foi
ou não atingida, é possível quantificar a temperatura atual.
Para efeito de comparação, um sensor digital utilizado para a medição de nível em um recipiente com água
gera seu sinal através da variação da tensão, ou seja, tensão em nível alto ou em nível baixo. Desta forma, é
possível saber se o sensor foi ou não atingido pelo líquido. Já um sensor analógico gera um sinal proporcional
ao nível de água, variando gradualmente entre os níveis de tensão baixo e alto (FIGURA 112).
Sensor digital Sensor analógico

+
+
Nível mínimo Nível de água (mm)

Figura 112 -  Sensor de nível digital e um sensor de nível analógico


Fonte: SENAI - RS

Sensores digitais ou binários podem gerar sinais de ligado ou desligado, informando se um evento está
ou não ocorrendo. De forma geral, os sensores digitais são de construção mais simples, sendo de aplicação
mais adequada e direta em circuitos lógicos digitais. Os sensores analógicos, no entanto, são geralmente mais
complexos, pois geram uma informação que varia conforme a grandeza que está sendo medida, exigindo
um processamento mais complexo nos circuitos de controle, porém, são geralmente mais sensíveis às
interferências externas.
3 SENSORES
97

3.1 SENSORES DIGITAIS

Após detectar a grandeza monitorada, o sensor deve enviar esta informação ao circuito de controle
em que está conectado. No caso dos sensores digitais convencionais, podemos dividir o tipo de saída em
sensores de contato normalmente aberto, sensores de contato normalmente fechado, sensores NPN (sinal
negativo) e sensores PNP (sinal positivo).
Nos sensores de contato normalmente aberto existem ao menos dois terminais que atuam como uma
chave que fecha somente quando o evento a ser detectado estiver ocorrendo. Veja a Figura 113:

SENSOR MAGNÉTICO
“ REED SWITCH ”

CONTATO ABERTO CONTATO FECHADO

CIRCUITO DE CONTROLE

Figura 113 -  Chave de contato normalmente aberto com princípio de acionamento magnético
Fonte: SENAI - RS

Perceba, na figura anterior, que o sensor (reed switch) funciona como uma chave normalmente aberta,
e seu contato é fechado quando o objeto a ser detectado for gerador de um campo magnético. Uma vez
aproximado, este campo gera a atração dos contatos, fechando o circuito.
Nos sensores de contato normalmente fechado, o princípio é similar, com a diferença que o contato
permanece fechado até que ocorra o evento a ser detectado. Como exemplo podemos citar uma chave de
emergência, que geralmente é caracterizada por um contato normalmente fechado (FIGURA 114).

Figura 114 -  Botão de emergência com contato normalmente fechado


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
98

VOCÊ Botões ou chaves de contato utilizados para detectar a vontade do usuário são sensores e po-
dem ser de contato normalmente aberto (NA) ou normalmente fechado (NF), dependendo de
SABIA? sua construção mecânica.

A exemplo de um botão ou chave de final de curso, alguns sensores podem produzir o efeito (contato
abrindo e fechando) por meio de uma ação mecânica simples, sem a necessidade de amplificação,
processamento interno ou filtragens de sinais, não necessitando de alimentação para funcionar. Outros
utilizam-se de um filtro e circuitos eletrônicos em seu interior, precisando de alimentação para seu
funcionamento. Neste caso, deve ser observado o nível de tensão, a corrente e a correta polarização do
sensor para evitar danos internos.

Nem todos os sensores são baseados em contatos mecânicos, sendo que alguns possuem seu
acionamento por meio de semicondutores, geralmente transistores bipolares. A exemplo dos transistores
bipolar e junção (negativa/positiva), os sensores com saídas deste tipo possuem propriedades diferentes,
podendo ter comportamento NPN (sinal negativo) ou PNP (sinal positivo).

Em ambos os casos, estes sensores são alimentados com tensão por dois terminais. Para evitar danos
nos sensores, é preciso garantir que o nível de tensão esteja adequado, dentro de uma faixa mínima e
máxima de tensão.

Os sensores industriais geralmente são alimentados por uma fonte 24V de corrente contínua, com o
terminal positivo por um condutor com capa isolante da cor marrom, e com terminal negativo (0V ou GND)
por um condutor com capa isolante de cor azul. No caso de sensores de contato, devem ainda existir mais
dois terminais, geralmente de cores preta e branca, ligados em série com o dispositivo de contato NA ou
NF. Já em sensores PNP ou NPN o sinal é fornecido por um terminal que possui geralmente a cor preta.

FIQUE Embora existam normas para a definição de cores para os condutores dos sensores in-
dustriais, muitos sensores podem não segui-las, sendo interessante observar a docu-
ALERTA mentação do componente antes de energizá-lo para evitar danos permanentes nele.

Em sensores PNP, quando ocorre a detecção, o sensor fornece, pelo terminal de retorno, uma tensão em
nível alto (geralmente 24V), e quando a detecção é interrompida, o sensor geralmente entra no estado de
“alta impedância”, funcionando como uma chave aberta.
Em sensores NPN, quando ocorre a detecção, o sensor fornece uma tensão em nível baixo (GND), e
quando a detecção é interrompida, o sensor entra em estado de “alta impedância” (FIGURA 115).
3 SENSORES
99

carga carga
sem detecção
sinal -
sinal alta impedância com detecção

SENSOR NPN

carga carga
sem detecção
sinal +
sinal alta impedância com detecção

SENSOR PNP

Figura 115 -  Sensor NPN e PNP, forma de ligação e tipo de sinal de retorno
Fonte: SENAI - RS

Observe que, quando o sensor não está no modo detecção, o fio de retorno (preto) entra em modo
de alta impedância, dificultando o fluxo da corrente. Alta impedância, neste caso, significa um sinal não
definido, comportando-se como uma chave aberta, sem corrente significativa. Observe que, quando não
estiver em modo detecção, o fio do sensor não pode ser usado como alimentação para um determinado
circuito, pois não há um sinal definido neste estado. Somente quando o sensor passa a detectar algo este
condutor passa a ter uma tensão positiva (para sensores PNP) ou negativa (para sensores NPN).
Caso haja a necessidade de definir o nível de tensão de um sensor, use um resistor de PULL-UP
para elevar a tensão (para sensores NPN) ou PULL-DOWN para reduzi-la (FIGURA 116).

carga carga
R1 R1
sem detecção
sinal + sinal -
com detecção

SENSOR NPN

carga carga
R1 R1
sem detecção
sinal - sinal +
com detecção

SENSOR PNP

Figura 116 -  Sensores NPN e PNP com resistor de definição de sinal para alta impedância
Fonte: SENAI - RS

Na imagem acima foi instalado um resistor de 10.000 Ω como PULL-UP (NPN) e PULL-DOWN (PNP)
para definir o nível de tensão do sinal de saída quando o sensor não estiver em estado de detecção.
Alguns sensores possuem estes resistores já instalados em seu circuito. Verifique isso na documentação
(datasheet). Em alguns sistemas de controle padronizados, como CPs e controladores dedicados, existem
opções, através de microchaves ou configurações por software, para definir se o sensor conectado a uma
entrada digital é PNP ou NPN. De qualquer forma, para a maior parte das aplicações que seguem padrões
industriais este resistor é desnecessário.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
100

Caso o objetivo seja ligar o sensor industrial a um sistema de controle de tensão inferior a 24V (por
exemplo, a um microcontrolador de 5V), verifique a possibilidade de diminuir a tensão do sinal gerado
através de um divisor de tensão, ou ainda, de forma mais segura, utilizando optoacopladores.
Na Figura117, o esquema de ligação de sensores PNP ou NPN em um microcontrolador utilizando-
se optoacopladores. Note que a fonte de alimentação do microcontrolador é independente da fonte de
alimentação do sensor. Se no lugar do acoplamento fosse utilizada uma ligação física, haveria a necessidade
de equalizar as fontes (interligar os sinais de GND) e reduzir o sinal de tensão do sensor para um nível
aceitável, para não danificar o microcontrolador (provavelmente 5V ou 3V) (FIGURA 117 e FIGURA 118).

PNP 24V + GND GND 5V +

2K2 10K
uC
SENSOR

OPTOACOPLADOR

NPN 24V + GND GND 5V +

10K
uC
SENSOR 2K2

OPTOACOPLADOR

Figura 117 -  Sensores NPN e PNP


Fonte: SENAI - RS

FIQUE Acoplamentos ópticos ou a relé são uma forma de oferecer segurança aos equipa-
mentos na transmissão de sinais em linhas automatizadas muito abrangentes, que
ALERTA integram sistemas com várias fontes de alimentação.

RELÉ
BOBINA
24V
SINAL (RETORNO)
SINAL
V + (24V)

SISTEMA A SISTEMA B

GND
SINAL 5V
ACOPLAMENTO A RELÉ
Figura 118 -  Dispositivos de acoplamento eletromecânicos a relé
Fonte: SENAI - RS

Além de saídas digitais por níveis de tensão definidos, contato NA, NF, NPN ou PNP, alguns sensores
digitais podem produzir informações mais complexas pelas saídas de dados. Isso ocorre em sensores
industriais preparados para se interligar a um sistema de controle por uma rede de dados digitais.
3 SENSORES
101

Neste caso, o sensor envia os sinais a um dispositivo de controle (geralmente um CP) por meio de uma rede,
podendo compartilhar o meio físico de comunicação, ou enviando a informação por radiofrequência (wireless).

FIQUE A rede AS-i é um padrão de rede industrial bastante versátil, pois permite que, em
ALERTA seu cabeamento, um único fio contendo um par metálico transporte sinal de comu-
nicação e alimentação 24V entre os diversos sensores e atuadores do sistema.

Sensores deste tipo ainda não são muito comuns devido ao custo e à complexidade de uso (FIGURA 119).

Figura 119 -  Sistema de sinaleiro e botoeiras cuja alimentação e comunicação é realizada por um único cabo de dois fios condutores, usando comunicação digital
serial em rede padrão AS-I
Fonte: SENAI - RS

3.2 SENSORES ANALÓGICOS

Sensores analógicos são caracterizados por gerar uma informação que varia uniformemente em uma
faixa específica, conforme a grandeza medida, podendo ser temperatura, pressão, vazão, luminosidade,
distância, posição, velocidade, força, umidade, aceleração etc.
Em sensores analógicos industriais, estas grandezas são comumente traduzidas para variações de
tensão ou corrente, podendo haver ainda sensores cuja grandeza medida influencia na variação de
frequência ou resistência.
Como padrão mais comum para sensores industriais analógicos, temos os seguintes tipos de saída:
a) tensão: 0 a 10 V - embora outros níveis de tensão também possam ser utilizados, sensores analógicos
com saída de tensão de 0 a 10 V são bastante fáceis de serem implementados e conectados a sistemas de
controle que utilizam CP;
b) corrente: 0 mA a 20 mA - nesse tipo de sensor, a grandeza medida é convertida em uma variação de
corrente de 0 a 20 miliampèr. Devido à condição de baixa impedância utilizada neste tipo de circuito, o
sinal apresenta uma boa intensidade em relação a sinais analógicos de tensão. Como desvantagem, existe
a possibilidade de um sinal de 0 (zero) mA lido ser um rompimento no condutor e não um sinal gerado
pelo sensor;
c) corrente: 4mA a 20mA - esse tipo de transmissão de dados é bastante comum em aplicações
industriais com sensores analógicos e apresenta vantagens quanto à boa intensidade do sinal, além
da possibilidade de detecção de rompimento (quando a corrente fica nula) ou curto (corrente infinita),
permitindo detecção da anomalia por parte da malha de controle (FIGURA 120).
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
102

SENSOR ANALÓGICO

CLP (circuito de controle)

saída por corrente 4..20mA linear saída por tensão, 0..10V linear
mensurada

mensurada
Grandeza

Grandeza
corrente (mA) Tensão (V)

saída por corrente, 4..20mA linear inversa. saída por tensão, 0..10V não linear.
mensurada

mensurada
Grandeza

Grandeza

corrente (mA) Tensão (V)


Figura 120 -  Sensor analógico
Fonte: SENAI - RS

É importante ressaltar que um sensor analógico pode gerar uma resposta não linear em relação à
grandeza mensurada. Uma vez que este sensor converte a grandeza medida, por exemplo a temperatura,
em uma variação de tensão ou de corrente de forma linear, o processamento é facilitado, pois os cálculos
para conversão são realizados por uma equação linear.
No entanto, muitos sensores apresentam curvas que são exponenciais, logarítmicas, e em alguns casos
curvas mais complexas, que precisam de um processamento matemático mais complexo para que a malha
de controle converta ou interprete o sinal adequadamente.
Portanto, é importante conhecer a curva do sensor analógico e saber interpretar e resolver polinômios
de forma gráfica no momento de interligar um sensor a um dispositivo de controle.

Pesquise na internet sobre sensores de temperatura com características lineares e não-line-


SAIBA ares, comparando custos e faixas de medição. Observe que os sensores lineares geralmente
MAIS apresentam um custo mais elevado e menor simplicidade.

Observe que, além dos padrões de 0 a 10V, 0 a 20mA e 4 a 20mA, outros padrões de variação de tensão
e corrente também podem ser utilizados em sistemas de controle específicos, embora não sejam muito
empregados como padrão industrial, como 0 a 5V, 0 a +/-5V, -10 a 10V, 0 a +/-10V.
Assim como os sensores industriais digitais, um sensor analógico pode ser construído de forma a
gerar um sinal complexo de dados, enviando-os de forma digital por uma rede de dados a um sistema de
controle, podendo ser um computador, sistema microcontrolado ou PLC.
A Figura 121 de um sensor eletrônico de temperatura, que internamente converte a temperatura –
analógica – em uma informação digital binária e a envia serialmente através de uma única saída pulsada. Este
tipo de sensor depende do processamento da informação recebida pelo sistema de controle, mas podemos
afirmar que seu tipo de informação analisado é analógico, mas a saída de dados tem formato digital.
3 SENSORES
103

ºC
MAXIM

TENSÃO
18B20
1 2 3
0 0 1 0 1 0 0

GND
DQ
VDD
TEMPO

Figura 121 -  Sensor eletrônico de temperatura


Fonte: SENAI - RS

SAIBA Pesquise sobre as folhas de dados (datasheets) dos sensores DS18B20 e LM35, desco-
brindo qual a vantagem e desvantagem dos modelos citados em relação ao formato da
MAIS saída gerada pelo sensor.

3.3 PRINCÍPIO FÍSICO

Todo sensor utiliza-se de um princípio físico para realizar a detecção (FIGURA 122).

CALOR
PRINCÍPIO FÍSICO

LUZ
N

L SAÍDA DE SINAL
SOM POSIÇÃO
0

S
0
01
90 10
10 90

001mm

VELOCIDADE
80 20
20 80

PRINCÍPIOS MECÂNICOS
30 70
70 1 0 9 30
2 8
3 7
4 5 6
40 60
60 50
40
50

FORÇA

Figura 122 -  Princípio físico


Fonte: SENAI - RS

Um mesmo princípio físico pode ser utilizado para medir grandezas diferentes. Por exemplo, a temperatura
de um forno pode ser medida por um sensor que utiliza o princípio físico de calor, como um termopar (que
estudaremos em breve), ou pode ser medida pelo princípio físico da luz, por um sensor ótico que mede a radiação
infravermelha gerada pelo forno, ou ainda por um sensor que mede a deformação física (princípio mecânico) de
um metal dilatado pela temperatura do forno.
Embora não possamos citar aqui todos os sensores e seus respectivos princípios físicos, abordaremos
os mais importantes, que são:
a) eletro-mecânico - quando um componente mecânico aciona um contato elétrico. Os sensores que
funcionam a partir deste princípio são simples, baratos e muito utilizados, mas possuem limitações quanto
à durabilidade, devido ao desgaste, e quanto à força necessária para o acionamento, além de precisarem
do contato físico para ocorrer;
b) ópticos - utilizam-se de luz visível ou invisível (infravermelho ou ultravioleta);
c) acústico - quando um som ou vibração pode gerar um acionamento elétrico. Os sensores que
funcionam a partir deste princípio utilizam o som ou as vibrações no ar para obter a informação desejada.
Estes sensores são mais utilizados do que você imagina, principalmente na área automotiva;
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
104

d) resistivo - os sensores resistivos apresentam variações de resistência elétrica de acordo com a


grandeza que está sendo mensurada (medida);
e) indutivo - os sensores indutivos são capazes de detectar metais, pois produzem um campo
eletromagnético ao seu redor. Sempre que um metal ferromagnético se aproxima do sensor, o campo
eletromagnético sofre uma interferência, indicando, desta forma, a presença de um metal;
f ) capacitivo - os sensores que funcionam a partir deste princípio são sensíveis à mudança na capacidade
dielétrica (isolante) do meio, permitindo detectar praticamente todo o tipo de material;
g) magnético - os sensores que se valem deste princípio de funcionamento são sensíveis à presença de
campos magnéticos. Os sensores magnéticos podem variar de aplicação e custo, conforme sua sensibilidade;
h) piezoelétrico - esses sensores são capazes de gerar uma tensão elétrica toda vez que sofrem deflexões
mecânicas. São usados em balanças, microfones, sistemas de detecção de esforço mecânico etc;
i) temperatura - os sensores que funcionam a partir da variação térmica geram sinais elétricos
proporcionais ou inversamente proporcionais a esta variação. Alguns sensores resistivos (termistores) e
ópticos (infravermelho) são aplicados também a esta categoria.

3.4 SENSORES ELETROMECÂNICOS

Os sensores eletromecânicos (FIGURA 123) são também conhecidos como chaves fim de curso, são
chaves de contato acionáveis através de um pino ou alavanca, que são aplicadas em áreas de movimento
do equipamento com o intuito de, em um determinado momento ou evento, haver o acionamento desta
alavanca ou pino, realizando a comutação do contato.

Figura 123 -  Chaves mecânicas


Fonte: SENAI - RS

Apresentam baixo custo, porém exigem que uma força física seja aplicada para que haja a comutação do contato
mecânico, além de necessitar do contato físico com uma superfície a ser detectada. Outro aspecto negativo é a
presença de partes móveis, permitindo a entrada de impurezas nos mecanismos internos de comutação.
Como ponto forte, é um sensor de baixo custo e simples aplicação.
3 SENSORES
105

3.5 SENSORES ÓPTICOS

São sensores cujo princípio físico é a radiação eletromagnética próxima à faixa da luz visível. São
constituídos de uma fonte emissora e uma receptora, que podem estar montadas em um único
encapsulamento (FIGURA 124).
SENSOR ÓPTICO
REFLEXIVO
luz emitida
luz refletida

EMISSOR

RECEPTOR

Figura 124 -  Sensor óptico de reflexão, e suas partes emissora/receptora


Fonte: SENAI - RS

A luz pode ser emitida pelo próprio sensor e percebida através de um circuito receptor, geralmente
composto de fototransistores ou fotodiodos. Quando usado como sensor de presença, o sensor óptico
pode revelar a presença de um objeto pela detecção da luz refletida (objeto reflete a luz emitida no receptor
do sensor) ou, ainda, pela interrupção da reflexão causada por um objeto opaco interrompendo a reflexão
causada por um espelho refletor especial.
Alguns sensores ópticos podem mensurar a quantidade ou o ângulo da luz refletida, podendo não só
identificar a presença de um objeto, como determinar a distância da superfície refletora.

VOCÊ Nem todos os sensores ópticos trabalham com luz visível, sendo que grande
parte utiliza comprimentos de onda não-visíveis (ultravioleta e infravermelho) por
SABIA? questões de interferência externa.

FIQUE Alguns sensores ópticos emitem uma radiação laser muito forte, e não é recomendável olhar
ALERTA diretamente para a fonte emissora de luz, pois feixes de laser podem causar danos ao olho.

Quanto ao emissor, os sensores ópticos geralmente empregam diodos emissores de luz (LEDs) ou, em
alguns casos, diodos laser para facilitar a focalização do alvo a ser detectado. Como a luz está presente em
quase todos os ambientes, são necessárias algumas estratégias que diferenciem o sinal luminoso gerado
dos sinais que podem interferir na leitura.
Na maioria dos casos, os sensores ópticos geram luz de forma pulsada, em alta frequência, permitindo
que o dispositivo emissor de luz gere um sinal mais forte (com corrente maior por um curto período em cada
pulso), e em uma frequência que possa ser identificada posteriormente pelo circuito de leitura. Conjuntos
ópticos compostos de refletores e principalmente lentes especiais permitem concentrar ou difundir o feixe
gerado, permitindo definir focos diferentes para diversos tipos de sensores, que podem ser utilizados para
detectar objetos mais distantes ou para detectar objetos mais próximos com melhor eficiência.
Para o receptor, além do conjunto óptico, podem ser utilizados filtros em forma de lentes que limitam as cores
lidas pelo receptor, que é composto de um ou mais componentes fotosensíveis (fotodiodo ou fototransistor).
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
106

CASOS E RELATOS
Sensor óptico reflexivo caseiro.
Em uma escola do SENAI no Norte do país, a bibliotecária solicitou aos alunos que criassem um sistema
automatizado e de baixo custo para realizar a contagem dos usuários da biblioteca.
Após estudar os diodos emissores de luz e os fotodiodos, Jaime, um aluno do curso de Automação
Industrial e Mecatrônica, teve a ideia de construir e instalar um sensor óptico de barreira na única porta
de acesso da sala da Biblioteca.
Com o apoio da escola e de outros colegas, Jaime implementou o sensor, usando como emissor um
LED infravermelho fixado em um dos marcos da porta, e um fotodiodo fixado no marco oposto, de forma
a gerar um feixe de luz invisível que é interrompido durante a passagem de uma pessoa pela porta.
Após amplificar o sinal do fotodiodo e polarizar corretamente o LED emissor, o sistema construído por
Jaime passou a enviar um sinal de 24V para um contador eletromecânico sempre que o feixe de luz da porta
da biblioteca fosse interrompido.
Porém, após alguns dias de testes, ocorreu um problema bastante curioso. Durante as manhãs, quando
a luz do sol proveniente de uma das janelas incidia sobre a porta, a contagem não ocorria. A luz do sol
interferia no receptor, gerando uma falsa leitura do sinal, impedindo de detectar a interrupção do feixe de
luz gerado pelo LED emissor. Para resolver o problema, Jaime implementou, com o auxílio de um colega
mais experiente, um circuito multivibrador que passou a pulsar o LED emissor, permitindo ao circuito de
recepção diferenciar a luz solar da luz emitida pelo LED.

Como principal vantagem, os sensores ópticos possuem um custo relativamente baixo e grande
velocidade de detecção. Os sensores ópticos não são indicados para locais que oferecem condições
inadequadas à propagação direta da luz, com poeira e resíduos em suspensão que podem interferir no
feixe de luz ou, ainda, decantar sobre a superfície das lentes ou dos objetos detectados. Como estratégia
de filtragem a interferências externas, como outras fontes de luz, os sensores ópticos geralmente modulam
o sinal emitido em pulsos, podendo distinguir entre o sinal original e uma possível interferência.
Com ajustes no ganho, alguns sensores ópticos permitem a detecção de objetos a distâncias bastante
significativas, e através de diodos laser no lugar dos tradicionais LEDs como fonte emissora de luz, podem
ser utilizados para medir com precisão a distância ou a presença de objetos.
3 SENSORES
107

3.5.1 SENSOR ÓPTICO POR RETRORREFLEXÃO

Sensores que funcionam a partir deste princípio possuem um emissor e um receptor do sinal luminoso.
Estes sensores estão montados no mesmo dispositivo, sendo que o emissor fica apontado para uma
superfície refletora. O objeto é detectado através da interrupção do feixe de luz (FIGURA 125).
Sensor PNP detectando refletor, gerando sinal V+
SENSOR ÓPTICO REFLEXIVO

REFLETOR
luz emitida
luz refletida
SINAL V+

Objeto interrompe feixe de luz interrompendo o sinal


SENSOR ÓPTICO REFLEXIVO luz difundida

REFLETOR
OBJETO
SEM SINAL

Figura 125 -  Sensor óptico por retrorreflexão com espelho refletor especial, usado como
barreira óptica para a deteção de objetos
Fonte: SENAI - RS

Quando os objetos são muito transparentes ou excessivamente reflexivos, eles podem não ser
detectados por este sensor. Para evitar que objetos reflexivos sejam confundidos com o refletor do sensor,
alguns sensores utilizam lentes e refletores polarizadas. Estas lentes são combinadas aos refletores e evitam
confundi-lo com objetos de superfícies reflexivas. Este tipo de sensor é mais caro, porém evita a realização
de leituras inválidas.

3.5.2 SENSOR ÓPTICO POR REFLEXÃO DIFUSA

A exemplo do sensor de retrorreflexão, este tipo de sensor também usa o princípio de reflexão de luz,
mas desta vez ele utiliza o objeto a ser detectado como superfície refletora (FIGURA 126).
Luz emitida não encontra nenhuma superfície refletora próxima, e o
sensor não envia sinal.
SENSOR ÓPTICO REFLEXIVO

luz emitida
luz refletida
SEM SINAL

Luz refletida pelo objeto é detectada pelo receptor e sensor envia sinal.
SENSOR ÓPTICO REFLEXIVO luz difundida
OBJETO

SINAL V+

Figura 126 -  Sensor óptico por reflexão difusa


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
108

Sensores reflexivos por difusão são mais práticos e geralmente mais baratos, pois não necessitam da instalação
de refletores especiais. Sua aplicação exige que o objeto detectado não seja opaco ou transparente, havendo um
mínimo de capacidade reflexiva, e que o local para onde o sensor é direcionado quando não houver peça a ser
detectada não tenha um fundo reflexivo o suficiente para confundir o sensor.

3.5.3 SENSORES ÓPTICOS POR TRANSMISSÃO

Sensores onde o emissor e o receptor estão construídos em dispositivos independentes, porém


funcionando em conjunto (FIGURA 127).
SENSOR ÓPTICO EMISSOR
por transmissão
luz emitida

SINAL RECEPTOR

SENSOR ÓPTICO EMISSOR


por transmissão OBJETO

SEM SINAL RECEPTOR

Figura 127 -  Sensores ópticos por transmissão


Fonte: SENAI - RS

3.5.4 SENSORES ÓPTICOS POR CABOS DE FIBRA ÓPTICA

Em alguns equipamentos, não é viável instalar um sensor devido a limitações físicas geralmente relacionadas
ao tamanho. Nestes casos, os sensores ópticos podem ser conectados a cabos de fibra óptica para “direcionar e
conduzir” os sinais luminosos (FIGURA 128.

E E
R R
sensor óptico

fibra óptica
E E
R R
emissor receptor
terminais
Figura 128 -  Sistema de sensor óptico por transmissão usando fibra óptica
Fonte: SENAI - RS

Fibras ópticas necessitam de cuidados especiais. Se for necessário seccionar a fibra


FIQUE óptica, o corte deve ser realizado com ferramentas especiais e de forma perpendicular
ALERTA ao comprimento da fibra. Quando for necessário curvar a fibra óptica, devemos res-
peitar um raio mínimo, para evitar que sofra fissuras que impeçam a passagem da luz.
3 SENSORES
109

Fibras ópticas são condutores de luz que permitem enviar um sinal luminoso com o mínimo de perdas.
São imunes a ruídos elétricos, pois conduzem sinais de luz no lugar de sinais elétricos, porém devem ser
observadas as condições ideais para sua instalação. Apesar de possível, não são recomendadas emendas
em cabos de fibra óptica, a menos que se utilizem equipamentos especiais ou conectores adequados
nestas emendas.
Devido a características que podem variar conforme o fabricante, é recomendado pesquisar sobre a
distância máxima suportada para cada sensor, considerando a fibra específica empregada.

SAIBA Pesquise na internet sobre as diferenças entre fibras ópticas monomodo e multimodo,
MAIS descobrindo suas aplicações na automação industrial e em telecomunicações.

3.5.5 SENSOR DE BARREIRA ÓPTICA DE SEGURANÇA

Como sugerido pelo nome, esse sensor (FIGURA 129) é utilizado para identificar a violação de uma
zona de segurança, impedindo que algo ou alguém invada uma determinada área controlada durante a
execução de um processo que oferece perigo ou risco.

Figura 129 -  Cortina de luz


Fonte: SENAI - RS

Sensores de barreira óptica de segurança têm seu princípio de funcionamento embasado em feixes
independentes de luz, pulsados de forma alternada e em alta velocidade. Geralmente possuem tipo de
saída na forma de contato normalmente fechado, abrindo o contato quando algo violar um ou mais feixes.
São disponibilizados com recursos programáveis e com alturas e quantidade de feixes diferentes, podendo
serem configurados para permitir zonas livres de detecção.

Sensores de segurança e chaves de emergência devem ser de característica NF e


FIQUE devem ser ligados em série. Desta forma, no caso de dano em sensores ou rompi-
ALERTA mento de condutores da rede de emergência, o sistema entrará em estado de erro,
impedindo que o dano passe desapercebido.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
110

3.5.6 SENSORES A LASER

São caracterizados pela precisão, sendo apresentados em custos mais elevados do que os sensores que utilizam
LEDs convencionais como emissores de luz. O uso de diodos laser na produção do feixe luminoso permite um
melhor controle sobre a luz, emitindo um feixe extremamente concentrado e que é pouco difuso. Podem ser
empregados em sensores ópticos com formato analógico para saída da informação, onde circuitos receptores
e microprocessadores internos operando em altas velocidades permitem leituras de distância satisfatoriamente
precisas. Dentre os diversos métodos, existem sensores que utilizam o ângulo de reflexão do feixe de laser para
definir a distância do objeto detectado, e outros ainda medem o tempo (extremamente pequeno) entre o pulso de
laser emitido e o pulso de laser captado após a reflexão.
Sensores a laser combinados com espelhos controlados ainda são utilizados como sensores de segurança,
podendo realizar a varredura em um plano em busca de mudanças que podem revelar a presença de uma
pessoa ou objeto. Estes sensores são conhecidos por scanners a laser de segurança, e geralmente são uma
solução bastante eficiente, porém com um elevado custo (FIGURA 130).

Figura 130 -  Sensor de barreira óptica


Fonte: SENAI - RS

Devido à abrangência da solução aliada a um tamanho reduzido, scanners a laser são empregados em
equipamentos móveis, por exemplo AGVs (Veículos Guiados Automaticamente) para detectar obstáculos
que possam impedir a movimentação automática do veículo.

SAIBA AGVs são veículos guiados automaticamente que se deslocam através de sinais e informa-
ções coletados por sensores. Pesquise sobre AGV em sites de busca na internet, procurando
MAIS entender a função dos diversos sensores estudados neste tipo de equipamento.
3 SENSORES
111

3.5.7 SENSOR INFRAVERMELHO

Comumente utilizados para a detecção de movimento e presença humana em sistemas de alarme, seu
princípio de funcionamento é embasado na detecção de luz infravermelha ou na variação da quantidade
deste tipo de luz. Pirossensores são os elementos receptores deste tipo de sensor (FIGURA 131).

Figura 131 -  Sensor infravermelho


Fonte: SENAI - RS

Devido à ausência de um dispositivo emissor, estes sensores são conhecidos por “sensores passivos”,
sendo empregados para detectar movimento de pessoas ou objetos que apresentem variação na
irradiação de calor. Uma lente especial na frente do pirossensor permite a detecção de variações bruscas
na quantidade de luz infravermelha durante o movimento de uma pessoa ou animal de sangue quente,
identificando o movimento e a violação do perímetro, fazendo com que o contato do sensor (geralmente
NF) mude de estado.

Sensores de presença do tipo infravermelho não detectam movimentos, e sim o calor.


Faça um teste: permaneça parado em frente a um sensor de alarme residencial com
SAIBA indicador luminoso, com um objeto em suas mãos. Aguarde o sensor parar de indicar
MAIS movimento, evitando ao máximo se mover, solte o objeto. Observe o comportamento
do sensor.

3.5.8 RELÉS FOTOELÉTRICOS

Também conhecidos pelo termo “fotocélulas”, são dispositivos de acionamento que reagem à luz,
acionando um contato sempre que a luminosidade estiver abaixo de um nível mínimo.
Grande parte dos relés fotoelétricos utilizam resistores dependentes de luz (ou, em inglês, Light
Dependent Resistor - LDR) como dispositivos detectores de luminosidade. Como o próprio nome sugere,
um LDR possui uma resistência variável que diminui proporcionalmente à luz incidente.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
112

LDRs são frequentemente utilizados em automações prediais e domésticas, sendo utilizados em


alguns eletrodomésticos para detectar a quantidade de luminosidade ambiente, e em automóveis para
proporcionar acendimento automático dos sistemas de iluminação (sensor crepuscular) (FIGURA 132).

Relés fotoelétricos LDR


Figura 132 -  Relés fotoelétricos e um resistor dependente de luz
Fonte: SENAI - RS

3.5.9 VISÃO ARTIFICIAL

Câmeras fotográficas digitais aliadas a velozes sistemas de processamento e algoritmos específicos permitem
realizar a aquisição e a análise de uma imagem, de modo que informações podem ser comparadas com uma
imagem padrão, definindo se um produto está ou não adequado às características esperadas. (FIGURA 133)

Figura 133 -  Sensor de visão


Fonte: SENAI - RS

O procedimento é conhecido como “visão artificial”, e é realizado por câmeras que capturam a imagem,
comparando com um padrão pré-definido, acionando saídas digitais em caso de falha. A falha detectada pode
ser a falta de um componente visualmente detectável, diferenças dimensionais, de cores ou posicionamento.

3.6 SENSOR DE ULTRASSOM

Caracterizado por um “sonar”, tem sido largamente empregado na área automotiva como sensor de
proximidade para estacionamento ou em alarmes como sensores volumétricos. Na indústria, sensores de
ultrassom são empregados para medir distâncias de objetos grandes, níveis de reservatórios, presença de
obstáculos, além da vazão de fluídos.
Seu funcionamento tem princípio acústico, onde um dispositivo gera um som de alta frequência (não
percebido pelo ouvido humano).

VOCÊ Os seres humanos conseguem perceber sons com frequências entre 20Hz e 20kHz
(variações por segundo). Nos dispositivos de ultrassom, as frequências geralmente
SABIA? ficam na faixa de 33kHz a 40kHz, sendo imperceptíveis aos ouvidos humanos.
3 SENSORES
113

Em sensores de ultrasom convencionais, o sinal sonoro emitido é então propagado pelo meio. No caso do
ar, esta propagação ocorre na velocidade de 330 a 350 metros por segundo, dependendo da temperatura,
umidade e pressão atmosférica. As ondas sonoras são propagadas até encontrar um obstáculo capaz de
refleti-las de volta à origem. Um microfone capta e amplifica o sinal sonoro recebido. Devido à velocidade
dos sistemas de processamento, é possível medir o tempo (em microssegundos) entre o envio e a recepção
do sinal sonoro, e isso permite estimar a distância de um obstáculo ou objeto (FIGURA 134).
emissor
(altofalante)

OBJETO
DETECTADO

receptor
(microfone)

Figura 134 -  Sensor com ultrasom


Fonte: SENAI - RS

Sons também podem ser propagados em outros meios físicos, como líquidos e sólidos, havendo uma
diferente faixa de propagação, geralmente associada à densidade do material.
Sensores de ultrassom empregados em medidas de distâncias e suas variáveis geralmente produzem
uma informação do tipo analógica, e podem apresentar uma variação devido às variantes atmosféricas
que podem fazer com que o som se propague com uma velocidade diferente. Outro fator que deve ser
observado no uso destes sensores é a capacidade de reflexão sonora por parte do objeto, que pode refletir
mais ou menos ondas sonoras de volta ao sensor.

FIQUE Alguns objetos podem absorver as ondas sonoras (como espumas e superfícies muito ma-
ALERTA cias), não refletindo o suficiente para ser identificado por sensores ultrassônicos. Objetos de
dimensões reduzidas também podem não ser identificados.

Algumas superfícies podem ser “transparentes” ao som, não refletindo ou refletindo parcialmente o sinal
sonoro. Essa capacidade em reflexões sonoras diferentes por parte dos materiais de diferentes densidades
permite aos sensores de ultrassom a coleta de informações no interior de alguns recipientes (FIGURA 135).

Figura 135 -  Equipamento aplicado à análise por ultrassom, permitindo identificar fissuras internas no material através da análise da propagação do som através do
material
Fonte: SENAI - RS

Sensores de ultrassom combinados com processamento de sinais digitais podem compor equipamentos
de análise por ultrassom capazes de identificar fissuras internas em materiais sólidos, ou ainda visualizar
materiais compostos com densidades diferentes. Esta tecnologia já é usada há algum tempo na medicina,
onde a “ultrassonografia” permite visualizar os órgãos internos de pacientes.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
114

Alguns sensores de ultrassom industriais permitem programar uma “faixa livre”, na qual obstáculos
detectados são ignorados, permitindo a sensores de ultrassom detectar obstáculos em uma área mais
restrita, ou através de paredes relativamente transparentes ao som.

o uso de sensores de ultrassom depende de algumas variáveis do ambientes, tais


FIQUE como temperatura, pressão atmosférica e umidade relativa do ar. Ambientes onde
ALERTA estas variáveis não são controladas, e que possuem presença de fortes deslocamen-
tos de ar (ventilação), podem causar interferências significativas nas leituras.

3.7 SENSORES INDUTIVOS

Ao se aproximar um material metálico de uma bobina submetida a uma alta frequência, a amplitude
do sinal da bobina sofre alterações devido a mudanças em sua “indutância”.
Sensores indutivos seguem este princípio, gerando um campo eletromagnético de alta frequência
e medindo a amplitude da tensão no circuito oscilador. Um circuito comparador no interior de
sensores indutivos permite identificar estas alterações de amplitude no circuito oscilador, percebendo
a presença de um material metálico (FIGURA 136).

Sensor sem objeto próximo. Objeto não metálico. Objeto metálico produz
Praticamente sem mudança no Uma grande mudança no
campo eletromagnético gerado. campo eletromagnético.
Figura 136 -  Sensores indutivos
Fonte: SENAI - RS

Como podemos observar, estes sensores são ideais para detectar materiais metálicos, e são
largamente utilizados em aplicações industriais por oferecerem robustez e imunidade a outras
interferências, como poeira e partículas não-metálicas.
Em alguns ambientes industriais, é comum que, após algum período de uso, sensores estejam cobertos
por lubrificante, poeira e outros resíduos. Sensores indutivos são bastante imunes a isso, não sendo
afetados por poeira, partículas não-metálicas e fluídos lubrificante, sendo adequados para situações de
detecção onde os sensores ópticos não podem ser empregados.
Alguns sensores indutivos geram sinais analógicos, retornando a proximidade ou volume do material
metálico, porém na maioria das aplicações industriais, sensores indutivos são aplicados como sensores
digitais de presença, identificando a presença (ou não) de um dispositivo metálico. Sensores indutivos
também são aplicados em rodas dentadas para medir posicionamento e velocidade, pois o sensor irá
gerar pulsos toda vez que um dente de uma roda dentada passar em frente a ele (FIGURA 137).
3 SENSORES
115

roda dentada (metal)


saída digital

sensor
indutivo

referência

Figura 137 -  Aplicação de sensores indutivos


Fonte: SENAI - RS

Embora o uso de outros tipos de sensores também resultasse na informação desejada, por questões de
custo, robustez e, principalmente, imunidade a interferências externas, os sensores indutivos são largamente
empregados.Um exemplo bastante comum é usado na área automotiva: no sistema de injeção eletrônica,
uma roda dentada em conjunto com um sensor indutivo gera pulsos para que o sistema de controle saiba
a posição do “eixo do motor”, do motor, e sua velocidade de rotação. Em outro exemplo, temos o sistema de
assistência de frenagem (ABS), em que um sistema computacional avalia constantemente a desaceleração
da roda, evitando seu bloqueio.

3.8 SENSORES CAPACITIVOS

Nos sensores indutivos, a mudança da “indutância” da bobina de um circuito gera uma alteração no
circuito ressonante (filtro), que é utilizado para gerar a informação desejada. Já em sensores capacitivos,
a mudança detectada é na capacitância do circuito. Esta capacitância é determinada pela distância entre
duas superfícies condutivas, separadas pelo material isolante dielétrico. Dependendo das dimensões do
posicionamento e do material que constitui o dielétrico, e também das variações de distância das camadas
condutoras, há sensíveis variações na “capacitância”, que podem ser aplicadas a circuitos de transformação
do sinal que, após amplificado e filtrado, gera o sinal desejado.
Sensores capacitivos industriais são equipamentos que possuem um capacitor montado em sua
face de detecção e utilizado em um circuito interno bastante sensível a variações de capacitância deste
capacitor. Quando um material ingressa na região deste capacitor, sua capacitância é afetada e a alteração
causa uma mudança de comportamento no funcionamento do circuito, permitindo a detecção.
Uma vantagem dos sensores de presença capacitivos é a possibilidade de detectar vários tipos de
material, sejam eles ferromagnéticos ou não. Um sensor capacitivo pode detectar materiais condutores
(metais em geral) e também não-condutores (plástico, borracha, compostos orgânicos naturais como
madeira, papel, fluídos, óleo, água etc.).
O uso de sensores capacitivos é muito frequente como alternativa a sensores indutivos quando
o material a ser detectado não é metálico. Devido a sua abrangência (detecta vários tipos de
materiais), um sensor capacitivo deve ser usado com cuidado, evitando seu uso em ambientes com
muito resíduo, como poeira, óleo ou aspersão de água, pois isso pode causar depósitos sobre o
sensor, fazendo com que a capacitância seja alterada a ponto de causar falsas detecções.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
116

Sensores capacitivos podem também ser empregados em tanques para a medição de nível, sem
a necessidade de perfurações, uma vez que a capacitância pode ser medida através das paredes de
um recipiente, desde que não sejam muito espessos, sem a necessidade de perfurações e do contato
direto do sensor com o fluído (FIGURA 138).

sensor capacitivo

sensor capacitivo ÁGUA

reservatório

Figura 138 -  Sensores capacitivos


Fonte: SENAI - RS

Sensores capacitivos analógicos podem ser utilizados para medir a proximidade ou o volume de um
objeto. Sensores capacitivos de nível funcionam pelo processo de capacitância entre dois elementos
condutivos imersos em um fluído não-condutivo. Como a constante dielétrica do fluído tende a ser
diferente da constante dielétrica do ar, a capacitância do sensor de nível tende a mudar de acordo com a
proporção da imersão das hastes no fluído.

3.9 SENSORES MAGNÉTICOS

São sensores que reagem a um campo magnético. Seu principal representante é o “reed switch”,
constituído por uma chave magnética de contato normalmente aberto que reage à aproximação de um
ímã ou campo magnético (FIGURA 139).
SENSOR MAGNÉTICO
“ REED SWITCH ”
ÍMÃ
(OBJETO DETECTADO)

CONTATO ABERTO CONTATO FECHADO

CIRCUITO DE CONTROLE

Figura 139 -  Sensores magnéticos


Fonte: SENAI - RS
3 SENSORES
117

Seu uso na automação industrial é frequentemente relacionado à detecção de movimentação de


cilindros pneumáticos com êmbolos magnéticos. Este sensor é utilizado para detectar a posição do êmbolo
sem a necessidade de alterar as propriedades construtivas do cilindro e sem o uso de contato mecânico
com a parte móvel do atuador (FIGURA 140).

sensor magnético

magnético

sensor magnético

magnético
cilindro pneumático com êmbolo magnético

Figura 140 -  Cilindro pneumático com êmbolo magnético


Fonte: SENAI - RS

Apesar de oferecer uma solução de baixo custo e sem contato mecânico com o objeto detectado, o
sensor magnético com reed switch possui limitações quanto ao tamanho e à vida útil se comparado a
sensores magnéticos construídos a partir de semicondutores, como sensores HALL (FIGURA 141).

A
NNT

N
N
A
T

Figura 141 -  Circuito integrado sensor de efeito HALL A1101, da Allegro MicroSystems Inc.
Fonte: SENAI - RS

Sensores HALL (em homenagem a E.H. Hall) são sensíveis a campos magnéticos, gerando um sinal de
tensão proporcional a eles e que pode ser amplificado e processado para gerar uma informação digital
similar aos sensores magnéticos de contato, com a vantagem de não haver partes móveis internas no
sensor, aumentando sua vida útil e diminuindo o tempo de resposta. Sensores HALL são usados para
posicionamento em pequenos dispositivos, como leitores de discos de computadores, e posicionamento
e velocidade de motores. Em aplicações industriais, estes sensores vem sendo empregados em conjunto
com cilindros pneumáticos para a detecção de posicionamento do atuador.

3.10 SENSOR DE PRESSÃO

Todo tipo de pressão sobre um material tende a causar uma deformação/deflexão. Em alguns materiais,
esta deformação é temporária e, quando a pressão é interrompida, o material volta ao seu estado original.
Alguns materiais, ao serem submetidos a pressão, têm suas propriedades condutivas modificadas,
geralmente com diminuição de sua resistência.
Os Piezorresistores são componentes que reagem desta forma, tendo sua resistência inversamente
proporcional à pressão a que são submetidos.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
118

VOCÊ Muitos microfones utilizados em telefones têm, sem seu interior, piezorresistores,
onde as variações da pressão do ar causadas pelas ondas sonoras são traduzidas em
SABIA? variações de resistência elétrica

Em sensores capacitivos, a pressão pode comprimir o material dielétrico (entre as camadas condutoras
do capacitor), causando uma mudança na capacitância.
Alguns materiais podem ainda gerar um campo elétrico durante a variação da pressão, gerando energia
elétrica.
Tensão, corrente, capacitância e resistividade são, portanto, grandezas que podem variar conforme a
pressão em determinados componentes. Estes componentes são então combinados e montados de forma
a mensurar a pressão através da variação controlada destas grandezas.
Piezorresistores podem ser aplicados em encapsulamentos que aplicam a deformação através da
pressão positiva ou negativa para criar sensores de pressão mais complexos, com saídas digitais ou
analógicas (FIGURA 142).

bar

Sensor de pressão Sensor de pressão Piezoresistor


microcontrolado
Figura 142 -  Sensor de pressão microcontrolado, de seu componente interno (sensor de pressão) e do piezorresistor utilizado nesta última como elemento detector
de pressão
Fonte: SENAI - RS

Os mesmos piezorresistores podem ser aplicados em sistemas de pressão mecânica e em balanças e


detectores de vibração.
Sensores de pressão são geralmente empregados para uma saída de formato analógico, porém
também podem ser condicionados para gerar uma informação digital.
Sensores mais tradicionais utilizam ainda o princípio físico mecânico, realizando a detecção da pressão
por meio da contrarresistência (força que se opõe à pressão) mecânica controlada por uma mola que,
quando é vencida, realiza a comutação, e um contato elétrico, informando se uma pressão específica foi ou
não atingida (FIGURA 143).

Figura 143 -  Sensor de pressão do tipo pressostato de membrana


Fonte: SENAI - RS
3 SENSORES
119

VOCÊ Um pressostato pode ser utilizado para medir o nível de líquidos, através da medição
da variação de pressão em um sistema fechado conectado ao fundo do recipiente?
SABIA? Esta técnica é utilizada em máquinas de lavar roupas.

3.11 SENSORES DE ACELERAÇÃO

Conhecidos também como acelerômetros, estes sensores são capazes de perceber a aceleração. Os
primeiros acelerômetros tinham por base o uso de giroscópios, porém, devido ao tamanho e à robustez,
acelerômetros capacitivos foram embutidos na pastilha de circuito integrados, permitindo medir a
aceleração e a direção da força da gravidade, auxiliando em aplicações de uso em segurança.

VOCÊ Pesquise sobre o uso e a função de acelerômetros e giroscópios em aplicações aero-


SABIA? espaciais.

Computadores pessoais, telefones celulares e controles de videogame aplicam estes sensores para
detectar movimentos realizados pelo usuário, detectando a direção do movimento, e também a direção
do vetor força da gravidade, atualizando imagens para a orientação mais adequada.
Em automóveis, estes sensores de aceleração são utilizados para detectar uma desaceleração brusca
causada por uma colisão, disparando sistemas de segurança passiva, tais como air-bags.
Na indústria, os sensores de aceleração podem ser aplicados para detectar movimentos bruscos ou
vibrações, podendo servir de mecanismo de detecção de problemas em equipamentos críticos (FIGURA
144, FIGURA 145 e FIGURA 146).

Wii

Figura 144 -  Circuitos inte- Figura 145 -  Sensor industrial Figura 146 -  Equipamentos que
grados acelerômetros Fonte: SENAI - RS utilizam acelerômetros
Fonte: SENAI - RS Fonte: SENAI - RS

3.12 EXTENSÔMETROS E CÉLULAS DE CARGA

Também conhecidos pelo termo strain-gage, os extensômetros (FIGURA 147, FIGURA 148 e FIGURA 149)
são resistores aderidos à superfície de um material que pode sofrer deformação por tração. Quando um material
sofre tração, há um ligeiro estreitamento da superfície condutora, alterando também sua resistência. Esta variação
de resistência pode ser aplicada a um circuito comparador, gerando um sinal proporcional à deformação sofrida.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
120

Base Fio ou lâmina

Terminal
para a Solda

Figura 147 -  Sensor strain-gage acoplado Modelo


Figura 148 - de
Modelo de Strain -gage
Figura 149 - acoplado
Strain-gage
Sensor strain - gage
à célula de carga posicionamento.
posicionamento a célula
Fonte:de carga.
SENAI - RS
Fonte: SENAI - RS Fonte: SENAI - RS

Extensômetros podem ser aplicados a superfícies cuja deformação é controlada e conhecida para
determinadas faixas de força, gerando a chamada “célula de carga”.
Células de carga são comumente empregadas para a medição de peso e outros tipos de força.

3.13 SENSORES DE VAZÃO

São sensores capazes de medir a quantidade de um determinado elemento que passa por um determinado
ponto, por um determinado período de tempo. Podemos medir a vazão em unidades de volume por tempo
(volumétricos), como litros por segundo (L/s), metros cúbicos por hora (m³/h), galões por minutos (GPM) ou, ainda,
em unidades de massa por tempo (mássicos), como kilogramas por hora (kg/h), toneladas por minuto (ton/min),
miligramas por minuto (mg/min.), libras por segundo (lb/s).
A vazão geralmente é medida em elementos transportados por tubulações em fluxos relativamente
contínuos, e geralmente aplicada a líquidos ou gases, embora também possa ser aplicada a sólidos, como
grãos de matéria-prima de polímeros, minérios triturados, pó, alimentos em grãos, derivados etc.

Os sensores de vazão são comuns em nosso dia a dia, embora em muitas situações
VOCÊ passem desapercebidos. Hidrômetros são usados para medir o consumo de água nas
SABIA? residências. Sensores de vazão por turbina também são aplicados em bombas de
postos de combustíveis.

Os sensores de vazão são apresentados nas mais diversas configurações, variando conforme o elemento a
ser medido, precisão necessária, resolução, pressão suportada, vazão mínima e máxima, formato de saída etc.
A seguir, a Figura 150 mostra sensores de turbina, frequentemente utilizados na medição de vazão
para líquidos.

0,000

Figura 150 -  Sensores de turbinas


Fonte: SENAI - RS
3 SENSORES
121

Em caso de produtos sólidos que podem ser transportados em esteiras, a medida aproximada da vazão
pode ser feita pelo peso da esteira ou de medições de altura do material transportado pela esteira. Este valor
pode ser processado para gerar uma aproximação em relação à quantidade de material transportado.
Para líquido ou gás, destacam-se os sensores de vazão por turbinas onde pás inseridas na tubulação
giram durante a passagem do fluído, e sistemas externos utilizam a informação gerada pelo giro das pás
para obter a informação desejada.
Alguns sensores de vazão podem se basear na diferença de pressão existente entre a medida que ocorre
antes (a montante) de um ponto de estrangulamento e após (a jusante) o ponto de estrangulamento.
A diferença de pressão entre os dois pontos pode ser usada para determinar a vazão com uma boa
aproximação.
Representação da tubulação com um ponto de estrangulamento, com pontos de pressão
diferencial (FIGURA 151).

P2 P1
A1: Area do buraco

A2: Area do cano


de seção transversal
Figura 151 -  Tubulação com ponto de estrangulamento
Fonte: SENAI - RS

O sensor do tipo tubo pitot permite a detecção da diferença entre a pressão estática e a dinâmica,
podendo ser usado para estimar com bastante precisão a vazão de um fluído. Este sensor é usado em
aviões para o cálculo da velocidade através da vazão do ar.
A Figura 152 é de um tubo pitot. Observe que a diferença entre as pressões estáticas e de impacto será
proporcional à vazão.

Pressão de Impacto Pressão estática


(velocidade)
Figura 152 -  Representação de um sensor tipo pitot
Fonte: SENAI - RS

Rotâmetros (FIGURA 153) são sensores de vazão aplicados a fluídos (líquidos e gases) cujo princípio
consiste em uma passagem cônica com um elemento bloqueador. O elemento tende a se deslocar para
baixo, bloqueando o orifício, devido à força da gravidade, porém sofre a impulsão do elemento em sentido
contrário, buscando um ponto de equilíbrio onde a área de passagem é suficiente para que a suspensão do
flutuador causada pelo atrito e seu peso entrem em equilíbrio. A altura do flutuador é o indicador do fluxo.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
122

União de saída
Conexão de saída

Limitador do flutuador
Caixa de vedação sela o tubo
De vidro com a união de metal
Máximo fluxo é obtido
Na parte superior do tubo
Tubo afunilado de vidro

Flutuador de medida

Mínimo fluxo é obtido na


Parte inferior do tubo
Limitador do flutuador

Conexão de entrada
União de entrada

Figura 153 -  Rotâmetro


Fonte: SENAI - RS

Sensores magnéticos podem medir a vazão por meio do campo magnético causado pelo deslocamento
de um fluído levemente condutor.
Sensores de ultrassom podem ser usados para medir a vazão por meio da diferença de tempo entre a geração e
a captação de sinais sonoros propagados pela tubulação. A velocidade do fluído na tubulação propaga as ondas
sonoras de forma levemente mais veloz ou mais lenta, conforme a velocidade e o sentido do deslocamento. Esta
informação, aliada a dados dimensionais da tubulação, pode ser usada para estimar a vazão.
Obstáculos inseridos no interior da tubulação podem causar a criação de vórtices, que oscilam em
proporção a velocidade do fluído. Esta informação pode ser usada para calcular a vazão. Sensores de
esforço ou térmicos também podem ser aplicados aos obstáculos, a fim de estimar o atrito com o elemento
e definir sua velocidade, usando esta informação para o cálculo da vazão.

SAIBA Pesquise sobre aplicações de sensores de vazão para líquidos e gases.


MAIS

3.14 SENSORES DE TEMPERATURA

Sensores de temperatura são bastante aplicados na automação industrial e podem utilizar mais de um
princípio físico para a medição da mesma grandeza.
3 SENSORES
123

O calor é uma forma de energia, e a versatilidade e a diversidade em suas transmissão fazem com que
seja uma das mais usadas. O calor pode ser transferido por condução, por convecção ou por irradiação.
Esta forma de energia pode realizar transformações em materiais, mudando a condutividade elétrica de
alguns elementos, causando dilatações e deformações físicas e gerando ondas eletromagnéticas.
Os elementos condutivos tendem a apresentar uma resistência variável em relação à temperatura.
Em componentes eletrônicos, como resistores, esta propriedade geralmente é indesejável, fazendo
com que circuitos de compensação sejam implementados para casos onde há necessidade de precisão
e estabilidade.
Porém, como sensor térmico, esta propriedade dos resistores é desejável e elementos resistivos mais
sensíveis à temperatura são utilizados para compor termistores. Alguns termistores apresentam uma
resposta onde a resistência é diretamente proporcional à temperatura; ou seja, quanto mais calor, maior a
resistência. Estes elementos são conhecidos como PTC (Positive Temperature Coefficient), em português,
coeficiente positivo de temperatura.
Alguns termistores podem ainda apresentar uma resistência inversamente proporcional à temperatura;
ou seja, a resistência diminui com o aumento da temperatura. Estes são conhecidos por NTC (Negative
Temperature Coefficient), em português, coeficiente negativo de temperatura.
Sensores do tipo PTC e NTC geralmente não apresentam comportamento linear e podem apresentar
comportamentos indesejáveis se submetidos fora da faixa de medição adequada.
Ao escolher um termistor, devemos observar esta faixa de medição e a resistência do componente nos
valores mínimos e máximos dessa faixa. Além disso, é necessário interpretar a curva do sensor, conhecendo
alguns pontos de resistência em determinadas temperaturas (FIGURA 154).

NTC PTC
Resistência (ohms)

Temperatura (oC)

Figura 154 -  Gráfico da curva de sensores NTC e PTC genéricos


Fonte: SENAI - RS

Alguns sensores podem apresentar comportamento mais linear em certas faixas de temperatura.
Devido a sua simplicidade, termistores geralmente são sensores baratos (custam alguns centavos) e são
aplicados a circuitos de controle mais complexos para compensar sua não- linearidade.

A junção de dois metais diferentes pode transformar energia térmica em energia elé-
VOCÊ trica. Este princípio foi descoberto por Thomas Johann Seebeck em 1821, e é conhe-
SABIA? cido como efeito termoelétrico.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
124

Através do princípio termoelétrico, os termopares realizam medições de temperatura gerando uma pequena
tensão proporcional ao calor ao qual uma junção de dois metais diferentes é submetida (FIGURA 155).
INFINITOS VALORES

DC

V
,
POWER PK HOLD B/L DC / AC

AUTO POWER OFF

(mV)

+
-
CAT ll

20A mA COM VΩHz

- + 0C
termopar

Figura 155 -  Voltímetro


Fonte: SENAI - RS

Todo termopar é constituído de um par metálico, envolvendo um elemento positivo (gera lacunas),
e um elemento negativo (fornece elétrons); ou seja, quando estes metais são submetidos a uma variação
da temperatura, uma corrente passa a circular entre eles. Os termopares também são indicados a faixas de
temperatura específica, não tolerando temperaturas acima ou abaixo de uma faixa específica, podendo
ocorrer danos permanentes se utilizados fora dessa faixa de temperatura.

3.14.1 Tipos de termopares

Os termopares são formados com junção de diferentes metais, apresentando respostas diferentes e
principalmente faixas de leitura bem particulares. Na automação industrial, são conhecidos por letras. A
seguir, veja os tipos:
a) tipo K (Cromel / Alumel) - é um termopar bastante utilizado, com baixo custo e cobrindo temperaturas
entre -200 e 1200°C, com sensibilidade de aproximadamente 41µV/°C;
Termoelemento positivo (KP): Ni 90% Cr 10% (Cromel)
Termoelemento negativo (KN): Ni 95% Mn 2% Si 1% Al 2% (Alumel)
Faixa de utilização: -270°C a 1200°C
f.e.m. (tensão em função da temperatura) produzida: -6,458 mV a 48,838 mV
b) tipo E (Cromel / Constantan) - tem sensibilidade elevada (68 µV/°C) e é muito empregado em
temperaturas negativas;
Termoelemento positivo (EP): Ni 90% Cr 10% (Cromel)
Termoelemento negativo (EN): Cu 55% Ni 45% (Constantan)
Faixa de utilização: -270°C a 1000°C
f.e.m. produzida: -9,835 mV a 76,373 mV
3 SENSORES
125

c) tipo J (Ferro / Constantan): possui medição em faixa de -40 a 750°C;


Termoelemento positivo (JP): Fe 99,5%
Termoelemento negativo (JN): Cu 55% Ni 45% (Constantan)
Faixa de utilização: -210°C a 760°C
f.e.m. produzida: -8,096 mV a 42,919 mV
d) tipo N (Nicrosil / Nisil) - é caracterizado pela resistência à oxidação e a estabilidade, sendo ideal para
temperaturas mais elevadas. Apresentado como alternativa a termopares com platina, apresenta um custo
mais baixo;
Termoelemento positivo (NP): Ni 84,4% Cr 14,2 % Si 1,4%
Termoelemento negativo (NN): Ni 95,45% Si 4,40% Mg 0,15%
Faixa de utilização: -270°C a 1300°C
f.e.m. produzida: -4,345 mV a 47,513 mV.
e) tipo B (Platina / Ródio-Platina) - é bastante estável, porém com baixa sensibilidade (da ordem dos 10
µV/°C). Tem alto custo, porém é adequado para ler temperaturas elevadas, até 1800ºC;
Termoelemento positivo (BP): Pt 70,4% Rh 29,6%
Termoelemento negativo (BN): Pt 93,9% Rh 6,1%
Faixa de utilização: 0°C a 1820°C
f.e.m. produzida: 0,000 mV a 13,820 mV
f ) tipo R (Platina / Ródio-Platina) - adequado para a medição de temperaturas até 1600 °C. Reduzida
sensibilidade (10 µV/°C) e custo elevado;
Termoelemento positivo (RP): Pt87%Rh13% (Ródio-Platina)
Termoelemento negativo (RN): Pt100%
Faixa de utilização: -50°C a 1768°C
f.e.m. produzida: -0,226 mV a 21,101 mV
g) tipo S (Platina / Ródio-Platina) - adequado para a medição de temperaturas até 1600°C. Reduzida
sensibilidade (10 µV/°C), elevada estabilidade e custo elevado;
Termoelemento positivo (SP): Pt 90% Rh 10% (Ródio-Platina)
Termoelemento negativo (SN): Pt 100%
Faixa de utilização: -50°C a 1768°C
f.e.m. produzida: -0,236 mV a 18,693 mV
h) tipo T (Cobre / Constantan) - indicado para medições na gama dos -270°C a 400°C.
Termoelemento positivo (TP): Cu 100%
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
126

Termoelemento negativo (TN): Cu 55% Ni 45% (Constantan)


Faixa de utilização: -270°C a 400°C
f.e.m. produzida: -6,258 mV a 20,872 mV
Termopares são geralmente disponibilizados encapsulados em hastes metálicas chamadas de “sondas”,
que permitem a inserção do sensor em ambientes hostis, aumentando a robustez e facilitando instalações
físicas (FIGURA 156).

Figura 156 -  Sonda com termopar


Fonte: SENAI - RS

Em relação a seu comportamento, alguns tipos apresentam uma curva muito linear em certas faixas
de temperatura, facilitando seu uso. Este é um dos grandes motivos de seu largo uso em processos de
automação industrial (FIGURA 157).

TERMOPARES: F.E.M. X Temperatura


Tipo B
70
Tipo N E
65
Tipo R 60
Tipo S 55
Tipo K 50
K
F. E. M. (mV)

45
Tipo E J
N
40
Tipo J
35
Tipo T
30
25
T
20
R
15 S
B
10
5
0
-5
-10
-200 0 200 400 600 800 1000 1200 1400 1600

Termperatura (ºC)
Figura 157 -  Gráfico das curvas de termopares, entre temperatura e tensão gerada em milivolts
Fonte: SENAI - RS
3 SENSORES
127

3.14.2 SENSOR INFRAVEMELHO APLICADO À MEDIÇÃO DE TEMPERATURA

Uma das formas de transmissão térmica ocorre por meio da irradiação, quando o objeto que libera
calor também irradia luz infravermelha. Conhecendo as características do objeto, é possível realizar a
medição da temperatura com uma boa precisão através da medição de radiação infravermelha emitida
por ele (FIGURA 158).

Câmeras sensíveis à luz infravermelha, ou câmeras termográficas, permitem a detec-


VOCÊ ção de pontos de geração de calor, sendo uma moderna ferramenta de detecção de
SABIA? anomalias, muito utilizada na manutenção preditiva.

Figura 158 -  Imagem térmica de um motor elétrico em funcionamento


Fonte: SENAI - RS

Sensores infravermelhos são aplicados em medições de temperaturas elevadas, onde não é possível inserir
uma sonda ou não é desejável um contato físico entre o sensor e a fonte emissora de calor (FIGURA 159).

A V
O

Figura 159 -  Sensor infravermelho para a medição de temperaturas


Fonte: SENAI - RS

Alguns sensores infravermelhos apresentam curvas de saída similar a alguns tipos de termopares, para
facilitar sua implantação em sistemas padronizados.
Devido às suas características construtivas, esses equipamentos não são aconselhados para medição
de superfícies reflexivas.

3.14.3 TERMODINÂMICA APLICADA À LEITURA DE TEMPERATURA

Termodinâmica é o ramo da Física que estuda causas e efeitos gerados pela mudança na temperatura,
pressão e volume, compreendendo também o comportamento dinâmico (movimento) da energia térmica,
que é largamente utilizada, tanto de forma desejável quanto indesejável.
Em essência, a Termodinâmica estuda o movimento da energia e como a energia cria movimento. Na
automação industrial, controlar a temperatura exige conhecimentos amplos na área, por isso vamos abordar
alguns pontos importantes em relação ao comportamento de sistemas onde o calor é um fator crítico.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
128

Adquirir a informação de temperatura geralmente é só parte do processo de um controle por


temperatura. Sistemas de troca térmica geralmente têm uma resposta lenta, que varia muito conforme
condições, composição e volume dos elementos monitorados.
Em grandes volumes de água, por exemplo, sistemas de aquecimento ou refrigeração podem causar
mudanças de temperatura somente em parte do reservatório, com uma demora considerável para que
esta mudança se propague para todo o volume que desejamos controlar.
O aquecimento causa variações na densidade dos elementos. No caso de fluídos (líquidos ou gás),
esta mudança gera a convecção, fazendo com que o material mais denso ocupe um lugar mais abaixo no
recipiente, dando lugar ao material menos denso, que se desloca para a superfície. Líquidos e gases não
são bons condutores de calor, mas a convecção permite que haja uma homogenização térmica adequada.
Portanto, em um sistema de aquecimento, é importante que o aquecedor fique na parte inferior do
recipiente, facilitando a convecção e fazendo com que haja um aquecimento de todo o fluído de forma
mais homogênea.
A posição de um sensor de temperatura neste sistema não é menos importante. Se a temperatura for
medida muito próximo do atuador de aquecimento / resfriamento, a informação lida pode não refletir a
temperatura média do recipiente, gerando um controle impreciso, e se o sensor for posicionado muito
distante do atuador, poderá demorar muito tempo para que o sistema de controle perceba as variações de
temperatura, causando oscilações muito elevadas.
Em situações de grandes volumes, estratégias como misturadores ou vários sensores interligados podem
auxiliar na medição, permitindo leituras mais precisas.
Controladores especiais ainda podem auxiliar neste controle, pois integram soluções matemáticas
adaptativas, que interpretam as variáveis do ambiente (tempo de resposta do sistema, erro etc) para gerar
um controle mais preciso.

3.15 SENSORES DE POSICIONAMENTO

Em muitos dispositivos automatizados, não basta ao sistema de controle acionar um atuador. É


importante saber se o efeito gerado pelo atuador realmente ocorreu.
Como exemplo, vamos estudar um braço robótico (FIGURA 160 e FIGURA 161).
led disco perfurado
infravermelho

encoder óptico eixo


fotodiodo

braço robótico aplicando a solda


Figura 160 -  Braço robótico Figura 161 -  Encoders ópticos
Fonte: SENAI - RS usados em suas articulações e
seu princípio de funcionamento
Fonte: SENAI - RS
3 SENSORES
129

Motores e reduções são responsáveis pelo movimento das articulações nos robôs elétricos, muito
utilizados na indústria devido a sua precisão e repetibilidade. Mas, como o sistema de controle deste robô
pode realizar movimentos tão precisos, mesmo havendo diferentes condições de uso? Suas articulações
contam com sensores que conseguem captar o movimento realizado, quantificando-o de forma
razoavelmente precisa.
Encoders são dispositivos que transformam movimentos em sinais elétricos que são enviados ao sistema
de controle. Estes sinais são utilizados para compor informações de velocidade e posição e para ações
corretivas, permitindo ao equipamento uma resposta correta e constante.

VOCÊ Alguns encoders podem gerar até 360000 pulsos por revolução; ou seja um pulso é
SABIA? gerado a cada milésimo de grau de movimento angular do eixo do encoder.

3.15.1 SENSORES DE POSIÇÃO LINEAR

Também conhecidos como transdutores de posição linear, são sensores cada vez mais utilizados
na automação devido a sua versatilidade, podendo serem empregados em sistemas de controle de
posicionamento até em sensores de nível.
Dentre os sensores de posição linear, podemos destacar a régua potenciométrica e a régua óptica.
Na régua potenciométrica, com o nome já sugere, temos um “potenciômetro”, ou seja, uma resistência
variável em função da posição, comportando-se como um sensor analógico; já na régua óptica o sistema
de medição da posição é realizado através de pulsos gerados pela passagem de um pequeno sensor óptico
por uma fita graduada translúcida, como em um encoder óptico.
LVDT : Linear Variable Differential Transformer - Transformador Diferencial Linear Variável. Constitui um sistema
que utiliza transformadores acoplados por meio de um núcleo metálico móvel, variando sua saída de tensão em
função da posição deste núcleo. Seu uso geralmente é dado como sensor de posição linear resultando como
saída um sinal analógico definido pela variação de tensão elétrica.
A tecnologia de magneto-restrição aplicada a sensores de posicionamento lineares permite a construção
de sensores de alta resolução, robustos e sem contato físico no elemento sensor (FIGURA 162).

Figura 162 -  Sensor de posição linear


Fonte: SENAI - RS

3.15.2 ENCODERS ABSOLUTOS

Também conhecidos como transdutores de posição angular, Encoders são dispositivos sensores com
capacidade de gerar pulsos elétricos proporcionais ao movimento angular detectado.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
130

Geralmente conectados a eixos de motores ou redutores, os encoders permitem a leitura, por parte do
sistema de controle, da posição angular do eixo.
Encoders que permitem uma leitura instantânea da posição do eixo, tendo como resposta um
sinal proporcional a posição, são chamados de encoders absolutos.
Um potenciômetro convencional é um exemplo clássico de um encoder analógico potenciométrico,
pois traduz o movimento angular em uma variação de resistência, que pode também ser convertido
para variação de tensão (FIGURA 163).

5V

Tensão (V)
GND
5V
Sinal

Ângulo 270o

Figura 163 -  Encoders analógico potenciométrico


Fonte: SENAI - RS

Embora o potenciômetro seja utilizado como um sensor de posição em painéis de interface com
usuários, ele pode ser aplicado a sistemas mecânicos, como braços robóticos de pouca precisão, boias
potenciométricas e pêndulos, dentre outros sensores.
Para aplicações que exigem maior precisão, encoders absolutos ópticos ou magnéticos permitem uma
leitura mais precisa, traduzindo a posição em uma sequência binária. Para facilitar o entendimento, segue
a imagem de um encoder óptico absoluto de uma volta com resolução de 3 bits (FIGURA 164).

1
0
1

Disco com áreas


reflexivas e
áreas foscas

Figura 164 -  Encoders absolutos óptico


Fonte: SENAI - RS

É importante ressaltar que, por se tratar de um encoder absoluto, não importa o momento da
leitura; sempre será retornada a informação relativa à posição do sistema.
Existem encoders absolutos construídos para monitoramento de uma única volta (360º), conhecidos
como monovolta; já os encoders multivoltas podem suportar mais de uma revolução sobre seu eixo e
conseguem medir a quantidade de revoluções, além da posição angular.
3 SENSORES
131

3.15.3 ENCODERS INCREMENTAIS OU RELATIVOS

Similares aos encoders absolutos, os encoders incrementais também geram informações elétricas
baseadas em um movimento.
Enquanto em um encoder absoluto é possível obter a informação referente à posição angular
de seu eixo, no encoder incremental só é possível obter a informação de que um movimento foi
realizado, sem informação da posição exata do eixo (FIGURA 165).

101010101

Disco com áreas


reflexivas e
áreas foscas

Figura 165 -  Encoders incrementais ou relativos óptico


Fonte: SENAI - RS

Em um encoder incremental, o movimento é transformado em pulsos. A velocidade dos pulsos indica a


velocidade do eixo do encoder, e a quantidade de pulsos gerada indica o movimento relativo ao momento
inicial do controle.
Na Figura 166, veremos um encoder incremental com dois receptores. A colocação dos receptores na
distância correta permite perceber pulsos levemente defasados em relação a eles. Se o disco girar em
sentido horário, um dos sensores (digamos, o sensor A) irá gerar pulsos antes que o outro. Já quando em
sentido anti-horário, o sensor B é que irá gerar pulsos antes do sensor A. Esta informação pode ser usada
pelo sistema de controle para aumentar ou diminuir a contagem que revela o posicionamento do sistema.

disco conectado ao eixo


Sensor A

receptores
Sensor B
mascara fixa
emissores

Figura 166 -  Encoders incrementais


Fonte: SENAI - RS

FIQUE Em sistemas que possuem encoders incrementais, a cada inicialização do sistema


ocorre uma etapa de “referenciamento”, onde os eixos monitorados pelo encoder são
ALERTA deslocados até um limite pré-determinado (ponto zero).
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
132

CASOS E RELATOS

Antônio trabalha em uma empresa de médio porte no Oeste do Estado do Paraná, e orgulha-se de
manter um sistema de manutenção preventiva bastante completo, evitando paradas não-programadas
em equipamentos da produção. Há algum tempo, esta empresa importou um robô industrial que foi
fabricado em um grande país asiático. Antônio recebeu um treinamento e vasto material impresso e em
meio digital, compreendendo manuais de manutenção do equipamento, tanto na língua de origem quanto
em inglês. Devido a um erro de tradução e a uma falha no treinamento, Antônio não foi corretamente
orientado quanto ao processo de troca das baterias dos encoders do robô, que deveria ser realizado
anualmente. Após 2 anos, quando o robô foi ligado no início do turno de trabalho, Rivaldo (experiente
metalúrgico e responsável pela operação do robô) se deparou com um erro de mal funcionamento. Em
consulta ao manual do equipamento, observaram que o erro era referente à perda de carga nas baterias.
Após a compra e troca da baterias, Antônio e Rivaldo realizaram o procedimento de referenciamento do
robô. Apesar se ser um processo lento e complexo, foi concluído com sucesso. No entanto, ao iniciar o
uso do equipamento, observaram a ocorrência de pequenas mudanças de posicionamento, mudando
a posição da garra do robô em alguns milímetros. Compreendendo se tratar de um erro dado pela leve
mudança no novo referenciamento (feito de forma visual), reajustaram os pontos dos programas. A partir
de então, Antônio incluiu a troca periódica das baterias no programa de manutenção preventiva.

Em alguns casos, estes encoders multivoltas são encoders relativos que foram referenciados e
mantêm a informação relativa à posição dos eixos graças a um sistema alimentado por baterias.
Isso é bastante comum em robôs industriais e máquinas CNC, onde os eixos são monitorados por
encoders relativos com comportamento de encoders absolutos. Nestes equipamentos, a manutenção
preventiva é fundamental, pois, em caso de finalizar a carga das baterias, a informação dos encoders
é perdida e eles devem ser referenciados, obrigando a um procedimento demorado e que pode
trazer pequenas variações em relação aos posicionamentos anteriormente gravados.

3.16 TRANSDUTORES / CONVERSORES

Transdutores são dispositivos que transformam uma forma de energia em outra, geralmente com o
objetivo de gerar um sinal elétrico proporcional que possa ser utilizado em um sistema de controle, ou de
transformar este sinal de controle em outra forma de energia.
Como sensores, os transdutores podem converter grandezas físicas em sinais elétricos. São exemplos
os microfones, termistores, acelerômetros, potenciômetros, resistores dependentes de luminosidade etc.
Como atuadores, os transdutores convertem sinais elétricos em outros tipos de energia. Exemplo:
motores, alto-falantes, pastilhas térmicas etc (FIGURA 167).
3 SENSORES
133

Perdas

Forma de energia Forma de energia


de entrada de saída

Transdutor
Figura 167 -  Diagrama de funcionamento de um transdutor
Fonte: SENAI - RS

Segundo este conceito, muitos dos sensores antes estudados caracterizam-se como transdutores; outros
utilizam transdutores em seu princípio de funcionamento.

Podemos dividir os transdutores em PASSIVOS e ATIVOS.


Transdutores passivos não são capazes de funcionar sem a necessidade de uma fonte de energia
externa. São transdutores de princípios resistivos, capacitivos ou indutivos. Exemplo: termistores, resistores
dependentes de luz, potenciômetros, sensores indutivos, chaves sensíveis ao toque etc. Já em transdutores
ativos não há necessidade de uma alimentação externa para extrair o sinal desejado, sendo que a energia
é proveniente do própria transformação da energia medida.
Este tipo de sensor geralmente é reversível, e pode ser usado como atuador com o processo inverso.
Exemplos: gerador / motor, alto-falante / microfone, termopar / pastilha térmica.
A escolha do transdutor pode variar conforme a grandeza física a ser medida ou gerada, a sensibilidade,
a potência desejada e a eficiência, dentre outros fatores.
Nos ateremos aos transdutores que são utilizados como sensores na adequação dos sinais de entrada
em sinais elétricos, digitais ou analógicos.
Veja, a seguir, uma lista dos principais transdutores conhecidos.

3.16.1 TRANSDUTORES PASSIVOS

A seguir, veremos os tipos de resistores passivos:

a) potenciômetros - transdutor resistivo já estudado, são resistências variáveis. A resistência varia


conforme a posição; portanto, o princípio de conversão é posição -> resistência;

b) extensômetros - também de princípio resistivo, strain gages são componentes sensíveis à deformação,
com a resistência variando proporcionalmente à tensão mecânica (tração) sofrida pelo componente;
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
134

c) termistores - também já estudados, são resistências que variam de forma diretamente proporcional
ou inversamente proporcional à temperatura;

d) fotoresistores - resistores sensíveis a luz, também conhecidos como LDRs, muito utilizados em
detectores de luminosidade, como fotômetros, sensores crepusculares automotivos e células fotoelétricas;

e) capacitivos - usam o princípio da alteração do material dielétrico ou da distância das placas condutoras
variando conforme a grandeza medida. Como exemplo, citamos sondas de nível, transdutores de pressão
e microfones condensadores;

f ) indutivos - a indutância de uma bobina pode variar proporcionalmente à posição de um núcleo


ferromagnético em seu interior. Este princípio permite a construção de dispositivos LVDT (Linear
Variable Differential Transformer), que são sensores de posicionamento linear livres de contato.

3.16.2 TRANSDUTORES ATIVOS

A seguir, veja quais são os tipos de transdutores ativos:

a) termopares - princípio de geração de uma tensão elétrica em função da temperatura: efeito Seebeck.
Em processo inverso, pastilhas térmicas permitem a geração de calor ou a absorção de calor a partir de uma
corrente elétrica (efeito Peltier);

b) transdutores piezoelétricos - dispositivos que geram energia elétrica ao serem deformados/deflexão,


geralmente sendo aplicados a medição de impacto ou pressão. Um microfone piezoelétrico segue este
princípio. Em processo inverso, um transdutor piezoelétrico também sofre deformação ao ser submetido à
corrente elétrica. Como exemplo, pequenos geradores de som em relógios e calculadoras, que usam uma
cápsula piezoelétrica;

c) fotodiodo - em um diodo sensível à luz quando inversamente polarizado, a corrente aumenta


proporcionalmente à luz incidente.
3 SENSORES
135

3.16.3 TRANSDUTORES INDUSTRIAIS

Na maioria dos casos de automação na indústria, os transdutores são fornecidos já montados em um


equipamento para facilitar seu uso, integrado a circutos de condicionamento de sinal. São comuns alicates-
amperímetro para a medição de corrente, que são compostos basicamente de sensores de corrente, ou
sensores de pressão compostos de transdutores piezoelétricos que medem a pressão de um fluído através
da deformação gerada (FIGURA 168).

Figura 168 -  Transdutor de corrente, usado para medir a corrente através do campo elétrico gerado pelo condutor
Fonte: SENAI - RS

A Figura 169 é o esquema de um transdutor de corrente, que pode ser construído com uma argola de
ferrite, um condutor isolado e um resistor de valor elevado (aprox. 100k).

Corrente

Condutor

Figura 169 -  Esquema de um transdutor industrial de corrente


Fonte: SENAI - RS

Nas extremidades do resistor, devidamente conectada a bobina de fio, obtemos uma variação de
tensão proporcional à corrente, que pode ser amplificada e utilizada em um sistema de controle (FIGURA
170, Figura 171 e FIGURA 172).

Figura 170 -  Transdutores de posição tipo LVDT


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
136

Figura 171 -  Transdutores de pressão


Fonte: SENAI - RS

Figura 172 -  Transdutor de força – célula de carga


Fonte: SENAI - RS

3.16.4 CONVERSORES DE SINAL

Alguns sistemas estão preparados para um determinado nível de sinal, porém os sensores geram um
sinal diferente. É o caso dos termopares, que geram tensão em milivolts e, para serem conectados a CPs,
precisam ser adequados para variações de corrente de 4 a 20 mA, ou de tensão de 0 a 10V.
Conversores podem ser usados para converter sinais analógicos ou de dados entre os diferentes padrões
industriais (FIGURA 173).

1 2 3
4 5 6

1
2 6
3 4 5

Figura 173 -  Conversor de 4 a 20mA para sinal de radiofrequência


Fonte: SENAI - RS

Alguns dispositivos conversores permitem também converter sinais elétricos em sinais de rádio, e vice-
versa, permitindo instalações remotas sem fio.

FIQUE Sistemas de comunicação wireless podem interferir e sofrer interferências de outras


ALERTA fontes de ruído eletromagnético.
3 SENSORES
137

RECAPITULANDO

Neste capítulo estudamos os sensores, que são dispositivos utilizados para adquirir informações,
enviando-as ao sistema de controle. Os sensores também podem enviar sinais digitais que apresentam
um número limitado de estados possíveis, e geralmente são representados por dois estados: ligado (1)
ou desligado (0). Existem também os sensores analógicos, que enviam sinais que apresentam infinitas
possibilidades dentro de uma faixa determinada, e são representados pela variação de uma grandeza,
como tensão ou corrente.
Estudamos que os sensores podem ser divididos quanto ao sinal gerado e também por suas saídas,
podendo ser de princípio analógico ou digital. Alguns sensores digitais têm comportamento similar ao
das chaves que abrem e fecham conforme detecção. Outros sensores analógicos geram variação de
corrente ou tensão conforme a grandeza medida. Estas características são importantes ao escolhermos
ou utilizarmos um sensor, determinando sua forma de integração ao sistema de controle. Quanto ao
princípio físico, os sensores também podem diferenciar-se uns dos outros, sendo alguns mais adequados
em certas situações. Em ambientes com muita poeira, por exemplos os sensores ópticos podem “sofrer”
devido à difusão da luz causada pelas partículas em suspensão no ar. Em situações onde pode ocorrer
desgaste mecânico, sensores eletromecânicos de contato podem não ter uma durabilidade muito
aceitável.
Estudamos também que alguns sensores com um mesmo princípio físico podem diferenciar-
se consideravelmente em suas características. Um termopar, por exemplo, com a alteração da
composição de seus elementos, pode ser mais indicado para a medição de altas temperaturas do
que outro. É importante ressaltar que o conteúdo estudado é somente uma pequena parte desta
vasta área, e atualizar constantemente os estudos de tipos de sensores e suas características é pré-
requisito para uma atuação de sucesso na área de Automação Industrial e mecatrônica.
SISTEMAS DIGITAIS

É costume dividir a Eletrônica em duas áreas: Eletrônica Analógica e Eletrônica Digital.


Ao ouvir o termo “digital”, pensamos imediatamente em relógios, calculadoras e
computadores. Esta associação deve-se provavelmente à popularidade adquirida por estes
equipamentos devido à sua utilização por parte da grande maioria das pessoas. No entanto, é
importante saber que as calculadoras e os computadores representam apenas uma parcela da
imensa gama de aplicações dos circuitos digitais.
Uma maneira bem simples de entender o conceito dos termos analógico e digital é fazer a
comparação de uma rampa com uma escada (FIGURA 174).

Degraus Rampa
(digital) (analógico)
Figura 174 -  Comparação analógica e digital
Fonte: SENAI - RS

Ao analisar a rampa, observamos que uma pessoa pode ocupar cada uma das infinitas
posições existentes entre o início e o fim dela. No caso da escada, a pessoa pode se encontrar
em apenas um de seus degraus, em uma posição definida. Assim, é correto dizer que a rampa
representa um sistema analógico, enquanto a escada representa um sistema digital.
Esse conceito pode ser ainda explicado por meio de representações numéricas.
Constantemente trabalhamos com grandezas e quantidades, as quais são medidas,
monitoradas, gravadas, manipuladas aritmeticamente e utilizadas na maioria dos sistemas
físicos. Ao utilizarmos certas quantidades, é de suma importância o conhecimento de como
realizar a representação de seus valores de maneira precisa e eficiente. Existem duas formas de
representação dos valores numéricos das quantidades: a analógica e a digital.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
140

Representação analógica
De maneira analógica, uma grandeza é representada por outra proporcional à primeira. Para tanto,
utilizamos quantidades que variam continuamente dentro de uma faixa de valores.
Um exemplo de sistema que utiliza a representação analógica é o manômetro de ponteiro (FIGURA 175).

6
4

100 8
50
2

150 10
psi
bar
11

Figura 175 -  Manômetro analógico (ponteiro)


Fonte: SENAI - RS

Neste tipo de manômetro, a deflexão, movimentação angular do ponteiro, é proporcional à pressão conectada
ao equipamento. Assim, a posição angular do ponteiro passa a representar a pressão. A posição do ponteiro e a
pressão representada têm em comum o fato de variarem em uma faixa contínua de valores. Por exemplo, a pressão
pode variar continuamente de 0 a 11 bar, e a posição do ponteiro pode ocupar qualquer valor angular entre 0º e
270º, proporcional a esta pressão.
Existem infinitas variações de pressão entre 0 e 11 bar, e existem infinitas posições entre 0º e 270º do
ponteiro de representação, o que faz com que o sistema tenha comportamento analógico.
O que caracteriza a informação representada de forma analógica é o fato de haver infinitas posições
para o ponteiro entre o valor mínimo e máximo, sendo que ele se desloca por todos os possíveis valores
dentro de um limite.
Representação digital
Na representação digital (também chamada de discreta), as grandezas e quantidades são representadas
não por valores proporcionais, mas por símbolos chamados dígitos (FIGURA 176).

Figura 176 -  Manômetro digital


Fonte: SENAI - RS
4 SISTEMAS DIGITAIS
141

Sabemos que a pressão de um sistema não passa de um valor para outro instantaneamente, havendo um
tempo necessário para isso (mesmo que pequeno) para que a variação ocorra. Se a pressão de um sistema
dada em um momento está em 2 bar e sobe para 3 bar, isso não ocorre repentinamente, pois, mesmo que
dure alguns milisegundos, a pressão irá subir gradualmente até atingir o novo valor.
Porém, em um sistema digital, a pressão é medida em “estágios”, sendo admitido que uma grandeza
mensurável varie de estado sem haver representação dos valores intermediários durante esta variação. Por
exemplo, no manômetro digital acima apresentado podemos ter indicação da pressão de 2,05 bar, e de 2,06
bar, porém não podemos ter a indicação de uma pressão entre estes dois valores, pois o sistema está limitado
a representações de dois dígitos após a vírgula.
Então, por que usar sistemas digitais?
Uma grande vantagem da representação digital é que, devido à sua natureza discreta, as leituras não
apresentam problemas de ambiguidade, em contraposição ao sistema analógico, em que as leituras deixam
margem à interpretação do observador.
Outra vantagem é o fato de pequenas alterações não representarem, em muitos casos, variações no
valor lido, permitindo uma maior estabilidade na informação coletada.
Você sabia que um dos mais antigos sistemas digitais existentes é o código genético dos seres vivos? O
DNA é uma cadeia limitada de combinações de alguns aminoácidos e define as características repassadas
a seus decendentes.
Então, o que é “eletrônica digital”?
É a ciência eletrônica que trabalha com estes estados definidos de tensão, onde sinais digitais (geralmente
binários) são aplicados em circuitos elétricos.
Sistemas digitais utilizam um conjunto finito de estados. No sistema decimal, utilizamos dez dígitos
(de 0 a 9) para representar números. Combinar estes dígitos permite a representação de informações mais
complexas (FIGURA 177).

4 5 6
3 7 dígitos
8
2 9
1
0 01

Sistema decimal Sistema binário


10 digitos (0 a 9) 2 digitos (0 ou 1)
Figura 177 -  Sistemas numéricos
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
142

Porém, o sistema decimal ainda apresenta um desafio para a Eletrônica. Representar informações em
dez estágios diferentes exige uma precisão grande de sistemas eletrônicos e não permite que um sistema
simples (como um contato, por exemplo) represente uma informação.
Se um sinal de 0 a 5V fosse utilizado para representar números de 0 a 9, teríamos 5V / 10 dígitos = 0,5V
por dígito. Neste caso, 0V poderia ser a representação do valor zero, 0,5V seria a representação do valor um,
1V seria a tensão representante do valor 2, e assim por diante. Porém, ainda nesta forma de representação
hipotética, com uma pequena variação de 5% sobre a tensão máxima de 5V, que equivale a 0,25V, a tensão
de 0,5V poderia subir para 0,75V, ou a tensão de 1V poderia cair para 0,75V. Neste caso, com esta variação
de 5% para cima ou para baixo, teríamos uma indefinição no valor representado, pois não seria possível
saber se 0,75V significam 1 ou 2. Infelizmente, variações até maiores que 5% ocorrem em circuitos elétricos
pelos mais diversos fatores.
Já o sistema binário é composto por dois dígitos (0 ou 1) e permite que as informações sejam assim
representadas. Neste caso, podemos assumir que 0V é 0, e 5V é 1. Porém, com uma variação de até 10%,
0,5V continua a ser nível baixo e, portanto, 0, e 4,5V continua a ser nível alto e, portanto, 1. A informação foi
mantida.
Embora um dígito binário permita representar somente duas informações distintas, a combinação de
diversos dígitos binários (bits) pode representar informações mais complexas.
Este sistema ainda permite que a representação da informação seja facilitada em componentes
eletrônicos simples. Uma chave pode estar com contato aberto ou fechado (0 ou 1). Um LED pode estar ou
não emitindo luz (1 ou 0). Um transistor pode estar em estado de condução ou em estado de corte (1 ou
0). Um relé pode estar comutado ou não (1 ou 0). Um par condutor pode ter tensão de 12V ou -12V entre
si (1 ou 0). Um pulso de luz pode ser curto ou longo (0 ou 1). Em outras palavras, representar informações
digitalmente é mais simples e eficiente.
No padrão TTL (transistor – transistor logic), muito utilizado em sistemas digitais, utilizamos dois níveis
de tensão distintos para representar da informação: nível baixo (0 V) e nível alto (5 V).
Neste sistema, se um condutor destinado ao transporte da informação estiver apresentando uma
tensão diferente de 0 V, porém muito próxima a este (por exemplo, 0,75 V), mesmo assim o sinal continua
a ser nível baixo de tensão, sem haver mudança na informação.
O mesmo ocorre em nível alto. Digamos que um sistema deva gerar um sinal de nível alto de 5 V, porém,
devido à resistividade de alguns conectores, perda e ruído dos condutores, a tensão caia para 4V. Mesmo
com esta queda de 20%, a informação permanece a mesma: nível alto.
Portanto, na eletrônica digital os sistemas têm o objetivo de manipular esta informação digital. Nos
sistemas binários, temos a representação binária de um sistema digital utilizando níveis de tensão alto e baixo.

Estamos acostumados a lidar com sistemas decimais (utilizamos dígitos de zero a


FIQUE nove para contar, calcular, registrar), e dimensionar sistemas para representações em
ALERTA dois dígitos requer estudos de técnicas, pois algumas regras aplicadas ao sistema
decimal não podem ser aplicadas ao sistema binário.
4 SISTEMAS DIGITAIS
143

Felizmente, no século XIX (década de 1830), o matemático e filósofo britânico George Boole realizou
estudos e publicações que deram origem à álgebra booleana, onde estruturas algébricas permitem
realizar operações lógicas aplicadas à valores lógicos VERDADEIRO e FALSO (1 e 0), bem como das
operações de soma, produto e complemento destes valores lógicos. Embora Goerge Boole tenha
vivido muito antes do surgimento dos computadores, podemos afirmar que seus estudos permitiram o
surgimento e os avanços na área.

VOCÊ A álgebra de Boole (álgebra booleana) é o fundamento da Matemática Computacio-


SABIA? nal, baseada em números binários.

Na eletrônica digital, estudamos como realizar as operações digitais aplicando componentes (semicondutores)
especiais, bem como ligações em série e paralelo, para obter operações lógicas, utilizando principalmente, sistemas
de representação binários.

4.1 VANTAGENS DAS TÉCNICAS DIGITAIS

Dentre os diversos fatores que nos levam a utilizar sistemas eletrônicos digitais podemos citar:
a) maior robustez, precisão e exatidão - sistemas digitais toleram variações em componentes eletrônicos sem alte-
rar a informação representada, o que não ocorre em sistemas analógicos;

b) facilidade de projeto: circuitos digitais são basicamente circuitos de chaveamento (ligar / desligar), fáceis de
serem implementados e bastante robustos, pois não importa se os valores de tensão ou corrente não estiverem
em níveis exatos, havendo uma ampla faixa de tolerância para os níveis Alto (High) ou Baixo (Low) na qual eles
se encontram;

c) fácil armazenamento de informação - é possível armazenar informações digitais usando princípios físicos (car-
tões perfurados), princípios magnéticos (HD, disquete), princípios eletrônicos (matriz de semicondutores de um
cartão de memória) e princípios ópticos (DVD, BlueRay, código de barras), dentre outros;

d) operações programáveis - operações lógicas e aritméticas são aplicáveis às informações digitais de forma mais
fácil do que em sistemas analógicos;

e) adequação à integração - embora o desenvolvimento de circuitos integrados tenha beneficiado os circuitos ana-
lógicos, os benefícios foram maiores para sistemas digitais, pois em sistemas analógicos há um limite para inte-
grações (devido ao tamanho e às características físicas de certos componentes), enquanto em sistemas digitais
alternativas permitem evoluções com dimensões nanoscópicas.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
144

4.1.1 LIMITAÇÕES DAS TÉCNICAS DIGITAIS

Sistemas digitais são mais robustos, estáveis e viáveis, porém há uma desvantagem, o mundo é quase
totalmente constituído de informações analógicas, como por exemplo temperatura, pressão, tensão,
corrente, vazão, nível. Para obter vantagens de técnicas aplicadas a sistemas digitais com grandezas deste
mundo de informações analógicas, devemos seguir três passos:
a) converter sinais analógicos capturados do mundo real para formato digital;

b) realizar o processamento da informação digitalizada;

c) converter saídas digitais de volta para o formato analógico.

A seguir, veja um exemplo, usando o princípio de funcionamento de um sistema de telefonia digital.

Sinal analógico Voz humana é um som, e como todo


(frequência e amplitude som é caracterizado por vibrações
da voz humana)
propagadas no meio (ar). Quando
7
4
1
5
2
6
3
capturada pelo microfone do telefone,
8
*

estas oscilações analógicas geram


0 9
#

variações de frequência e amplitude em


sinais elétricos, porém continuando com
comportamento de sinal analógico.

O som é representável em uma


onda analógica, que é digitalizada,
Sinal analógico transformando-se em uma
(frequência e amplitude
da voz humana)
sequência de bits (dígitos binários).
Na digitalização, a informação
Na digitalização, cada analógica é analisada em várias
12345678910111213141516

amostra em um dado
paríodo de tempo é amostras por segundo (geralmente
convertida em uma
grandeza numérica, próximo a algumas milhares de
representada usando
11,15,16,15,12,4,1,4,12,14,11,5,6,... o sistema binários (0 e 1)
amostra por segundo). Cada amostra
é quantificada, virando um valor
numérico inteiro.
4 SISTEMAS DIGITAIS
145

Estes valores são então codificados para


representação binária e transmitidos 0 e 1 são

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
transmitidos
em uma rede de dados por ondas através de ondas
de rádio, por
de rádio, usando sistemas que frequências
diferenciam a altura ou a frequência 11,15,16,15,12,4,1,4,12,14,11,5,6,... diferentes.

das ondas enviadas, chegando até o 15(1111), 12(1100), 4(0100), 1(0001), ...

equipamento de destino. Embora a


informação seja digital, caracterizada
por bits (zeros ou uns), uma onda de 1
4
7
2
5
8
3
6
9
* 0 #

rádio é o meio físico analógico por


onde ela é transferida.

No equipamento de destino, as ondas


de rádio são lidas e interpretadas
como bits zeros e uns. Circuitos
decodificadores então recalculam e
reconstroem a onda capturada na Sinal chega vai ondas de
origem, e a informação novamente rádio, e é interpretado
como sinal digital.
revertida para o sistema analógico
3
2
1 6
5
4 9
8
7 #
0
*

produz oscilações que movimentam Equipamento converte o sinal


digital em ondas analógicas (som).
o alto-falante do equipamento
receptor. Embora a informação gerada
pelo conversor digital / analógico
(A/D) não seja exatamente igual à da
origem, o transporte dos dados foi
facilitado, evitando ou dificultando
alterações nas informações durante o
processo de transmissão.

Acima podemos observar a conversão sendo aplicada de duas formas: conversão entre representações
analógicas e digitais (analógica para digital: A/D, ou digital para analógica: D/A) e conversão de sistema
numérico (decimal para binário).
Um dado digital armazenado ou transferido pode ser verificado, e até corrigido, permitindo que a informação
digital seja enviada, copiada e armazenada sem perdas, ou que estas perdas, ao menos, sejam identificadas.
Porém, ao transformarmos sinais analógicos em sinais digitais, ou sinais digitais em analógicos, ocorrem
perdas e alterações nas informações. Conversões de maior resolução podem deixar estas perdas imperceptíveis,
porém elas continuarão a existir.

VOCÊ Um CD, DVD ou BlueRay são discos ópticos onde o som, as imagens e os dados são
convertidos em bits (0 e 1), armazenados e lidos por meio de um feixe de luz (laser)
SABIA? que percorre trilhas reflexivas, percebendo pontos e traços.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
146

Para realizar a conversão entre sistemas de codificação diferentes (decimal, hexadecimal, binário...) são
utilizados conversores de código, também conhecidos como codificadores e decodificadores, que serão
estudados mais tarde.

4.2 CIRCUITOS COMBINACIONAIS E SEQUENCIAIS

Vamos dividir os circuitos digitais em duas categorias: circuitos combinacionais e circuitos sequenciais.
Circuitos combinacionais são circuitos cujas saídas são determinadas unicamente pelas condições
das entradas. Nesta categoria encontraremos circuitos multiplexadores, demultiplexadores, somadores e
subtratores, dentre outros.
Circuitos sequenciais, por sua vez, são circuitos nos quais há realimentação, com sinais da saída sendo
enviados a entradas do circuito, havendo uma sequência de eventos disparados como uma “reação em
cadeia”. Em suma, não somente as entradas definem a saída, mas também o tempo e a ordem como elas
são modificadas determinam o funcionamento do circuito.
São exemplos deste tipo de circuito digital os latches, flip-flops, contadores, processadores,
microcontroladores etc.

4.3 CIRCUITOS LÓGICOS

Circuitos digitais geralmente operam com lógica binária, representados por dígitos do sistema binário
(0 e 1). Estes são representados eletricamente por nível baixo e nível alto de tensão, com tensões de 0V para
nível baixo, e não ultrapassando 5V para nível alto.
A álgebra booleana é principal ferramenta de análise e projeto de sistemas digitais, onde utilizamos
valores lógicos, conhecidos como verdadeiro (true, em inglês) e falso (false, em inglês), ambos representando
respectivamente 1 e 0.

4.3.1 NOÇÕES DE ÁLGEBRA BOOLEANA

Veja a seguinte expressão:


1+1=1
Há algo estranho na expressão acima?
Se tomarmos o sinal de + como soma aritmética, 1 + 1 = 2. Porém, o sinal de + nesta expressão está
sendo utilizado com outro objetivo: ele representa a lógica “ou”. Neste caso, 1+1=1.
É isso que ocorre em expressões lógicas: 1 representa verdadeiro e 0 representa falso.
4 SISTEMAS DIGITAIS
147

Sinais são utilizados para representar operadores lógicos, sendo os mais comuns os operadores “e”, “ou”
e “não”. Na expressão acima, o sinal de + é aplicado ao operador ou, e o resultado é exatamente este:
verdadeiro ou verdadeiro = verdadeiro
Na sequência, estudaremos a relação entre estes operadores e os possíveis valores de seus operandos,
estudando as propriedades lógicas das principais operações lógicas. O objetivo de estudá-las é que,
conhecendo a equivalência entre as operações lógicas, poderemos criar e simplificar circuitos digitais,
conseguindo atingir o objetivo desejado com um número menor de componentes.

4.3.2 TABELA VERDADE

Tabela verdade é uma tabela que relaciona todas as combinações possíveis de valores aplicados a
variáveis de entrada de uma expressão aritmética, analisando o valor resultante da expressão. Para facilitar,
vamos imaginar que há um circuito lógico passando por um operador incógnito (desconhecido) que vamos
representar por um ponto de interrogação (FIGURA 178).

A
? x
B
Figura 178 -  Exemplo tabela verdade
Fonte: SENAI - RS

Observe o circuito, onde A e B são entradas de valores lógicos. Portanto, A e B podem valer verdadeiro
(1) ou falso (0). Não sabemos o valor de A e B, mas podemos criar uma tabela com todas as combinações
possíveis. Dado que cada um dos operandos (A e B) podem assumir dois valores lógicos (0 ou 1), temos um
total de 4 combinações (2 x 2).
Montando a Tabela 4:
Tabela 4: Circuito A e B
A?B
A B
X
0 0
0 1
1 0
1 1
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
148

Para termos a Tabela 5 verdade do operador, precisamos também conhecer o resultado criado para
cada possível combinação de suas entradas. Vamos imaginar que, após testes de todas as possibilidades
deste operador, temos a seguinte tabela verdade (TABELA 5).
Tabela 5: Circuito A e B
A?B
A B
X
0 0 0
0 1 1
1 0 1
1 1 0
Fonte: SENAI - RS

Chamamos esta tabela de tabela verdade, e cada operador ou expressão tem sua própria tabela verdade.
Agora temos valores lógicos da saída (X) que são determinados em função das entradas do operador,
dadas por A e B. Observe que, para que X (resultado da operação A ? B) seja 1, A e B devem ser diferentes
um do outro.
O operador (?), neste caso, tem o comportamento do operador ou exclusivo (XOR) que vamos estudar
mais adiante.
A seguir estudaremos operadores lógicos aplicáveis à Eletrônica Digital e suas respectivas tabelas
verdade. Os operadores assumem, na Eletrônica Digital, o nome de portas lógicas, pois assumem
fisicamente o comportamento de circuitos (ou parte de circuitos) onde uma ou mais informações
digitais são coletadas na entrada, gerando uma informação digital na saída.

4.3.3 PORTAS LÓGICAS

Na Eletrônica Digital, portas lógicas são circuitos com um ou mais terminais para entrada de dados e uma
saída, sendo esta saída definida pela combinação das entradas. São, portanto, circuitos combinacionais.
Cada porta lógica possui uma representação (símbolo) específica, uma expressão e uma tabela verdade.
Esses elementos são utilizados e combinados para implementar circuitos dedicados para aplicações específicas.
4 SISTEMAS DIGITAIS
149

Segue no Quadro 1, as principais portas lógicas, seu símbolo para diagramas, a expressão booleana, a
tabela verdade e exemplo dos modelos de componentes comercialmente encontrados.
PORTAS LÓGICAS
OPERAÇÃO SÍMBOLO EXPRESSÃO TABELA EXEMPLOS COMERCIAIS
VERDADE
OR (ou) X=A+B A B X 74HC32 (quad 2-input OR gates)
0 0 0 74HC4075 (triple 3-input OR gates)
A
X 0 1 1 CD4075 (triple 3-input OR gates)
B CD4072 (dual 4-input OR gates)
1 0 1
1 1 1
AND (e) X=A.B A B X 74HC08 (quad 2-input AND gates)
0 0 0 74HC11 (triple 3-input AND gates)
A
X 0 1 0 CD4082 (dual 4-input AND gates)
B 74HC21 (dual 4-input AND gates)
1 0 0
1 1 1
NOT (não) X=A A X 74HC04 (hex inverter)
A X 0 1 MC14049 (hex inverter)
1 0 CD4049 (hex inverter)

NOR X=A+B A B X 74HC02 (quad 2-input NOR gates)


0 0 1 CD4025 (triple 3-input NOR gates)
(não ou) A
X 0 1 0 CD4002 (dual 4-input NOR gates)
B CD4078 (single 8-input NOR gates)
1 0 0
1 1 0
NAND X=A.B A B X 74HC00 (quad 2-input NAND gates)
0 0 1 CD4023 (triple 3-input NAND gates)
(não e) A
X 0 1 1 CD4102 (dual 4-input NAND gates)
B CD4058 (single 8-input NAND gates)
1 0 1
1 1 0
XOR (ou X = AO B A B X 74HC85 (quad 2-input XOR gates)
0 0 0 CD4070 (quad 2-input XOR gates)
exclusivo) A X = AB + AB
X 0 1 1
B
1 0 1
1 1 0
XNOR (não X = AO B A B X 74LS266 (quad 2-input XNOR gates)
0 0 1 74LS811 (quad 2-input XNOR gates)
ou exclu- A X = A B + AB
X 0 1 0 CD4077 (quad 2-input XNOR gates)
B
sivo) 1 0 0
1 1 1
Quadro 1 - Principais portas lógicas
Fonte: SENAI-RS

Portas NOR, NAND, XOR e XNOR são combinações da portas básicas AND, OR e NOT?
VOCÊ Devido à sua frequente utilização os fabricantes já constroem essas combinações e
SABIA? disponibilizam em modelos comerciais, porém elas podem ser implementadas com
as ligações de portas básicas.

FIQUE Embora haja algumas similiaridades e padronizações, os circuitos integrados de um mes-


mo modelo podem variar em suas características dependendo do fabricante e versão.
ALERTA Sempre use o “datasheet” (folha de dados) do componente como principal referência.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
150

A equivalência entre as portas lógicas é demonstrada no Quadro 2, onde portas mais complexas são
derivadas de ligações de portas lógicas mais simples. Geralmente, utilizamos componentes já prontos,
mesmo com as portas lógicas mais complexas. Porém, devido à redução de custo ou ao aproveitamento de
componentes em um circuito, podemos utilizar ligações equivalentes.

PORTA EXPRESSÃO SÍMBOLO EQUIVALÊNCIA


NOR X=A+B A A
X X
B B

NAND X=A.B A A
X X
B B

XOR X = AO B A
X = AB + AB A B
X X
B

XNOR X = AO B
A
X = A B + AB A B
X X
B

Quadro 2 - Equivalência das portas lógicas


Fonte: SENAI-RS

A representação simplificada da porta not pode ser usada em todo o esquema de seu circuito. Para tanto,
utilizamos um pequeno círculo junto à entrada ou à saída do operador em lugar do símbolo completo. Este
círculo deve ser representado no local onde a porta not estaria conectada (FIGURA 179).

AB A AB
A X =AB
X =AB B
B

A A
A A
X =AB X =AB
B B

Figura 179 -  Portas Lógicas


Fonte: SENAI - RS

4.3.4 OPERADORES DA ÁLGEBRA BOOLEANA

Duas expressões lógicas equivalentes entre si podem ser bem diferentes em termos de tamanho. Se
usarmos a expressão lógica errada, corremos o risco de desenvolver um circuito fisicamente maior, mais
caro, que consome mais energia, ou que é mais lento.
Para não correr este risco, precisamos estudar alguns teoremas, que serão utilizados para a construção
e simplificação de circuitos lógicos mais eficientes.
4 SISTEMAS DIGITAIS
151

Estes teoremas são apresentados na forma de expressões, que possuem operadores representados por
símbolos. Para conhecer estes símbolos, vamos ver a seguir o uso deles em uma expressão (FIGURA 180).

D A.(B+A) C=X ou

D A.(B+A) C=X e

D A.(B+A) C=X não (barrado)

D A.(B+A) C=X ou exclusivo

D A.(B+A) C=X ou exclusico negado

D A.(B+A) C=X prioridade

Figura 180 -  Operadores da álgebra booleana


Fonte: SENAI - RS

O operador “e” (and) é costumeiramente associado ao sinal de multiplicação (ponto); já, o operador “ou”
(or) é representado pelo operador de adição (+). A precedência do operador “e” é maior que a do operador
“ou”; ou seja, se não houver parênteses, “e” (.) ocorre antes do “ou” (+).

4.3.5 TEOREMAS E LEIS DA ÁLGEBRA BOOLEANA

Abaixo, seguem as bases do funcionamento da álgebra booleana, chamados de axiomas:


Axioma 1: As variáveis podem tomar um dos valores: 0 ou 1
a) Se X = 0, então X = 1
b) Se X = 1, então X = 0
Axioma 2:
a) 0 . 0 = 0 F e F = F
b) 1 .1 = 1 V e V = V
Axioma 3:
a) 0 + 0 = 0 F ou F = F
b) 1 + 1 = 1 V ou V = V
Axioma 4:
a) 0 . 1 = 1 . 0 = 0 FeV=VeF=F
b) 0 + 1 = 1 + 0 = 1 F ou V = V ou F = V
Com base nesses axiomas foram desenvolvidos teoremas (também chamados de leis ou postulados),
os quais auxiliam na simplificação de funções lógicas ou na expressão de sua equivalência. Esses teoremas
são descritos a seguir.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
152

Teorema 1- Princípio da Dualidade


Para cada teorema ou postulado há outro, o dual, obtido pela troca dos operadores “+”, “ . ”, e valores dos
operandos “0” e “1”.
ex: (1+a) . (b+0) = b
(0.a) + (b.1) = b
Teorema 2 - Elemento absorvente
a) A . 0 = 0
b) A + 1 = 1 (dual)
Teorema 3 - Elemento Neutro ou Identidade
a) A . 1 = A
b) A + 0 = A (dual)
Teorema 4 - Lei da Idempotência
a) A . A = A
b) A + A = A (dual)
Teorema 5 - Complemento
a) A . A = 0
b) A + A = 1 (dual)
Teorema 6 - Involução
A =A (dupla negação e A equivale a A)
Teorema 7 - Comutatividade
a) A . B = B . A
b) A + B = B + A (dual)
Teorema 8 - Associatividade
a) A . B . C = A . (B . C) = (A . B) . C
b) A + B + C = A + (B + C) = (A + B) + C (dual)
Teorema 9 - Distributividade
a) A . B + A . C = A . (B + C)
b) (A + B) . (A + C) = A + B . C (dual)
Teorema 10 - Absorção
a) A + A . B = A
b) A .(A + B) = A (dual)
4 SISTEMAS DIGITAIS
153

Teorema 11 - Termo “menor”


a) A + A . B = A + B
b) A . ( A + B) = A . B (dual)
Teorema 12 - Adjacência
a) A . B + A . B = A
b) (A + B) . (A + B ) = A (dual)
Teorema 13 - Termo “incluído” ou Consenso
a) A . B + A . C + B . C = A . B + A . C
b) (A + B) . ( A + C) . (B + C) = (A + B) . ( A + C). (dual)
Observações:
a) a ordem na aplicação do operador “+” entre n elementos não importa:
A + {B + [C + (D + E)]}={[(A + B) + C] + D} + E = {A + [(B + C) + D]} + E =A + B + C + D + E
b) a ordem na aplicação do operador “ . ” entre n elementos não importa:
A . {B . [C . (D . E)]} = {[(A . B) . C] . D} . E = {A . [(B . C) . D]} . E = A . B . C . D . E
Teorema 14 - Lei de DeMorgan
a) A.B = A + B
b) A+B = A . B (dual)

4.3.6 EXPRESSÕES EQUIVALENTES E COMPLEMENTARES

A partir de uma expressão lógica, aplicando os teoremas da Álgebra Booleana, podemos obter expressões
equivalentes e complementares, além da expressão dual.
Duas expressões são ditas equivalentes se produzem o mesmo efeito a partir das mesmas
entradas (mesma tabela verdade). Por exemplo, as expressões XY e X + Y são equivalentes, como
pode ser observado na Tabela 6.
Tabela 6: Verdade para as expressões equivalentes: a) XY e b) X + Y
a) b)
X Y XY XY X Y X Y X +Y
0 0 0 1 0 0 1 1 1
0 1 0 1 0 1 1 0 1
1 0 0 1 1 0 0 1 1
1 1 1 0 1 1 0 0 0

Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
154

Duas expressões são complementares se a tabela verdade das expressões apresentar valores opostos
para as mesmas entradas. Por exemplo, as expressões XY e XY (com linha acima) são complementares,
como pode ser observado na Tabela 7.

Tabela 7: Verdade para as expressões complementares a) XY e b) XY


X Y XY XY
0 0 0 1
0 1 0 1
1 0 0 1
1 1 1 0
Fonte: SENAI-RS

4.3.7 UNIVERSALIDADE DAS PORTAS NAND E NOR

Por meio de expressões equivalentes, na álgebra booleana é possível implementar qualquer função
utilizando somente portas nand ou somente portas NOR. Isso facilita implementações de circuitos, com
reaproveitamento de circuitos semicondutores e consequente redução de custos (QUADRO 3).

FUNÇÃO CIRCUITO ORIGINAL EQUIVALENTE NAND EQUIVALENTE NOR


NOT
A Y A Y=A A Y=A

AND
A A A
Y=A.B Y=A.B Y = A+B
B B Y=A.B Y=A.B
B

OR
A A
Y=A.B A Y = A+B
Y = A+B
B B
Y = A+B B Y = A+B

Quadro 3 - Universalidade das portas NAND e NOR


Fonte: SENAI-RS

A Álgebra Booleana é largamente empregada para a simplificação de circuitos e expressões lógicas.


Entretanto, não é o único método que possibilita a obtenção de circuitos mais simples. Além da
Álgebra Booleana, podemos utilizar os Mapas de Karnaugh a fim de obter uma expressão ou circuito
equivalente e simplificado (Tabela 8, Tabela 9 e Tabela 10).
4 SISTEMAS DIGITAIS
155

Os diagramas conhecidos como Mapas de Karnaugh foram desenvolvidos originalmente por


VOCÊ Edward Veitch? Mais tarde, o engenheiro de telecomunicações Maurice Karnaugh aperfei-
SABIA? çoou-os para utilizá-los na simplificação de circuitos de telefonia. Por isso o nome completo do
método é Veitch-Karnaugh.

O Mapa de Karnaugh consiste em um método gráfico utilizado para simplificar expressões lógicas a
partir da tabela verdade. Os exemplos a seguir ilustram os mapas para 2, 3 e 4 variáveis (TABELA 8, TABELA
9 e TABELA 10).

Tabela 8: Função de duas variáveis.


TABELA VERDADE EXPRESSÃO MAPA DE KARNAUGH

A B F
0 0 1 B B
0 1 0 F=A.B+A.B A 1 0
1 0 0 A 0 1
1 1 1

Fonte: SENAI-RS

Tabela 9: Função de três variáveis


TABELA EXPRESSÃO MAPA DE KARNAUGH
VERDADE

A B C F
0 0 0 1
C C
0 0 1 1
0 1 0 1 AB 1 1
0 1 1 0 F = A . B . C+ A . B . C+ A . B . C+ A . B . C AB 1 0
1 0 0 0 AB 1 0
1 0 1 0
AB 0 0
1 1 0 1
1 1 1 0

Fonte: SENAI-RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
156

Tabela 10: Função de quatro variáveis


TABELA VERDADE EXPRESSÃO

A B C D F
0 0 0 0 0
0 0 0 1 1
0 0 1 0 0 F=A.B.C.D+A.B.C.D+A.B.C.D+A.B.C.D
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0 MAPA DE KARNAUGH
1 0 0 0 0
1 0 0 1 0 C D CD CD CD
1 0 1 0 0
AB 0 1 0 0
1 0 1 1 0
AB 0 1 0 0
1 1 0 0 0
1 1 0 1 1 AB 0 1 1 0
1 1 1 0 0 AB 0 0 0 0
1 1 1 1 1

Fonte: SENAI-RS

Pontos importantes nos Mapas de Karnaugh


A seguir apresentaremos alguns pontos importantes nos mapas de Karnaught:
a) a tabela verdade fornece o valor para uma dada função para cada combinação de entradas. O Mapa
de Karnaugh fornece a mesma informação;
b) os quadrados horizontais e verticais adjacentes devem diferir apenas em uma variável. É importante
observar que quadrados da linha superior são adjacentes aos da linha inferior, por exemplo: ABCD é
adjacente a ABCD . O mesmo é válido para os quadrados da direita e da esquerda;
c) para que os quadrados adjacentes sofram alteração de uma variável apenas, devemos seguir a ordem
AB , AB, AB, AB. O mesmo ocorre com C e D. Observe que, utilizando essa sequência, o primeiro quadrado
é adjacente ao último, tanto na horizontal quanto na vertical;
d) ao preencher o Mapa de karnaugh com zeros (0) e uns (1), a expressão para a soma dos produtos é obtida
somando-se (OR) os quadrados que contenham uns (1).
4 SISTEMAS DIGITAIS
157

Agrupamentos
A expressão para a saída de uma função pode ser simplificada pela combinação apropriada dos
quadrados do Mapa de Karnaugh que contenham 1s. Esse processo é o agrupamento. Podem ser
formados grupos de 2, 4, 8, 16 ou 32 quadrados adjacentes, de acordo com o número de combinações
das variáveis de entrada. A expressão simplificada é obtida a partir da análise do grupo, reescrevendo
as variáveis que se repetem ao longo de todos os quadrados. A seguir são apresentados exemplos de
agrupamentos com duplas (ou pares), quadras e octetos:
a) pares ou duplas;
AB AB AB AB
C 0 1 1 0
X = A.B.C + A.B.C = (B.C).(A+A)= B.C
C 0 0 0 0
Obs: Note que nesses dois termos, apenas A varia,
enquanto BC não se altera.
C C C C CD CD CD CD
AB 0 0 AB 1 0 AB 0 0 1 1
AB 1 1 AB 0 0 AB 0 0 0 0
AB 0 0 AB 0 0 AB 0 0 0 0
AB 0 0 AB 1 0 AB 1 0 0 1

X = A.B X = B.C X = A.B.C + A.B.D

b) quadras;
AB AB AB AB
C 0 0 0 0
X=C
C 1 1 1 1
Obs: Note que nesses quatro termos, A e B variam,
enquanto C não se altera.

CD CD CD CD CD CD CD CD
AB 0 0 0 0 AB 1 0 0 1
AB 0 1 1 0 AB 0 0 0 0
AB 0 1 1 0 AB 0 0 0 0
AB 0 0 0 0 AB 1 0 0 1
X = B.D X = B.D
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
158

c) octetos;
CD CD CD CD CD CD CD CD
AB 1 1 1 1 AB 1 1 0 0
AB 0 0 0 0 AB 1 1 0 0
AB 0 0 0 0 AB 1 1 0 0
AB 1 1 1 1 AB 1 1 0 0

X=B X=C

CD CD CD CD
AB 0 0 0 0
AB 1 1 1 1
AB 1 1 1 1
AB 0 0 0 0
X=B

d) agrupamentos mistos

CD CD CD CD CD CD CD CD
AB 0 0 0 1 AB 0 0 1 0
AB 0 1 1 0 AB 1 1 1 1
AB 0 1 1 0 AB 1 1 0 0
AB 0 0 1 0 AB 0 0 0 0
X = B.C + A.C.D + A.B.C.D X = A.B + B.C + A.C.D

Condição irrelevante
Alguns circuitos podem ser projetados para que, em função de certas combinações de entrada, a saída seja
irrelevante (não importando se, para este caso, a saída for 1 ou 0). Neste caso, costumamos representar o valor
irrelevante com um X (Tabela 11).
Tabela 11: Verdade considerando condições irrelevantes
A B X Y
0 0 1 0
0 1 x 1
1 0 0 0
1 1 1 x
Fonte: SENAI - RS

Analisando a tabela verdade para esse sistema, vemos que X é definido pela combinação dos estados
de A e B, porém quando A for 0, e B for 1, o valor de X será irrelevante, ou seja, para o circuito não importará.
O valor de Y, da mesma forma, assume valor irrelevante quando A e B estiverem valendo 1.

VOCÊ Os Mapas de Karnaugh podem ser utilizados para simplificar funções de até 6 variáveis.
SABIA?
4 SISTEMAS DIGITAIS
159

Nos casos em que uma função depende de 5 ou seis variáveis, temos dois métodos para a construção
dos diagramas: a sobreposição de mapas de 4 variáveis ou o espelhamento de mapas de 4 variáveis. Nos
exemplos abaixo temos mapas de 5 e 6 variáveis utilizando o método da sobreposição (FIGURA 181).

f
A-1 0 4 3 2
4 5 2 6
00 01 11 10 C 12 13 15 14 d
16 20 28 24 8 9 11 10
A=0 1 1 1 e
BC 17 21 29 25 f
16 17 19 18
DE 00 01 11 10 19 23 31 27 20 21 23 22
C 28 29 31 36 d
0 9 12 8 1 1
1 1 1 18 22 36 26 24 25 27 26
1 1
1 5 13 9
e
1 1
f b
3 7 15 11
48 49 51 50
7 6 14 10
52 53 55 54
1 1 C 60 61 63 62 d
a 56 57 59 58
e
f
32 33 35 34
36 37 39 38
44 45 47 46 d
C 40
41 43 42
e
Figura 181 -  Mapas de Karnaugh para 5 e para 6 variáveis
Fonte: SENAI - RS

SAIBA Pesquisando sobre programas de edição e simplificação de expressões booleanas na internet.


MAIS

4.4 CIRCUITOS MULTIPLEXADORES E DEMULTIPLEXADORES

Muitas vezes precisamos realizar o controle de diversos dispositivos em um determinado sistema.


Ou então, esse controle depende de diversas variáveis e o sistema utiliza componentes com um
número de entradas ou saídas menor do que o necessário.
Como exemplo, imagine termos de controlar um conjunto de 60 atuadores usando um
microcontrolador que tenha somente 15 saídas digitais, ou, ainda, ler sinal de 20 sensores analógicos
usando um mesmo circuito de análise para todos os 20 sensores.
Para resolver esse problema, uma abordagem empregada é a utilização de circuitos multiplexadores ou
demultiplexadores para aumentar o número de entradas ou saídas do sistema.

4.4.1 CIRCUITOS MULTIPLEXADORES

Um circuito multiplexador (MUX) ou seletor de dados é um circuito lógico que recebe vários dados
de entrada e seleciona um deles para transferi-lo para a saída. A seleção do dado de entrada que será
transportado para a saída é controlada pelas entradas de seleção, conforme mostrado na Figura 182.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
160

ENTRADAS DE DADOS
I0

I1
I2
I3 • A saída Z recebe um dado
IN de entrada de acordo com o
código na entrada de seleção.
S0 S1 S2

ENTRADAS DE SELEÇÃO
Figura 182 -  Diagrama de um multiplexador
Fonte: SENAI - RS

Pelo diagrama, observamos que um multiplexador atua como uma chave digitalmente controlada
de múltiplas posições, em que um código digital é aplicado nas entradas de seleção, definindo qual
das “n” entradas de dados terá seu conteúdo transmitido para um único canal de saída. Multiplexadores
são construídos a partir de circuitos combinacionais, utilizando essencialmente portas lógicas. Devido
ao seu uso recorrente, existem modelos comerciais de multiplexadores. Vejamos como estes circuitos
podem também ser implementados a partir de portas lógicas básicas.
Para o projeto de um circuito multiplexador devemos levar em consideração o número de códigos
diferentes que as entradas de seleção podem fornecer. Cada um desses códigos será o “endereço” de uma
das entradas de dados, o qual definirá qual dado será enviado para a saída. Assim, para um multiplexador
com “n” entradas de seleção, teremos 2n entradas de dados.
Para entender melhor como funciona o projeto de um circuito multiplexador, vamos analisar o
processo de construção de dois multiplexadores: um circuito básico de 2 entradas (ou canais) de dados
e um circuito para 4 entradas.

Multiplexador básico de 2 entradas (2:1)

Considere o circuito da figura a seguir, o qual apresenta um multiplexador com duas entradas de dados
(I0 e I1) e uma entrada de seleção (S). Utilizando uma entrada de seleção, é possível obter dois códigos
diferentes, ou seja, dois endereços diferentes e, assim, utilizar duas entradas de dados.
4 SISTEMAS DIGITAIS
161

O nível lógico da entrada S determina qual entrada de dado será transferida para a saída. Obtendo a
expressão para o circuito, temos (FIGURA 183).

• Z = I0 S + I1 S
Io
1 Assim, quando S = 0, a porta 2 é
I1 habilitada, permitindo que o sinal de
2 I1 seja enviado para a saída, e a porta 1
S
é desabilitada, fazendo com que I0 não
Figura 183 -  Multiplexador de 2 canais
Fonte: SENAI - RS
interfira na saída.

Multiplexador de 4 entradas (4:1)

Utilizando a ideia básica apresentada anteriormente, é possível implementar um multiplexador de


quatro entradas de dados (I0, I1, I2e I3) e duas entradas de seleção (S0 e S1). A tabela verdade para essa
operação e o circuito implementado são apresentados na Figura 184.
a) b) 3 2 1 0

S0 S1 SAÍDA
0 0 Z = I0
0 1 Z = I1
1 0 Z = I2
1 1 Z = I3

Figura 184 -  Multiplexador de quatro entradas a) Tabela verdade b) Circuito implementado


Fonte: SENAI - RS

Comercialmente podem ser encontrados multiplexadores de dois, quatro, oito e desesseis entradas.
A combinação de Cis (circuito integrado) básicos possibilita a formação de um multiplexador com maior
números de entradas.

SAIBA Pesquisando como associar multiplexadores em série ou paralelo para formar um mul-
MAIS tiplexador com um número maior de entradas.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
162

MUX de 8 entradas (8:1)

O circuito apresentado na figura a seguir é o multiplexador de oito entradas 74xx151, que tem como
particularidades uma entrada de habilitação e o fornecimento de duas saídas, normal e invertida (FIGURA
185 e FIGURA 186).
a) b)
ENTRADAS SAÍDAS
I0 I1 I2 I3 I4 I5 I6 I7
E S2 S1 S0 Z Z
H X X X H L S2 0

L L L L I0 I0 S10
74 x x 151
L L L H I1 I1 S0 0
MUX de 8 Entradas
E
L L H K I2 I2
L L H H I3 I3
L H L L I4 I4
L H L H I5 I5
H H L I6 I6
L H H H I7 I7

c)
0 1 2 3 4 5 6 7
9 4 3 2 1 15 14 13 12
S2
10
S1
11
S0
7
E

6 5

Figura 185 -  Multiplexador de 8 entradas - a) Tabela verdade b) Símbolo lógico c) Diagrama lógico
Fonte: SENAI - RS

Muitos circuitos digitais possuem entradas que permitem que o circuito funcione ou
VOCÊ não. Essas entradas de controle são chamadas de entradas de habilitação e podem
SABIA? ser o terminal de uma porta lógica ou de uma combinação de portas lógicas.
4 SISTEMAS DIGITAIS
163

PORTAS HABILITADAS PORTAS DESABILITADAS

=A =A
X =A = X =0
1= B 0=B

=A =A
X =A = X =1
1 =B 0=B

=A =A
X =A = X =1
0 =B 1= B

=A =A
X=A = X =0
0 =B 1= B
Figura 186 -  Portas lógicas utilizadas como circuitos de habilitação
Fonte: SENAI - RS

Nos circuitos da Figura 186, a entrada de controle possibilita (habilita / enable) ou impede (desabilita /
disable) que o sinal de entrada alcance a saída. Nota-se que, ao habilitar portas não-inversoras (and e or), a
saída segue exatamente o sinal A, ao passo que, ao habilitar portas inversoras (nand e nor), a saída segue o
inverso de A. Observa-se ainda que, quando desabilitadas, as portas and e nor geram uma saída constante
em nível baixo, enquanto as portas or e nand geram uma saída constante em nível alto.

MUX Quádruplo de 2 Entradas (2:1)

O circuito integrado 74xx157 é um multiplexador muito útil que possui quatro multiplexadores independentes
de 2 entradas, conforme mostrado na Figura 187. Esse circuito também apresenta uma entrada para habilitação
como o modelo anterior.
a) b) I1a I1b I1c I1d I0a I0b I0c I0d

E S Za Zb Zc Zd S
74 x x 157
H X L L L L E
L L I0a I0b I0c I0d
L H I1a I1b I1c I1d
Za Zb Zc Zd

c)
I1a I0a I1b I0b I1c I0c I1d I0d E S

a b c d

Figura 187 -  Multiplexador quádruplo de 2 entradas 74xx157 a)Tabela verdade b) Símbolo lógico c) Diagrama lógico
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
164

Encontram-se comercialmente disponíveis multiplexadores com várias entradas; no entanto, podemos


implementar circuitos com um grande número de entradas pela associação de multiplexadores menores.

SAIBA Pesquisando como associar multiplexadores em série ou paralelo para formar um multi-
MAIS plexador com um número maior de entradas.

4.4.2 CIRCUITOS DEMULTIPLEXADORES

Um circuito demultiplexador (DEMUX) ou distribuidor de dados é o circuito lógico que realiza a


operação inversa àquela realizada pelos multiplexadores; ou seja, recebe uma única entrada e a distribui
para diversas saídas. A saída pela qual o dado de entrada será transmitido é determinada por um código de
seleção, conforme é possível observar na Figura 188.

ENTRADA
DE DADOS
Z0

Z1
I
Z2
Z3 • A entrada de dados é transmitida
ZN
apenas para uma das saídas, de
acordo com a entrada de código
de seleção.
S0 S1 S2

ENTRADAS DE SELEÇÃO
Figura 188 -  Diagrama de um demultiplexador
Fonte: SENAI - RS

Para o projeto de um demultiplexador, devemos lembrar que o número de saídas será determinado
pelo número de entradas de seleção. Assim, para um demultiplexador com n entradas de seleção, ocorrem
2n saídas. Depois, é necessário relacionar um código de seleção com cada saída.
Para enterder melhor como funciona o projeto de um circuito demultiplexador, vamos analisar o
processo de construção de dois demultiplexadores: um circuito básico de 2 entradas (ou canais) de dados
e um circuito para 4 entradas.

Demultiplexador de 2 saídas (1:2)

Considere o circuito da Figura 189, onde temos um demultiplexador com uma entrada de dados (I), uma
entrada de seleção (S) e duas saídas (O0 e O1). O nível lógico na entrada S determina para qual saída será
transmitido o dado de entrada.
4 SISTEMAS DIGITAIS
165

O0

O1

Figura 189 -  Demultiplexador de 2 canais


Fonte: SENAI - RS

A Tabela 12 é a tabela verdade obtida a partir do circuito.


Tabela 12: Tabela verdade para o circuito
S O0 O1
0 1 0
1 0 1
Fonte: SENAI - RS

A expressão para cada uma das saídas é dada pela seguinte fórmula:O0 = I . S e O1 = I. S

Demultiplexador de 4 saídas (1:4)

Para o projeto de um DEMUX 1:4 deve ser elaborada a tabela verdade, onde cada código de seleção é
relacionado com uma das saídas. A partir da tabela verdade é implementado o circuito. Como exemplo,
apresentamos na Figura 190 o projeto de um demultiplexador 1:4.

a) b)
S0 S1 O0 O1 O2 O3 O0 = I . S0 . S1
0 0 I 0 0 0 O1 = I . S0 . S1
0 1 0 I 0 0
1 0 0 0 I 0 O2 = I . S0 . S1
1 1 0 0 0 I O3 = I . S0 . S1

c)
O0

O1
I
O2

O3

S0 S1
Figura 190 -  Projeto de um demultiplexador 1:4 a) Tabela verdade b) Expressões para as saídas c) Circuito implementado
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
166

Os circuitos multiplexadores e os demultiplexadores comerciais podem ser encontrados com 2, 4, 8 e 16


terminais de saída. Esses circuitos podem ser combinados com a finalidade de formar demultiplexadores
com um número maior de saídas.

Demultiplexador de 8 saídas

A Figura 191 apresenta o diagrama lógico de um demultiplexador de 8 canais. Nela, percebemos que
a entrada I é conectada a todas as saídas pelas portas and, mas somente uma dessas portas é acionada
pelo do código de seleção. O circuito mostrado é semelhante a alguns decodificadores de 3 linhas para
8 linhas que serão estudados mais tarde. A diferença entre eles está na entrada de dados I, que deve ser
acrescentada aos demultiplexadores. Desta forma, circuitos decodificadores que apresentam uma entrada
de habilitação podem ser utilizados como demultiplexadores.

a) b)
O0 = I (S2 . S1 . S0 )
S2 S1 S0 O7 O6 O5 O4 O3 O2 O1 O0
O1 = I (S2 . S1 . S0 )
0 0 0 0 0 0 0 0 0 0 I
0 0 1 0 0 0 0 0 0 I 0
O2 = I (S2 . S1 . S0 )
0 1 0 0 0 0 0 0 I 0 0 O3 = I (S2 . S1 . S0 )
0 1 1 0 0 0 0 I 0 0 0 O4 = I (S2 . S1 . S0 )
1 0 0 0 0 0 I 0 0 0 0
O5 = I (S2 . S1 . S0 )
1 0 1 0 0 I 0 0 0 0 0
O6 = I (S2 . S1 . S0 )
1 1 0 0 I 0 0 0 0 0 0
1 1 1 I 0 0 0 0 0 0 0 O7 = I (S2 . S1 . S0 )

c) A2 A1 A0 I (b)

00 01 02 03 04 05 06 07

Figura 191 -  Demultiplexador 1:8 a) Tabela verdade b) Expressões para as saídas c) Diagrama lógico
Fonte: SENAI - RS

(C) (FIGURA RETIRADA DO DARASHEET DE COMPONENTES - REFAZER)


4 SISTEMAS DIGITAIS
167

Na Figura 192 temos o diagrama do circuito integrado 74xx138, um decodificador configurado para ser
usado como um demultiplexador, com o dado de entrada aplicado em uma das entradas de habilitação.
I Vcc
123

E
A2
CÓDIGOS DECODIF/DEMUX
DE A1
74 XX 138
SELEÇÃO
A0

O0 O1 O2 O3 O4 O5 O6 O7

Figura 192 -  Circuito 74xx138, Decodificador/Demultiplexador configurado como demultiplexador com a entrada de
habilitação funcionando como entrada de dados
Fonte: SENAI - RS

Demultiplexador de 16 saídas

O circuito integrado 74xx154 é um decodificador hexadecimal que, assim como o 74xx138, pode ser utilizado
como demultiplexador. Para tanto, basta conectar as duas entradas de strobe como a entrada de dados - figura
(a) – ou, ainda, reservar uma das entradas de strobe como entrada de dados e a outra com sua função normal,
conforme mostrado na figura (b). A entrada de strobe funciona como uma entrada de bloqueio. Quando ambas
as entradas estiverem em 0, o circuito funcionará como decodificador/demultiplexador (FIGURA 193).
a) b)
D S0
D S0 D S0D S0
7 7 7 7
C S1
C S1 C S1C S1
4 4 4 4
B x B B x B x
x
A A A A
x (...)
x (...) x (...)
x (...)
1 1 1 1
I G1 I 5 S14
G1 5 S14 I G1 I 5 S14
G1 5 S14
G2 4 G2
S15 4 Strobe G2 4
Strobe G2
S15 4
S15 S15

(a) (b) (b)


(a) INPUTS

c) C B A
G2

D
G1
( 20 )

( 22 )
( 19 )

( 21 )

( 18 )

( 17 )

D D C C B B A A G
A

A
B

B
C

C
D A
A

D
B

B
C

C
D

D
G
( 16 )

( 15 )

( 14 )

( 13 )

( 12 )

( 11 )

( 10 )

(9)

(7)

(3)

(2)

(1)
(8)

(6)

(5)

(4)

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OUTPUTS

Figura 193 -  Circuito 74xx154 configurado como demultiplexador 1:16 a) e b) Configurações para funcionamento como demultiplexador 1:16 c) Diagrama lógico
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
168

Duplo demultiplexador de 4 saídas

A Figura 194 apresenta o circuito integrado 74xx155, que possui dois demultiplexadores, cada um com
4 canais de saída, e entradas tipo strobe diferentes, para permitir a ativação individual dos dois circuitos.
a) b)
ENTRADAS SAÍDAS 7 100
SELEÇÃO STROBE DADO - 1C 4 101

B A 1G 2G 1 2 nO0 nO1 nO2 nO3 1G X 102


Strobe X 103
C C 2G
200
X X 1 X X 1 1 1 1 1
201
Dado 2C 5
0 0 0 1 0 0 1 1 1 202
5
A0 A1 203
0 1Ea Ea 0 1 0 1 0 1 Eb Eb 1
7 100
1 0 0 1 0 1 1 0 1 - 1C 4 101

1 1 0 1 0 1 1 1 0 1G X 102
Strobe 103
A2G B X
X X X 0 1 1 1 1 1 Seleção 1
200
201
Dado 2C 5
202
c) A0 A1 (b) 5 203
Ea Ea Eb Eb

O0a O1a O2a O3a O0b O1b O2b O3b A B


Seleção

(b)

O0a O1a O2a O3a O0b O1b O2b O3b


Figura 194 -  Decodificador/Demultiplexador 74xx155: a) Tabela verdade; b) Diagrama de conexões; c) Diagrama lógico
Fonte: SENAI - RS

Assim como no caso dos multiplexadores, podem ser encontrados comercialmente demultiplexadores com
várias saídas; no entando, podemos implementar circuitos com um número maior de saídas por meio da associação
de demultiplexadores menores.

CASOS E RELATOS

Casos e relatos: Sr. Rivaldo atua no segmento de exportação e importação de frutas. Sua empresa de
porte médio conta com uma frota considerável de caminhões frigoríficos que permitem transportar frutas
e vegetais para vários locais da América do Sul. Em transportes longos, faz-se necessário um controle
mais rigoroso de temperatura, que pode variar de 2ºC a 10ºC conforme a mercadoria transportada, e
com variação máxima de 1ºC durante o transporte. Após consultar um especialista, Rivaldo considera a
compra de um sistema automatizado para controle de temperatura, e após alguns orçamentos, se depara
com duas propostas com custos bem diferentes.
4 SISTEMAS DIGITAIS
169

Na primeira opção, e bem mais cara, o sistema permite realizar um controle de temperatura entre -55ºC
e 85ºC, com uma resolução de 10 bits. No segundo sistema, o controle é realizado em temperaturas entre
-15ºC e 55ºC, com resolução de 8 bits. Após consulta a um especialista para saber qual sistema atende suas
espectativas, ainda por telefone, o consultor apresentou os seguintes dados: O sistema mais caro trabalha
em 10 bits, e pode ler até 210 = 1024 possibilidades. Isso, aplicado a uma faixa de temperatura de -55ºC a
85ºC, permite detectar variações de aproximadamente 0,14ºC, atendendo a expectativa. O segundo sistema,
de menor custo, permite realizar um controle de -15ºC a 55ºC, detectando variações de aproximadamente
0,28 ºC, e também atende as expectativas. Apesar de ter resolução de 8 bits, este último sistema permite um
ajuste mais preciso para a faixa de temperatura esperada para o interior das câmaras frias dos caminhões,
proporcionando melhor controle para esta aplicação, além de ter um menor custo.

4.5 CONVERSORES D/A E A/D

Como dito anteriormente, o mundo é basicamente analógico. Grandezas lidas por sensores variam
constantemente em uma faixa. Temperatura, pressão, vazão, peso, velocidade, luminosidade… inúmeras
grandezas todas de origem analógica. Para processar esta informação analógica em sistemas mais robustos,
precisamos converter estes sinais analógicos em informações digitais.
Da mesma forma, sinais digitais processados precisam, em muitos casos, ser convertidos para informações
analógicas para gerar os efeitos esperados, como controlar a aceleração contínua de um motor de elevador
para que os ocupantes não sintam os trancos, variar a luminosidade de forma controlada em dispositivos de
interface, como displays e iluminações de painéis, ou, ainda, variar a amplitude e a frequência de um sinal
elétrico que é enviado a alto-falantes para produzir o som esperado no volume e na frequência corretos.
Temos, então, a necessidade de converter sinais analógicos em digitais, e sinais digitais em
analógicos (FIGURA 195).
Sinal Analógico Sinal Digital
0101101011
6
4

100 8
50
2

150 10
psi
bar
11

Conversores Conversores
A/D D/A

Sinal Digital Sinal Analógico


V
0101101011 t
Figura 195 -  Conversores DA e AD
Fonte: SENAI - RS

Com o advento dos Circuitos Integrados (CI), muitos componentes foram desenvolvidos com o objetivo
de realizar a conversão entre os tipos de sinais.Porém, quando realizamos a conversão, os fatores a seguir
devem ser considerados.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
170

Tipo de sinal analógico

Um sinal analógico é um sinal que varia dentro de uma faixa específica e pode ser representado, dentre
outras formas, por variações de corrente ou de tensão (padrões mais utilizados na automação industrial).

Resolução

A conversão de um sinal analógico em um sinal digital requer o sacrifício de transformar o sinal


analógico, representado por uma rampa, em um conjunto de valores finito e aproximado ao valor
de origem, representado por uma escada (FIGURA 196).
111
1 11 110
101
10 100
011
01 010
001
0 00 000

analógico 1 bit 2 bits 3 bits

Figura 196 -  Conversão de um sinal analógico para digital


Fonte: SENAI - RS

Observe que a conversão de um sinal analógico (representado pela variação contínua de uma rampa)
para um conversor A/D de 1 bit gera um sinal digital que pode estar ligado ou desligado. Porém, com a
conversão de dois bits, obtemos 22 = 4 estágios diferentes. Com conversão de 3 bits, são 23 = 8 estágios
diferentes. Um conversor A/D de 8 bits pode, então, fornecer 28 = 256 estágios.
Em termos práticos, a resolução de um conversor A/D é dada em bits. Em certos sistemas microcontrolados
ou microprocessados que estudaremos em breve, o processo inverso também ocorre, convertendo uma
combinação binária de alguns bits em um sinal analógico. Quanto mais bits, maiores são as possibilidades
que podem ser obtidas.
Em termos práticos, se usarmos um sensor de temperatura analógico conectado a um conversor A/D de
8 bits, poderemos dividir a temperatura detectada por este sensor em até 256 (28) possíveis valores. Se este
conversor A/D fosse de 10 bits, seriam 1024 (210) possibilidades.
Alguns sistemas que exigem conversões extremamente precisas utilizam conversores A/D de 16 bits.
Faça um cálculo e descubra a quantidade de valores possíveis gerados por este tipo de conversor.
Da mesma forma, se pretendermos controlar a velocidade de um motor usando um conversor D/A de 4
bits, poderemos obter até 24 = 16 velocidades diferentes.
Sabemos que não é uma representação fiel de um sistema analógico; no entanto, quanto maior é a
resolução, mais aproximada é a representação.
4 SISTEMAS DIGITAIS
171

Velocidade de conversão

Muitos conversores utilizam circuitos de carga e descarga de capacitores para fazer a conversão de sinais
analógicos em sinais digitais. Sabemos que um capacitor é um componente que pode armazenar energia
elétrica.
Imagine um pequeno circuito composto por um capacitor e um resistor ligados em paralelo, e submetido
a uma tensão. Quando o circuito é desconectado, o capacitor se descarregará pelo resistor, até que a tensão
elétrica entre seus terminais seja anulada. Quanto maior a tensão à qual este capacitor é submetido, maior a
quantidade de elétrons que ele pode armazenar e, consequentemente, maior o tempo de descarga. Como
os circuitos de conversão precisam mensurar o tempo de descarga, muitos deles utilizam circuitos para
gerar bases de tempo estáveis. Estes circuitos, por mais rápidos que sejam, tomam algum tempo, tornam
a conversão um processo um pouco mais lento do que muitos outros processos digitais combinacionais.
Felizmente, têm surgido circuitos integrados e dispositivos de processamento de sinais extremamente
velozes, permitindo realizar conversões de sinais analógicos em sinais digitais em tempos extremamente
curtos, na ordem dos microsegundos.

4.5.1 CONVERSOR A/D

Conversores AD são circuitos eletrônicos que podem ser apresentados em várias configurações: como
subcircuito de um circuito integrado com mais funções (caso que segue), como circuito integrado simples
ou, ainda, como parte de um dispositivo que realiza a leitura de sinais analógicos.
O exemplo que você verá na Figura 197 é um conhecido e bastante utilizado conversor A/D de
8 bits, que pode converter até 8 entradas analógicas (In 0 a In 7) em sinais de 8 bits (DB 0 a DB 7). Para
definir que entrada analógica deve ser convertida, os pinos A, B e C (AD0 a AD2) são utilizados para
informar a combinação binária da entrada a ser convertida. Por exemplo, se um sistema desejar ler
dois sensores analógicos, sendo um conectado à entrada In 3, e outro à entrada In 6, deverá ser feito
o procedimento a seguir:
a) para ler In 3, sendo que 3 em binário é 011, devem ser postos em nível alto (5V) somente os
pinos A e B, representando os dois bits menos significativos. Desta forma, após alguns poucos
microssegundos, a saída digital constituída pelos pinos DB0 a DB7 representará a combinação binária
desejada, referente à entrada In 3;
b) para ler In6, basta repetir o processo, porém com os pinos B e C em nível alto, e A em nível
baixo (0V). Desta forma, a combinação binária gerada é 110, que é equivalente a 6 em decimal,
indicando que esta será a porta que realizará a conversão.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
172

500 kHz CLK DE


5.000V VREF (+) EDC
0.000V VREF ( - )

START
2 -1 DB7 MSB
ALE
2
-2
DB6
2 -3 DB5
AD0 A ADC0808
2 -4 DB4
AD1 B ADC0809
AD2 C 2 -5 DB3
5V SUPPLY 2 -6 DB2
Vcc 2 -7 DB1
GND 2 -8 DB0 LSB
In7 VIN 8
GROUND
0 -5V
ANALOG
INPUT RANGE
VIN1
In0

Figura 197 -  Conversor AD muito utilizado, o ADC0808


Fonte: SENAI - RS

Este exemplo, além de ilustrar o funcionamento (de forma superficial) de um conversor A/D,
também demonstra o uso de um circuito multiplexador, onde um pequeno número de entradas
digitais é combinado para produzir um número maior de possibilidades, sendo que cada possibilidade
é uma possível ligação entre várias entradas e uma saída.
Na automação industrial e mecatrônica, grande parte dos circuitos de conversão de sinais
analógicos em digital já estão presentes nos sistemas de controle mais complexos. Em Controladores
Circuitos Programáveis, também conhecidos por CPs (ou PCs), são disponibilizadas entradas
analógicas de tensão e corrente (geralmente 0 a 10V, ou 4 a 20mA), podendo variar em quantidade
e resolução entre os fabricantes.

VOCÊ Os microcontroladores são circuitos integrados programáveis, e também podem pos-


SABIA? suir uma ou mais entradas analógicas atuando em níveis de tensão de até 5V.

4.5.2 CONVERSOR D/A

Da mesma forma que circuitos A/D, os circuitos D/A podem se apresentar como circuitos integrados
híbridos, agregando várias funções ou, ainda, partes de um dispositivo ou equipamento.
Um circuito D/A deve converter um conjunto de sinais digitais em um valor analógico.
Isso pode ser obtido, de forma mais genérica, utilizando-se um circuito com amplificador operacional,
conforme a imagem a seguir.
4 SISTEMAS DIGITAIS
173

A Figura 198 mostra a ligação de um amplificador operacional em uma rede resistiva (conhecida
como malha R-2R), onde, com nível de tensão alto (considerando 4.8V para isso) nos pinos Va, Vb, Vc
e Vd, podemos obter tensões de saída variando entre um mínimo e um máximo (no caso de 0 a 6V),
dependendo da combinação dos pinos de entrada.

2R R R R P 2R O 3R A B C D Vpo VS (V)
(Va) (Vb) (Vc) (Vd) (V)
2R 2R 2R 2R - 0 0 0 0 0,00 0,00
+ 0 0 0 1 0,20 0,40
Vs
Vd Vc Vb Va 0 0 1 0 0,40 0,80
0 0 1 1 0,60 1,20
Exemplo: 0 1 0 0 0,80 1,60
Se R = 10k, R2 = 20k 0 1 0 1 1,00 2,00
0 1 1 0 1,20 2,40
R2 (pode ser obrido por dois resistores R em série)
0 1 1 1 1,40 2,80
1 0 0 0 1,60 3,20
Se R = 10k, R3 = 30k 1 0 0 1 1,80 3,60
R3 (pode ser obtido por três resistores R em série) 1 0 1 0 2,00 4,00
1 0 1 1 2,20 4,40
1 1 0 0 2,40 4,80
Vd, Vc, Vb e Va são entradas digitais, Vs é uma 1 1 0 1 2,60 5,20
saída de comportamento próximo as analógico, 1 1 1 0 2,80 5,60
1 1 1 1 3,00 6,00
com resolução de 4 bits (16 possobilidades)
Figura 198 -  Conversor D/A de 4 bits
Fonte: SENAI - RS

Este tipo de circuito pode ser útil caso desejemos obter um sinal de saída analógico em um
sistema que só possua sinais de saída digitais, como, por exemplo, um controle de um inversor de
frequência por sinal analógico.
Observe que o circuito acima é ilustrativo e pode ter funcionamento variado conforme modelo
e as características de alimentação do amplificador operacional.
Outra forma de obter uma saída analógica é o uso de PWM aliado a filtros com resistores e
capacitores, criando um conversor DA de 1 bit. Em poucas palavras, por meio de saídas pulsadas
com pulsos mais longos ou mais curtos, em alta frequência, a tensão média armazenada por
um circuito de resistor/capacitor varia. Desta forma, muitos sistemas microcontrolados geram
sinais analógicos.
Em muitos modelos de CPs já é disponibilizada uma ou mais saídas analógicas, que podem
ser utilizadas para integrar a outros dispositivos, sendo muito empregada em integrações com
sistemas de controle de velocidade de motores de corrente alternada AC, conhecidos como
inversores de frequência.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
174

4.6 CIRCUITOS CODIFICADORES E DECODIFICADORES

Chamamos de codificador o circuito combinacional que possibilita a transformação de um código


em outro código. Chamamos de decodificador o circuito que realiza a operação inversa. Como exemplo,
considere o diagrama de uma calculadora conforme mostrado na Figura 199.
1234567890

CE % +/- -
1 2 3 +
codificador processador decodificador 1234567890
4 5 6 x
7 8 9 /
aritmético
00 0 . =
CE % +/- -
1 2 3 +
4 5 6 x
decimal binário decimal
7 8 9 /
00 0 . =

Figura 199 -  Diagrama esquemático de uma calculadora


Fonte: SENAI - RS

O circuito inicial da calculadora (codificador) transforma uma entrada decimal, feita por meio de um
teclado, em um código binário para que o circuito interno (processador aritmético) processe e realize a
operação desejada. O resultado da operação em binário é transformado por um circuito (decodificador)
em uma saída decimal, em uma forma compatível para que o mostrador apresente os algarismos.
É importante, entretanto, ressaltar que os termos codificador e decodificador se diferenciam em
função do referencial (qual o código de entrada e qual o código de saída), sendo comum o uso do termo
decodificador para ambas as operações. Muitas vezes utilizamos o termo conversores de código para evitar
problemas com a definição dos códigos.

4.6.1 CÓDIGOS NUMÉRICOS E ALFANUMÉRICOS

Quando representamos informações usando símbolos, chamamos o grupo de símbolos de código


e dizemos que a informação está sendo codificada. As letras que compõem este texto são exemplos de
códigos. Cada letra é um símbolo que, junto a outros, tem um significado.
Nos sistemas digitais existe a necessidade de representar números, quantidades, textos, imagens,
vídeos e sons, dentre outras informações, por meio de símbolos que possam ser armazenados,
processados e transmitidos usando sinais digitais.
Já vimos que os sistemas digitais são adequados para o uso de números binários nas operações internas,
porém somos educados desde a infância a contar usando o sistema decimal.

SAIBA Discuta com seus colegas sobre a frase a seguir: “Existem 10 tipos de pessoas: as que
MAIS conhecem números binários e as que não conhecem números binários.

Imagine que todo este texto que você está lendo foi gerado e armazenado em um computador.
Cada letra do texto é representada, em uma tabela padronizada, por um código binário, que é
armazenado em um dispositivo digital.

A tabela ASCII (acrônimo para American Standard Code for Information Interchange) é um
VOCÊ padrão de codificação de caracteres de oito bits baseada no alfabeto inglês, onde os códi-
SABIA? gos representam caracteres? Exemplo: Na tabela ASCII, a letra H maiúscula e representada
pelo código 72, que em binário é 01001000.
4 SISTEMAS DIGITAIS
175

Dispositivos digitais de codificação/decodificação são usados para transformar uma combinação


específica (geralmente binária) em outra, com o intuito de permitir a troca de informação e integração de
sistemas diferentes.
O código numérico mais simples consiste na representação de um número inteiro por uma
palavra de código que é a sua representação em binário. Se cada palavra tem um comprimento
constante, o código denomina-se Código Binário Natural (CBN) (TABELA 13).
Tabela 13: Código binário natural de 4 bits
NÚMERO DECIMAL CBN DE 4 BITS NÚMERO DECIMAL CBN DE 4 BITS
0 0000 8 1000
1 0001 9 1001
2 0010 10 1010
3 0011 11 1011
4 0100 12 1100
5 0101 13 1101
6 0110 14 1110
7 0111 15 1111
Fonte: SENAI - RS

Para enfatizar o uso de 4 bits, representamos os números binários com ZEROS à esquerda, embora
estes não alterem o valor representado em sistemas onde o dígito menos significativo está à direita.
Portanto, o número decimal 2 é representado em binário por 0010, ou, ainda, 10 se sumprimidos os
zeros à esquerda.

4.6.2 CÓDIGO BCD (BINARY CODED DECIMAL)

Durante a evolução do ser humano foram utilizadas várias formas de representação numérica. Números
romanos ainda são usados para representar séculos. Os sumérios usavam bases distintas na mesma
representação numérica, empregando símbolos para múltiplos de 5, 12 e 60.
Prevalecendo o sistema decimal, que utiliza 10 dígitos (de 0 a 9), provavelmente pela adequação
à soma de dedos das mãos. O uso da representação de números maiores acabou utilizando-se da
extensão do sistema numérico decimal.
Porém, os sitemas digitais requerem uma “reinvenção” na forma de contar. Computadores não possuem
10 dedos, como os seres humanos, mas possuem características elétricas onde o sistema binário é o melhor
representado.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
176

Durante a conversão de números decimais para binário, e vice-versa, encontramos algumas formas
para fazê-lo de forma mais fácil. Se cada algarismo de um número decimal é representado por seu
binário equivalente, o resultado é o código BCD (Binary-coded decimal). Uma vez que o sistema decimal
é composto de 10 dígitos, quatro bits são necessários para a codificação (24 bits = 16 possibilidades).
Existem diversos códigos BCD, o mais comum é BCD 8421. Os números indicam os valores dos algarismos
de acordo com sua posição (23, 22, 21, 20). Entre os vários outros códigos temos BCD 7421, BCD 5211 e o BCD
2421. A conversão destes códigos para o sistema decimal é análoga à conversão do BCD 8421 (FIGURA 200).
Ex.: (874)10
8 7 4 (874)10 = (100001110100)BCD
(874)10 = (1101100010)2
1000 0111 0100
Conversão do número 874 e um sistema BCD 8421
Figura 200 -  Código BCD (Binary Coded Decimal)
Fonte: SENAI - RS

O circuito integrado 74xx45 é um decodificador/driver BCD para decimal. Chamamos um


componente de driver quando ele tem a função de realizar a interface entre o sistema lógico e
o dispositivo sensor/atuador, geralmente provendo sinal de potência requerida pelo dispositivo
controlado. No caso do 74xx45, além da função de decodificador, as saídas suportam correntes
suficientes para acionamento de LEDs, minirrelés e até alguns micromotores DC.
Consulte o datasheet do componente para maiores detalhes.
O display de 7 segmentos, como mostrado, possibilita a escrita de números decimais de 0 a 9, algumas letras
e símbolos, facilitando a apresentação de informações.
Um decodificador/driver BCD para 7 segmentos é utilizado para receber um código BCD na
entrada e gerar as saídas que acionam os segmentos para apresentar o decimal correspondente.
A diferença deste decodificador para um comum é que, neste caso, cada saída é ativada para mais
de uma combinação de entradas. Entre os circuitos decodificadores/drivers BCD para 7 segmentos
estão o 4511, 74xx46, 74xx47 e 74xx48 (FIGURA 201).

a
f g b

e c
d
Figura 201 -  Display de 7 segmentos
Fonte: SENAI - RS

Pesquise sobre a diferença entre os displays de 7 segmentos ANODO COMUM e CATO-


SAIBA DO COMUM. Observe diagramas de ligação entre estes displays e os circuitos integra-
MAIS dos estudados neste tópico.
4 SISTEMAS DIGITAIS
177

4.6.3 CIRCUITOS DECODIFICADORES

Um decodificador é um circuito lógico que recebe um conjunto de entradas, representando um


número binário, e ativa apenas a saída correspondente ao número recebido.
O demultiplexador 74xx138, por exemplo, pode ser usado como um decodificador. Possui 3 entradas (A0,
A1 e A2) e 8 saídas (O0 a O7). Com as 3 entradas, há 8 combinações possíveis, e cada combinação faz referência
a uma possível saída (FIGURA 202).

00

01
E3
02
E2
ENABLE
E1 03

SAÍDA
04

A0 05

ENTRADAS DE A2 06
SELEÇÃO
07
A1

Figura 202 -  Circuitos decodificadores


Fonte: SENAI - RS

Alguns decodificadores possuem uma ou mais entradas enable (habilitação), que são utilizadas para
controlar a operação do circuito. O código de entrada é aplicado em A2 A1 A0 sendo A2 o MSB (bit mais
significativo). Analisando o diagrama é possível observar que as saídas são ativas em nível baixo, isto é, o
código de entrada ativará a saída correspondente e essa passará a ter nível lógico baixo; as demais saídas
permanecem em alto (FIGURA 203).

Vcc

123

E
A2
CÓDIGOS
A1 DECODIF/DEMUX
DE
74 XX 138
SELEÇÃO
A0

O0 O1 O2 O3 O4 O5 O6 O7

E1 E2 E3 SAÍDAS

0 0 1 Respondem ao código de entraga A2 A1 A0


1 X X Desabilitadas - todas em nível alto
X 1 X Desabilitadas - todas em nível alto
X X 0 Desabilitadas - todas em nível alto

Figura 203 -  Decodificador 74xx138, diagrama lógico e tabela verdade em relação às entradas de habilitação (enable)
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
178

As entradas E1 , E2 e E3 são entradas de habilitação, separadas e combinadas em uma porta and.


Para possibilitar que as portas nand respondam ao código de entrada A 2 A 1 A 0, a saída da porta and
deve estar em nível alto, o que só ocorre quando E1 = E2 = 0 e E3 = 1. Se uma ou mais das entradas
de habilitação estiverem inativas, a saída da and estará em nível baixo, forçando todas as saídas para
seus estados inativos, como verificado na tabela verdade.
Como exemplo de aplicação, vamos propor o controle de um motor de passo, onde 4 bobinas são
acionadas em sequência para obter o movimento desejado. Como queremos acionar somente uma bobina
por vez, o uso de um decodificador permite que duas saídas digitais sejam suficientes para o controle deste
dispositivo (FIGURA 204).

Saídas
Entradas

S0

E0 S1
S2
E1
S3

Circuito
Controlador Decodificador Motor de passo
amplificador
Figura 204 -  Esquema de ligação de um decodificador de 2 bits para controlar até 4
saídas, usadas em um motor de passo de 4 bobinas
Fonte: SENAI - RS

Observe que, sem o uso do decodificador, seriam necessárias 4 saídas digitais para o controle do motor
de passo. Portanto, uma das principais aplicações de codificadores e decodificadores é para a otimização
de entradas e saídas digitais de sistemas de controle.

4.6.4 CIRCUITOS CODIFICADORES

Um codificador é um circuito que realiza a operação inversa do decodificador; ou seja, o acionamento


de uma das entradas gera um código de N bits na saída, correspondente à entrada ativada.
A Figura 205 a seguir apresenta o diagrama geral de um codificador com M entradas e N saídas.

I0 O0
Controlador
entradas

I1 O1
saídas
M

* *
N

* *
I M-1* *
O N-1
M entradas com apenas
Código de saída
uma entrada em nível
de N bits
ALTO de cada vez

Figura 205 -  Diagrama geral de um codificador


Fonte: SENAI - RS

Imagine a seguinte situação: uma chave seletora de 8 posições em um painel de um equipamento. Cada
posição da chave gera um sinal e uma saída (FIGURA 206).
4 SISTEMAS DIGITAIS
179

S4
S3 S5
S2 S6
S1 S7
S0
24V
comum

Chave Seletora
Figura 206 -  Painel de equipamento com chave seletora de 8 posições
Fonte: SENAI - RS

Observando a Figura 206, necessitariamos 8 entradas digitais para ligar esta chave diretamente a
um dispositivo de controle, no caso um CP. Como as entradas digitais são limitadas (finitas), utilizar
8 entradas digitais pode ser um problema (FIGURA 207).

S4
S3 S5
S2 S6
Codificador

S1 S7
S0
24V
comum

Chave Seletora

Figura 207 -  CP usando 3 entradas digitais para ler sinal de 8 diferentes combinações possíveis
Fonte: SENAI - RS

Embora sejam bastante versáteis, circuitos integrados codificadores e decodificado-


FIQUE res são meramente circuitos combinacionais de sinal, e não são adequados para si-
ALERTA nais de tensão ou corrente elevada. Se necessario, utilize configurações com circuitos
de proteção e amplificação.

Considere o codificador de 8 para 3 linhas mostrado na Figura 208, em que o acionamento de uma das 8
entradas gera um código de 3 bits na saída (TABELA 14).

A0
A1
A2 O0 (LSB)
A3
A4 O1
A5
A6 O2 (MSB)
A7
Figura 208 -  Codificador de 8 para 3 linhas
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
180

Tabela 14: Verdade de um codificador com entradas negadas

A0 A1 A2 A3 A4 A5 A6 A7 O2 O1 O0

X 1 1 1 1 1 1 1 0 0 0
X 0 1 1 1 1 1 1 0 0 1
X 1 0 1 1 1 1 1 0 1 0
X 1 1 0 1 1 1 1 0 1 1
X 1 1 1 0 1 1 1 1 0 0
X 1 1 1 1 0 1 1 1 0 1
X 1 1 1 1 1 0 1 1 1 0
X 1 1 1 1 1 1 0 1 1 1
Fonte: SENAI - RS

Pelo circuito, é fácil verificar que qualquer uma das entradas produz um código binário na saída, correspondente
a ela. Mas o que acontecerá se duas ou mais entradas forem acionadas simultaneamente? Esta é uma desvantagem
dos circuitos codificadores simples. Uma versão modificada, denominada codificador de prioridade, inclui uma
lógica que garante que, quando duas ou mais entradas forem ativadas ao mesmo tempo, o código na saída
corresponderá à entrada de número mais alto.

4.7 FLIP-FLOP (MULTIVIBRADOR BIESTÁVEL)

Flip-flop é um circuito bastante comum em sistemas digitais, e tem comportamento de um multivibrador


biestável. Chamamos de multivibrador, pois o circuito possui basicamente dois estados possíveis, podendo
fazer a transição de um para outro estado, e é biestável porque a transição entre os estados ocorre somente
com impulsos externos.
O circuito aciona ao receber um pulso em uma entrada (set), e desaciona ao receber um pulso em outra
entrada (reset). Isso faz com que tal configuração de hardware funcione como uma memória de 1 bit. Em
circuitos digitais, flip-flops são implementados geralmente com esta finalidade.
Geralmente, flip-flops são implementados na forma de circuitos integrados e, portanto, necessitam de
alimentação geralmente não superior a 5V.
Um flip-flop possui dois estados de saída. A mudança destes estados de saída é determinada por eventos
externos. Alguns circuitos de flip-flop possuem uma entrada para ativar e outra para desativar a saída.
Outros circuitos usam a mesma entrada para isso, sendo que um pulso aciona e outro pulso desaciona.
Existem, ainda, circuitos que dependem de um sinal de clock (chamados de síncronos), onde um pulso
determina os momentos das transições.

O primeiro flip-flop eletrônico foi inventado em 1919, por William Eccles e F. W. Jordan.
VOCÊ Ele foi inicialmente chamado de circuito de disparo Eccles-Jordan, porém o nome flip-
SABIA? -flop é devido ao som produzido em um alto-falante conectado à saída do circuito.
4 SISTEMAS DIGITAIS
181

4.7.1 FLIP-FLOP RS (“RESET-SET”)

A lógica reset-set é a mais comum. Uma entrada S (set) é usada para ativar a saída, e uma entrada R (reset)
é utilizada para desativá-la.
O circuito para um flip-flop RS assíncrono (sem clock) pode ser implementado utilizando-se portas nor,
como mostrado na Figura 209.
a) b)
S Q
1 R Q

2 Q S Q
R
Figura 209 -  Flip-flop RS a) implementação do circuito com portas NOR b) símbolo lógico
Fonte: SENAI - RS

Para realizar a análise do circuito, considere a Tabela 15 a seguir.

Tabela 15: Verdade para o flip-flop RS implementado com portas NOR

ENTRADAS SAÍDAS OPERAÇÕES OBSERVAÇÕES


R S Q Q
0 0 Qanterior Qanterior Conservação As saídas mantém seus estados anteriores.
0 1 1 0 Estabelecimento Saída Q fixa seu valor em 1, independente do
valor anterior.
1 0 0 1 Restauração Saída Q fixa seu valor em 0, independente do
valor anterior.
1 1 0 0 Proibido Combinação proibida para biestáveis RS.

Fonte: SENAI - RS

Outro circuito possível para a construção de um flip-flop RS assíncrono pode ser implementado
utilizando-se portas NAND, como mostrado na Figura 210.

a) b)
S Q R Q

Q S Q
R

Figura 210 -  Flip-flop RS a) implementação do circuito com portas NAND b) símbolo lógico
Fonte: SENAI - RS

A análise deste circuito pode ser feita de forma análoga à realizada anteriormente, entretanto devemos
atentar para o fato de que neste circuito as entradas são invertidas, e a inversão faz com que tenhamos uma
tabela verdade para o circuito como a apresentada na Tabela 16.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
182

Tabela 16: Verdade para o flip-flop RS implementado com portas NAND


ENTRADAS SAÍDAS OPERAÇÕES OBSERVAÇÕES
S R Q Q
0 0 0 0 Proibido Combinação proibida para biestáveis RS.
0 1 1 0 Estabelecimento Saída Q fixa seu valor em 1, independente do
valor anterior.
1 0 0 1 Restauração Saída Q fixa seu valor em 0, independente do
valor anterior.
1 1 Qanterior Q anterior Conservação As saídas mantém seus estados anteriores.

Fonte: SENAI - RS

4.7.2 FLIP-FLOP RS SÍNCRONO

O flip-flop RS síncrono é assim chamado porque, além das entradas reset (R) e set (S), possui uma
terceira entrada chamada clock (CLK), por ela um sinal externo determina o instante em que as saídas serão
atualizadas. O circuito para esse flip-flop é apresentado na Figura 211.
a) b)
S
Q R Q
CLK CLK
Q S Q
R

Figura 211 -  Flip-flop RS síncrono a) implementação do circuito com portas lógicas b) símbolo lógico
Fonte: SENAI - RS

Analisando o circuito podemos observar que, quando a entrada CLK está em nível lógico baixo, as saídas
permanecem inalteradas, independentemente do valor colocado nas entradas R e S. Isto é, quando CLK =
0, as entradas R e S são inibidas e, por essa razão, a operação é chamada de inibição.
Entretanto, quando a entrada CLK está em nível lógico alto, temos o funcionamento de um flip-flop RS
conforme estudado anteriormente, com as entradas R e S, juntamente com o estado anterior das saídas,
definindo o estado atual das saídas.
Ou seja, a atualização do estado das saídas é sincronizada pelo sinal de clock (CLK), o qual determina
quando as entradas R e S podem atuar. A tabela verdade resume o funcionamento desse circuito
lógico (TABELA 17).
Tabela 17: Verdade para o flip-flop síncrono

ENTRADAS SAÍDAS OPERAÇÕES OBSERVAÇÕES


CLK R S Q Q
0 X X Qanterior Q anterior Inibição As saídas permanecem inalteradas.

1 0 0 Qanterior Q anterior Conservação As saídas mantém seus estados anteriores.

1 0 1 1 0 Estabelecimento Saída Q fixa seu valor em 1, independente do


valor anterior.
1 1 0 0 1 Restauração Saída Q fixa seu valor em 0, independente do
valor anterior.
1 1 1 0 0 Proibido Combinação proibida para biestáveis RS.
Fonte: SENAI - RS
4 SISTEMAS DIGITAIS
183

4.7.3 FLIP-FLOP JK

O flip-flop RS estudado anteriormente apresenta como grande desvantagem a proibição para uma
dada combinação das entradas R e S. Com o objetivo de corrigir esse problema foi implementado
o flip-flop JK, cujo diagrama lógico é mostrado abaixo. Esse circuito é uma variação do flip-flop RS
síncrono, onde foi realizada uma nova ligação (realimentação) entre as saídas e as portas de entrada
(FIGURA 212).

J
(set) Q
CLK
Q
K
(reset)

Figura 212 -  Implementação do circuito de um flip-flop JK com portas lógicas


Fonte: SENAI - RS

O funcionamento do flip-flop JK assemelha-se ao do flip-flop RS, com as entradas J e K operando como


entradas set e reset, respectivamente. A exceção do funcionamento do circuito está na condição proibida
para o RS. No flip-flop JK, quando as entradas estão em J = 1 e K = 1 e o pulso de clock muda de 0 para 1, as
saídas se complementam, isto é, passam de 0 e 1 para 1 e 0, ou vice-versa.
O problema neste circuito é que a condição em questão (J = 1 e K = 1) causa sucessivas complementações
nas saídas enquanto o pulso de clock estiver em nível lógico alto. Essas complementações constituem uma
oscilação, ou seja, uma instabilidade no circuito, situação não desejável para um circuito biestável (TABELA 18).
Tabela 18: Verdade para o flip-flop JK
ENTRADAS SAÍDAS OBSERVAÇÕES
CLK J K Q Q
0 X X Qanterior Q anterior As saídas permanecem inalteradas.

1 0 0 Qanterior Q anterior As saídas mantém seus estados anteriores.

1 0 1 0 1 Saída Q fixa seu valor em 0, independente do


valor anterior.
1 1 0 1 0 Saída Q fixa seu valor em 1, independente do
valor anterior.
1 1 1 Q anterior Qanterior Oscilação
Fonte: SENAI - RS

4.7.4 FLIP-FLOP JK MESTRE-ESCRAVO (MASTER-SLAVE)

O flip-flop JK mestre-escravo é uma implementação que visa eliminar a oscilação no circuito anterior
para a condição J = 1 e K = 1. O circuito consiste em dois flip-flops RS síncronos conectados em cascata, com
uma porta inversora entre o clock do primeiro flip-flop (mestre) e o clock do segundo flip-flop (escravo),
além de uma segunda realimentação entre as saídas e as portas de entrada. Esse circuito é apresentado na
Figura 213.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
184

Mestre Escravo

J x
Q
CLK
CLK

Q
K y

Figura 213 -  Implementação do circuito de um flip-flop JK mestre-escravo


Fonte: SENAI - RS

Para entender por que a oscilação não ocorre neste circuito como no caso anterior, precisamos analisar seu
funcionamento para a condição J = 1 e K = 1.
Quando a entrada de clock do circuito está em nível lógico alto (CLK = 1), o flip-flop mestre está habilitado e as
saídas intermediárias X e Y se complementam. Entretanto o clock do flip-flop escravo está em nível lógico baixo,
o que faz com que esteja desabilitado. Portanto, as saídas não sofrem alteração e a realimentação delas com a
entrada do circuito não provoca mais alterações em X e Y.
Quando a entrada de clock do circuito está em nível lógico baixo (CLK = 0), o flip-flop escravo está habilitado
e as saídas Q e Q sofrem alteração. Entretanto, como o flip-flop mestre está desabilitado, a alteração nas entradas
provocada pela realimentação não tem efeito sobre as saídas X e Y.
Ou seja, na condição J = 1 e K = 1, as saídas X e Y alteram-se somente na subida do pulso de clock,
enquanto que as saídas Q e se alteram somente na descida do pulso de clock. Na Tabela 19, é apresentada
a tabela verdade para um flip-flop mestre escravo, e na Figura 214, seu símbolo lógico.
Tabela 19: Verdade para o flip-flop RS Mestre-Escravo
ENTRADAS SAÍDAS OBSERVAÇÕES
CLK J K Q Q
0 X X Qanterior Q anterior As saídas permanecem inalteradas.

0 0 Qanterior Q anterior As saídas mantém seus estados anteriores.

0 1 0 1 Saída Q fixa seu valor em 0, independente do valor anterior.


1 0 1 0 Saída Q fixa seu valor em 1, independente do valor anterior.
1 1 Q anterior Qanterior As saídas se complementam
Fonte: SENAI - RS

J Q
CLK
K Q
Figura 214 -  Símbolo lógico de um flip-flop JK mestre-escravo
Fonte: SENAI - RS

VOCÊ Um flip-flop síncrono pode ser sensível à borda de descida ou à borda de subida.
SABIA?
4 SISTEMAS DIGITAIS
185

Existem modelos de flip-flop cujas saídas respondem à combinação das entradas quando ocorre a
subida do pulso de clock (transição positiva), e outros modelos (como o demonstrado anteriormente) são
sensíveis à borda de descida do pulso de clock (transição negativa).
A diferença entre os flip-flops pode ser observada na entrada de clock no símbolo lógico do componente
(FIGURA 215).

J Q J Q
CLK CLK
K Q K Q

Transição Transição
negativa positiva
Figura 215 -  Flip-flop sensível à borda
Fonte: SENAI - RS

4.7.5 FLIP-FLOP JK MESTRE-ESCRAVO COM PRESET E CLEAR

A inclusão das entradas preset (PR) e clear (CL) no flip-flop JK mestre-escravo tem como efeito a
determinação do valor lógico das saídas, independente da combinação das entradas J e K e do pulso de
clock. Na Figura 216 é apresentado o circuito para esse flip-flop.
a) PR
b)
PR
J x
Q
J Q
CLK CLK
CLK

K y
Q K Q
CL

CL

Figura 216 -  Flip-flop JK mestre-escavo com entradas Preset e Clear a) implementação do circuito com
portas lógicas b) símbolo lógico
Fonte: SENAI - RS

A tabela verdade para esse circuito pode ser escrita como a Tabela 20. É importante observar, para esse
circuito, que a ativação simultânea das entradas de preset e clear (PR = 0 e CL = 0) gera um novo erro lógico
nas saídas e essa combinação deve ser evitada.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
186

Tabela 20: Verdade para o flip-flop JK mestre-escravo com preset e clear


ENTRADAS SAÍDAS OBSERVAÇÕES
PR CL CLK J K Q Q
1 0 X X X 0 1 Clear ativo: saída Q fixa seu valor em 0, indepen-
dentemente das demais entradas.
0 1 X X X 1 0 Preset ativo: saída Q fixa seu valor em 1, indepe-
dentemente das demais entradas.
1 1 0 0 Qanterior Q anterior As saídas mantém seus estados anteriores.

1 1 0 1 0 1 Saída Q fixa seu valor em 0, independente do


valor anterior.
1 1 1 0 1 0 Saída Q fixa seu valor em 1, independentemen-
te do valor anterior.
1 1 1 1 Q anterior Qanterior As saídas se complementam
Fonte: SENAI - RS

4.7.6 FLIP-FLOP D

O flip-flop tipo D é uma variação do JK. Esse circuito possui uma única entrada de dados e uma entrada
de clock. Para a implementação de um flip-flop tipo D a partir de um JK, basta acrescentar uma porta not à
entrada K. Essa inversora será conectada à entrada J do flip-flop, como mostrado na Figura 217 e na Tabela 21.
a) b)
D J Q D Q
CLK CLK
K Q Q

Figura 217 -  Flip-flop tipo D a) implementação do circuito a partir de um flip-flop JK b) símbolo lógico
Fonte: SENAI - RS

Tabela 21: Verdade para o flip-flop tipo D


ENTRADAS SAÍDAS
CLK D Q Q
0 0 1
1 1 0
Fonte: SENAI - RS

Analisando o circuito, observamos que, após o pulso de clock, o flip-flop apenas armazena o valor
da entrada D. Por essa razão, o flip-flop tipo D é chamado de latch (memória). É preciso lembrar que,
comercialmente, estão disponíveis vários modelos de flip-flops tipo D, podendo esses componentes
apresentar, assim como o flip-flop JK, entradas preset, clear e clock com transição positiva ou negativa.

4.7.7 FLIP-FLOP TIPO T

O flip-flop tipo T é outra variação do JK. Assim como o modelo anterior, esse circuito também possui
uma única entrada de dados e uma entrada de clock. Para a implementação de um flip-flop tipo T a partir
de um JK, basta interligar as entradas J e K, como mostrado na Figura 218.
4 SISTEMAS DIGITAIS
187

a) b)
T J Q T Q
CLK CLK

K Q Q

Figura 218 -  Flip-flop tipo T a) implementação do circuito a partir de um flip-flop JK b) símbolo lógico
Fonte: SENAI - RS

Uma aplicação prática de um circuito de Flip-Flop (T) é adequar um botão de pulso (ou circuito que gere
pulso) em uma lógica liga/desliga (FIGURA 219).
5V

Diodo

Relé
Botão
14
1

R1
13
2

1k5 Transistor
12
3

NPN
11
4

10
5
6

9
7

Figura 219 -  Circuito com Flip-Flop J-K aplicado à configuração de Toggle. CI utilizado: 74xx73
Fonte: SENAI - RS

Analisando o circuito implementado, com base no funcionamento de um flip-flop JK, podemos obter a
seguinte tabela verdade (TABELA 22).
Tabela 22: Verdade para o flip-flop tipo T
ENTRADAS SAÍDAS
CLK T Q Q
0 Qanterior Q anterior

1 Q anterior Qanterior
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
188

4.7.8 MODELOS COMERCIAIS DE FLIP-FLOP

Na Tabela 23, são apresentados alguns exemplos de modelos comerciais de flip-flop. É importante lembrar
que, antes de utilizar um modelo comercial, devemos sempre consultar o datasheet do componente para
conhecer quais os níveis lógicos de acionamento das entradas, bem como suas funções e controles adicionais.
Tabela 23: Modelos comerciais de flip-flop
MODELO DESCRIÇÃO RESUMIDA
74xx72 Flip-flip JK mestre-escravo com preset e clear
74xx73 Flip-flip JK com clear
74xx74 Flip-flip tipo D com preset e clear
74xx107 Flip-flip JK com clear
74xx109 Flip-flip JK com preset e clear
74xx111 Flip-flip JK mestre-escravo com preset e clear
74xx112 Flip-flip JK com preset e clear
74xx113 Flip-flip JK com preset
74xx114 Flip-flip JK com preset e clear
74xx171 Flip-flip tipo D com clear
74xx175 Flip-flip tipo D com clear
74xx273 Flip-flip tipo D com clear
74xx276 Flip-flip JK
74xx279 Flip-flip RS
74xx374 Flip-flip tipo D
Fonte: SENAI - RS
4 SISTEMAS DIGITAIS
189

RECAPITULANDO

Neste capítulo vimos que enquanto na Eletrônica Analógica temos como principal objetivo controlar
grandezas elétricas como corrente e tensão, na Eletrônica Digital o principal enfoque é a representação
da informação e de lógicas binárias em circuitos combinacionais e sequenciais.
A lógica utilizada em sistemas digitais é a lógica booleana, criada por George Boole, onde utilizamos
operadores “e” (and), “ou” (or) e “não” (not) para construir expressões. Operadores derivados (xor, nor, nand,
xnor) também permitem operações entre operadores. Os operandos são valores lógicos constituídos de
variáveis binárias ou constantes, podendo valer 0 (falso) ou 1 (verdadeiro). Componentes eletrônicos
que implementam comportamento destes operadores da lógica booleana são chamados de portas
lógicas, e combinados podem gerar circuitos mais complexos, como codificadores, decodificadores,
multiplexadores, demultiplexadores, processadores e microcontroladores, dentre outros. Todo circuito
lógico pode ser representado em uma tabela que relaciona todos os possíveis valores lógicos das entradas
e saídas, sendo ela chamada de “tabela verdade”.
Circuitos combinacionais são os que apresentam saídas definidas em função das entradas independente
da ordem com que as entradas mudam. Circuitos sequenciais, por sua vez, dependem da ordem com que
as entradas são acionadas para definir sua saída. Circutos que realizam a conversão de sinais digitais em
sinais analógicos são conhecidos por conversores D/A, e os que realizam a conversão de sinais analógicos
em digitais são conhecidos por conversores A/D. Na automação industrial e na mecatrônica, circuitos
combinacionais podem ser utilizados para realizar conversões, codificar e decodificar sinais, aumentar
as possibilidades de leitura de sinais usando técnicas de multiplexação e demultiplexação, e permitir
a construção de sistemas de controle programáveis por meio de circuitos digitais sequenciais, como
microcontroladores e microprocessadores.
Microcontroladores

Um sistema automático consegue realizar uma tzarefa (geralmente associada a


movimento e transformação de energia) sem a necessidade de interferência humana.
Uma fábrica automatizada possui equipamentos automatizados em seus processos.
Embora o homem tenha inventado e produzido máquinas autônomas no passado (como
moinhos, sistemas de irrigação, máquinas movidas a vapor), é relativamente recente o
uso de sistemas elétricos para o controle de equipamentos automatizados.
Por muito tempo, os sistemas automatizados eram geridos por cadeia de eventos
elétricos e mecânicos. Em uma máquina de lavar roupas de algumas décadas atrás, a
sequência de eventos realizados pelo equipamento era determinada pelos contatos
mecânicos de um cilindro de contatos. Este tambor era rotacionado por um pequeno
motor de baixa rotação, e demorava alguns minutos (ou horas) para executar um giro
completo. Dependendo da posição do tambor de contatos, algumas chaves mecânicas
eram acionadas, disparando um comportamento distinto no eletrodoméstico (agitar,
centrifugar, encher, esvaziar etc.).
Na indústria, eram comuns automações similares, onde um sensor era usado como
acionamento direto de um atuador. À medida que os sistemas eram interligados, uma
reação específica era obtida. Processos de automação mais complexos eram difíceis de
ser implementados e dependiam de componentes externos, como temporizadores, relés
especiais e contadores mecânicos, dentre outros equipamentos caros, grandes, lentos e
com grande consumo de energia.
Com o advento da Eletrônica, principalmente a Eletrônica Digital, o desenvolvimento
de técnicas, a necessidade de diminuição de custos de fabricação e a miniaturização de
componentes complexos, evoluímos para sistemas onde uma automação mais complexa
geralmente é dividida em duas partes: o hardware e o software.
Milhões de transistores miniaturizados fazem parte de milhares ou milhões
de circuitos digitais que, por sua vez, estão integrados em circuitos com alguns
milímetros quadrados.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
192

Hoje, uma máquina de lavar roupas moderna possui seus sensores e atuadores interligados a
um computador central, na forma de uma placa de circuito impresso com alguns componentes
pequenos e de baixo custo. Praticamente não há trabalho mecânico nesta placa. A sequência
das atividades é determinada por um programa (software) gravado em circuitos computacionais
baratos, permitindo muito mais flexibilidade aos sistemas, agregando funcionalidades que antes
não existiam, de menor tamanho, menor consumo de energia, mais rápidos, diminuindo também,
na maioria dos casos, o custo de fabricação.
Na indústria, sistemas computacionais são utilizados nos mais diversos segmentos, desde controlar
o movimento de uma esteira para que ela mantenha uma velocidade constante até grandes sistemas
logísticos que regulam o fluxo de matéria-prima e produtos de forma a otimizar o transporte e
economizar energia.
Portanto, a Automação Industrial e a Mecatrônica moderna são dependente de circuitos
computacionais compostos de pequenos componentes eletrônicos, onde são ligados os sensores e
atuadores, e onde instalamos o programa (software) que determinará as regras de funcionamento.
Inicialmente, estes circuitos eram produzidos sob medida, dependendo das necessidades de
cada automação. Com o tempo, alguns fabricantes passaram a produzir sistemas padronizados de
automação. Hoje, os PCs (ou CPs) são equipamentos que seguem alguns padrões, sendo oferecidos
em várias versões, variando conforme a quantidade e os tipos de entradas e saídas, a capacidade de
processamento, a velocidade e outras características.
Embora sejam largamente usados, os CPs são relativamente caros e podem apresentar limitações
de velocidade e tamanho. Nestes casos, ainda são necessárias implementações de sistemas
automatizados sob medida.

5.1 MICROPROCESSADORES NA AUTOMAÇÃO INDUSTRIAL E MECATRÔNICA

Antes de entender a aplicação dos microcontroladores na automação, precisamos conhecer um pouco


mais sobre eles.
Inicialmente, os sistemas automatizados eram independentes de software e seu comportamento era
dado pela interligação dos componentes elétricos, mecânicos e eletrônicos. A Eletrônica Analógica era
largamente empregada, os sistemas eram difíceis de ser implementados e bastante inflexíveis.
Com o surgimento da Eletrônica Digital, manipular informação em nível elétrico ficou mais
fácil. Porém, foi com o surgimento dos processadores que houve um grande salto. A partir deste
momento, um circuito integrado poderia ser usado para controlar o funcionamento de vários
sistemas distintos. O mesmo processador utilizado para automatizar uma máquina de fabricação
de robôs era utilizado para a automação de alguns eletrodomésticos (como máquinas de lavar
roupas), ou, ainda, em telefones públicos, em pequenos computadores pessoais, em videogames
e em sistemas automotivos. Um exemplo clássico é o processador Z80, da Zilog, que equipava os
painéis de controle de grandes máquinas de fabricação, centrais telefônicas, eletrodomésticos e
até videogames.
5 MICROCONTROLADORES
193

SAIBA Pesquisando na internet sobre a aplicação dos microprocessadores 8080 e Z80, e a diferença
MAIS entre eles.

Mas, como um mesmo componente poderia ser tão versátil? Como um mesmo processador
poderia ser usado em equipamentos com funcionalidades tão diferentes? O microprocessador, de
forma geral, é um componente eletrônico capaz de ler e gerar sinais elétricos de acordo com uma
lista de instruções conhecida como programa, e os equipamentos automatizados são basicamente
compostos de sensores e atuadores. Como a automação destes equipamentos é definida pelas
ações efetuadas nos atuadores em função das informações coletadas pelos sensores, bastava
realizar a integração do microprocessador com estes sensores e atuadores e programá-lo com o
comportamento necessário.
Analisando assim até parece fácil. O problema é que, para criar um sistema de automação, são necessárias
algumas capacidades ao ser humano, como:
a) conhecer Eletrônica (Analógica e Digital);
b) conhecer técnicas de programação. Criar programas eficientes e sem falhas;
c) ser capaz de integrar os sensores e atuadores (seus sinais, níveis de tensão, corrente etc.) aos circuitos
computacionais;
d) ser capaz de implementar circuitos de apoio, utilizados para temporizar, converter sinais, codificar
sinais etc.
Já vimos um pouco dos conceitos mais importantes da Eletrônica Analógica e Digital, e
conhecemos alguns sensores e algumas estratégias de acionamento que podem ser utilizadas por
circuitos de controle. Vimos também alguns circuitos digitais que podem ser utilizados com circuitos
de apoio, como codificadores, multiplexadores, conversores etc.
Neste capítulo vamos percorrer mais uma parte deste caminho e, junto aos conteúdos estudados
em outros capítulos e unidades curriculares, buscaremos um entendimento mais amplo sobre o
tema. Nosso foco será no estudo de técnicas de programação, voltado ao desenvolvimento de
sistemas de automação utilizando microcontroladores.

5.2 MICROCONTROLADOR

Com o passar dos anos, os circuitos computacionais ficaram cada vez mais baratos, rápidos e
poderosos. Os microprocessadores acabaram sendo aplicados cada vez mais em sistemas onde o
processamento da informação e cálculos complexos eram seu principal objetivo, sendo empregados
em equipamentos onde a informação é o foco principal. Um computador moderno utiliza mais de
um processador para realizar suas tarefas de forma eficiente. Aparelhos de telefonia móvel são
verdadeiros computadores de bolso, agregando muitas funcionalidades.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
194

Alguns microprocessadores, no entanto, evoluíram com foco no controle, agregando


funcionalidades relativas aos sinais digitais e analógicos. Com menor poder computacional,
mas com mais funções relativas ao controle de dispositivos, estes passaram a ser chamados de
microcontroladores. Geralmente, microcontroladores são microprocessadores com funções de
controle embutidas, podendo possuir memória interna, conversores, codificadores, timers e outros
recursos já integrados no próprio componente.
Antes de tudo, vamos esclarecer que um microcontrolador é algo muito mais elaborado do que um
microprocessador. Um microprocessador (conhecido pela sigla MPU) é um circuito integrado destinado
a processar dados, fazendo essencialmente cálculos matemáticos e lógicos. Já um microcontrolador
(conhecido pelo termo MCU) possui, integrado ao seu núcleo, um microprocessador, onde, através de
uma CPU - Central Processing Unit, ou unidade central de processamento, são realizadas operações lógicas
e aritméticas e o processamento das instruções. Dentro do microcontrolador ainda há uma pequena
quantidade de memória para armazenar o programa e variáveis usadas para cálculos e armazenamento
de dados, conversores A/D, contadores, interfaces de comunicação padronizadas para realizar a integração
com dispositivos externos, dentre outros possíveis recursos não existentes em um microprocessador.
Alguns chamam os microcontroladores de “computadores em um chip”, devido ao seu alto grau
de integração, unindo vários periféricos, memória RAM, ROM e CPU em um único dispositivo.
De fato, esta integração traz vantagens e desvantagens. Como desvantagem, o fato de não
poder modificar um elemento do processo, e o menor poder de processamento se comparado com
microprocessadores. Isso é compensado pelo grande número de alternativas do mercado e pela
versatilidade e diminuição de tamanho e custo.
Por isso os microcontroladores são tão versáteis. Estão presentes em quase todos os produtos de nosso
dia a dia. A seguir, veja exemplos de produtos que utilizam os microcontroladores e suas aplicações:
a) forno de micro-ondas - o microcontrolador controla o painel, o funcionamento dos atuadores
internos responsáveis pelo aquecimento, gerenciando o funcionamento do equipamento;
b) controlador de semáforo - MCUs são usadas para controlar os sinais de trânsito, atuando
de forma integrada, comunicando-se um com o outro, permitindo controle centralizado para um
melhor fluxo de veículos;
c) automóveis - a área automotiva é grande consumidora de microcontroladores, que são
usados para gerenciar o funcionamento do motor, em sistemas e alarme, computadores de bordo,
sistemas de abertura e fechamento dos vidros, dentre outras funcionalidades. Em alguns automóveis
modernos são usadas algumas dezenas de microcontroladores para as mais diversas funções, desde
funções de conforto (como climatização e programação de ajustes ergonômicos) até funções de
segurança (como controle de estabilidade e frenagem – ABS);
d) sistemas de controle de acesso - desde o “relógio ponto”, que realiza o controle do horário
da entrada e saída de um funcionário de uma empresa, até sistemas que liberam acesso a portas e
cofres através da digitação de senhas, ou reconhecimento biométrico;
e) controladores de temperatura - dispositivos independentes providos de uma lógica que
permite ativar ou desativar alguns dispositivos em função da leitura de sensores específicos;
5 MICROCONTROLADORES
195

f ) contadores - dispositivos que permitem a contagem de pulsos provenientes de uma entrada.


Podem possuir saídas digitais configuráveis para serem acionadas quando um determinado número
de pulsos for atingido;
g) timers e horímetros - temporizadores que podem funcionar como contadores progressivos
ou regressivos e podem ser configurados para realizar acionamentos em função do tempo.
Quanto aos fabricantes de microcontroladores, hoje existem dezenas de fabricantes, dentre os
quais podemos citar os mais famosos:
a) INTEL – a pioneira em microprocessadores fabricou o microcontrolador 8051, que fez muito
sucesso na década de 80 e 90 no Brasil. Ainda hoje é utilizado em suas versões, e tem grande validade
didática devido à quantidade de informação relativa ao seu uso;
b) ATMEL – seu forte são microcontroladores ATMega, de 8 bits, similares ao 8051, e de baixo
custo;
c) MICROCHIP – fabricante do famoso PIC, um microcontrolado bastante versátil e de baixo custo,
bastante difundido;
d) FREESCALE – surgiu como divisão de semicondutores da Motorola.
e) NXP – antiga Philips Semiconductor, é referência na produção de microcontroladores de alto
desempenho;
f ) TEXAS INSTRUMENTS – dentre seus produtos de sucesso podemos citar os microcontroladores
MSP;
g) ZiLOG – fabricante do antigo processador Z80, mas ainda é um forte atuante em sistemas
embarcados com seus microcontroladores eZ80.
Dentre tantos fabricantes, citamos alguns. Cada um deles produz uma quantidade considerável
de modelos e variantes de microcontroladores.Vamos nos ater a um fabricante devido a sua larga
utilização, custo baixo e abrangência das ferramentas existentes no mercado, utilizaremos os
microcontroladores da Microchip como nosso objeto de estudo.
Devemos ressaltar que os conteúdos aqui abordados poderão ser aplicados em modelos de outros
fabricantes, em alguns casos com algumas modificações.

5.2.1 MICROCONTROLADOR MICROCHIP PIC

Microcontroladores PIC são os produtos fabricados pela Microchip Technology, disponíveis em


famílias e modelos que podem atuar com dados a 8, 16 e 32 bits. O nome PIC significa “Programmable
Interface Controller” (Controlador de Interface Programável) e conta com uma grande e variada lista
de modelos, cada um com diferentes características de capacidade de memória e periféricos.
Como o processamento da informação (dados) e das instruções ocorre de forma conjunta, um
processador de 8 bits pode ocorrer em 12, 14 ou 16 bits, sendo que os bits adicionais são reservados para
indicar a instrução que será utilizada.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
196

Importante: Da mesma forma que podemos realizar multiplicação usando somas sucessivas,
um microcontrolador com menos instruções pode realizar instruções mais complexas através da
execução de várias instruções mais simples. Isso, porém, toma tempo e memória. Esta é a vantagem
de microcontroladores com mais instruções (FIGURA 220).

bits
32-
PIC32
dsPIC33
b its
16- dsPIC30
Funcionalidade

PIC24H
PIC24F
s
8-bit PIC18
PIC16
PIC12
PIC10

Performance

Figura 220 -  Gráfico de Aplicações de microcontroladores PIC por família


Fonte: SENAI-RS

Podemos separar as “famílias” de microcontroladores PIC em:


a) famílias 8 bits - PIC10, PIC12, PIC16 e PIC18;
b) famílias 16 bits - PIC24F, PIC24H, dsPIC30, dsPIC33;
c) famílias 32 bits - PIC32.
Assim como outros componentes eletrônicos, os microcontroladores podem ser oferecidos em
encapsulamentos diferentes. Isso significa que o formato físico externo pode variar de acordo
com a forma de montagem do componente. Embora o encapsulamento possa mudar, um mesmo
modelo de microcontrolador manterá as características internas independentemente do seu
formato externo.
Para efeito didático, em atividades práticas é recomendado estudar o microcontrolador no
formato DIP.
Da mesma forma que em um modelo de automóvel, onde podemos ter várias versões (dependendo
dos opcionais, potência do motor etc.), nos microcontroladores PIC, em uma mesma família, vamos
encontrar diversas versões, variando em recursos, quantidade de entradas e saídas e quantidade de
memória, dentre outros.
5 MICROCONTROLADORES
197

5.2.2 RECURSOS DE UM MICROCONTROLADOR PIC

Dada a diversidade de modelos, a seguir vamos listar os recursos inerentes aos microcontroladores
e suas respectivas definições.
a) memória ROM - um dos principais recursos de um microcontrolador, é a memória onde gravamos
o programa. Embora a sigla ROM signifique READ ONLY MEMORY (memória somente de leitura), em
alguns modelos esta memória pode ser apagada e regravada durante o procedimento de programação
do microcontrolador. Modelos de menor custo permitem que esta memória só seja gravada uma única
vez. Felizmente, os microcontroladores PIC que possuem F no nome (como PIC16F877A, PIC18F4520,
PIC16F628) podem ser gravados e regravados uma grande quantidade de vezes;
b) memória RAM - responsável pelo armazenamento temporário de dados, esta memória
armazena variáveis com dados e informações. É uma memória de acesso rápido, porém volátil; ou
seja, seu conteúdo é perdido quando o microcontrolador é desligado. Enquanto computadores
possuem gigabytes de memória RAM, um microcontrolador possui, internamente, alguns bytes
(podendo chegar a alguns Kbytes em modelos maiores);
c) entradas e saídas digitais (I/Os) - as entradas e saídas digitais são os pinos que podem ser usados
como saída (outputs), podendo ser ativados ou desativados pelo programa durante sua execução, ou
pelas entradas (inputs) onde deverão estar conectados os periféricos de entrada (sensores). Geralmente
um microcontrolador é bastante flexível neste ponto, onde um terminal (pino) pode ser configurado como
entrada ou como saída, podendo ainda variar seu comportamento durante a execução do programa.
Alguns microcontroladores possuem mais IOs (leia “aiôs”, que significa Inputs/Outputs = entradas/saídas)
do que outros, sendo importante observar o número necessário e as estratégias de conexão com os
periféricos para escolher um microcontrolador que ofereça uma boa relação custo/benefício;
d) conversor A/D - como os já estudados conversores digitais, geralmente um microcontrolador
pode ter este recurso integrado no próprio componente, podendo ainda estar associado a um circuito
multiplexador, permitindo que vários pinos sejam utilizados para a leitura de sinais analógicos.
Alguns microcontroladores podem diferir de outros em questões de velocidade e resolução da
conversão, e também no número de entradas e de canais multiplexados;
e) saídas PWM (Pulse Wide Modulation) - são destinadas a gerar, por meio de onda quadrada pulsante,
sinais em que o tempo do sinal em nível alto varia de forma inversamente proporcional ao sinal de nível
baixo, mantendo uma saída com frequência constante, porém com tensão média variável. Desta forma,
em altas frequências de trabalho podemos usar um microcontrolador e sua saída PWM para o controle de
motores de corrente contínua e controle de luminosidade, dentre outros;
f ) barramento de comunicação - são entradas e saídas digitais que atuam em conjunto, de forma
a atender um determinado padrão (protocolo) de comunicação em meio físico. São exemplos de
barramentos de comunicação: CAN, USB, LIN, SPI, USART, I2C. Um dos barramentos mais utilizados
é o USART, geralmente disponível nos microcontroladores, permitindo uma comunicação com
periféricos através de portas seriais, como RS232. CAN é muito utilizado na indústria automotiva.
SPI e I2C são muito usados para comunicar com outros circuitos integrados, como, por exemplo,
para fazer com que o microcontrolador troque dados com uma memória externa;
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
198

g) timers - são temporizadores, que consistem em áreas de memória cujos dados aumentam ou
diminuem sequencialmente com uma velocidade constante, geralmente configurável. Sabendo a
velocidade em que estes dados mudam, é possível criar linhas de programa onde pode ser feita a
comparação de valores com estes dados, de forma a detectar quando um determinado período de
tempo passou, ou de medir tempo entre dois eventos distintos. Para uso dos timers são necessários
conhecimentos específicos de programação e das características do recurso físico, que podem variar
conforme o modelo de microcontrolador utilizado;
h) EEPROM - da mesma forma que a memória ROM, esta memória é não-volátil e os dados nela
armazenados não são perdidos quando o microcontrolador é desligado. Existe um limite de gravações
relacionado à vida útil desta memória, mas geralmente a quantidade de gravações é elevada.
Nem todos os microcontroladores possuem todas as funções acima citadas.
Cabe ao desenvolvedor escolher um microcontrolador adequado, analisando também o custo e a
disponibilidade do componente.
Devido ao custo, à disponibilidade, e à quantidade de recursos, utilizaremos o microcontrolador
PIC16F877A em nosso percurso de estudo. Suas principais características são a Memória ROM Flash,
regravável, de 8 mil linhas de instruções + dados (cada instrução + dado = 14 bits). Tem capacidade
de operar a 20 MHz, conseguindo até 5 MIPS (5 milhões de instruções por segundo). Possui RAM de
368 bytes, EEPROM de 256 bytes, Interface USART, SPI, I2C. Possui comparador e duas saídas PWM
com 10 bits de resolução, dois timers de 8 bits, e um timer de 16 bits, sendo que um timer de 8 bits
pode ser usado com a função de contador rápido. Possui um conversor AD com 8 canais e limite de
corrente de 25mA por pino de I/O. Permite depuração no circuito, e que o programa acesse a própria
área de programa, tornando possível a autoprogramação usada em sistemas de “bootloader”.
O microcontrolador PIC16F877A é apresentado fisicamente em configuração de 40 pinos. Pode ser
encontrado em diversos encapsulamentos (FIGURA 221).

QFP PLCC

PDIP

Figura 221 -  Encapsulamentos do microcontrolador PIC16F877A


Fonte: SENAI - RS
5 MICROCONTROLADORES
199

Como citado anteriormente, vamos nos ater à versão DIP (ou PDIP), pois ela é mais fácil de
manipular e permite uso em placas protótipos, sendo também mais facilmente encontrada em lojas
de componentes eletrônicos (FIGURA 222).
5V (RUN)
PROG (13,4V)
CRISTAL RESET (OV)
5V
(MHz)
PORTC PORTE PORTA

E2
E1
E0
A5
A4
A3
A2
A1
A0
D1
D0
C3
C2
C1
C0
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
PIC16F877
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
D2
D3
C4
C5
C6
C7
D4
D5
D6
D7

B0
B1
B2
B3
B4
B5
B6
B7
PORTC PORTB
PORTD 5V

Figura 222 -  Microcontrolador PIC16F877A I/P e seus principais pinos de alimentação, conexão e I/O
Fonte: SENAI - RS

Em um circuito integrado, devemos procurar a sinalização de referência para numeração dos


pinos. No caso do encapsulamento PDIP, acima representado, observamos a saliência em formato
de U ou de um ponto em um dos lados do componente. Então, devemos realizar a numeração dos
pinos em sentido anti-horário, como podemos ver a seguir:
a) PINO 1 - suporta 3 níveis de tensão. Quando este pino for submetido a tensão de 5V, o
microcontrolador entra em modo de execução, “rodando” o programa armazenado em sua memória
interna (ROM). Para realizar um reset, reiniciando a execução do programa (como desligar e religar o
equipamento, porém de forma mais rápida), basta submeter um pulso de 0V neste pino. Por último,
quando este pino for submetido a tensão de 13,4V, o PIC entra em modo de gravação, permitindo
que os dados sejam enviados (bit a bit) pelos pinos de gravação através de um protocolo (conjunto
de regras de transferência de dados) específico. Este recurso é conhecido por ICSP;
b) PINOS 11 e 32 - alimentação (máximo 5V). Em alguns modelos são tolerados picos de tensão de até
8V; após, há dano permanente. Em outros modelos (que possuem LF no nome, como o PIC16LF877A),
o funcionamento pode ocorrer com tensões de 3V. Isso é bastante útil em sistemas alimentados por
baterias. São dois pinos de alimentação e dois de GND neste modelo, pois o barramento interno fica
melhor equilibrado em termos de corrente através destes dois pontos de alimentação. É importante
ressaltar que a fonte de alimentação para estes dois pinos deve ser a mesma, evitando diferenças de
potencial entre eles;
c) PINOS 12 e 31 - referência (GND). É importante que estes dois pinos sejam externamente
ligados entre si e com a referência de tensão;
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
200

d) PINOS 13 e 14 - neles estará ligado o ressonador externo (cristal de clock), um componente


necessário neste modelo, sendo opcional em outros. Recomendamos o o uso de um cristal de
clock de 20MHz. Caso deseje usar velocidades inferiores, não há problema, porém a velocidade de
execução dos programas será menor;
Os demais pinos são conhecidos por I/Os. Esses I/Os são agrupados em PORTs (portos) de no
máximo 8 pinos cada (limitação do microcontrolador 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.
Quando um pino é configurado como entrada, ele pode ser conectado a algum sensor para detectar
sinais digitais através de variação da tensão de 0 e 5V; quando é configurado como saída, o programa
poderá acioná-lo, e com isso gerar uma corrente baixa (max. 25 mA) com os níveis de tensão de 0V ou 5V.

FIQUE Enquanto na Automação Industrial a maior parte dos dispositivos sensores e atua-
ALERTA dores atuam em padrões digitais de tensão 24V, nos microcontroladores os níveis de
tensão não podem ultrapassar 5V, sob risco de danos permanentes ao componente.

As entradas/saídas digitais do PIC16F877A obedecem às seguintes propriedades:


a) são nominadas por uma letra e um número. Cada agrupamento de pinos da mesma letra é denominado
PORTA (ou PORT). No microcontrolador PIC16F877A temos o PORTA, PORTB, PORTC, PORTD e PORTE;
b) uma PORTA pode ter até 8 I/Os, embora haja alguns com menos;
c) quando uma I/O é configurada como saída, o microcontrolador tenta manter o nível lógico da saída,
aplicando uma corrente de até 25mA no nível de tensão desejado pelo programa;
d) duando uma I/O é configurada como entrada, o microcontrolador deixa o nível de tensão do pino
“flutuar”, variando conforme estímulos externos. Neste caso, é importante observar a necessidade de aplicação
de resistores de pull-ups ou pull-downs para definir um nível de tensão padrão, evitando ruído e falsas leituras;
e) as instruções são executadas na velocidade de operação do microcontrolador. A 20MHz, cada
instrução (em linguagem de máquina) é executada em 200 nanosegundos, ou seja, um quinto de um
milionésimo de segundo.
5 MICROCONTROLADORES
201

Alguns pinos podem ainda ser associados a outras funções além de serem entradas ou saídas digitais.
No caso do microcontrolador PIC16F877A, vamos nos ater às principais funções de apoio, como entradas
analógicas, contador rápido, saídas PWM, comunicação RS232 (usart) e pinos de gravação ICSP. Outras
funções podem existir e devem ser estudadas de forma mais aprofundada no momento que você se sentir
mais confiante (FIGURA 223).
5V (RUN)
PROG (13,4V)
5V RESET (OV)
CRISTAL(MHz)
PWM

CONT
AN7
AN6
AN5
AN4

AN3
AN2
AN1
ANO
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
PIC16F877
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
GRAVADOR
TX (RS232)
RX (RS232)

5V ICSP

Figura 223 -  Microcontrolador PIC16f877A e alguns dos terminais de funções especiais


Fonte: SENAI - RS

Nessa figura, podemos observar que os pinos 2 a 10 (exceto o pino 6) são entradas analógicas(AN),
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 são os pinos usados na gravação do microcontrolador através do método
ICSP, que será estudado a seguir. Estes pinos são utilizados, junto ao pino 1, para programar o
microcontrolador.
Os pinos 25 e 26 (RX, TX) são usados para comunicação serial padrão RS232.
Os pinos 16 e 17 são pinos geradores PWM, que é similar a uma saída analógica. Muito útil para
controle de velocidade de motores, por exemplo.
O pino 6 é um pino usado para contagem rápida, sendo configurável para realizar o incremento
de um timer interno pela detecção de pulsos.
Tradicionalmente, não conhecemos os pinos do microcontrolador por seu número, mas por sua
identificação de I/0.
Se ligarmos uma chave táctil ao pino 20, e um LED ao pino 21, podemos dizer que temos a I/O
D1 (ou RD1) configurada como entrada, conectada à chave táctil, e o pino D2 (ou RD2) configurado
como saída conectado ao LED.

A letra F presente no nome do microcontrolador PIC identifica que o microcontro-


FIQUE lador em questão utiliza a tecnologia FLASH, ou seja, pode ser regravado. Alguns
ALERTA modelos (que utilizam a letra C no nome, como o PIC16C877) só podem ser grava-
dos uma única vez.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
202

5.2.3 ARQUIVOS EXECUTÁVEIS PARA MICROCONTROLADOR

Para programar um microcontrolador, faz-se necessário um mecanismo de transferência e de um


programa a ser gravado. O mecanismo de transferência é dado pelo conjunto de hardware (placas,
cabos, conversores, circuitos de apoio) e software (programas usados para enviar os dados pela
porta serial, paralela, USB etc.); já o programa é a representação das instruções a serem executadas,
geralmente em um padrão hexadecimal, que é convertido em sinais binários durante a transferência.
Devido a esta representação em base hexadecimal utilizada em programas dos primeiros
microcontroladores, estabeleceu-se o padrão Intel Hex de representação do programa. Por isso,
quando temos que transferir um programa para ser executado pelo microcontrolador, geralmente
isso é realizado transferindo-se o arquivo HEX presente em alguma unidade de armazenamento
digital de um computador (pendrive, disco rígido etc.). Portanto, para o microcontrolador, o
programa em linguagem de máquina é o arquivo Hex.
Quando transferimos o arquivo Hex, ele é armazenado na memória ROM do microcontrolador, e
quando o microcontrolador é configurado para o modo execução (com 5V no pino 1), o programa
passa a ser executado. Ao se transferir um programa para um microcontrolador, ele permanecerá lá
até que seja reprogramado, não sendo os dados do programa perdidos em caso de falta de energia
ou desligamento (FIGURA 224).

Programa executável
em linguagem de máquina
Compilador
*.HEX
Software programador
Programa fonte PIC
C++
Compter

PIC
*.C
Circuito programador
Microcontrolador Aplicação

*** ***

PC
Programador

Figura 224 -  Diagrama que demonstra o caminho percorrido por um programa, desde sua criação até a gravação no microcontrolador de destino, e seu uso no
equipamento
Fonte: SENAI - RS
5 MICROCONTROLADORES
203

5.2.4 TRANSFERINDO O PROGRAMA

Os microcontroladores da Microchip têm uma programação facilitada por contar com o recurso
conhecido como ICSP. Mas, o que é ICSP?
Para facilitar o entendimento, vamos imaginar que o PIC16F877A seja utilizado em um controlador de
temperatura, similar ao da Figura 225.

QUIT MAN AL1 AL2

QUIT MAN AL1 Black


AL2
novus N1100

Figura 225 -  Controlador multifunção


Fonte: SENAI - RS

A empresa que produz este equipamento deve fabricar (montar) as placas de circuito impresso e seus
componentes. Devido à quantidade de produtos, o processo é automatizado.
Porém, o microcontrolador que definirá as funcionalidades do produto precisa ser programado.
Programar estes microcontroladores antes da montagem é um processo que envolve a manipulação
do componente e pode gerar erros e atrasos no processo produtivo.
Para estes casos, a disponibilização dos pinos de gravação em um conector especial na placa
de circuito impresso principal do produto permite que o microcontrolador seja instalado no
equipamento, recebendo os dados do programa em uma etapa posterior.
Uma das principais vantagens é a possibilidade de transferir programas diferentes sem a
necessidade de remoção do microcontrolador do equipamento, tornando mais fácil a manutenção
do produto.
A tecnologia que permite esta gravação no circuito é chamada de In-Circuit Serial Programming
(ICSP). Porém, para realizar essa gravação no PIC16F877A, precisamos conectar os pinos 39 e 40
(PGD e PGC) e o pino 1 (MCLR) ao computador por meio de um circuito de interface. O circuito
de interface deve realizar o transporte dos dados digitais, sendo controlado por um programa
existente no computador de origem, oferecendo segurança para evitar que a conexão entre o
microcontrolador e o PC possa danificar um dos equipamentos.
Alguns fabricantes disponibilizam um conjunto de hardware e softwares, como solução completa
para a programação de microcontroladores.Algumas dessas soluções permitem ir além da gravação
do microcontrolador, permitindo a depuração, que é o ato de controlar as instruções e ler os dados
do microcontrolador em tempo de execução. Esta estratégia é muito interessante quando estamos
desenvolvendo uma aplicação, pois permite ao desenvolvedor observar por quais linhas do programa
o fluxo de execução está passando, inserir pontos de parada (breakpoints) para que o programa pare
quando chegar em determinada linha, ou, ainda, verificar o valor de variáveis durante sua execução.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
204

Como grande parte destas soluções oferecem custos que podem ser considerados altos para
alguns estudantes, algumas pessoas acabaram criando softwares e circuitos de gravação e
disponibilizando estes circuitos em páginas na internet.
Entre esses circuitos de gravação, podemos citar o gravador TAIT, cujo circuito desenvolvido em
1996 permitiu a muitos estudantes construírem gravadores de baixíssimo custo (menos de 10 dólares)
e, por meio de programas instalados em PCs (computadores pessoais), tornou-se viável o uso de
microcontroladores PIC em projetos de estudantes com um investimento inicial baixo (FIGURA 226).

Computador

Circuito de gravação TAIT clássico utiliza uma porta


paralela física, antigamente disponível em computadores
pessoais, mas que hoje é cada vez mais rara.

DB 25 FÊMEA PORTA
PARALELA FÍSICA
D1 Programador TAIT, criado por David Tait em 1996
>+17V 1N4001
IN U1 OUT +5V
7805 14
PL1 C1 C2 C3 C4
COM U3
10u 100n 100n 7 100n
U3d R5
PL2 7407 10k
1 9 8 R4 Q1
14 PNP
2 D0 4k7
15 IN U2 OUT +13V R6
3 D1 78L12 C6
1b 1k2
4 D2 COM 100n D4 R8 U3a
17 D2 R10
D3 1N4148 10k 7407
5 10k
18 D3 2 1 D0
6
19 1N4148 MCLR
U3c R2 MCLR
7 7407
20 10k GND 5V RB7 11 10 ACK
8 5 6 R1 PGD
21
Q2 PGC
9 4k7 PIC U3e
22 PNP 7407
10 ACK 13 12 VDD R9
23 R3 C5 R7 10k U3b
11 7407
24 U3f 10k 100n 10k
12 7407 RB6 4 3 D1
25
13

DB25F

Figura 226 -  DB25 femea porta paralela física


Fonte: SENAI - RS

Em computadores modernos, e principalmente computadores portáteis, a interface paralela (utilizada


pelo circuito programador TAIT) é cada vez mais difícil de ser encontrada. Circuitos alternativos surgiram,
dentre os quais um processo bastante utilizado para fins didáticos, o bootloader, que será visto em seguida.
Portanto, vimos que, para programar um microcontrolador PIC, necessitamos de um computador
com um software de programação, um hardware (circuito) programador, o próprio PIC e o programa
a ser transferido.

5.3 BOOTLOADER – TÉCNICA PARA AUTOPROGRAMAÇÃO

Nem sempre podemos contar com o circuito programador adequado, pois existem problemas
relativos ao custo, à dificuldade em implementar o circuito ou à falta de interfaces compatíveis.
Nestes casos, há uma técnica que pode ser usada, principalmente para fins didáticos, conhecida
como bootloader.
5 MICROCONTROLADORES
205

Implementar um circuito de comunicação, ligando a porta serial ou USB de um microcontrolador


ao PC, geralmente é bem menos complexo do que construir circuitos de gravação ICSP.
Nesse sentido, utilizamos um programador ICSP somente uma única vez, programando-o com um
programa que chamamos de firmware de bootloader.
O firmware é um pequeno programa residente que consome um pequeno percentual da memória
ROM do microcontrolador. Durante a inicialização, este programa verifica se o PC está tentando enviar
um arquivo Hex pela porta de comunicação. Se for o caso, o firmware de bootloader receberá os bits
relativos ao arquivo Hex, armazenando-os na memória ROM livre e, por fim, executando o programa.
A grande vantagem é a simplicidade do processo de gravação. As desvantagens, por outro lado,
são a necessidade de uma primeira gravação do microcontrolador com o firmware de bootloader e a
perda de um pequeno percentual de memória ROM que ficará ocupada por ele.

Pesquise sobre circuitos gravadores para microcontroladores na internet. Verifique


SAIBA que alguns circuitos oferecem a opção de depuração, enquanto outros oferecem um
MAIS circuito simplificado e de custo reduzido.

5.4 ALGORITMOS

Algoritmos é o termo usado para definir uma sequência finita de instruções que pertencem a um
conjunto também finito e não ambíguo. As instruções devem ser executadas em um período de tempo
finito e com uma quantidade finita de esforço.
Em outras palavras, algoritmo é uma lista de procedimentos bem definidos que devem ser executadas
por algo.
Muito importante: as instruções usadas em um algoritmo devem ser não-ambíguas. Existe ambiguidade quando
uma determinada informação tem mais de um sentido, podendo ser interpretada de várias formas diferentes.
Por exemplo, se você ouvir alguém falando a frase “prefiro lima”, o que você pensa?
Bom... se a pessoa que falou isso estiver na frente de uma banca de frutas? E se a pessoa estiver na frente
de uma agência de turismo, olhando pacotes de viagens para o exterior? Ou, ainda, se estiver na frente de
uma ferragem, escolhendo ferramentas? Ou de uma loja de tintas, escolhendo a cor para pintar uma parede?
Pois bem. O termo “lima” pode definir uma cor, uma ferramenta, uma fruta, uma cidade, dentre outras
coisas que pode significar. Os seres humanos utilizam o contexto para captar o sentido da frase, observando
onde a pessoa está, sobre o que está falando etc.
Os computadores “ainda” não são capazes de fazer isso, e mesmo que fossem, sempre há margem para
uma interpretação equivocada. Como os computadores não podem errar, a linguagem utilizada para
programá-los não pode ser ambígua. Portanto, em um algoritmo cada instrução realizará uma ação de forma
determinada, e sabemos qual será o resultado desejado em cada situação, independente do contexto.
Os algoritmos são “receitas” de como um determinado resultado deve ser obtido. Eles podem
possuir estruturas de controle de fluxo, que permite tomar caminhos de execução diferentes
dependendo da análise de informações.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
206

É importante observar que um algoritmo não é um programa de computador e, sim, os passos


necessários para realizar uma tarefa. Os algoritmos surgiram antes dos computadores e eram usados
por matemáticos e engenheiros como roteiro para a execução de atividades complexas usando
sequências controladas de atividades mais simples.
Para exercitar isso, vamos executar um algoritmo. Tente executar, com bastante calma, o algoritmo
abaixo, realizando cada tarefa com cuidado para não errar nenhum passo. Para criar uma variável,
simplesmente destine um espaço em um caderno e anote o valor inicial da variável (QUADRO 4).

PASSO INSTRUÇÃO
1 Anote um valor numérico, positivo e inteiro, não superior a 100. Vamos chamar este valor de T.
2 Crie uma variável chamada V1, com valor inicial de zero.
3 Crie uma variável chamada V2, com valor inicial de zero.
4 Crie uma variável chamada V3, com valor inicial de zero.
5 Crie uma variável chamada V4, com valor inicial de zero.
6 Crie uma variável chamada V5, com valor inicial de zero.
7 Crie uma variável chamada V6, com valor inicial de zero.
8 Se T for inferior a 50, pule para o passo 12.
9 Subtraia 50 de T.
10 Adicione 1 a V1.
11 Volte para o passo 8.
12 Se T for inferior a 20, pule para o passo 16.
13 Subtraia 20 de T.
14 Adicione 1 a V2.
15 Volte para o passo 12.
16 Se T for inferior a 10, pule para o passo 20.
17 Subtraia 10 de T.
18 Adicione 1 a V3.
19 Volte para o passo 16.
20 Se T for inferior a 5, pule para o passo 24.
21 Subtraia 5 de T.
22 Adicione 1 a V4.
23 Volte para o passo 20.
24 Se T for inferior a 2, pule para o passo 28.
25 Subtraia 2 de T.
26 Adicione 1 a V5.
27 Volte para o passo 24.
28 Se T for inferior a 1, pule para o passo 32.
29 Subtraia 1 de T.
30 Adicione 1 a V6.
31 Volte para o passo 28.
32 Anote os valores de V1, V2, V3, V4, V5 e V6 em sequência, separados por espaços.
33 Fim do algoritmo
Quadro 4 - Execução de um algoritmo
Fonte: SENAI - RS
5 MICROCONTROLADORES
207

Note que todas as instruções, embora estejam escritas em descrição narrativa, são instruções bem
definidas, com uma interpretação que não remete à ambiguidade.
Se você executou o algoritmo todo, deve ter agora 6 valores anotados. E o que estes valores
significam?
O algoritmo tem o objetivo de calcular a menor quantidade de cédulas e moedas para troco. O valor
informado no início é o valor total do troco. Para o troco, serão necessárias V1 cédulas de R$ 50,00, V2 cédulas
de R$ 20,00, V3 cédulas de R$ 10,00, V4 cédulas de R$ 5,00, V5 cédulas de R$ 2,00, e V6 moedas de R$ 1,00.
Talvez, na sua opinião, existam formas mais fáceis de realizar este cálculo, mas o procedimento acima
na forma de um programa foi feito para que o resultado seja obtido seguindo-se passos mais simples.
Um computador ou circuito computacional geralmente executa estes passos de forma bastante
veloz, na maioria dos casos em menos de um milhonésimo de segundo para cada tarefa. Se
pudéssemos executar na mesma velocidade que um computador, certamente o resultado seria
obtido em menos de um milésimo de segundo.
Outra questão a ser considerada é que um computador é um equipamento projetado para ser
estável e preciso, não cometendo erros que os seres humanos podem cometer.
O algoritmo descrito acima é a representação textual (em uma linguagem não computacional),
mas com a possibilidade de ser traduzido para uma linguagem de computador. Ele expressa os
passos detalhados e não ambíguos que devem ser efetuados para obter um resultado final. Um
algoritmo pode ser escrito de várias formas, podendo ser textual, gráfico ou código especiais.

5.5 FLUXOGRAMA

Dizem que uma imagem pode valer mais do que mil palavras. Geralmente, por meio de um gráfico
ou esboço de um desenho, podemos passar mais informação do que em várias linhas de texto.
Quando se trata de programação, isso não é diferente; Costumamos usar diagramas para expressar
o funcionamento de um software.
Recentemente, em desenvolvimentos de alto nível, utilizamos linguagens de modelagem
relacionadas a conjuntos de diagramas que podem expressar sequência, relacionamento entre
os dados, interações com os usuários e com outros softwares e estruturas hierárquicas dos dados,
dentre outros. A linguagem UML é composta de diversos diagramas e pode definir com riqueza de
detalhes como as diversas partes de um complexo sistema computacional são formadas e como e
quando irão interagir entre si.
No caso dos sistemas embarcados mais simples, pode ser desnecessário dispender muito tempo
neste tipo de programação.
Nestes casos, é recomendado criar ao menos um fluxograma, que é um diagrama mais simples e
tradicional, onde o principal foco está na sequência dos eventos influenciada pelas decisões durante
o processo.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
208

Um fluxograma pode ser escrito em diversos níveis de profundidade. Alguns compiladores ainda
permitem que um programa seja escrito através de fluxogramas, permitindo gerar código executável
diretamente a partir do diagrama. Embora isso seja possível, não é recomendado para aplicações
mais complexas, pois um fluxograma toma bastante espaço para a representação das estruturas e
pode ser mais difícil de ser criado do que linhas de programa textuais geradas por um programador
mais experiente.
Vamos a um fluxograma aplicado a uma simples situação de controle na automação industrial
(FIGURA 227).
inicio

obter
temperatura

SIM ligar
temperatura
ventilação
>45ºC?
NÃO
temperatura SIM ligar
<40ºC? aquecimento
NÃO
desligar
ventilação

desligar
aquecimento

Figura 227 -  Fluxograma


Fonte: SENAI - RS

Observando o fluxograma, podemos chegar rapidamente a algumas conclusões:


a) trata-se de um controlador de temperatura;

b) podemos observar que há o controle de atuadores de ventilação e de aquecimento;

c) o sistema busca manter a temperatura em uma faixa fixa de 40ºC a 45ºC;

d) não há histerese.

Como vimos, os algoritmos devem ser elaborados de forma a não haver ambiguidade. No caso do
diagrama acima, para transformar em uma linguagem computacional seria necessário descrever melhor
o processo, definindo o que seria ligar e desligar, o que seria obter temperatura, e saber se a temperatura
obtida já será expressa em ºC. Caso contrário, não há como proceder à comparação como sugerido. Estes
detalhes geralmente são observados durante a escrita do programa propriamente dito.
5 MICROCONTROLADORES
209

5.6 COMPILADOR

Todo microcontrolador ou microprocessador executa programas em linguagem de máquina,


também chamada de linguagem binária. Chamamos assim porque a representação das instruções
e dados é feita em binário e está diretamente relacionada com os circuitos lógicos internos que
realizam o processamento. Um determinado agrupamento de 2 bytes (16 bits), por exemplo, que em
um microcontrolador PIC da família 18 pode executar o acionamento de uma saída digital, em outro
microcontrolador de outro fabricante pode realizar uma tarefa totalmente diferente, como movimentar
um dado na memória, realizar uma soma ou ativar algum periférico. As instruções mudam conforme o
microcontrolador, podendo existir mudanças significativas entre modelos de microcontroladores de um
mesmo fabricante.
Até é possível programar diretamente em linguagem de máquina, mas isso requer um profundo
conhecimento sobre as instruções (expressas em binário) de cada processador. Para isso, o
programador deve escrever cada instrução diretamente em binário (ou hexadecimal, dependendo
do equipamento de programação). Isso é trabalhoso, demorado e exige muito cuidado, pois erros
podem demandar muito tempo para correções. Este processo era comum na programação dos
primeiros microcontroladores, até que surgiram ferramentas computacionais que permitem o uso
de técnicas de programação mais eficientes e que otimizaram tempo e recursos.
Uma das primeiras ferramentas (software) utilizadas para programar eram os programas
montadores (assemblers), que consistiam em programas capazes de realizar a tradução de símbolos
textuais diretamente para a linguagem de máquina. Estes programas facilitavam a abstração em
relação a endereços de memória e nome das instruções, porém continuavam a ter uma relação
direta com o modelo de hardware a ser programado, exigindo do programador ainda um grande
esforço para a construção de programas mais complexos (TABELA 24).
Tabela 24: Programa escrito em assembly, e a representação de instruções em linguagem binária.
Código binário tem caráter ilustrativo, podendo haver variações
LIGUAGEM ASSEMBLY INTRUÇÕES EM LING. DE
MÁQUINA (14BITS)
movlw 0x0A ; carrega w com 10 00110100001010
movwf VAR2 ; carrega VAR2 com valor de w (10) 01110101010101
movlw 0x00 ; zera w 00110010000000
addwf VAR1,w ; adiciona VAR1 em w 01101001010101
decfsz VAR2 ; decrementa VAR2 e pula se =0 00101011011111
goto $-2 ; volta duas linhas 11110101010010
movwf VAR3 ; joga w em VAR3 10100101111010
Fonte: SENAI - RS

Quem desenvolve programas em assembly deve conhecer técnicas, limitações e o conjunto de


instruções do microcontrolador a ser programado, além de manter o foco no desenvolvimento das
funcionalidades e nos demais requisitos do programa a ser desenvolvido. Isso é bastante complexo e
pouco produtivo, pois exige muita experiência, além de muitas horas de implementação e testes.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
210

Como vantagem, um programa escrito em assembly tende a ser extremamente eficiente,


consumindo somente os recursos de memória que o programador achar necessários.
No trecho de programa assembly citado no exemplo acima ocorre a multiplicação e uma variável
por 10 utilizando-se somas sucessivas. Você pode se perguntar por que somar 10 vezes um número.
Não seria mais fácil multiplicá-lo por 10?
Como o microcontrolador PIC16F877A não possui a instrução de multiplicação, faz-se necessário
o uso desta estratégias para obter o resultado esperado. Por isso dizemos que este microcontrolador
não foi criado para processamento matemático, e que seu principal foco é o controle.
Portanto, um programador assembly, ao programar um PIC16F877A, deve lidar com poucas
instruções para resolver problemas por vezes mais complexos. É como utilizar calculadoras de
quatro operações para resolver equações complexas. Não é impossível, só é mais difícil e demorado.
Como um microcontrolador é muito mais rápido do que somos, e ainda não conta com a grande
possibilidade de erro atribuída aos seres humanos, decompor atividades mais complexas em
situações mais simples é bastante comum em atividades de programação. O complicado para um
programador que escreve em linguagem de máquina é a quantidade de elementos que devem ser
controlados: áreas de memória, nome dos elementos, instruções de nomes difíceis de lembrar e
técnicas que variam conforme o microcontrolador, dentre outros.
Felizmente, surgiram linguagens de programação de alto nível que nos permitem desenvolver
aplicações sem nos preocuparmos tanto com as características limitadoras do hardware.
Uma grande vantagem destas linguagens é a portabilidade dada ao fato de haver um padrão de
programação independente do equipamento a ser programado. Programar um microcontrolador PIC em
linguagem C é relativamente similar a programar um microcontrolador MSP (Texas Instruments), ou um LPC
(da fabricante NXP). Outra grande vantagem é o fato de que certas estruturas mais complexas ligadas aos
comandos da linguagem são traduzidas para comandos mais simples (TABELA 25).
Tabela 25: Comando executado em linguagem C, e a produção (em código executável) gerada pela instrução
LIGUAGEM C INTRUÇÕES EM LING. DE
MÁQUINA (14BITS)
00110100001010
01110101010101
00110010000000
VAR1 = VAR2 * 10; 01101001010101
00101011011111
11110101010010
10100101111010
Fonte: SENAI - RS
5 MICROCONTROLADORES
211

Na tabela 25, uma expressão está multiplicando a variável VAR2 por 10, armazenando o valor obtido
na variável VAR1. Como visto anteriormente, isso é realizado por meio de somas sucessivas, mas em
linguagem C o programador não precisa se preocupar com isso, pois o compilador gera a sequência de
instruções necessárias, tornando a operação transparente. Isso faz com que o programador não necessite
conhecer ou aplicar as técnicas relativas a cada microcontrolador, pois estas já estão expressas nas regras
de tradução do compilador, que lerá o programa escrito em uma linguagem mais próxima da linguagem
humana (alto nível) e traduzirá isso para linguagem de máquina.
Outra vantagem é que no processo de compilação são detectados alguns erros que podem ter sido
gerados no programa fonte devido a erros de digitação, desconhecimento da linguagem, esquecimentos.

5.6.1 ERROS DE COMPILAÇÃO

Na primeira etapa da compilação, o programa compilador realizará a análise léxica. Nesta etapa,
o compilador lê todas as palavras do programa fonte, verificando se consegue identificar todas.
Na linguagem C, por exemplo, é necessário declarar funções e variáveis que são utilizadas no
programa. Se o programador, por exemplo, declarar a variável chamada contador em seu programa,
porém no meio do programa, devido a um erro de digitação, escrever uma expressão usando o
nome “contadro”, haverá uma mensagem de erro, pois o nome da variável, embora muito parecido,
não é o mesmo.
Na segunda etapa ocorre a análise sintática. Neste momento, o principal objetivo é verificar como
os comandos e símbolos usados no microcontrolador são encadeados para obter um objetivo comum.
O foco nesta etapa da compilação é detectar a falta de algum elemento, ou a ordem inadequada dos
comandos. Erros de sintaxe são bastante comuns quando não conhecemos as estruturas de controle
e os comandos da linguagem que estamos utilizando.
Por fim, ocorre a geração de código intermediário, a otimização e a geração de código final.
O produto gerado por esta etapa é um programa escrito em uma linguagem muito próxima da
linguagem de máquina, faltando algumas etapas de otimização e ligações com bibliotecas externas.
Isso tudo é gerido pelo compilador, e nesta etapa podem surgir erros devido a fatores de limitações
de memória ou nome de arquivos.
Em compiladores usados em microcontroladores, nesta etapa ocorre a geração do arquivo Hex,
que será posteriormente transferido para a memória ROM do microcontrolador.
Alguns compiladores podem oferecer otimizações de memória mais eficientes, fazendo com que a
linguagem de máquina gerada seja mais “enxuta”, evitando comandos desnecessários e desperdício
de memória. Outros compiladores suprimem esta etapa de otimização em versões gratuitas ou de
demonstração, gerando um código final que pode ser relativamente maior e mais lento, porém
igualmente funcional.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
212

5.7 LINGUAGEM C

Embora não seja a única, esta é, incontestavelmente, a linguagem compilada mais popular para
microcontroladores. Foi criada por Dennis Richie, em 1972, no laboratório AT&T Bell Labs, com o
intuito de ser a linguagem de aprimoramento e desenvolvimento do sistema operacional Unix, que
foi originalmente escrito em Assembly.
Hoje, grande parte dos sistemas operacionais (como Microsoft Windows, Linux, Android) são
escritos em linguagem C, ou ao menos têm grandes partes geradas em linguagem C.
Faz alguns anos que esta linguagem passou a receber compiladores capazes de gerar código
para microcontroladores, e ainda não são muitos os fabricantes e as versões existentes.
Para os microcontroladores da microchip, podem ser obtidos os seguintes compiladores:
a) MPLAB + Hitech - disponível no próprio site da microchip (www.microchip.com), é disponibilizado
em uma versão gratuita, mas com limitações de otimização. Obedece ao padrão C ANSI, facilitando a
portabilidade (migração entre microcontroladores). Não existem muitas funções prontas, e o programador
deve criar algumas funções e sub-rotinas. O ambiente de desenvolvimento (MPLAB) é bastante rico em
recursos, mas pode ser um pouco complicado e confuso para quem está iniciando;
b) MPLAB + C18 - compilador também disponibilizado pela microchip, mas para PICs da família 18. Na
versão gratuita, conta com limitações de otimização;
c) SDCC - Small Device C Compiler – Gratuito e de código aberto (open-source). O problema é que para
PIC ainda está em desenvolvimento, e é necessário integrar a uma ferramenta de desenvolvimento como o
MPLAB. Não é recomendado para quem está iniciando devido à complexidade de instalação e uso;
d) MikroC - este compilador conta com versões de demonstração que compila códigos de até 2K.
Embora haja limitações quanto ao uso gratuito, é recomendado devido à riqueza de recursos e à interface
intuitiva e amigável;
e) SOURCEBOOST - compilador pago, porém de menor custo. Possui suporte a microcontroladores PIC
das famílias 10, 12, 16 e 18;
f ) CCS - um dos mais populares, embora não seja padrão C ANSI. Suas funções embutidas permitem
gerar código de forma mais simplificada, e a interface é relativamente amigável. Os programas existentes
neste material utilizarão este compilador como referência, e todos serão compilados na versão gratuita
disponível no site www.ccsinfo.com.

5.7.1 CRIAÇÃO DE UM PROGRAMA

Após instalar e executar o compilador (PIC C Compiler), clique em File (ou no símbolo circular do canto
superior esquerdo da janela), posteriormente em New (novo arquivo) e, após, Source File (arquivo fonte)
(FIGURA 228).
5 MICROCONTROLADORES
213

Figura 228 -  Janela de novo aquivo


Fonte: CUSTOM COMPUTER SERVICES INC, [20--]

Fonte: Após, uma janela será aberta solicitando o nome do arquivo fonte (programa em linguagem
C). Recomendamos que você grave o arquivo em uma pasta de fácil acesso, pois nela posterior-
mente o compilador gerará o arquivo em linguagem de máquina (arquivo Hex).
Outro detalhe importante: o nome de um programa fonte em linguagem C deve ser finalizado por .C, desta forma
sendo diferenciado dos demais arquivos. Gerar um arquivo com outro nome pode incorrer em erros na fase final de
compilação (FIGURA 229).

Figura 229 -  Tela “Salvar Como”, que aparece ao se iniciar um novo programa
Fonte: CUSTOM COMPUTER SERVICES INC, [20--]
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
214

FIQUE Observe o nome do arquivo (com extensão C) e a pasta onde ele será gravado. É
ALERTA nesta pasta que, após a compilação, será encontrado um arquivo com mesmo nome,
porém com extensão .HEX.

Para este exemplo, vamos criar o arquivo PROG1.C. Ao clicar em “salvar”, uma área de edição é
disponibilizada, permitindo escrever o programa.

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
output_high(PIN_C0); // PINO C0 para nível alto
delay_ms(1000); // atraso (delay) de 1000 ms
output_low(PIN_C0); // PINO C0 para nível baixo
delay_ms(1000); // atraso (delay) de 1000 ms
}

O programa no exemplo acima possui algumas palavras que, ao digitar, ficarão em cores
diferentes. Na instalação padrão, o compilador CCS diferencia as diretivas (que estão em vermelho),
informações numéricas (em verde), palavras reservadas, ou comandos, em azul. Itens em cinza
são trechos de texto chamados de comentários, e iniciam pelo símbolo // (duas barras seguidas),
estendendo-se até o final da linha. Os demais itens em preto são símbolos que serão identificados
durante a compilação.

5.7.2 COMO COMPILAR

Após digitar o arquivo, observe no canto inferior direito o nome do arquivo que você vai compilar.
Caso não esteja aparecendo o nome correto, feche todos os arquivos (e projetos, se for o caso)
abertos no compilador, e abra o arquivo C desejado novamente.
Uma vez aberto, clique em -> “compile”. A compilação irá ocorrer, inicialmente localizando por
erros de digitação ou de sintaxe. Posteriormente, surgirá uma janela indicando o erro, ou se o
programa foi corretamente compilado (FIGURA 230 e FIGURA 231).
5 MICROCONTROLADORES
215

Figura 230 -  Demonstrando a opção para compilação (pode ser obtida pela tecla de atalho F9)
Fonte: CUSTOM COMPUTER SERVICES INC, [20--]

Figura 231 -  Demonstrando a compilação em processo


Fonte: CUSTOM COMPUTER SERVICES INC, [20--]

Após efetuar a compilação, uma janela surgirá momentaneamente demonstrando a quantidade


de memórias RAM e ROM ocupadas pelo programa. Note que o programa em questão ocupa uma
quantidade muito pequena de memória devido a sua simplicidade.
Vamos estudar o programa que foi compilado, linha a linha. Aproveite para verificar o conteúdo
digitado e a pontuação em caso de erro. Caso a janela acima não tenha surgido, é provável que
algum pequeno erro esteja impedindo a compilação.
#include <16f877.h> // inclui arquivo de cabeçalho
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
216

Esta linha serve para incluir, no início do programa, um arquivo já existente, conhecido como
header file (arquivo de cabeçalho). Este arquivo é fornecido pelo fabricante do compilador, mas
também pode ser construído por um programador experiente. Nele há definições importantes
sobre o microcontrolador que será usado, como endereçamento dos pinos de entrada e saída e
informações sobre recursos existentes.
Caso você venha a gerar um programa para outro microcontrolador, mude esta linha para o
microcontrolador correspondente.
No exemplo acima, usamos o arquivo 16f877.h, mas poderia também ser o 16f877a.h, pois estes
são equivalentes:
#use delay (clock=20000000) // define valor de clock para delays
Linha utilizada para informar ao compilador qual a velocidade do cristal de clock usada pelo
microcontrolador alvo. Caso esta linha não seja corretamente definida, teremos problemas relativos
à execução, pois os tempos definidos na função embutida “delay_ms” não serão mais respeitados. Em
poucas palavras, ela informa a velocidade do microcontrolador para o compilador.
void main(void) // função principal
Esta linha identifica uma função chamada MAIN (principal). A função principal é a única função
que tem nome fixo e deve existir obrigatoriamente em um programa C executável. Outras funções
(sub-rotinas) podem ser escritas em um programa C, mas ao menos uma deve se chamar MAIN, da
qual parte a execução do programa.
{
O abrir chaves ({) é usado para definir o início de algo. Neste caso, estamos iniciando a função
principal (indicada na linha anterior).
output_high(PIN_C0); // PINO C0 para nível alto
Esta é uma função embutida do compilador CCS. Em poucas palavras, esta linha, ao chamar a
função embutida output_high, define o pino (no caso pino C0) como saída, pondo também seu
nível de tensão em 5V (nível alto).
delay_ms(1000); // atraso(delay) de 1000 ms
Linha utilizada para causar um atraso (tempo) no programa. Se esta linha não existisse, a
próxima instrução seria executada após alguns microsegundos. Com ela, ocorre um atraso de 1000
milissegundos (um segundo).
output_low(PIN_C0); // PINO C0 para nível baixo
Instrução que, através da função embutida output_low, determina que o pino C0 (definido como
saída) vá para nível lógico baixo (0V).
delay_ms(1000); // atraso(delay) de 1000 ms
Outra execução da instrução de tempo, fazendo com que o programa tenha uma “pausa” de um segundo.
}
5 MICROCONTROLADORES
217

Finalização do programa principal. Sinais de chaves são usados para indicar o início e o final dos blocos
de instruções na linguagem C.
// ========== fim do programa ==============
Esta linha é de comentário, sem nenhum comando ou instrução. Comentários não influenciam
no tamanho do arquivo em linguagem de máquina (HEX) gerado e são muito úteis para melhorar a
manutenibilidade do programa, facilitando modificações e entendimentos futuros sobre o programa
através de anotações. Em linguagem C, comentários podem ser gerados através do uso de duas barras
seguidas (o comentário, neste caso, irá até o final da linha), ou através dos símbolos de /* e */. Neste caso,
barra asterisco inicia o comentário, podendo se estender por quantas linhas for necessário, sendo finalizado
por asterisco barra.

5.7.3 TRANSFERINDO O PROGRAMA HEX

Após a compilação, devemos encontrar o arquivo Hex na mesma pasta onde o arquivo .C está salvo.
Importante salientar que isso só ocorre se a compilação tiver se dado sem ocorrência de erros. Este arquivo
Hex é que deve ser transferido para a memória do microcontrolador. Como já estudado anteriormente, é
necessário o uso de uma ferramenta de hardware e software para transferir o programa.
Usando um programa específico para transferência, transfira o arquivo Hex para o microcontrolador.
Verifique a documentação adequada do sistema de transferência, se necessário. Vamos adotar o hardware
exemplificado na Figura 232

D1
R = 470 ohms LED-RED
RB0/INT 33
RB1 34
RB2 35
RB3/PGM 36
RB4 37
RB5 38
RB6/PGC 39
RB6/PGD 40

RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2 16
RC2/CCP1 17
RC3/SCK/SCL 18
23
24
25
26

19
20
21
22
27
28
29
30
RC4/SDI/SDA
RC5/SDO

RC7/RX/DT

RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
RC6/TX/CK

PROGRAM=PROG1.HEX.
RA2/AN2/VREF-/CVREF

RA5/AN4/SS/C2OUT
RA4/TOCKI/C1OUT
RA3/AN3/VREF+

MCLR/Vpp/THV

PIC 16F877A
OSC2/CLKOUT

RE1/AN6/WR
RE0/AN5/RD
OSC1/CLKIN

10 RE2/AN7/CS
RA0/AN0
RA1/AN1
13

14

9
8
2
3
4
5

1
6

Figura 232 -  Hardware criado em um simulador de circuitos eletrônicos


Fonte: SENAI - RS

Ao executar o programa, você deve observar que o LED conectado ao pino C0 do microcontrolador
ligará, permanecendo ativado por 1 segundo, e posteriormente desligará.
Ele não piscará, pois nosso programa não mandou repetir as instruções, gerando somente uma execução.
Se o microcontrolador for reiniciado, o programa recomeçará, com mais um único pulso no pino C0 do
microcontrolador.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
218

Procure adicionar linhas para realizar outros acionamentos, mudando também os tem-
SAIBA pos, sempre lembrando de compilar e transferir novamente o programa para realizar
MAIS novos testes. Usando o HELP do compilador (tecla F1), tente descobrir e utilizar outras
funções embutidas do compilador.

5.7.4 LAÇO INFINITO

Em programas para microcontroladores, é comum desejamos que um programa nunca pare, pois, na
maioria dos casos, se trata do único programa presente na memória, e se este parar, o funcionamento do
sistema controlado pelo microcontrolador também parará.
No exemplo estudado anteriormente, o programa apresentado (muito simples) realizava o acionamento
de um LED (pondo uma saída digital em nível alto) por um segundo. Para que pisque este LED pisque,
teremos que fazer com que um trecho do programa seja repetido.
Vamos analisar o programa abaixo:

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
output_high(PIN_C1); // PINO C1 para nível alto
delay_ms(1000);
output_low(PIN_C1); // PINO C1 para nível baixo
retorno: // define um rótulo chamado “retorno”
output_high(PIN_C0); // PINO C0 para nível alto
delay_ms(1000); // atraso(delay) de 1000 ms
output_low(PIN_C0); // PINO C0 para nível baixo
delay_ms(1000); // atraso(delay) de 1000 ms
goto retorno; // volta para “retorno”
}

// ========================= fim do programa ==========================

No programa acima, observamos que são controlados dois pinos, o C0 e C1.


C1 é ligado e desligado no início do programa. Posteriormente, um ponto do programa “chamado de retorno”
é criado. Chamamos este tipo de marcação de “rótulo”, que define um local para onde, em algum dado momento,
o programa será desviado.
5 MICROCONTROLADORES
219

Na sequência, o pino C0 é ligado e desligado e, posteriormente, surge a instrução “goto retorno”, que desvia o
fluxo de execução para o rótulo previamente definido (FIGURA 233).
3 RB4 37
RA1/AN1 Este LED ficará piscando
4
RA2/AN2/VREF-/CVREF RB5 38
5 RA3/AN3/VREF+ RB6/PGC 39
6 RA4/TOCKI/C1OUT RB6/PGD 40
7
D1
RA5/AN4/SS/C2OUT
R1
RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2 16 470
8 RE0/AN5/RD
LED - RED Este LED irá LIGAR e
RC2/CCP1 17
9 RE1/AN6/WR DESLIGAR uma vez início
RC3/SCK/SCL 18
10 RE2/AN7/CS 23
D2
RC4/SDI/SDA
R2
RC5/SDO 24
RC6/TX/CK 25 330
1 MCLR/Vpp/THV RC7/RX/DT 26
LED - BLUE
RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28

Figura 233 -  Esquema Elétrico


Fonte: SENAI - RS

Embora esta possa parecer a melhor forma de fazer um trecho de programa repetir, não é a melhor.
Muitos autores abominam o uso do “goto”, pois o comando remete à construção de programas não-
estruturados, permitindo que o programador crie emaranhados difíceis de serem analisados. Surgem,
então, as estruturas de repetição, que são estruturas de controle de fluxo que determinam para onde e o
que o programa deve executar.
Uma estrutura muito usada para criar o laço de repetição infinita é o comando while.

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
output_high(PIN_C1); // PINO C1 para nível alto
delay_ms(1000);
output_low(PIN_C1); // PINO C1 para nível baixo
while(true) // estrutura de repetição incondicional
{
output_high(PIN_C0); // PINO C0 para nível alto
delay_ms(1000); // atraso(delay) de 1000 ms
output_low(PIN_C0); // PINO C0 para nível baixo
delay_ms(1000); // atraso(delay) de 1000 ms
}
}
// ==================== fim do programa =======================
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
220

No programa acima, o trecho que será repetido (em destaque) está contido na estrutura de repetição
while, sem o uso desnecessário de rótulos. O comando while repete as instruções existentes entre suas chaves
enquanto a expressão entre os parênteses for verdadeira. Como, entre os parênteses do while, há a expressão
“true”, que significa “verdadeiro”, o laço não é interrompido, tornando-se um “laço infinito”. O mesmo efeito
pode ser obtido substituindo a linha while (true) por:
while(1)
ou
for (;true;) (este comando veremos adiante)

5.7.5 CUIDADOS COM PONTUAÇÃO E ALINHAMENTO

Observando os exemplos acima, é natural haver um certo desconforto em relação à pontuação: onde
usamos e onde não usamos um ponto e vírgula? E quando teremos que abrir e fechar chaves?
Estas são as dúvidas que vamos tentar esclarecer agora.
As chaves, em C, servem para indicar O início ( { ) e o final ( } ) de um determinado bloco de instruções. E
o que é um bloco de instruções? Bloco de instruções é um agrupamento de linhas que deve ter um sentido
único.
Sem estas sinalizações, um programa pode se tornar ambíguo, ter duplo sentido e, portanto, não pode
ser resolvido por um sistema computacional como linguagem de programação.
Para exemplificar, analise o trecho de descrição narrativa que segue:


ir até a sala
abrir a janela
se estiver chovendo
pegar o guarda-chuva
comprar pão e leite
...

Sabemos que não se trata de linguagem de programação, mas de um esboço de ações relacionadas a
uma condição, expresso em descrição narrativa. Porém, observando o texto acima, duas interpretações
são possíveis:
a) interpretação 1 - comprar pão e leite somente se chover. Neste caso, entendemos que o “se estiver chovendo”
tem efeito em todas as orações que o seguem, como “pegar o guarda-chuva” e “comprar pão e leite”;

b) interpretação 2 - comprar pão e leite, independente se chove ou não. Neste caso, a oração “se estiver chovendo”
está ligada somente à primeira oração que a segue: “pegar o guarda-chuva”. A outra oração deve ser feita inde-
pendente do resultado.

Já vimos que, em um sistema computacional, não pode haver margem para dupla interpretação.
Como resolver isso?
5 MICROCONTROLADORES
221

Vamos ao texto novamente, adicionando algumas marcações de início e fim:


ir até a sala
abrir a janela
se estiver chovendo
início
pegar o guarda-chuva
comprar pão e leite
fim

Com a marcação de início e fim, temos agora uma interpretação facilitada usando o conceito de subprograma:
um pequeno trecho de instruções ligado a alguma instrução ou condição, em forma de bloco e demarcado por
um início e um fim.
O alinhamento com recuos (também chamado de indentação) permite visualizar melhor esta hierarquia,
tornando mais fácil identificar a conexão das instruções e dos blocos.
Na linguagem C, o início e o final de um bloco é delimitado por sinais de chaves, sendo o abrir chaves
({) o sinal de início, e o fechar chaves (}) o sinal de fim. A indentação (alinhamento com recuos) é facultativa
na linguagem C, porém extremamente recomendada. Um programa mal-alinhado fica mais difícil de ser
interpretado e corrigido.
No trecho de programa C que estudamos antes, existe a demarcação de um início e um fim, dada a
função main.
Portanto, todo programa em C, após as necessárias diretivas de compilação (dada pelas linhas com
sustenido, como os #include, #use, #define...), deve ter ao menos uma função principal, com seu início e
fim demarcados.
#...
void main(void)
{
… // linhas da função principal
}
Note que, antes desta demarcação de início, não usamos ponto e vírgula, para não quebrar a conexão
da linha com o bloco de instruções nela contido.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
222

No trecho estudado anteriormente:

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
output_high(PIN_C1); // PINO C1 para nível alto
delay_ms(1000);
output_low(PIN_C1); // PINO C1 para nível baixo
while(true) // estrutura de repetição incondicional
{
output_high(PIN_C0); // PINO C0 para nível alto
delay_ms(1000); // atraso(delay) de 1000 ms
output_low(PIN_C0); // PINO C0 para nível baixo
delay_ms(1000); // atraso(delay) de 1000 ms
}
}

// ================== fim do programa ========================

Note que as chaves são usadas para delimitar o conteúdo dentro da função principal (primeira e
última chave), e um outro bloco delimitado mais interno, que está dentro do while (true). Nas linhas
que antecedem o abrir chaves não há ponto e vírgula, pois isso quebraria a conexão entre a linha e
o bloco de instruções.
Instruções internas aos blocos e caracterizadas por uma expressão ou chamadas a funções devem ser
finalizadas pelo sinal de ponto e vírgula. Caso este seja esquecido, durante a compilação é natural ocorrer
a mensagem de erro “expect ;”, geralmente apontado no próximo caractere de programa existente após o
local onde o sinal deveria estar.
A indentação facilita identificar o bloco interno ao while (true), e ao void main(void), indicando
também que o while (true) está interno ao bloco do void main (void). Lembre-se, no entanto, que
a indentação (alinhamento) não interfere na compilação do programa, e seu objetivo é facilitar a
interpretação por parte do programador.

FIQUE Um programa bem organizado, alinhado e com comentários facilita modificações e


testes, evitando perda de tempo e facilitando o trabalho em equipes, onde mais de
ALERTA um programador deve trabalhar em um mesmo sistema ou programa.

A falta ou a adição desnecessária de um ponto e vírgula pode trazer resultados inesperados na execução
do programa. Caso um ponto e vírgula seja adicionado na linha while(true), a estrutura de repetição será
truncada, fazendo com que o laço de repetição obtido não abranja o conteúdo das chaves, criando o que
chamamos de “laço vazio incondicional”. Em outras palavras, o ponto e vírgula em um while (1) antes do
abrir chaves trava a execução do programa principal.
5 MICROCONTROLADORES
223

5.7.6 COMANDOS PARA ACIONAMENTO DAS SAÍDAS DIGITAIS

Uma saída digital pode ser tratada individualmente ou em grupo. Quando tratada individualmente,
usamos regras para determinar o nível de tensão (alto ou baixo) em cada saída, não interferindo nas demais.
É possível também acessar a porta inteira (PORT), podendo enviar uma informação binária combinada,
fazendo com que todas as saídas da porta sejam modificadas no mesmo momento, economizando
instruções e deixando o programa mais rápido.
Na linguagem C padrão CCS, podemos usar as instruções para manipulação das I/Os diretamente
através de funções embutidas. Estas funções facilitam a vida do programador. Caso elas não existissem,
o procedimento de controle das saídas digitais deveria levar em consideração a programação de
registradores de direção antes de cada acionamento, determinando se o pino que está sendo acessado
deve ter comportamento de entrada ou de saída.
As funções embutidas do compilador CCS para acionamento das saídas digitais são:
output_high(PIN_xx); -> Leva o nível de tensão do pino para nível alto (normalmente 5V)
output_low(PIN_xx); -> Leva o nível de tensão do pino para nível baixo (0V)
output_float(PIN_xx); -> Deixa o pino flutuando, sem tentar manter nível de tensão
Nas instruções citadas acima, substitua a palavra PIN_xx pelo pino correspondente, como, por exemplo:
output_high(PIN_C0);
output_low(PIN_A2);
output_float(PIN_E1);
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
224

Exemplo de uso:

Segue o exemplo de um “semáforo” simples, composto de dois sinaleiros com três cores cada (FIGURA 234).

14 OSC2/CLKOUT

13
6
10 RE2/AN7/CS
1

5
4
3
2
8
9
PIC 16F877A

RE1/AN6/WR
RE0/AN5/RD
MCLR/Vpp/THV

RA5/AN4/SS/C2OUT
RA4/TOCKI/C1OUT
RA3/AN3/VREF+
RA2/AN2/VREF-/CVREF
RA1/AN1
RA0/AN0

OSC1/CLKIN
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC3/SCK/SCL
RC4/SDI/SDA
RC7/RX/DT
RC6/TX/CK

RC2/CCP1
RD7/PSP7
RD6/PSP6
RD5/PSP5
RD4/PSP4
RD3/PSP3
RD2/PSP2
RD1/PSP1
RD0/PSP0

RB3/PGM
RC5/SDO

RB6/PGD
RB6/PGC

RB0/INT
RB5
RB4

RB2
RB1
30
29
28
27
22
21
20
19

26
25
24
23
18
17
16
15

40
39
38
37
36
35
34
33
R6

R5

R4

R3

R2

R1
330

330

330

330

330

330

LED_VERMELHO 1
LED_AMARELO 2

LED_VERMELHO 2

LED_VEDE1

LED_AMARELO 1
LED_VEDE 2

Figura 234 -  Comandos para acionamento das saídas digitais


Fonte: SENAI - RS

Nesta aplicação, acionaremos LEDs devido ao limite de corrente e tensão das saídas do
microcontrolador, mas nada impede que estes sinais sejam amplificados por transistores, acionando
comutadores a relé para ativar e desativar sinaleiros reais.
Do ponto de vista da programação, nossa meta será construir um programa que atenda aos seguintes
requisitos funcionais:
a) nenhum semáforo pode ficar sem uma indicação;

b) nenhum semáforo pode ficar com mais de uma indicação;

c) sempre deve haver ao menos um dos semáforos em vermelho;


5 MICROCONTROLADORES
225

d) o tempo dos semáforos abertos deve ser de 30 segundos, com mais 10 segundos de advertência (luz amarela).

Segue o programa sugerido:

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
output_c(0b00001001); // vermelho nos dois semáforos
delay_ms(10000); // 10 segundos
while(true) //laço de repetição infinito
{
output_c(0b00001100); // abre semáforo 1
delay_ms(30000); // 30 segundos
output_c(0b00001010); // amarelo no semáforo 1 (c3 liga)
delay_ms(10000); // 10 segundos
output_c(0b00100001); // vermelho no semaf.1, e verde no semaf.2
delay_ms(30000); // 30 segundos
output_c(0b00010001); // amarelo no semaf. 2
delay_ms(10000); // 10 segundos
}
}

// ======================== fim do programa ==========================

Observe o uso da função OUTPUT_C. Ela permite enviar uma informação numérica (de um byte)
para o PORTC. Os valores informados entre os parênteses são constantes numéricas.
Quando a instrução output_c(0b00001010) for executada, os pinos C1 e C3 serão postos em nível
alto (5V), enquanto C0, C2, C4, C5, C6 e C7 serão postos em nível baixo (0V). Isso é mais eficiente do
que usar instruções output_high() e output_low() para definir o estado dos pinos, pois esta instrução
causa uma alteração (neste programa) em dois pinos, e seriam necessárias duas instruções para fazer
o papel da função output_c neste contexto.
O valor expresso, que inicia em 0b, está em binário. Se desejar expressar o valor em decimal,
basta não adicionar o prefixo 0b ao valor.
Por exemplo, output_c(10) equivale a output_c(0b00001010), pois 00001010 em binário equivale
a 10 em decimal. Já, se desejar expressar o valor em hexadecimal, adicione o prefixo 0x ao valor.
Exemplo: output_c(0x0A).
As formas de representação podem variar conforme a necessidade, porém evite adicionar zeros a
esquerda ao usar a representação decimal (sem o prefixo). Alguns compiladores interpretam o valor na
base octal, muito pouco utilizada, porém ainda suportada por alguns fabricantes e pelo padrão C ANSI.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
226

5.7.7 COMANDOS PARA LEITURA DAS ENTRADAS DIGITAIS

Entradas digitais geralmente são usadas em combinação com estruturas condicionais ou de repetição,
fazendo com que o programa execute percursos diferentes em função da variação de estado das entradas,
geralmente conectados a sensores ou dispositivos de comunicação.
Para exemplificar o uso, vamos a uma aplicação onde um motor de passo é controlado por um microcontrolador,
gerando movimentos no sentido horário ou anti-horário de acordo com duas entradas digitais conectadas a chaves
tácteis (botões).
Microcontrolador conectado a um motor de passo unipolar e a duas chaves tácteis (FIGURA 235).

1N4007
12V
BoT1

BoT2

5V 5V +12V
TIP 122
1k
1N4007

12V

TIP 122
C0 1k
1N4007

C1 12V
C2
C3
D0
D1
TIP 122
10k 10k 1k
1N4007

12V

TIP 122
1k

Figura 235 -  Controle de motor de passo unipolar


Fonte: SENAI - RS

Observe que o motor de passo em questão é um atuador que possui 4 bobinas. Acionando cada uma
das bobinas em sequência, é possível obter um movimento controlado, gerando um pequeno passo (daí o
nome motor de passo). Como grande vantagem, o motor de passo permite um posicionamento facilitado,
podendo ser controlada também a velocidade através do aumento ou diminuição do tempo de transição
de um para outro passo.
Segue o programa que utiliza as entradas digitais onde estão conectadas as chaves BOT1 e BOT2. Estas
chaves tácteis serão usadas no programa para definir o sentido de rotação do motor (horário ou anti-horário).
5 MICROCONTROLADORES
227

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
output_c(0); // põe todo o PORTC em nível baixo
while(true) // define um rótulo chamado “retorno”
{
if (input(PIN_D0)) // se BOT2, conectado a D0, for acionado
{ // início
output_high(PIN_C0); delay_ms(40); output_low(PIN_C0); // BOBINA 1
output_high(PIN_C1); delay_ms(40); output_low(PIN_C1); // BOBINA 2
output_high(PIN_C2); delay_ms(40); output_low(PIN_C2); // BOBINA 3
output_high(PIN_C3); delay_ms(40); output_low(PIN_C3); // BOBINA 4
} // fim
if (input(PIN_D1)) // se BOT1, conectado a D1, for acionado
{ // início...
output_high(PIN_C3); delay_ms(40); output_low(PIN_C3); // BOBINA 4
output_high(PIN_C2); delay_ms(40); output_low(PIN_C2); // BOBINA 3
output_high(PIN_C1); delay_ms(40); output_low(PIN_C1); // BOBINA 2
output_high(PIN_C0); delay_ms(40); output_low(PIN_C0); // BOBINA 1
} // fim
}
}

// ========================== fim do programa =========================

A estrutura condicional IF (que será estudada de forma mais aprofundada) deve conter, entre
os parênteses que a sucedem, uma condição que pode ser verdadeiro ou falso. No caso, a função
input(...) pode resultar nestes sinais lógicos, podendo ser verdadeiro (caso a entrada em questão
esteja em nível alto) ou falso (caso esteja em nível baixo). Desta forma, podemos usar a função
embutida do compilador CCS chamada input para verificar o estado lógico do pino em questão.
Como já estudado, as chaves que sucedem a linha do IF são usadas para determinar o início e o
final do bloco de instruções que será executado caso o IF tenha uma condição verdadeira.
Da mesma forma que com os comandos de saída digital, existem comandos de entrada digital
que permitem ler um PORT inteiro, retornando os 8 bits possíveis existentes em um PORT.
A instrução
CODIGO = input_d();
Lê todo o PORTD, armazenando o valor lido na variável CODIGO. Esta variável deve ser previamente
declarada, com o tipo INT ou superior. Declaração de variáveis será estudado em seguida.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
228

5.7.8 TIPOS DE DADOS

Embora não seja a principal função dos microcontroladores, o processamento de dados também é
um recurso a ser explorado neste tipo de hardware. Ao manipular informações, contando, acumulando,
calculando e realizando operações lógicas, podemos agregar funcionalidades interessantes aos
equipamentos através de algumas linhas de programação.
Os dados processados consistem em informações binárias armazenadas em uma memória
temporária, conhecida como memória RAM. Porém, esta memória, além de finita, é bastante limitada
quando falamos em microcontroladores.
Enquanto em um computador pessoal existem alguns Gigabytes de memória RAM disponíveis para
o processamento da informação, que hoje em dia é apresentada das mais diferentes formas, como
arquivos multimídia, som, vídeo etc., nos microcontroladores são reservadas algumas centenas (ou
dezenas) de bytes, exigindo um maior cuidado por parte do programador.

Pesquisando sobre a quantidade de memória RAM e ROM disponível em microcontro-


SAIBA ladores da Microchip acessando o site www.microchip.com e pesquisando sobre micro-
MAIS controladores PIC.

É função do programador definir a quantidade de memória que será usada por uma variável, bem
como inicializar (dar um valor inicial) a este espaço de memória.
Saber “declarar” uma variável é importante para utilizar, de forma mais adequada, a memória
disponível. Dependendo do dado a ser armazenado, pode ser alocada uma área maior ou menor de
memória, variando também conforme a forma de representação para o valor armazenado.
Outro fator importante é o escopo da variável. Quando criamos variáveis globais, estas ocupam
a memória durante todo o tempo de execução do programa, mantendo os dados armazenados
enquanto o microcontrolador estiver em modo execução. Já variáveis locais têm um tempo de vida
mais curto, liberando a memória quando a função (sub-rotina) onde esta variável está declarada
deixa de ser executada.
Em um sistema onde precisamos calcular, quantificar, acumular, contar, enfim, processar dados serão
necessárias variáveis, que consistem nas estruturas que armazenarão a informação durante a execução do
programa.
Vejamos a primeira versão do programa criado procurando identificar as variáveis existentes:
5 MICROCONTROLADORES
229

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
int amostras = 0; // declara variável de 8 bits p/ inteiros
long contaparcial = 0; // declara variável de 16 bits p/ inteiros
long contatotal = 0; // declara variável de 16 bits p/ inteiros
while(true) // laço de repetição infinito
{
while(!input(PIN_D0)); // aguarda enquanto não houver sinal em D0
delay_ms(10); // tempo de 10 ms
while(input(PIN_D0)); // aguarda enquanto D0 estiver acionado
delay_ms(10); // tempo de 10 ms
contaparcial ++; // aumenta variável contaparcial
if (contaparcial >= 1000) // se contaparcial for superior ou igual a 1000
{ // início
output_high(PIN_C0); // liga C0 (cilindro de remoção da amostra)
amostras ++; // conta amostra
if (amostras == 5) // se a variável amostras for igual a 5
{ // início
output_high(PIN_E2); // liga E2 (sirene)
amostras = 0; // zera contador de amostras
} // fim
contaparcial = 0; // zera contador parcial
} // fim
else // senão (se contaparcial for inferior a 1000)
{ // início
output_low(PIN_E2); // desliga E2 (sirene)
output_low(PIN_C0); // desliga C0 (cilindro de remoção da amostra)
} // fim
contatotal ++; // contatotal é incrementado uma unidade
}
}

// ========================= fim do programa ==========================

Vamos a um exemplo de programa que utiliza variáveis, iniciando por um estudo de caso:
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
230

CASOS E RELATOS

Uma olaria do interior do Paraná desenvolveu um sistema automatizado para melhorar a


qualidade e a produtividade. Uma esteira transportadora realiza a movimentação de tijolos
produzidos, e processos internos de qualidade determinam que, a cada 1000 tijolos, um deve
ser examinado em testes de qualidade. Como cada lote é constituído de 5000 tijolos, são cinco
amostras por lote.

Evitando confusões relativas a uma possível reprovação de um lote, Mônica, uma técnica em automação
industrial com grande aptidão para sistemas embarcados, desenvolveu um circuito microcontrolado
onde os tijolos são contados, e a cada 1000 peças uma é destacada automaticamente por meio do
acionamento de um cilindro pneumático instalado perpendicularmente ao plano da esteira. A cada 5
amostras coletadas, uma sirene é acionada, informando ao departamento de controle de qualidade que
as amostras podem ser coletadas para teste. Mônica também implementou um sistema de contagem de
tijolos produzidos. Após alguns dias, percebeu-se que o contador não estava funcionando direito. Além
de contagem de tijolos ser perdida quando o sistema era desligado, a contagem não passava de 65535
tijolos. Com o emprego de outro tipo de dados na declaração da variável de contagem, e do uso de uma
técnica de gravação em EEPROM, os problemas foram solucionados.

No exemplo acima existem três variáveis declaradas. Todas foram declaradas dentro da função principal (interno
às chaves de void main (void)) e, portanto, são variáveis locais. Se houvesse outras funções neste programa, elas não
teriam acesso a essas três variáveis.
Quanto ao tipo, foram usados dois tipos de dado diferentes. Vamos analisar linha a linha:
int amostras = 0;
Esta linha declara a variável chamada amostra. A palavra int no início da linha identifica o tipo de dado
da variável. Este tipo de dado consiste em gerar uma variável para armazenar números inteiros no tamanho
padrão que, para microcontroladores PIC da família 16 e 18, é de 8 bits. Portanto, “amostras” é uma variável
inteira de 8 bits, que consegue armazenar números inteiros entre 0 e 255 (valores limites para representação
com 8 bits). Observe também o “= 0”, que identifica que a variável será inicializada com zero.
long contaparcial = 0;
Nesta linha, é declarada uma variável chamada contaparcial. O tipo de dado escolhido é long,
identificando a variável com o dobro do tamanho alocado em relação ao int, portanto de 16 bits, podendo
comportar números inteiros positivos, entre 0 e 65535, lembrando que a possibilidade de combinações
com 16 bits é de 216, ou seja, 65536 combinações.
long contatotal = 0;
5 MICROCONTROLADORES
231

Da mesma forma que na declaração anterior, a variável contatotal será declarada com variável de 16 bits, com
capacidade para números inteiros positivos até 65535. Este era o problema inicial que havia com este contador
e, para estender a capacidade da variável, é sugerido o uso de um tipo de dado mais abrangente, também para
números inteiros, que pode ser feito por uma das linhas que segue:
int32 contatotal = 0; ou long long contatotal = 0;
No CCS, o tipo de dado int32 (ou long long) permite declarar variáveis para armazenamento de números
inteiros de 32 bits. Como 232 = 4.294.967.296, o limite para este tipo de dado dificilmente será alcançado
(FIGURA 236).

int iA, iB;


long IVAR;
00110100 int32 dAUX;
10010010 float fVLR;
10100101
10111101 iA
10101110 int = 8bits. Inteiros de 0 a 255 ou -128 e 127
iB
10101011
10101010
IVAR long = 16bits. Inteiros de 0 a 65535 ou -32768 a 32767
10101011 dAUX int32 = 32bits. Inteiros de 0 a 4.294.967.295 ou
10101001 fVLR -2.147.483.648 a 2.147.483.647
01010101 float = 32bits. Ponto flutuante (valores com virgula). Funciona
10111101
10101010
como notação cientícica. Possui grande abrangência, mas não
10101111 garante precisão.
10101010
10101010

Figura 236 -  Comandos para leitura das saídas digitais 1


Fonte: SENAI - RS

Portanto, observamos que para utilizar as variáveis, antes de tudo precisamos conhecer:
a) os tipos de dados existentes, que definem quanta memória a variável irá ocupar, e como será a informação que
ela irá armazenar;

b) que nomes podem ser dados a estas variáveis;

c) onde podemos declarar as variáveis.

A Tabela 26 demonstra aos tipos de dados que podemos usar, para armazenar valores inteiros e positivos
em um microcontrolador de 8 bits.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
232

Tabela 26: Tipos de dados para armazenar valores


TIPO DE DADO/ QUANTIDADE MENOR MAIOR
NOME ALOCADA EM VALOR VALOR
ALTERNATIVO BITS SUPORTADO SUPORTADO
short 1 0 1
int1
boolean

int 8 0 255
int8
long 16 0 65.535
int16
long long 32 0 4.294.967.295
int32
Fonte: SENAI - RS

Para declarar variáveis que suportem números inteiros negativos, é necessári (no CCS) adicionar um
prefixo na declaração das variávei, como demontrado na Tabela 27.
Tabela 27: Prefixo de declaração das variáveis
TIPO DE DADO/ QUANTIDADE MENOR MAIOR
NOME ALOCADA EM VALOR VALOR
ALTERNATIVO BITS SUPORTADO SUPORTADO
signed int 8 -128 127
signed int8
signed long 16 -32.768 32.767
signed int16
signed long long 32 -2.147.483.648 2.147.483.647
signed int32
Fonte: SENAI - RS

Em alguns casos, existe a necessidade de declarar variáveis que suportem números reais. Devido a sua
natureza discretizada e finita, os sistemas computacionais não podem representar números com infinitas
casas decimais, e usamos estratégias para promover o armazenamento de forma mais eficiente, buscando
melhor equilíbrio entre o espaço de memória ocupada, a precisão da informação representada e a faixa de
representação.
Para representar números muito grandes, costumamos utilizar abreviações ou notação científica.
Por exemplo, uma folha de papel geralmente tem espessura de um décimo de milímetro, ou seja, 1,00 x 10-4
metros; já a distância entre a Lua e a Terra é de aproximadamente 384.405 Km, ou seja, aproximadamente 3,84 x
108 metros. Observe que as informações são muito diferentes. Comparar a espessura de uma folha de papel com
distâncias usadas no espaço aparenta um contraste muito grande para ser representado numericamente usando
a mesma unidade de medida. No entanto, quando expressamos os valores em notação científica, é utilizada uma
quantidade relativamente pequena e muito próxima de dígitos.
Isso também ocorre quando usamos tipos de dados no formato de ponto flutuante. Pontos flutuantes são tipos
de dados compostos similares à “notação científica”, porém com representação na base binária.
5 MICROCONTROLADORES
233

Ao programador, esta representação é totalmente transparente, mas, a exemplo da notação científica, quando
usamos uma variável do tipo “ponto flutuante”, podem ocorrer imprecisões nos valores armazenados, pois parte
menos significativa dos dados é desprezada durante o armazenamento.
Para declarar variáveis deste tipo, usamos o seguinte tipo de dado:
Tipo de dado Quantidade alocada em bits
float 32
Quanto aos limites de um float, são bastante amplos, podendo chegar a dezenas de casas decimais. A
precisão pode variar conforme os valores armazenados. Quando um valor muito grande for representado,
partes menos significativas são eliminadas, causando pequenas alterações. Por exemplo, em uma variável
do tipo float é possível armazenar a espessura em metros de uma folha de papel, e a distância em metros
entre a Terra e a Lua; porém, caso uma seja somada à outra, a informação menos significativa será perdida.
Além dos tipos de dados numéricos, podemos declarar variáveis para uso com caracteres. Neste caso, o
tipo de dados usado é char e permite armazenar em até 8 bits os caracteres, codificados no sistema ASCII.
Tipo de dado Quantidade alocada em bits
char 8
Em certos casos, os tipos de dados podem ser suprimidos, não ao declararmos uma variável, mas ao
identificarmos funções (sub-rotinas).
Uma função pode receber dados entre os parênteses, e também retornar dados ao ser chamada. Porém,
se isso não ocorrer, utilizamos um tipo de dado “vazio”, que não aloca nenhuma memória. Este tipo de dado
é o VOID.
Tipo de dado Quantidade alocada em bits
void 0

5.7.9 NOME DAS VARIÁVEIS

Uma variável deve, obrigatoriamente, ter um nome único. Não podemos usar uma palavra reservada,
como nome de instrução ou de função embutida, para uma variável. O nome da variável também deve ser
uma única palavra, que pode conter letras, números e alguns símbolos, como o “underline” (_), porém o
primeiro caractere da variável não pode ser numérico.
Exemplo de nomes não válidos para variáveis:
a) contador de peças (mais de uma palavra. Sugerido: contador_de_pecas)
b) 123aux (iniciado por número. Sugerido: aux123)
c) main (palavra reservada. Sugerido: principal)
d) peças (uso de símbolo especial – cedilha. Sugerido: pecas)
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
234

5.7.10 LOCAL DA DECLARAÇÃO DE VARIÁVEIS

Variáveis podem ser usadas dentro de uma função, para um cálculo local e temporário durante a execução do
programa. Também podem ser usadas para um armazenamento mais abrangente, com validade durante toda a
execução do programa.
Também podemos usar estas variáveis para trocar dados entre as funções, usando-as para envio de
dados durante a chamada de uma sub-rotina.
Portanto, em um programa C ANSI há três lugares nos quais podemos declarar variáveis. O primeiro
é fora de todas as funções do programa (funções serão vistas em breve). Estas variáveis são chamadas
variáveis globais e podem ser usadas a partir de qualquer lugar no programa. Podemos dizer que, como
elas estão fora de todas as funções, todas as funções as veem.
O segundo lugar é no início de um bloco de código. Estas variáveis são chamadas locais e só têm validade dentro
do bloco no qual são declaradas, isto é, só a função à qual ela pertence sabe da existência desta variável, dentro do
bloco no qual foram declaradas. É importante observar que a maioria dos compiladores exige que a declaração da
variável ocorra no início do bloco da função, não podendo ser feita depois que uma linha de instrução for executada.
Se isso não for respeitado, são exibidos erros de compilação.
O terceiro lugar onde podemos declarar variáveis é na lista de parâmetros de uma função. Apesar de
estas variáveis receberem valores externos, são conhecidas apenas pela função onde são declaradas.
5 MICROCONTROLADORES
235

Segue um pequeno exemplo, com as variáveis em destaque:

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

int total = 100; // declara variável global

void pisca(int qtde) // declara função chamada PISCA com 1 parâmetro


{ // inicio da função
while(qtde > 0) // enquanto qtde for > que 0 ...
{ // início
output_high(PIN_C0); delay_ms(total); // nível alto em C0 e tempo de total ms
output_low(PIN_C0); delay_ms(total); // nível baixo em C0 e tempo de total ms
qtde --; // decrementa qtde
} // fim do while
} // fim da função PISCA

void main(void) // função principal


{ // início da função principal
long aux = 0; // declara variável local, só visível em “main”
while(1) // laço infinito
{ // início do laço infinito
aux ++; // incrementa aux uma unidade
output_high(PIN_D0); delay_ms(100); // nível alto em D0, tempo de 100ms
output_low(PIN_D0); delay_ms(100); // nível baixo em D0, tempo 100ms
if (aux > 1000) // se aux for superior a 1000
{ // início
aux = 0; // aux é zerado
pisca(10); // dispara PISCA passando 10 para qtde
total ++; // aumenta variável global
} // fim do bloco condicional
} // fim do laço infinito
} // fim da função principal
// ========================= fim do programa ============================

No programa acima foram declaradas três variáveis: total, qtde e aux.


A variável total é do tipo int, e foi declarada como global. Suporta números inteiros de 8 bits (0 a 255)
e pode ser vista e manipulada diretamente por qualquer função do programa. No caso deste programa,
tanto a função main como a função pisca a utilizam.
Já a variável aux é local, declarada dentro da função main, e somente esta função pode utilizá-la. Caso
uma referência a esta variável seja feita dentro da função pisca, ou de qualquer outra função que venha a
ser construída, ocorrerão erros durante a compilação.
A variável qtde é um parâmetro da função pisca, e seu comportamento é de uma variável local, existindo
somente enquanto a função estiver sendo executada.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
236

5.7.11 TIPOS DE DADOS COMPLEXOS

Em algumas situações pode ser necessário o uso de várias ocorrências de uma mesma variável. Isso pode
exigir do programador a criação de estruturas de dados mais complexas como, por exemplo, a declaração
de matrizes.
Vamos analisar o uso de uma matriz para o hardware proposto abaixo (FIGURA 237).

U1
13 OSC1/CLKIN RB0/INT 33
R1 330
14 RB1 34
OSC2/CLKOUT
RB2
R2 330
35
2 RB3/PGM 36 R3 330
RA0/AN0
3 RA1/AN1
RB4 37 R4 330
4 RB5 38
RA2/AN2/VREF-/CVREF R5 330
5 RA3/AN3/VREF+ RB6/PGC 39
R6 330
6 RA4/TOCKI/C1OUT RB6/PGD 40
7 RA5/AN4/SS/C2OUT R7 330
RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2 16
8 RE0/AN5/RD
RC2/CCP1 17
9 RE1/AN6/WR 18
RC3/SCK/SCL
10 RE2/AN7/CS RC4/SDI/SDA 23
RC5/SDO 24
RC6/TX/CK 25
1 MCLR/Vpp/THV 26
RC7/RX/DT BOT +

RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
BOT -
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28
RD6/PSP6 29
RD7/PSP7 30
PIC 16F877A
PROGRAM = 7 SEGMENTOS.cof

Figura 237 -  Tipos de dados complexos


Fonte: SENAI - RS

No hardware acima, o microcontrolador controla diretamente um display de 7 segmentos, onde 7 leds


dispostos em segmentos permitem exibir representações numéricas. Para cada número a ser representado,
deve ser realizada uma combinação certa de acionamentos (no PORTC).
Segue um programa que utiliza uma matriz de 10 posições, onde ficam armazenadas as combinações
para cada um dos 10 possíveis dígitos (0 a 9) que possam existir para este display.
5 MICROCONTROLADORES
237

A matriz é declarada na função “digito”, e seus valores são expressos em binário.


#include <16f877.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // define valor de clock para delays

void digito(int x) // declara função chamada DIGITO com 1 parâmetro


{ // inicio da função
/* abaixo, declaração de uma matriz de 10 posições (0 a 9), com máscaras
binárias que definem qual segmento do display deve ser ligado para cada nro */
int mascara[10]={0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,
0b01101101, 0b01111100, 0b00000111, 0b01111111, 0b01100111};
output_c(mascara[x]); // joga valor da matriz na posição x em PORTC
} // fim da função DIGITO

void main(void) // função principal


{ // início da função principal
signed int nro = 0; // declara variável local, só visível em “main”
while(1) // laço infinito
{ // início do laço infinito
if (input(PIN_D0)) // se D0 (BOT+) estiver em nível alto...
{ // início
nro ++; // incrementa nro
delay_ms(300); // delay de 300 ms
} // fim bloco condicional
if (input(PIN_D1)) // se D1 (BOT-) estiver em nível baixo...
{ // início
nro --; // incrementa nro
delay_ms(300); // delay de 300 ms
} // fim bloco condicional
if (nro < 0) nro = 9; // se nro for menor que 0, atribui 9 a nro
if (nro > 9) nro = 0; // se nro for maior que 9, atribui 0 a nro
digito(nro); // chama função digito, passando nro como parâmetro
} // fim do laço infinito
} // fim da função principal

// ========== fim do programa ==============

Neste programa, a variável mascara (máscara) é dada por um int (8 bits), porém a indicação entre
os colchetes identifica a quantidade de repetições em memória desta variável. É como se houvesse 10
variáveis com o mesmo nome. Isso é realizado pela linha:
int mascara[10];
A inicialização também é realizada durante a declaração da variável, dando-lhe um valor inicial. Isso é
obtido usando o símbolo de atribuição, e com os valores de inicialização expressos entre sinais de chaves, e
separados por vírgula. Como são 10 posições na matriz “mascara” (máscara), são 10 valores de inicialização.
int mascara[10]={0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,

0b01101101, 0b01111100, 0b00000111, 0b01111111, 0b01100111};

Os valores foram expressos em binário, para facilitar a implementação. Cada bit definirá o estado do dígito de 7
segmentos em sua ocorrência. Por exemplo, nas ocorrências 0, 2, 3, 5, 7, 8 e 9, o bit menos significativo será ligado.
Este bit será relacionado a um dos segmentos comuns que compõem a representação destes números.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
238

No programa principal, podemos observar que, toda vez que o botão conectado ao pino D0 for
pressionado, o valor exibido no display será incrementado. D1 é usado para decrementar. Testes foram
adicionados para evitar que os valores máximo e mínimo sejam ultrapassados, o que poderia gerar
inconsistências e erros de funcionamento.
Observe que “mascara” (máscara) não é uma variável, mas uma sequência de 10 variáveis, indexadas
por um valor constante ou variável entre colchetes; mascara[0] (máscara) contém um valor, mascara[1]
(máscara) pode conter outro, e assim sucessivamente. No exemplo acima, uma variável é utilizada entre os
colchetes, e isso permite que o programa mude sua ocorrência e facilite o uso de outras posições.
Geralmente, estruturas de dados mais complexas não são usuais em microcontroladores de 8 bits, pois
sua memória limitada não favorece seu uso.

Faça uma busca na internet sobre o uso de matrizes bidimensionais e estruturas


SAIBA (structs) em linguagem C. Pesquise sobre o uso de ponteiros em variáveis e matrizes,
MAIS suas vantagens e desvantagens.

5.7.12 OPERADORES

Na linguagem C, os operadores são os símbolos usados para realizar operações lógicas e aritméticas,
estabelecendo também a prioridade e o formato destas operações. Quando um programa realiza uma
operação aritmética, ocorre uma série de procedimentos, desde a definição da precedência (que define
qual parte da expressão será feita primeiro) até a forma com que os dados serão manipulados em memória,
consumindo mais ou menos bits.
Iniciaremos o estudo deste tópico estudando os operadores separados em categorias, com alguns
exemplos de uso (TABELA 28).
5 MICROCONTROLADORES
239

Tabela 28: Operadores


CATEGORIA OPERADOR AÇÃO EXEMPLOS OBS.

= Atribuição int x = 5; A atribuição é simbolizada por um único sinal


de igual, e indica que tudo o que está a sua
(recebe) x = 20;
Atribuição e prioridade

direita será computado, resolvido e a solução


a = x + y / 2; obtida será armazenada na área de memória
(variável) indicada a sua esquerda. Recomen-
x=y=z=105;
damos ler este sinal como RECEBE. Portanto,
leia a linha var2 = 20 como var2 recebe 20.
() Prioridade x = 20 * (y Em uma expressão, os parênteses indicam
o que será executado prioritariamente. No
+ 1);
exemplo citado, caso não fossem utilizados, a
multiplicação ocorreria antes da soma.
+ Soma x = a + b; Retorna a soma de dois elementos.
- Subtra- x = a – b; Subtração ou inversão de sinal.
ção ou x = -x;
Inversão
de sinal
* Multiplica- x = a * b; Multiplicação. Assim como a divisão, tem
prioridade sobre a soma e a subtração.
ção

/ Divisão x = a / b; Divisão. Quando feita com valores inteiros, o


resultado também é um inteiro. Por exemplo,
20 dividido por 6 é 3 (valor inteiro). Não há
arredondamento. O valor é simplesmente
truncado para seu valor inteiro. Quando o
operador é utilizado com valores reais (float),
a divisão é real.
% Resto de x = a % b; Somente para valores inteiros, retorna o
Aritméticos

resto da divisão do primeiro termo pelo


divisão
segundo. Por exemplo, o resto da divisão
(somente de 20 por 6 é 2.
inteiros)
++ Incremen- x ++; Operador que atua em um único operan-
do. Ao ser escrito ao lado direito de uma
to y = ++ x * 5;
variável, esta será incrementada ao final da
linha de instrução, aumentando seu valor
em uma unidade. Ao ser escrito ao lado
esquerdo de uma variável, esta terá seu
valor incrementado em uma unidade antes
de ser utilizada. Este operador se restringe
a tipos de dados inteiros, como short, int,
long e long long (int32).
-- Decre- x --; Operador que atua em um único operando,
similar ao ++, porém decrementando a variá-
mento y = -- x/ 9;
vel no lugar de incrementá-la. O uso antes ou
depois da variável a ser decrementada (dimi-
nuida em uma unidade) identifica que o valor
da variável será diminuido antes ou depois de
ser utilizada na expressão. Operador restrito
ao uso com tipos de dados inteiros, como int,
long, shor, long long.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
240

(Continua)
CATEGORIA OPERADOR AÇÃO EXEMPLOS OBS.

> Maior que if (a > b) ...; Assim como outros operadores relacionais,
retorna verdadeiro (1) ou falso (0). Retorna
x = a > b;
(1) se o primeiro operando for maior que o
segundo, e (0) caso contrário.
>= Maior ou if (a >= b) ...; Retorna (1) se o primeiro operando for
maior ou igual ao segundo. Caso contrário,
igual a x = a >= b;
retorna (0).
< Menor if (a < b) ...; Retorna (1) se o primeiro operando for menor
Relacionais

que o segundo, e (0) caso contrário.


que x = a < b;
<= Menor ou if (a <= b) ...; Retorna (1) se o primeiro operando for
menor ou igual ao segundo. Caso contrário,
igual a x = a <= b;
retorna (0).
== Igual if (a == b) ...; Retorna (1) se o primeiro operando for igual
ao segundo, e (0) se for diferente.
x = a == b;
!= Diferente if (a != b) ...; Retorna (1) se o primeiro operando for dife-
rente que o segundo, e (0) se for igual.
x = a != b;
&& E (AND) if ((a > b) && Retorna verdadeiro (1) somente se o primeiro
operando for verdadeiro e o segundo ope-
(a > c)) ...;
rando também for verdadeiro.
x = (a && c);
|| OU (OR) if ((a > b) || (a Retorna verdadeiro (1) se pelo menos um dos
operandos for verdadeiro. Se ambos forem
Lógicos

> c)) ...;


falso (0), o valor retornado será falso (0).
x = (a || c);
! NÃO if Retorna o valor lógico invertido. O operador
NÃO inverte o valor lógico em um teste. Se o
(NOT) (!input(PIN_
operando for diferente de zero (verdadeiro),
D3))...; o operador retorna falso. Se for igual a zero
(falso), o operador retorna verdadeiro.
x = !a;
& AND (E) x = a & b; Operação binária E entre cada bit de dois
números binários. Se o bit n de ambos os
operandos estiver em 1, o bit n do resultado
também estará ligado. 01011010 & 10010110
= 00010010 Este operador pode ser útil
quando desejamos manipular bits de um
byte. Exemplo: para zerar somente os três
bits menos significativos de um byte, basta
aplicar: x = x & 0b11111000
Bit a Bit

| OR (OU) x = a | b; Operação binária OU entre os bits de dois


números binários. Se o bit n do primeiro valor,
ou do segundo valor, ou de ambos estiver
ligado, o bit n do resultado também estará
ligado. 01011010 | 10010110 = 11011110 Este
operador pode ser útil quando desejamos
manipular bits de um byte. Exemplo: para ati-
var somente os quatro bits mais significativos
de um byte, basta utilizar da seguinte forma:
x = x | 0b11110000
5 MICROCONTROLADORES
241

(Conclusão)
CATEGORIA OPERADOR AÇÃO EXEMPLOS OBS.

^ XOR (OU x = a ^ b; Operação binária OU EXCLUSIVO entre os


bits de dois números binários. Se o bit n do
exclusi-
primeiro valor estiver ligado e o bit n do
vo) segundo valor desligado, ou se o bit n do pri-
meiro valor estiver desligado e o do segundo
valor ligado, o bit n do resultado estará liga-
do. 01011010 ^ 10010110 = 11001100 Este
operador pode ser utilizado para inverter o
valor de alguns bits de um byte, como no
exemplo que segue: x = x ^ 0b11110000 //
somente os quatro bits mais significativos
serão invertidos.
~ NOT x = ~a; Inverte o valor de todos os bits.~ 01100101
= 10011010 x = ~x equivale a x = x ^
Bit a Bit

(NÃO)
0b11111111.
>> RIGHT x = a >> 1; Desloca os bits para a direita, um determina-
SHIFT do número de casas. Útil para realiar rotações
x = a >> b;
(Deslo- binárias em PORTs conectados a dispositivos
camento que precisam ser acionados em sequência,
de bits como motores de passo. 11000101 >> 1 =
para 01100010 11000101 >> 2 = 00110001
direita)
<< LEFT x = a << 1; Desloca os bits para a esquerda, um deter-
SHIFT minado número de casas. Da mesma forma
x = a << 2;
(Deslo- que o RIGHT SHIFT, o LEFT SHIFT pode ser
camento útil para rotações binárias em acionamentos
de bits realizados sequencialmente, como moto-
para es- res de passo. 11000101 << 1 = 10001010
querda) 11000101 << 2 = 00010100

Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
242

Operadores avançados

Na forma contracta, alguns operadores podem otimizar a execução do programa e o consumo de memória,
gerando código HEX um pouco mais eficiente, variando conforme otimizações de alguns compiladores.

O uso é realizado antecipando o operador para antes do sinal de atribuição e suprimindo o primeiro
operador, que deve ser o mesmo da variável de destino (TABELA 29).
Tabela 29: Operadores avançados

+= Incremento x += 10; O exemplo equivale a x = x + 10;


-= Decremento x -= 10; O exemplo equivale a x = x – 10;
*= Produto x *= 10; O exemplo equivale a x = x * 10;
/= Divisão x /= 10; O exemplo equivale a x = x / 10;
%= Resto da divisão x %= 10; Equivale a x = x % 10;
<<= Rotação esquerda x <<= 1; Equivale a x = x << 1;
>>= Rotação direita x >>= 1; Equivale a x = x >> 1;
Fonte: SENAI - RS

Lembramos que os operadores supracitados são da linguagem C, e não do microcontrolador. Operadores


como multiplicação e divisão são implementados através de repetições de somas e subtrações, gerando
mais de uma instrução em linguagem de máquina. Embora isso seja transparente ao programador, é
importante lembrar que realizar operações com tipos de dados maiores, como long ou float, pode consumir
muito mais instruções do que operações mais simples com tipos de dados mais compactos. Portanto, evite
desperdiçar memória e ciclos de processamento gerando programas que sejam o mais eficientes possível.
Por exemplo, se for necessário armazenar a informação da altura de uma pessoa, um programador pode
optar por um tipo de dado float (32 bits), armazenando a altura em metros, porém consumindo muitos
ciclos de processamento nas expressões que envolvem esta variável, ou pode optar por armazenar a altura
em centímetros, utilizando um int (8 bits), e deixar o código muito mais eficiente.
Outro fator importante é observar a aplicação correta dos operadores. Um operador que não existe (por
exemplo, uso do símbolo <> para o diferente, gera um erro de compilação. Porém, o uso de um operador
válido, porém inadequado, não gera tal erro de compilação, e o efeito muitas vezes só é percebido durante
a execução do programa. Se uma etapa de testes não identificar o erro, alguns programas podem ser
implantados e utilizados com a falha, conhecida por “bug” de programação.
A seguir, falaremos sobre os principais problemas enfrentados com o uso dos operadores.

Uso inadequado do operador de comparação e atribuição.


if (x = 10)
{
...
}
5 MICROCONTROLADORES
243

o correto seria:

if (x == 10)
{
...
}

O problema no trecho de programa acima está na utilização do operador de atribuição (=) no lugar do operador de
comparação (==). Esta linha de código é válida e, portanto, não gera erro de compilação, porém deve gerar um efeito
totalmente diferente do desejado. Como esta operação usando o sinal de atribuição (=), a variável x receberá o valor de
10, e como 10 é diferente de zero, é considerado um valor lógico verdadeiro, fazendo com que as instruções contidas no
IF sejam sempre executadas, independente do valor inicial da variável x. Portanto, neste caso, além de mudar o valor da
variável para 10, o bloco de instruções sempre será executado, independente do valor inicial da variável.

Uso inadequado de tipos de dados

... // na declaração das variávies:


long A;
int B, X;
… // no meio do programa, após algumas instruções
… // modificarem os valores de A e B :
X = A * B;

No trecho de programa acima, uma operação de multiplicação é efetuada entre duas variáveis e o
resultado armazenado em uma varíavel (chamada X) do tipo int É importante lembrar que um int define
uma variável de 8 bits em compiladores para microcontroladores com esta largura de processamento,
e, portanto, podem armazenar valores inteiros positivos entre 0 e 255. O resultado da expressão de
multiplicação pode gerar um valor superior a 255, e neste caso o programador deve estar atento, pois,
se esta situação ocorrer, haverá estouro na capacidade da variável (conhecido pelo termo overflow),
podendo ocorrer efeitos indesejáveis, já que este tipo de situação não é previsto pelo compilador como
um erro. Se isso ocorrer, o valor que a variável X armazenará é a parte binária menos significativa resultante.
Por exemplo, digamos que o valor gerado pela expressão de multiplicação seja 300. Em binário, 300 é
representado por 100101100 (são necessários 9 bits). Neste caso, a partir do oitavo bit mais significativo,
os valores serão truncados. A variável conterá então o valor 00101100 em seus 8 bits que, traduzidos para
decimal, resultam em 44, valor muito diferente dos 300 iniciais.
Máquina de cálculo inadequada

… // na declaração das variávies:


long X;
int A, B;
… // no meio do programa, após algumas instruções
… // modificarem os valores de A e B:
X = A * B;
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
244

A princípio, parece que para os trechos de programa acima não haverá nenhum problema. As variáveis A e B são
inteiras de 8 bits, e a variável X, de 16 bits, pode comportar o valor máximo gerado pela expressão de multiplicação,
não incorrendo em estouro (overflow). Porém, um detalhe característico da linguagem C (padrão ANSI) é realizar
cálculos da forma mais eficiente possível, usando áreas temporárias de memória para as operações e instruções de
cálculo diferentes e adequadas para cada realidade.
Se a operação envolver somente variáveis do tipo int, a “máquina de cálculo” escolhida para a operação
durante a execução do programa também será adequada para ints, e o valor resultante em áreas temporárias
de armazenamento também será um int, podendo ocorrer overflow nesta área temporária. Mesmo que
a variável de destino seja um tipo de dado maior, o valor que ela receberá vem desta área de memória
temporária, e portanto, o valor pode vir truncado.

Para evitá-lo, podemos utilizar modeladores, que são formas de especificar o comportamento de uma
variável em uma expressão.
Na Figura 238, as variáveis A e B são variáveis do tipo int, e a área temporária, onde o produto será armazenado
temporariamente, também tem comportamento de um INT. Um modelador pode ser usado para mudar o
comportamento de uma das variáveis (ou das duas), fazendo com que a expressão tenha tipos de dados mais
complexos (long, int32, float...) e desta forma o cálculo seja feito usando áreas temporárias mais complexas, capazes
de manter o dado calculado até ser armazenado na variável de destino.

variáveis do
variável do tipo INT
tipo LONG 8bits
16bits X = A * B;

área temporária,
X= 01011010
de 8bits

Figura 238 -  Máquina de cálculo inadequada


Fonte: SENAI - RS

Mas na Figura 239, a presença de um modelador (também conhecido por “casting”) faz com que a
variável A, embora sendo um INT, se comporte como um LONG na expressão, forçando o programa
a gerar uma área de cálculo temporária de 16 bits, capaz de comportar o resultado da expressão.

modelador faz com que a variável se


comporte como LONG durante a resolução
variáveis do
variável do tipo INT
tipo LONG
16bits X = (long)A * B; 8bits

área temporária,
X= 0101101001011010
de 16bits

Figura 239 -  Máquina de cálculo inadequada 1


Fonte: SENAI - RS
5 MICROCONTROLADORES
245

Outros exemplos de uso de modeladores (casting):


float VLR; // vamos supor a declaração de VLR, do tipo FLOAT (números reais)
int A; // e uma variáveis INT de 8 bits, chamadas A
...
A = 7; // em algum momento do programa, A é atribuído com o valor numérico 7
...
VLR = A / 2; // em outro ponto do programa ocorre esta operação.
Embora VLR suporte números reais, admitindo valores com vírgula, a expressão é realizada entre A (um INT de
8 bits) e 2 (uma constante numérica inteira também representável em 8 bits). Desta forma, o compilador escolherá
implementar a máquina de cálculo de inteiros de 8 bits. O resultado da divisão inteira de 7 (valor de A) por 2 será: 3.
Isso mesmo... não será 3,5 porque a divisão que está sendo realizada é uma divisão inteira.
Se a expressão fosse, VLR = (float)A / 2; o resultado seria outro, pois a variável A, embora sendo um INT,
se comportará como um float, fazendo com que o compilador implemente uma estratégia de cálculo que
considere valores com vírgula.
VLR = A / 2.0;
Esta é outra forma de resolver o problema acima, pois o valor 2.0 determina uma constante do tipo
float, devido ao ponto. Basta um dos operadores da expressão ser de um tipo de dado float para que o
compilador escolha um mecanismo de cálculo adequado.

FIQUE O uso de modeladores permite ao operador definir comportamentos distintos às variá-


veis durante a execução. Evite declarar variáveis com tipos de dados muito complexos
ALERTA ou que consumam mais memória do que o necessário.

5.7.13 PARADIGMAS DE PROGRAMAÇÃO

Podemos definir que programar é estabelecer um conjunto de regras, que serão executadas
por um equipamento para a obtenção de um determinado resultado.
Existem, porém, várias formas de fazê-lo. Não estamos falando das diversas linguagens
existentes, e sim de algo muito mais abrangente: paradigmas de programação.
Um paradigma de programação fornece e determina a forma como o programador vê seu
programa em relação a sua execução. No paradigma de programação orientada a objeto, o
programador deve manter o foco nos objetos, que são os elementos controlados pelo programa.
Objetos são coleções de dados e rotinas agrupadas sob um mesmo aspecto, facilitando a abstração
para a criação de programas de grande complexidade, porém com alto nível de organização. Já a
programação estruturada entende que as estruturas de controle de fluxo determinarão a sequência
de ações a serem realizadas, uma a uma.
Em linguagem ladder (PCs), por exemplo, o programador estabelece uma relação entre as entradas
(sensores) e as saídas (atuadores), combinando as funções internas (blocos lógicos) para determinar o
funcionamento do programa. A ordem em que as ligações ocorrem não são o principal foco da programação,
e sim como elas são interligadas.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
246

Pesquise sobre compiladores ladder para microcontroladores na internet. Compare


SAIBA trechos de programas escritos em ladder com programas escritos em linguagem C, e
MAIS aponte vantagens e desvantagens de cada linguagem.

No paradigma de programação estruturada, o programador deve observar, com muita atenção,


a ordem em que as instruções são dadas. Esta ordem, junto às estruturas de repetição e decisão,
determina o fluxo de execução do programa.

5.7.14 ESTRUTURAS DE CONTROLE DE FLUXO

Na programação estruturada, o fluxo de execução das instruções é determinado por sua ordem. Por
exemplo, no trecho de programa a seguir.

...
output_high(PIN_C2); // C2 em nível alto
delay_ms(1000); // tempo de 1 segundo
output_low(PIN_C2); // C2 em nível baixo
...

Podemos perceber que as linhas serão executadas em sequência. Inicialmente, o pino C2 será definido
para nível alto (5 V), após o programa ficará “parado” por um segundo (devido à instrução delay_ms), e, em
seguida, o pino C2 será definido para nível baixo (0V). Se trocarmos a ordem das linhas, o efeito será diferente.
Para controlar o fluxo de execução do programa, o programador deve definir o caminho por onde
as instruções irão passar, determinando também as regras que definem, durante a execução, se um
programa deve seguir por um ou por outro caminho.
Fluxogramas são usados para representar estes caminhos e os pontos de bifurcação e convergência.
Estes diagramas são utilizados para o estudo lógico dos procedimentos que devem ser seguidos tanto por
processos mais abrangentes quanto em pequenos programas computacionais (FIGURA 240).

inicio

obter
temperatura

SIM ligar
temperatura
ventilação
>45ºC?
NÃO
temperatura SIM ligar
<40ºC? aquecimento
NÃO
desligar
ventilação

desligar
aquecimento

Figura 240 -  Fluxograma


Fonte: SENAI - RS
5 MICROCONTROLADORES
247

Fluxogramas são diagramas muito amplos e difíceis de serem construídos devido a sua característica gráfica,
porém facilitam a interpretação e a visualização do fluxo de execução. Para representar o fluxo de execução de forma
textual, são necessárias algumas regras e instruções de controle de fluxo, muito comuns em todas as linguagens.

5.7.15 GOTO (VÁ PARA...)

Sintaxe:
goto nomerotulo;
Onde nomerotulo é um nome único que identifica um rótulo, ou seja, um ponto único do programa.
Este nome (rótulo) deve ser identificado no programa através do nome, seguido por “dois pontos”.
Na linguagem C, a instrução de desvio incondicional goto pode realizar desvios incondicionais, fazendo
com que o programa tenha sua sequência de execução interrompida.
Segue um exemplo de um trecho de programa:

main()
{
volta: output_high(pin_C0);
delay_ms(1000);
output_low(pin_C0);
delay_ms(1000);
goto volta;
}

Embora abominado pelos seguidores mais fiéis da programação estruturada, o goto permite realizar
desvios fáceis em um programa escrito em linguagem C. Associado a estruturas condicionais, permite
também a criação de desvios condicionais, como abaixo representado:

main()
{
int aux = 0;
volta: output_high(pin_C0);
delay_ms(1000);
output_low(pin_C0);
delay_ms(1000);
aux ++;
if (aux == 10) goto segue;
goto volta;
segue: output_high(PIN_C1);
delay_ms(100);
output_low(PIN_C1);
aux = 0;
goto volta;
}
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
248

Observe que, no programa acima, uma condição (IF) está associada a uma instrução de desvio
incondicional (goto), gerando o comportamento de desvio condicional. O “goto segue” só será executado
caso a variável “aux” atinja o valor equivalente a 10.

5.7.16 IF (CONDIÇÃO SE...)

Sintaxe:

if (condição)
{
instruções...
}
else
{
instruções...
}
if (condição)
{
instruções …
}
if (condição) instrução;

A estrutura condicional construída por um IF pode ser apresentada de duas formas distintas: com e sem
a contracondição else.
If, em língua inglesa, significa se. else, por sua vez, significa senão.
Para todo senão deve haver um se, porém nem sempre para todo se há um senão.
Lembre também que é possível suprimir as chaves, substituindo todo o bloco de instruções que seria
por elas delimitado por uma única instrução.
Largamente usada na programação, IF é a estrutura condicional mais importante em um programa.
Usamos IFs para criar pontos de desvio em um programa, geralmente avaliando expressões, variáveis e
sinais de entrada, tanto digitais quanto analógicos.
Seguem trechos de programa com IFs válidos:

if (var1 > 10)
{
output_high(PIN_C0);
output_low(PIN_C7);
var2 = 10;
}
var1 ++;

5 MICROCONTROLADORES
249

No trecho anterior, um IF simples, com um bloco de instruções. A expressão utilizada é a comparação


de uma variável, e o trecho de programa entre as chaves do IF só será executado quando o resultado da
expressão for verdadeiro, ou seja, quando o valor de var1 for superior a 10. A linha que segue o fechar chaves
do IF será executada, independente da condição, pois está fora da abrangência da estrutura condicional.


if (var1 > 10 && var2 < 40)
{
output_low(PIN_C1);
var2 = 50;
}
else
{
output_high(PIN_C1);
var2 –;
}

Para o trecho anterior, a expressão (em destaque) será válida quando o valor de VAR1 for maior que 10
e o valor de VAR2 for menor que 40. Caso a condição seja satisfeita, será executado o primeiro bloco de
instruções, delimitados pelas chaves logo após a linha do IF. Caso a expressão resulte em valor lógico falso,
o else será executado, com o fluxo de execução pulando da linha do IF para as instruções contidas no bloco
de instruções contidos após o else.


if (input(PIN_A1) == 0)
output_high(PIN_C0);
X ++;

O teste acima está associado a uma única instrução e, portanto, as chaves puderam ser suprimidas.
Observe que a única instrução ligada à condição está recuada (indentação), dada pela linha que põe o pino
C0 em nível alto. A linha que incrementa a variável X (X++) será executada independente do resultado do IF.

if (input(PIN_A1))
output_high(PIN_C0);
else
{
output_low(PIN_C0);
delay_ms(100);
var1 ++;
}

No teste anterior, as chaves do IF foram suprimidas devido ao uso de uma única instrução. No else, devido ao
uso de mais de uma instrução, as chaves são necessárias.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
250

São comuns os erros de programação onde programadores pouco experientes inserem “ponto e
vírgula” separando a condição (IF) da ação a ser executada (instruções). Neste caso, podem ocorrer erros
de compilação (casos em que um else é utilizado), ou erros de execução (não há erro de compilação, mas o
programa não funciona adequadamente).

FIQUE Não adicione o sinal de ponto e vírgula após o fechar parênteses da condição do IF.
ALERTA Isso trunca a instrução, quebrando a conexão entre ela e a condição que segue.

5.7.17 SWITCH / CASE (ESCOLHA)

Switch em inglês significa “escolha”. Assim como o if - else, o switch é utilizado em estruturas de decisão.
Este recurso pode facilmente substituir uma “cadeia” de if´s encadeados (aninhados), o que resulta em
um código mais limpo e de fácil entendimento. O switch é próprio para testar uma única variável inteira em
relação a diversos valores.
A seguir, veja a forma geral (sintaxe) deste comando:

switch (variável)
{
case constante_1: linhas de programa ...;
break;
case constante_2: linhas de programa ...;
break;
.
.
.
case constante_n: linhas de programa ...;
break;
default : linhas de programa ...;
}

A estrutura switch estabelecerá uma comparação entre uma variável e as constantes que
aparecem depois da palavra “case”. Após a utilização do comando switch (variável), devemos
utilizar delimitadores (chaves) para melhor organizar o bloco de instruções que segue. Entre as
chaves, utilizamos o comando case (constante) para identificar o valor a ser comparado com a
variável. Caso a expressão constante seja igual ao valor da variável anteriormente referenciada,
será executada a operação descrita após o sinal de dois pontos (:).
Observe, no entanto, que, se uma condição for satisfeita, todas as declarações abaixo também serão
executadas; ou seja, se a condição satisfeita para um caso (case), os “cases” subsequentes também serão
executados. Para interromper o switch, neste caso, devemos utilizar o comando break, fazendo com que
o fluxo de execução seja desviado para o término (fechar chaves) do bloco de instruções do switch.
5 MICROCONTROLADORES
251

Se não desejamos interromper a execução, o break pode ser suprimido. Devemos, no entanto, observar
que, após um case ser executado, todas as condições restantes também serão executadas até que seja
encontrado um break, ou até que o bloco de instruções do switch seja finalizado.
A opção default permite que um determinado bloco seja executado no caso de nenhuma condição
anterior ter sido executada.
Na Figura 241, veja um exemplo de uso do comando em um programa que utiliza o switch para o
hardware.

U1
13 OSC1/CLKIN RB0/INT 33
R1
14 RB1 34
OSC2/CLKOUT
RB2 35 330
2 RB3/PGM 36
3
RA0/AN0
RB4 37 R2
RA1/AN1
5V C. C. 4 RB5 38
RA2/AN2/VREF-/CVREF
39
330
5 RA3/AN3/VREF+ RB6/PGC
6 RA4/TOCKI/C1OUT RB6/PGD 40
R3
7 RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI 15 330
RC1/T1OSI/CCP2 16
8 RE0/AN5/RD
9 RE1/AN6/WR
RC2/CCP1 17
R4
RC3/SCK/SCL 18
10 RE2/AN7/CS RC4/SDI/SDA 23 330
RC5/SDO 24
RC6/TX/CK 25 R5
1 MCLR/Vpp/THV 26
RC7/RX/DT
330
RD0/PSP0 19
RD1/PSP1 20 R6
RD2/PSP2 21
RD3/PSP3 22 330
RD4/PSP4 27
RD5/PSP5 28 R7
RD6/PSP6 29
RD7/PSP7 30 330
PIC 16F877A
PROGRAM = 7 SEGMENTOS.cof R8
BOT - 330

R10
10K

R9
BOT +
10K
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
252

Figura 241 -  Hardware


Fonte: SENAI - RS

O hardware controlado pelo programa é dado por um microcontrolador conectado a 8 sinalizadores


LED e a duas chaves tácteis que serão usadas para mudar o padrão de acionamentos dos LEDS.

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void)
{
int menu = 0; // declara variável de 8 bits
short flag = 1; // declara variável de 1 bit
while(true) // laço infinito
{
if (input(PIN_D0) && flag) // se BOT + for pressionado ...
{
menu ++; // incrementa variável
flag = 0; // registra que já processou
}
if (input(PIN_D1) && flag) // se BOT - for pressionado ...
{
menu --; // decrementa variável
flag = 0; // registra que já processou
}
if (!input(PIN_D1) && !input(PIN_D0))
flag = 1; // caso nenhum botão pressionado, reseta flag
switch(menu) // ESCOLHA com base na variável MENU
{
case 0 : menu = 6; // caso = 0, atribui valor máximo (6)
break; // e interrompe o switch
case 1 : output_c(0b00000000); // caso = 1, zera todo portc
break; // e vai para final do switch
case 2 : output_c(0b10000001); // caso = 2, habilita + e - significativos
break; // e vai para final do switch
case 3 : output_c(0b11111111); // caso = 3, habilita todo PORTC
break; // e vai para final do switch
case 4 : output_c(0b11100111); // caso = 4, habilita 6 bits de PORTC
break; // e vai para final do switch
case 5 : output_c(0b01010101); // caso = 5, habilita bits impares
delay_ms(300); // e realiza parada de 300 ms
case 6 : output_c(0b10101010); // caso = 5 ou = 6, habilita bits pares
break; // e vai para final do switch
default: menu = 1; // caso seja qualquer outro valor, atribui 1
}
delay_ms(300); // tempo
output_c(0b00000000); // põe todo PORTC em nível baixo
delay_ms(300); // tempo
}
}
5 MICROCONTROLADORES
253

No exemplo acima, a estrutura condicional definida pelo switch / case está em destaque. Atente para
o uso do case que define o ponto de entrada em função do valor da variável, e para o uso do break (não
usado em todos os cases) que desvia o fluxo de execução para o final (fechar chaves) do switch. O uso do
rótulo default dentro do switch permite que o fluxo de execução seja desviado para esta linha se nenhuma
situação anterior tiver sido atendida.

5.7.18 WHILE – ESTRUTURA DE REPETIÇÃO

A palavra while significa “enquanto”. A seguir, veja a sintaxe dessa palavra na linguagem C.


while (condição)
{
instruções ...
}

While é uma instrução responsável por repetição, sendo bastante versátil. O teste que garante que cada
repetição das instruções será executado é realizado no início de cada ciclo (FIGURA 242).
void main(void)
{
int x;
while (true)
repetir {
incondicionalmente while (!input(PIN_D0));
x = 0;
while (x < 12)
ficar repetindo enquanto {
o valor de X for inferior a 12 output_high(PIN_E 0);
delay_ms(100);
output_low(PIN_E 0);
ficar repetindo enquanto delay_ms(100);
não houve nível alto em D0 x++;
}
}
}

Figura 242 -  Fluxo de execução em um programa com estruturas de repetição while


Fonte: SENAI - RS

Sua versatilidade é demonstrada pela figura anterior, onde o while é utilizado de três diferentes formas. Na
primeira (laço vermelho), o while (true) é usado para definir um bloco de repetição que ficará sendo executado
incondicionalmente. A condição (true) é sempre verdadeira, fazendo com que o laço aja como um“laço infinito”. Já
o segundo while (laço em verde) é um laço vazio. Ele pode ser assim chamado por não possuir nenhuma instrução
após seu teste condicional. É importante observar que, neste tipo de teste, o ponto e vírgula se faz presente após
a condição, indicando que, interno ao laço, nenhuma instrução será realizada. Em outras palavras, somente o
teste é realizado, ficando o programa dedicado ao constante teste da expressão interna aos parênteses. Quando
a condição não for mais satisfeita, o while será interrompido, seguindo com a execução a partir da próxima
instrução após o ponto e vírgula. Este tipo de teste não é comum em sistemas de processamento de dados, pois
os dados não tendem a mudar de estado sem a interferência do próprio programa, porém funcionam muito
bem em microcontroladores para testes de entradas digitais, pois elas podem mudar de estado, refletindo o
comportamento de um sensor ou outro elemento conectado às entradas digitais.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
254

Por fim, em azul, um laço que utiliza a comparação de uma variável com uma constante para causar a
repetição controlada, por uma quantidade determinada de vezes, de um bloco de instruções. Observe
que a variável de controle foi inicializada (x=0) antes do início do laço, e que interior (ou anterior?) a
ele uma linha (x++) é responsável pela mudança da variável X a cada ciclo. Sem esta última instrução,
a variável X não teria seu valor alterado e, consequentemente, o laço não teria fim.
Para interromper um while ou qualquer estrutura de repetição, deve-se executar a instrução break.
Já a instrução continue promove um reinicio do laço, ignorando o restante das instruções compreendidas
no bloco definido pela estrutura de repetição.
Vejamos um exemplo:

...
while(!input(PIN_D0)) //enquanto D0 não estiver em nível alto
{ //inicio da estrutura de repetição
output_high(PIN_C0); //põe C0 em 5V
delay_ms(100); //tempo
output_low(PIN_C0); //C0 em 0V
if (input(PIN_D1)) //se D1 for para nível alto...
{ //
x = 0; //zera x
break; //sai da estrutura de repetição, interrompe while
} //
if (input(PIN_D2)) //se D2 for acionado
continue; //volta ao início da estrutura de repetição
x ++; //aumenta X
output_high(PIN_C1); //põe C1 em 5V
delay_ms(100); //tempo
output_low(PIN_C1); //C1 em 0V
} //final da estrutura de repetição
...

O laço descrito anteriormente continuará a ser executado até que o pino D0 esteja em nível alto. Porém,
se o pino D1 for posto em nível alto, o laço também será interrompido, mas pela instrução break. Neste
caso, antes da interrupção é atribuído um valor para a variável X antes de sair da execução do laço.
Caso o pino D2 esteja em nível alto, o programa continuará executando o laço, porém não fará o
incremento de X e nem mudará o estado do pino C1, pois a instrução continue faz com que o laço seja
reiniciado, fazendo com que a execução do programa volte ao início do bloco de instruções, refazendo
também o teste de condição do laço.

5.7.19 DO – WHILE (FAÇA/ENQUANTO)

Esta é outra forma de escrever uma estrutura de repetição, sendo o grande diferencial do do/while o
emprego do teste na parte final do laço. Sua sintaxe é:

do {
instruções;
} while (condição);

5 MICROCONTROLADORES
255

Lembre também que uma linha de instruções é sempre terminada por um ponto e vírgula (;), e um
bloco de instruções é delimitado por chaves ({ ... }). Assim como no while, o comando break pode ser usado
para interromper um do/while, e o comando continue fará com que o laço reinicie.
Segue um trecho de programa onde fazemos o uso de um do/while:


do {
printf(“\r\nPressione S/N”);
dado = getch(); //busca valor UART, armazenando na variável “dado”
} while(dado != ‘S’ && dado != ‘N’);

No trecho acima, será enviada uma mensagem através da porta serial. Em seguida, uma variável
(provavelmente do tipo CHAR) receberá o valor do caractere recebido pela porta serial (que será
enviado pelo equipamento ou terminal conectado à porta serial). Ao receber este dado, ele será
comparado com o caractere S e N. Caso seja diferente de ambos, todo o bloco será repetido,
reiniciando o laço.
Caso seja representado através de um while, mais linhas serão necessárias para o mesmo efeito.

5.7.20 FOR (PARA)

For significa para (preposição). É uma estrutura de repetição bastante prática e voltada à realização de
contagens ou de iterações de um laço, relacionadas a uma variável de controle.


for ( expressão_inicial; condição_para_repetição; expressão_auxiliar)
{
linha ou bloco de instruções a repetir...
}

Observe que, entre os parênteses deste comando, são inseridos três itens: a expressão_inicial
geralmente é utilizada para inicializar uma variável de controle, determinando qual o seu valor inicial.
A condição_para_repetição é a condição para ocorrer a repetição. Quando esta condição for falsa, o for
será interrompido, seguindo para a próxima instrução após o bloco de instruções.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
256

A expressão_auxiliar geralmente é utilizada para realizar um incremento ou decremento na variável de


controle, ou seja, na variável que é utilizada para determinar quantas interações o laço deve executar.
Vamos a um exemplo. Se desejarmos que algo seja repetido 10 vezes para evitar escrever este trecho 10
vezes, podemos usar uma variável e uma estrutura de repetição. Veja o exemplo com um while:

...
int AUX; // variável declarada
...
AUX = 0; // variável deve ser inicializada
while(AUX < 10) // enquanto valor de AUX for < que 10
{
output_high(PIN_D0);
delay_ms(100);
output_low(PIN_D0);
delay_ms(100);
AUX ++; // AUX é incrementado
}
output_high(PIN_C4);

Vejamos o mesmo exemplo com o uso da estrutura for.

...
int AUX;
...
for (AUX=0; AUX<10; AUX ++) // inicialização; teste; incremento
{
output_high(PIN_C0);
delay_ms(100);
output_low(PIN_C0);
delay_ms(100);
}
output_high(PIN_C4);
...

Para o exemplo acima, a variável X começará valendo zero (X=0). A cada interação do laço, a variável é
testada e, se seu valor for menor que 10, continuará a repetição (X<10). Ao final de cada interação, a variável
será incrementada (X++). Desta forma, o que está entre as chaves (bloco de instruções) do for será repetido
10 vezes.
O for permite realizar estruturas de repetição relacionadas às variáveis de controle de forma mais compacta,
facilitando o entendimento e a manutenção do programa.

5.7.21 CHAMADAS A FUNÇÕES / SUB-ROTINAS

Sub-rotinas, ou funções (como são chamadas na linguagem C), são trechos de programas relativamente
independentes, e que podem ser disparados a partir de um “chamado” realizado pelo próprio programa, ou
ainda por sinais de interrupção.
5 MICROCONTROLADORES
257

Na programação estruturada, as sub-rotinas são usadas com os seguintes objetivos:


a) fragmentação dos problemas - a melhor forma de resolver um problema grande é dividi-lo em problemas menores,
resolvendo parte por parte, até solucionar o todo. Escrever programas grandes demais, sem fragmentá-los, exige muito
tempo e gera um código muito amplo e difícil de ser interpretado, dificultando também os testes. Resolver o problema
em partes facilita a abstração, permitindo com que o foco seja mantido em uma parte do problema em cada etapa da
implementação;

b) reaproveitamento de código - ao fragmentar um problema, talvez seja possível observar que, em muitos casos, uma mes-
ma sequência de comandos deve ser executada em pontos diferentes do programa. O uso de sub-rotinas permite exe-
cutar esta sequência de comandos a partir de pontos diferentes, melhorando a organização do programa. Muitas vezes,
sub-rotinas podem ser reaproveitadas em mais de um programa;

c) otimização de memória - variáveis locais são variáveis que possuem escopo limitado à função onde são decla-
radas, porém seu tempo de vida se limita ao tempo de execução da função, sendo a memória por elas alocada
liberada quando a função deixa de ser executada. Isso otimiza o consumo de memória RAM.

Vamos ao uso de sub-rotinas com o exemplo de hardware da Figura 243.

13 OSC1/CLKIN RB0/INT 33 R1
14 RB1 34
OSC2/CLKOUT
RB2 35 330
2 RB3/PGM 36
3
RA0/AN0
RB4 37
R2
RA1/AN1
4
RA2/AN2/VREF-/CVREF RB5 38
330
5 RA3/AN3/VREF+ RB6/PGC 39
R4 6 RA4/TOCKI/C1OUT RB6/PGD 40 R3
7 RA5/AN4/SS/C2OUT
1K RC0/T1OSO/T1CKI 15 330
RC1/T1OSI/CCP2 16
8 RE0/AN5/RD
RC2/CCP1 17
9 RE1/AN6/WR 18
RC3/SCK/SCL
10 RE2/AN7/CS RC4/SDI/SDA 23
R5 RC5/SDO 24
RC6/TX/CK 25
1 MCLR/Vpp/THV
10K RC7/RX/DT 26

RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28
RD6/PSP6 29
RD7/PSP7 30
PIC 16F877A
PROGRAM = sonoro-hex
BOT 2
R10
10K

R9
BOT 1
10K

Figura 243 -  Chamadas a funções/sub-rotinas


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
258

Observe a conexão de um speaker (alto-falante) em série com um transistor. Quando o transistor mudar
seu estado de corte para condução, ou de condução para corte, ocorrerão vibrações no speaker, produzindo
sons. Por se tratar de um alto-falante convencional, não basta energizar sua bobina para produzir som: é
necessário vibrá-la (pulsar) para produzir sons em determinadas frequências.
Veja, no programa a seguir, o uso de uma sub-rotina criada com o nome beep, que ativa / desativa o pino
E2 para gerar vibrações no alto-falante. Observe como ela é disparada de diversos pontos distintos a partir
da função principal:

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void beep(void) // criação de uma função chamada BEEP


{
int aux; // declarada variável global
output_high(PIN_C2); // habilitado C2 (LED)
for (aux = 0; aux < 100; aux ++) // repete 100 vezes ...
{
output_high(PIN_E2); delay_ms(1); // ativa E2 (speaker)
output_low(PIN_E2); delay_ms(1); // desativa E2 (speaker)
}
output_low(PIN_C2); // desabilitado C2 (LED)
}

void main(void)
{
int conta = 0; // declara variável de 8 bits
while(true) // laço infinito
{
if (input(PIN_D0)) // se BOT1 ...
{
beep(); // chama subrotina BEEP
conta = 0; // zera variável
}
if (input(PIN_D1)) // se BOT2 ...
beep(); // chama subrotina BEEP
conta ++; // incrementa variável
if (conta == 100) // se variável for igual a 100
{
beep(); // chama subrotina
conta = 0; // zera variável
}
else // senão
{
output_high(PIN_C0); // pisca C0 (LED)
delay_ms(100);
output_low(PIN_C0);
delay_ms(400);
}
}
}
5 MICROCONTROLADORES
259

O programa iniciará sua execução no momento em que o microcontrolador for energizado e estiver
corretamente configurado para execução, sempre a partir da função principal (main). Ao executar
a linha de chamada da função (em vermelho), a execução do programa principal é interrompida,
gerando uma marcação na linha onde a chamada ocorre, e entregando o controle à função chamada.
As instruções internas da função são então executadas. Ao finalizar a função através do fechar chaves
do bloco da função, ou através da instrução return, o programa principal volta a ter o controle,
reassumindo a partir da marcação que havia sido realizada na chamada da função.
A seguir, veja algumas considerações importantes sobre funções:
a) você pode realizar chamadas de funções a partir de qualquer ponto do programa principal ou
de outras funções;
b) recursividade é um recurso que permite que a função chame a ela mesma, devendo haver
alguma forma de controle para interromper a recursão a partir de uma determinada quantidade
de vezes. É uma técnica bastante utilizada na programação em computadores, onde a quantidade
de memória de pilha e de memória RAM não é um problema. Em microcontroladores, por outro
lado, há uma limitação neste sentido, e alguns compiladores bloqueiam a possibilidade do uso de
recursividade. O CCS não permite, até versões mais recentes, o uso de recursividade, gerando erros
no momento da compilação;
c) variáveis locais de uma função são descartadas quando a função é interrompida, e os dados nelas
contidos podem ser alterados ou perdidos;
d) junções podem retornar informações através de um tipo de dado, ou através do acesso a áreas
de dados (variáveis globais ou endereço de memória de variáveis locais da função que realizou a
chamada).

5.7.22 PASSAGEM DE PARÂMETROS


AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
260

Vimos que sub-rotinas podem facilitar o processo de programação, uma vez que fragmentamos
o problema em partes menores, reaproveitando trechos de programa em várias partes dele. Porém,
em muitos casos vamos precisar “enviar” informações às funções, ou “buscar” respostas que podem
ser enviadas por elas. A troca de mensagens existente em funções dos programas é muito útil e
importante para garantir a melhor organização e eficiência do software produzido.
A Figura 244 mostra o esquema de ligação de um microcontrolador PIC16F877A a um display de
caracteres (LCD) de 16 colunas e 2 linhas, a dois botões (chaves tácteis), um relé que controla um motor e
um sensor indutivo, ajustado para detectar um pino metálico preso à polia de um equipamento. Trata-se
do controle de posicionamento de uma esteira.

LCD2
LM016L
VDD
VSS

VEE

RW

D0
D1
D2
D3
D4
D5
D6
D7
RS

11
13
10
12
14
7
1
2

5
3
4
6

8
9
U1

13 OSC1/CLKIN RB0/INT 33

14 RB1 34
OSC2/CLKOUT
RB2 35
2 RA0/AN0 RB3/PGM 36 VDD 24V
+ -
3 RB4 37
RA1/AN1
VDD 4
RA2/AN2/VREF-/CVREF RB5 38

5 RA3/AN3/VREF+ RB6/PGC 39
6 RA4/TOCKI/C1OUT RB6/PGD 40
7 RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI 15
R3
1K
8 RE0/AN5/RD
RC1/T1OSI/CCP2 16
17 VDD
R1
RC2/CCP1
9 RE1/AN6/WR 18
RC3/SCK/SCL 470K
10 RE2/AN7/CS RC4/SDI/SDA 23
RC5/SDO 24
RL1
RC6/TX/CK 25 5V
1 MCLR/Vpp/THV RC7/RX/DT 26

D1
RD0/PSP0 19
LED-BLUE
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28 Q1
RD6/PSP6 29 BC542
RD7/PSP7 30
PIC 16F877A
PROGRAM = sonoro-hex
R2 MOTOR DA ESTEIRA
10K

R6 R4 R5
10K 10K 10K

Figura 244 -  Esquema de ligação de um microcontrolador PIC16F877A


Fonte: SENAI - RS
5 MICROCONTROLADORES
261

O microcontrolador possui as chaves tácteis ligadas em D0 e D1. O programa determina que, quando a
chave táctil conectada a D1 é acionada, o motor da esteira é ativado até que a polia sofra três revoluções
completas. Quando D2 é acionado, serão realizadas sete revoluções nesta polia.
O procedimento de contar voltas através do sensor conectado em D7 é o mesmo para ambas as formas,
porém a quantidade de revoluções é diferente.
Usando a passagem de parâmetros, é possível enviar esta quantidade à função, usando esta informação
internamente à função para realizar os procedimentos através do mesmo trecho de programa.
Segue o programa sugerido:
#include <16f877.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // define valor de clock para delays
#define use_portb_lcd true // define que será usado display no PORTB
#include <lcd.c> // inclui biblioteca de uso do LCD 16x2 da CCS

void gira(int qtde) // declara função chamada GIRA, que recebe um parâmetro (int)
{
output_high(pin_c0); // liga motor da esteira
while(qtde > 0)
{
printf(lcd_putc,”\fGirando: %u”, qtde); // escreve qtde no display
while(input(PIN_D7)); // aguarda sensor da polia enviar sinal 0
while(!input(PIN_D7)); // aguarda sensor da polia enviar sinal 1
qtde --; // diminui variável recebida como parâmetro
}
output_low(pin_c0); // desliga motor da esteira
}

void main(void)
{
lcd_init();
while(1)
{
printf(lcd_putc,”\fBOT1 = 3 giros\nBOT2 = 15 giros”);
if (input(PIN_D0)) gira(3); // se botão1 pressionado, chama GIRA com parâmetro = 3
if (input(PIN_D1)) gira(15); // se botão2 pressionado, chama GIRA com parâmetro = 15
delay_ms(100);
}
}

Neste exemplo, a passagem ocorre somente com um parâmetro, que é do tipo INT, porém são permitidos
os parâmetros que forem necessários, podendo também ser de qualquer tipo de dado que julguemos
adequado ao comportamento da variável, bastando declará-los entre os parênteses da função, tomando o
cuidado de separá-los por vírgula.
Exemplos de trechos de programas
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
262

void MOTOR (int velocidade, long posicao)


{
...
}

Uma função chamada “motor”, que recebe como parâmetro duas variáveis inteiras, sendo uma de 8 bits e
outra de 16 bits. Estas variáveis devem ser usadas no corpo da função e têm comportamento de variáveis locais.
A chamada desta função pode ocorrer em qualquer outra função descrita após ela, podendo ser passada
como parâmetros, valores constantes ou valores de variáveis.
Exemplo de passagem de parâmetros usando constantes durante a chamada da função:


MOTOR (10, 3000);

A função “motor” será executada, sendo passadas como parâmetro duas constantes. Observe que o
valor enviado deve ser comportado pelos tipos de dados declarados na função.
Outra forma de realizar a chamada de uma função passando informações é o envio de dados contidos
em variáveis:


MOTOR (X, POS);

Desta forma, o conteúdo de X será armazenado no primeiro parâmetro (velocidade), e POS no segundo
parâmetro (posicao). As variáveis X e POS devem ser de tipos de dados compatíveis, podendo ser de
tamanhos (em bits) iguais ou inferiores aos tipos usados pelos parâmetros da função, sob risco de haver
perda ou alterações nos dados.
Neste caso, também é importante observar que os valores enviados para a função “motor” serão cópias
dos conteúdos de X e POS, sendo que as alterações sofridas pelos parâmetros internos à função não são
refletidas nestas variáveis.

FIQUE A informação passada à função durante a passagem de parâmetros por conteúdo é so-
mente o conteúdo. Alterando o valor do parâmetro dentro da função, não alteramos o
ALERTA valor das variáveis que foram usadas durante a chamada da função.

É possível também realizar chamadas à função passando como parâmetros dados de variáveis combinados
com constantes, ou até mesmo resultado de expressões.
Seguem chamadas válidas para a função anteriormente declarada:


MOTOR (X + Y, 4000);

MOTOR (A / 2, POS);

5 MICROCONTROLADORES
263

5.9.23 PASSAGEM DE PARÂMETROS POR REFERÊNCIA

Quando for necessária a alteração do conteúdo da variável passada como parâmetro por parte da função
chamada, uma das alternativas será a passagem do “endereço” da variável no lugar de seu conteúdo.
Segue um exemplo:


void ORDENA( int * V1, int * V2)
{
int TEMP;
if (*V1 > *V2)
{
TEMP = *V2;
*V2 = *V1;
*V1 = TEMP;
}
}

Na função criada, os parâmetros (dados pelo tipo de dados seguido pelo asterisco) são ponteiros, ou
seja, apontadores de memória. O uso do asterisco antecedendo o nome dos parâmetros permite acessar
o conteúdo apontado pelos ponteiros V1 e V2, manipulando os dados passados na chamada da função.
Durante a chamada, devemos informar o endereço das variáveis que serão manipuladas:


int X, Y;
X = 10;
Y = 5;

ORDENA (&X, &Y);

Após esta linha, a variável X conterá o menor valor (5), e Y o maior (10). O uso do símbolo & antes da
variável é obrigatório, e faz com que a função seja chamada passando-lhe os endereços de X e Y na memória.

Embora não seja muito comum em estudos iniciais com linguagens de programação,
FIQUE o uso de ponteiros na linguagem C pode tornar os programas muito mais eficientes,
ALERTA porém, em caso de erro, podemos alterar valores em outras áreas de memória, cau-
sando efeitos inesperados durante a execução do programa.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
264

5.7.24 RETORNO DE DADOS

Uma função pode ser interrompida através da instrução RETURN, e também pode retornar um valor que
irá substituir a chamada da função em uma expressão.
Vejamos, como exemplo, um trecho de programa onde uma função é utilizada para realizar um cálculo,
retornando à média dos dois maiores valores recebidos dentre três parâmetros.


long media (long A, long B, long C)
{
long R;
if (A <= B && A <= C)
{
R = (B + C)/2;
}
else
if (B <= A && B <= C)
{
R = (A + C)/2;
}
else
{
R = (A + B) / 2;
}
return(R);
}

Para o trecho de programa anterior, a instrução RETURN é utilizada, retornando o valor de uma variável
de 16 bits, chamada R. Durante a chamada da função:


VALOR = MEDIA(X, 50, Z);

Ao realizar a chamada da função, um valor é retornado e será utilizado na expressão, atribuindo o valor
de retorno na variável de destino, neste caso chamada “valor”.

5.7.25 USO DE DISPLAY ALFANUMÉRICO

Para usar o LCD (padrão HD44780, 16 colunas, 2 linhas, modo texto) como periférico de saída, adotaremos
neste material a biblioteca LCD.C fornecida de forma integrada ao compilador CCS e incluída no cabeçalho
de nossos programas. Esta biblioteca utiliza um LCD 16x2 conectado a 4 + 3 fios no PORTB ou PORTD.
Utilizaremos a ligação via PORTB, usando o esquema a seguir (FIGURA 245).

5V

14
1
B7 D7
B6 D6
B5 D5 CONTRASTE
B4 D4
B3 0 ... 5V
B2 RW
B1 RS
B0 EN
5 MICROCONTROLADORES
265

Figura 245 -  Display alfanumérico


Fonte: SENAI - RS

Esta ligação utiliza um display de caracteres em modo “4 + 3 fios”. Observe que são utilizadas sete
ligações para enviar dados ao LCD, sendo que três são para controle (EM, RS e RW) e quatro são para os
dados (um nibble por vez).
Para que o display aceite este modo de ligação, deve sofrer um processo de inicialização, que implica no
envio de alguns sinais em sequência e tempos pré-determinados. Estas informações são fornecidas junto ao
datasheet do display e geralmente seguem o padrão consolidado definido pelo modelo HD44780 da Hitachi.
Para realizar a inicialização a partir do programa, podemos usar a função lcd_init(), que está presente
na biblioteca LCD.C. A chamada a esta função deve ser realizada no início do programa, podendo ser antes
do laço principal. Na falta da rotina de inicialização, é normal obter um comportamento anormal do LCD,
geralmente dado pelo escurecimento da primeira linha, com exibição de caracteres estranhos. Outras
formas de inicialização podem se fazer necessárias em modelos diferentes de LCD.
Ao enviar um dado ao LCD, utilizaremos a função lcd_putc(CHAR). Observe que entre os
parênteses desta função será colocado o texto ou o caractere a ser enviado ao LCD. O CCS entende
que, se o conteúdo passado como parâmetro para esta função for uma sequência de caracteres
(chamada STRING, e delimitada por aspas duplas), o envio ocorre caractere por caractere, até o final
da string.
Portanto, se executarmos a função lcd_putc(‘x’); será enviado ao LCD o caractere “x”. Se executarmos a
função lcd_putc(“Ola ...”), será enviada a mensagem “Ola...”, que está entre as aspas duplas. Se a instrução
for lcd_putc(X), deve haver uma variável chamada X do tipo CHAR. Esta será a variável a ser enviada.
Observe a diferença entre este caso e o primeiro citado, onde foram utilizadas aspas simples para identificar
o caractere ‘x’, diferenciando da variável X.
Caracteres especiais do lcd_putc- alguns caracteres podem ser enviados ao LCD para promover
controle de posição, apagar ou retroceder o cursor. O cursor é um ponto que pode ou não estar habilitado,
e que identifica onde será escrito o próximo caractere. Estes caracteres especiais que podem ser enviados
ao display são interpretados pela função lcd_putc, que envia a correta sequência de dados e controle com
o objetivo de realizar um determinado efeito no periférico.
São caracteres especiais do LCD :
\f: limpeza do display. Esta opção reinicia o display, limpando-o e posicionando o cursor na linha 1
coluna 1.
\b: retorno de um caractere. Esta opção faz com que o cursor retroceda uma posição.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
266

\n: Nova linha. Posiciona o cursor na primeira coluna da segunda linha do LCD.
Veja alguns exemplos de uso na Figura 246.

Oi Teste.
1 lcd_putc(”Oi”);
lcd_putc(”Teste.”);

lcd_putc(”\fLipando...”); Limpando . . .
2 segunda linha
lcd_putc(”\nsegunda linha”);

lcd_putc(”\fTestX”); Teste
3
lcd_putc(”\be”);

Figura 246 -  LCD


Fonte: SENAI - RS

Posicionando o cursor

Para posicionar o cursor no LCD, podemos usar a função lcd_gotoxy(x,y), onde x e y são, respectivamente,
a coluna e a linha onde ele deve ser reposicionado.
Desta forma, se desejarmos escrever algo na primeira linha do display sem apagar a segunda linha, basta
inserir o comando lcd_gotoxy(1,1). Isso posicionará o cursor na primeira linha, e na primeira coluna. No
entanto, tome cuidado, pois, uma vez que o display não foi apagado, as informações antigas permanecerão
na primeira linha, a menos que você as sobrescreva.
Para rolar o conteúdo do LCD um caractere para a direita, ou seja, deslocar um texto para a esquerda ou a
direita, utilize o comando lcd_send_byte(0,0x1C), ou, caso esteja usando a biblioteca LCD.c modificada, utilize
o comando lcd_shift_right().
Para rolar o conteúdo do LCD um caractere para a esquerda, utilize o comando lcd_send_byte(0,0x18),
ou, caso esteja usando a biblioteca LCD.c modificada, utilize o comando lcd_shift_left().
A seguinte sequência de comandos gera o efeito de uma mensagem rolando no display. Para isso, será
necessário declarar uma variável do tipo INT chamada X.

int x; // essa variável é usada na rolagem


...
lcd_putc(“\fAUTOMACAO INDUSTRIAL - SENAI”);
for (x = 0; x < 35; x ++) // repete o bloco abaixo por 35 vezes
{
delay_ms(300); // tempo
lcd_send_byte(0,0x18); // rola display um caractere para esquerda
}

Para ativar o cursor, utilize o comando lcd_send_byte(0,0x0E). Para ativar o cursor piscante utilize o
comando lcd_send_byte(0,0x0F), e, para desativá-lo, use lcd_send_byte(0,0x0C).
5 MICROCONTROLADORES
267

5.7.26 PRINTF

O printf é um comando bastante conhecido por programadores de linguagem C. Sua função é gerar uma
saída formatada, permitindo juntar texto e informações contidos em variáveis, gerando uma sequência de
caracteres que pode ser enviada a qualquer função de saída de dados.
Sua utilidade é clara quando precisamos realizar operações como a de escrita de um valor numérico no
LCD, ou enviar este valor via saída serial.
A Figura 247 apresenta um exemplo de uso com o LCD.

#include <16f877.h>
contando - > 0 contando - > 2
#use delay (clock=20000000)
#define use_portb_lcd true
#include <lcd.c>
void main()
{ contando - > 1 contando - > 3
...
int CONTA = 0;
lcd_init();
while(true)
{
printf(lcd_putc,”\fcontando -> %u”, CONTA);
CONTA = CONTA + 1;
delay_ms(300);
}
}
Figura 247 -  Uso com o LCD
Fonte: SENAI - RS

O programa acima realiza uma contagem progressiva, iniciando pelo valor zero e mostrando um número
a cada 300 milésimos de segundo.
No compilador CCS, o PRINTF é uma função embutida, não sendo necessária nenhuma biblioteca
especial para seu uso. Ele pode ser usado para gerar sequência de textos formatados. É assim chamado pois
o comando permite dar formato ao conteúdo das variáveis, juntando-os a partes de texto (FIGURA 248).

printf (lcd_putc, ”\fcontando - > %u”, CONTA);


função de saída variável

caractere especial especificador de formato


string (delimitada
por aspas duplas)

contando - > 2
efeito deste linha:

Figura 248 -  Uso com o LCD 1


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
268

Dentro dos parênteses da função printf, devemos dispor os seguintes elementos, separados por vírgulas.
Função de saída
É a função que receberá a sequência de caracteres construída pelo printf. Nesta posição, e para o
compilador em questão, você pode utilizar qualquer função que aceite um parâmetro do tipo char. Como
a função lcd_putc requer um char entre os parênteses, ela pode ser aplicada ao printf como função de
saída, enviando os dados preparados pelo printf para o display. Usando a função lcd_putc, obtemos a saída
de dados no display LCD. Se este elemento for suprimido, a saída será enviada ao dispositivo padrão, que
geralmente é a porta serial do microcontrolador. Neste caso, o CCS irá solicitar o uso da diretiva USE RS232
para configurar a porta serial;
String
É o trecho de caracteres delimitado por aspas duplas, que irá definir como será a sequência de
caracteres que será gerada. É importante observar a delimitação realizada pelas duas aspas duplas. Dentro
delas podem ser inseridos caracteres de texto, caracteres especiais e especificadores de formato. Na string
podem ser usados:
a) texto - sequências de caracteres que serão enviadas. Qualquer espaço ou caractere que não esteja
identificando um caractere especial ou especificador de formato será tido como texto. É importante
observar que, para exibir uma barra invertida (\), usamos duas barras internas a string, e para exibir o sinal
de percentual (%), usamos dois sinais em sequência, sem espaço entre eles. Isso se deve ao fato destes
sinais iniciarem uma especificação de formato ou um caractere especial;
b) caracteres especiais - são símbolos geralmente usados para gerar efeitos nos dispositivos receptores
das sequências de texto. Geralmente, tais caracteres não possuem uma representação impressa e são
compostos por uma barra invertida seguida de um símbolo, geralmente uma letra. Um exemplo de
caractere especial é o new line, representado por um \n, que, quando recebido por um display alfanumérico
ou terminal de dados, posiciona o cursor em uma nova linha;
Exemplo de caracteres especiais: \f (limpar display), \n (nova linha), \b (voltar um caractere), \r (retorno
de carro), \g (beep) etc.
Obs.: Alguns caracteres especiais somente resultarão efeito em terminais seriais.
c) especificadores de formato - locais, em meio ao texto, onde deverá ser inserido o conteúdo da variável
no momento em que o programa montar o trecho de saída de texto.
Em outras palavras, é no lugar do primeiro especificador de formato que será inserido o valor da primeira
variável, no segundo especificador, o local onde será inserido o valor contido na segunda variável, e assim por
diante. O nome especificador de formato se dá pelo fato de o símbolo definir o formato, ou seja, a forma como o
valor será exibido, com mais ou menos dígitos, no formato decimal ou hexadecimal etc.
Como cada especificador de formato está relacionado a uma variável (identificada após a string, dentro
dos parênteses do PRINTF), é importante utilizar um especificador compatível com o tipo de dado da
variável correspondente.
Observe o Quadro 5:
5 MICROCONTROLADORES
269

TIPO DE VARIÁVEL ESPECIFICADOR DE FORMATO E EXEMPLOS DE USO


short ou %u -> valor decimal (ex: 30)
int %x -> valor em hexadecimal (ex: 1D)
%3u -> valor decimal alinhado com três dígitos (ex: _30)
%03u -> valor decimal alinhado três digitos c/ zero (ex: 030)
signed int %i -> valor decimal com sinal. (ex: -2)
%02i -> decimal com sinal, duas casas e zeros a esq. (ex: -02)
long %lu -> valor decimal (ex: 1000);
int32 %05lu -> valor decimal cinco casas c/ zeros a esquerda. (ex:
01000)
signed long %li -> valor decimal c/ sinal (ex: -500)
signed int32 %4li -> valor decimal c/ sinal alinhado a esquerda (ex: -_500)
float %f -> valor real. Ex: (23.313451)
%2.3f -> valor real c/ duas casas inteiras, três decimais. Ex:
(23.313)
char %c -> caractere. Ex: (A)
Quadro 5 - Especificadores de formato
Fonte: SENAI - RS

Mais especificadores de formato e respectivas funcionalidades podem ser obtidos no manual do


compilador utilizado.
Variáveis
Deve ser utilizada uma variável para cada especificador de formato da STRING. As variáveis indicarão
qual o valor que será impresso no lugar de cada especificador de formato encontrado.
Seguem alguns exemplos de printf e seus efeitos gráficos em displays LCD devidamente
inicializados. Observe que, entre a STRING, trechos de texto foram escritos em AZUL, caracteres
especiais em VERDE e especificadores de formato em VERMELHO (FIGURA 249).

TESTE
12345 printf (lcd_putc,“\fTESTE\n12345”);

RELOGIO 03:23
printf (lcd_putc,“\fRELOGIO %02u: %02u”, HORA, MINUTO);

CONT. TOTAL: 13145 printf (lcd_putc,“\fCont.Total: %5lu\nCont.Parc.:


CONT. PARC.: 32 %5lu”, CONT_TOT, CONT_PARC);

Obs: as variáveis HORA e MINUTO são do tipo INT, enquanto que TOTAL e PARCIAL são LONG ou INT32

Figura 249 -  Uso com o LCD 2


Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
270

5.7.27 COMUNICAÇÃO SERIAL

O uso de portas de comunicação seriais é comum em microcontroladores, existindo diversos periféricos


que utilizam este tipo de interface, como tranceivers wireless (WIFI, Bluetooth etc.), terminais seriais, IHMs
(interfaces homem-máquina) e conversores RS485 (padrão de rede muito usado na indústria), dentre outros.
Ao realizar a troca de dados entre dispositivos, devemos observar várias questões: formato das mensagens
e que dados serão trocados, velocidade em que isso ocorre, meio físico utilizado, uso de um sistema de
detecção de falhas, uso de correção de erros e forma de organizar o envio de dados ao destinatário em caso
de múltiplos destinos possíveis.
Não conseguiremos observar todos estes aspectos relacionados a redes de comunicações, mesmo que
de forma superficial, neste espaço. Por isso, nos ateremos a uma simples comunicação serial, realizada
entre um microcontrolador PIC e uma porta serial de um PC.
No PC, vamos propor a utilização de um terminal serial (existem vários programas disponíveis que
realizam esta função, além do Hyperterminal, no caso de algumas versões do sistema operacional Microsoft
Windows). Geralmente, estes programas permitem configurar como será usada a porta serial. Vamos usar os
seguintes parâmetros (FIGURA 250).

Figura 250 -  Comunicação serial


Fonte: SENAI - RS

BAUD (velocidade, em bits por segundo): 19200 bps


BITS de dados (quantos bits são enviados para um dado): 8
PARITY (paridade, uma forma de controle de erros não muito eficiente): Nenhum (NONE)
BITS DE PARADA (tamanho da pausa entre cada dado): 1
CONTROLE DE FLUXO (controle sobre dados enviados e recebidos): Nenhum (NONE)
Com esta configuração, o PC estará apto a realizar a troca de dados com o microcontrolador. Porém, temos
ainda que preparar o microcontrolador, tanto no que diz respeito ao hardware quanto no referente ao software.
5 MICROCONTROLADORES
271

Hardware - Usando o PIC16F877A, utilizaremos a UART física para realizar a conexão, onde os pinos
C6 e C7 assumirão comportamento de TX (transmissão) e RX (recepção) dos dados em um padrão TTL
(transistor – transistor logic), com níveis de tensão baixo (0V) ou alto (5V). O padrão de comunicação RS232
exige, no entanto, níveis de tensão negativos (-5V, 0V, +5V, ou -12V, 0V, +12V, dependendo da versão e
do equipamento). Para gerar estes níveis de tensão amplificados e negativos, sugerimos o uso de um
TRANCEIVER RS232, como o MAX232, ST232, ICL232, ADM232 ou HIN232 (FIGURA 251).

CABO
5V SERIAL
1µ F 1µ F DB9 DB9 DB9 DB9
PIC16F877A

MACHO FÊMEA FÊMEA MACHO


1µ F
MAX232C

2 2
1µ F 3 3

5 5
C6 TX
1µ F
C7 RX

Figura 251 -  Esquema de ligação de um MAX232 a um microcontrolador e uma porta serial padrão DB9
Fonte: SENAI - RS

Esquema de ligação de um MAX232 a um microcontrolador e uma porta serial padrão DB9. Observe que
o sinal de TX de um periférico deve chegar ao RX do outro, por isso o cabo é cruzado (2-3, 3-2).
Uma vez conectado, vamos a um programa que utilize a porta serial em um microcontrolador. Como
primeiro exemplo, faremos um programa que escreve a mensagem “Ola mundo!” no terminal serial.
Note a presença das linhas em destaque, que configuram e enviam dados à saída serial.

#include <16f877A.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays
#use rs232 (baud=19200, bits=8, parity=n, xmit=pin_c6, rcv=pin_c7) // conf rs232

void main(void)
{
printf(“\n\rOla mundo!”); // envia dados pela serial. /n=nova linha, /r=retorno col 1
while(true)
{
// laço infinito.
}
}

O programa anterior envia uma mensagem pela porta serial, iniciando por dois caracteres
especiais, que posicionam o cursor no início de uma nova linha no terminal antes de enviar a
mensagem “Ola mundo!”.
Note o uso do printf, sem nenhuma função de saída. No compilador da CCS, a saída padrão para o
printf é a porta serial, que deve estar devidamente configurada, como na terceira linha do programa,
através da diretiva #use rs232.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
272

Para a leitura de dados da porta serial usamos a função embutida GETC(),que retorna o caractere
recebido pela porta serial. Se esta função for disparada sem que haja caractere no buffer de entrada,
o sistema permanecerá travado até que um caractere seja recebido. Para evitar isso é recomendado
o uso da função KBHIT(), que pode identificar se há ou não algum caractere no buffer de entrada
(memória onde o byte fica armazenado até ser processado).
O envio de bytes também pode ser feito usando as instruções putchar (byte) ou puts(string): a
primeira é usada para envio de um único byte (int8 ou char), e a segunda, para o envio de uma
string, similar ao printf.
Como segundo exemplo, vamos criar um sistema que emula um terminal, permitindo que dois
microcontroladores sejam interligados usando o mesmo programa. O efeito do software proposto
deve replicar os sinais recebidos no portd, enviando-os ao portc do outro microcontrolador.

#include <16f877A.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays
#use rs232 (baud=19200, bits=8, parity=n, xmit=pin_C6, rcv=pin_C7) // conf rs232

void main(void)
{
int PORTD, PORTD_ANT = 0;
char AUX;
while(true)
{
PORTD = input_d(); // busca valor do PORTD
if (PORTD != PORTD_ANT) // detecta se houve mudança no PORTD
{
if (input(PIN_D0)) putchar(‘A’); // se D0, envia letra A via rs232
if (input(PIN_D1)) putchar(‘B’); // se D1, envia letra B via rs232
PORTD_ANT = PORTD; // registra mudança
}
if (kbhit()) // se houver dados para receber no buffer de entrada rs232
{
AUX = getch(); // le dado (byte)
switch(AUX)
{
case ‘A’ : output_high(PIN_C0); // caso seja um caractere A, poe C0 em 5V
break;
case ‘B’ : output_low(PIN_C0); // caso seja um caractere B, poe C0 em 0V
break;
}
}
} // fim do laço infinito.
} // fim do programa principal

Caso este programa seja executado com um único microcontrolador conectado a um terminal, o efeito
esperado será a exibição de caracteres A e B quando os pinos D0 e D1 mudarem de estado (borda de
subida do sinal, com mudança do nível baixo para nível alto).
Caso este programa seja executado em dois microcontroladores, interligados pela porta serial, quando
D0 mudar de nível baixo para nível alto o pino C0 do outro microcontrolador mudará para nível alto, e
quando D1 mudar de nível baixo para alto o pino C0 do outro microcontrolador mudará para nível baixo.
5 MICROCONTROLADORES
273

5.7.28 ADC – CONVERSÃO ANALÓGICA/DIGITAL

O microcontrolador PIC16F877 pode realizar a conversão de um sinal analógico (que varia de 0 a 5 Volts)
em um valor binário de até 10 bits. Isso é possível graças ao recurso ADC (Analog Digital Converter) que está
embutido no próprio componente.
Outro fator importante é que este microcontrolador possui 8 canais analógicos configuráveis; ou
seja, é possível ler esta variação de tensão por até 8 pinos diferentes.
Algumas configurações avançadas permitem, ainda, que alguns pinos sejam usados como referência positiva
e negativa, fazendo com que uma leitura seja feita em uma faixa de tensão mais restrita, como de 1 a 3 Volts.

SAIBA Pesquisando na folha de dados do componente sobre mudanças nas referências de


MAIS tensão para a conversão AD no microcontrolador PIC16F877A.

É importante observar que, quando utilizamos um pino como entrada analógica, seu recurso de
entrada/saída digital é desativado, porém a mudança (transição) das funções do pino pode ser executada
em tempo de execução através de instruções no programa (FIGURA 252).

1 40
0 a 5 Volts AN0 PIN_A0 2 39
0 a 5 Volts AN1 PIN_A1 3 38
0 a 5 Volts AN2 PIN_A2 4 37
0 a 5 Volts AN3 PIN_A3 5 36
6 35
0 a 5 Volts AN4 PIN_A5 7 34
0 a 5 Volts AN5 PIN_E0 8 33
0 a 5 Volts AN6 PIN_E1 9 32
0 a 5 Volts AN7 PIN_E2 10 31
11 30
12 29
13 28
Figura 252 -  Pinos do PIC16F877A que podem ser configurados para conversão analógica/digital
Fonte: SENAI - RS

Como já estudado anteriormente, podemos usar conversores de sinal analógico para digital
em microcontroladores para interpretar sinais de sensores analógicos, geralmente utilizados para
leituras de grandezas físicas, como pressão, vazão, força, luminosidade, temperatura, velocidade,
tensão, corrente etc.
No caso do PIC16F877A, estas informações precisam estar no formato 0 a 5V, pois, se os níveis de
tensão ultrapassarem estes valores, poderão ocorrer danos irreversíveis ao componente.
Um exemplo de aplicação: Leitura de um potenciômetro. Por meio da entrada analógica, podemos
quantificar a posição de uma resistência variável, que pode ser um potenciômetro convencional ou
qualquer outro sensor que, da mesma forma, realize a variação de uma resistência.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
274

O uso de potenciômetros em microcontroladores é aplicável quando pretendemos obter uma


informação relativa a uma posição (linear ou angular). Geralmente, potenciômetros são usados como
interface com operadores para a realização de ajustes, porém podem também ser aplicados a equipamentos
para a leitura de posição de um eixo como, por exemplo, na junta de um braço robótico. Encoders digitais
são mais precisos, porém encoders digitais absolutos são muito mais caros do que sistemas analógicos, e,
dependendo da precisão desejada, esta pode ser uma alternativa interessante (FIGURA 253).

POTENCIÔMETRO

A0
5V

Figura 253 -  Potenciômetro de 10K conectado a um microcontrolador. Para facilitar entendimento, demais ligações de
alimentação e clock do microcontrolador foram suprimidas
Fonte: SENAI - RS

É comum a utilização de sensores de temperatura (como o LM35), luminosidade (como LDRs),


pressão ou deformação (strain gage), aceleração (acelerometros), umidade, tensão, corrente, etc.
No entanto, para realizar a leitura de um sinal analógico, faz-se necessária uma série de ajustes
(via programa) para definir a resolução da leitura, as referências da leitura, a forma e o canal da
conversão do valor analógico.
Quanto à resolução, fisicamente a maior resolução permitida para o PIC16F877 é 10 bits (fazendo
com que o valor lido varie em números inteiros de 0 a 1023), mas a leitura feita pelas funções do
compilador CCS permite a conversão para valores de 8, 10, 12 e 16 bits.
Trabalhando com a configuração de conversão analógica de 10 bits, um PIC16F877A irá converter
a tensão lida pelo canal selecionado em um valor numérico inteiro entre 0 e 1023 (210=1024
possibilidades), onde a menor tensão equivale a 0, e a maior tensão (5V para uma simples conversão
sem alterar referências) equivale a 1023, variando linearmente. Portanto, se um circuito estiver
convertendo temperatura em uma tensão de, digamos, 2,5V, o microcontrolador converterá esta
informação em um número muito próximo a 512.
Desta forma, o programador deve criar expressões que traduzam equações de conversão do valor
lido, dado por um número inteiro de 10 bits, na informação desejada.
Como esta conversão varia conforme o sensor e o circuito utilizados, vamos citar um exemplo usando
a ligação de um sensor linear de temperatura: LM35DZ. Este sensor apresenta a característica LINEAR, com
saída em 10mV por ºC (FIGURA 254).
5 MICROCONTROLADORES
275

5V 1 40
LM = ANO 2 39
35dz 3 38
4 37
5 36
6 35
7 34
8 33
9 32
10 31
11 30
12 29
13 28
Figura 254 -  Sensor de temperatura LM35DZ, de característica linear,
conectado diretamente ao canal AN0 de um microcontrolador
Fonte: SENAI - RS

A resposta em tensão, portanto, será:


VAN0 = TºC * 0,01V
Como LM35DZ é indicado para temperaturas até 150ºC, podemos esperar uma tensão máxima
(em AN0) de 150 * 0,01 = 1,5V.
O microcontrolador lerá a tensão (que pode variar entre 0 e 1,5V através do sensor, embora o
microcontrolador suporte até 5V) e a converterá em uma informação interna de 10 bits, um número
inteiro. Este número inteiro deve ser novamente convertido para temperatura, e pode ser dada pela
fórmula construída abaixo:
VAN = TºC * 0,01V
VAN = 5V * (AD / 1023)
Resolvendo o sistema, temos:
TºC * 0,01V = 5V * (AD/1023)
TºC = (5V/0,01V) * (AD/1023)
TºC = 500 * (AD/1023)
Embora ainda seja possível simplificar mais a equação, vamos mantê-la assim com o intuito de
trabalhar com números inteiros, atividade que o microcontrolador realiza com mais eficiência e
consumindo menos memória.
Uma vez estabelecida a relação entre o valor lido pelo conversor AD e a grandeza mensurada,
podemos construir o programa. Observe o uso de algumas linhas (no compilador CCS) para
configurar o canal de entrada e a resolução de conversão.
Para facilitar a utilização, o programa que segue usa uma sub-rotina para realizar a aquisição da informação.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
276

//------------------------
#include <16f877.h>
#device ADC=10 // define que a conversão AD será de 10 bits
#use delay (clock=20000000)
#define use_portb_lcd true // define que o LCD está ligado ao PortB
#include <lcd.c> // inclui biblioteca de LCD

long AD(int CANAL) // declara função (subrotina) usada para ler entrada analógica
{
long AUXILIAR; //Declara uma variável de 16 bits
enable_interrupts(GLOBAL); //Habilita uso de interrupção para conversão AD
setup_adc_ports(ALL_ANALOG); //Habilita todas as analógicas(A0,A1,A2,A3,A5,E0,E1,E2)
setup_adc(ADC_CLOCK_INTERNAL); //Configuração do clock do conversor AD
set_adc_channel(CANAL); //Configuração do canal do conversor AD
delay_us(100); //Tempo para selecionar canal, recomendado pela microchip
AUXILIAR = read_adc(); //Faz a leitura e armazena na variável AUXILIAR
setup_adc_ports(NO_ANALOGS); //Desativa entradas analógicas
return(AUXILIAR); //Retorna valor analógico lido
}

//*********************** função principal ***********************************

void main()
{
long LIDO; // declara uma variável inteira 16 bits
float TEMP; // declara variável de ponto flutuante
lcd_init(); // inicializa LCD
while(1)
{
LIDO = AD(0); // lê AD canal 0. Usa a função acima descrita

// implementando função TºC = 500 * (AD/1023)


TEMP = 500 * (float)LIDO / 1023;

printf(lcd_putc,”\fAD -> %lu”, LIDO); // escreve valor lido no LCD


printf(lcd_putc,”\nTEMP: %f C”, TEMP); // escreve valor calculado de TEMP
delay_ms(100); // para evitar que o LCD fique piscando
}
}
//------------------------

O programa anterior realiza a leitura do canal analógico AN0, mas a função descrita AD(canal) permite
que o canal possa ser modificado, bastando utilizar entre os parênteses o número, entre 0 e 7. A leitura de
mais de um canal pode ser realizada em um mesmo programa.
Na Figura 255 apresentamo outro exemplo de ligação do microcontrolador a um LDR ligado em um
divisor de tensão.
5 MICROCONTROLADORES
277

5V

LDR
1 40
2 39
AN1 3 38
4 37
5 36
6 35
1K2 7 34
8 33
9 32
10 31
11 30
12 29
13 28

Figura 255 -  Ligação de um LDR em um microcontrolador usando o canal AN1


Fonte: SENAI - RS

Esquema de ligação de um LDR em um microcontrolador com o objetivo de medir luminosidade


Um LDR possui sua resistência proporcional à luminosidade, podendo variar de alguns Ohms quando
submetido à luz intensa, a milhares de Ohms, quando em ambiente escuro.
Desta forma, a leitura do AD(1) será proporcional à luminosidade detectada pelo LDR.

5.7.29 PWM

Os microcontroladores são dispositivos que, comandados por programas, podem facilmente realizar o
acionamento ou o desligamento de uma saída digital. Mas, e se o dispositivo a ser controlado necessitar de
um controle analógico?
Por exemplo, ligar e desligar um motor conectado indiretamente (via transistores ou relés) a um pino
do microcontrolador não é complicado se usarmos as instruções de nível alto (output_high) e nível baixo
(output_low). Mas, se além de ligar e desligar este motor, for necessário “dosar” a tensão a ele fornecida, de
forma a controlar também sua velocidade ou seu torque?
Para isso, seria necessária uma saída analógica. E como realizar este controle se tal saída não existe em
um dispositivo de controle discreto, como um microcontrolador?
O PIC16F877A possui duas saídas PWM, que são saídas pulsantes, capazes de realizar pulsos de largura
controlada. O uso de PWM permite gerar saídas analógicas, facilitando o controle de periféricos.
Por meio do PWM é possível pulsar (ativar e desativar) uma saída, filtrando-a com circuitos geralmente
compostos por resistores e capacitores, e gerando, com estes pulsos filtrados, o efeito desejado.
Por exemplo, vamos imaginar um ventilador de uma única velocidade conectado a uma chave liga/
desliga. Se você mantiver a chave ligada, o ventilador acelerará até obter 200 RPM. Se você desligar a chave,
o ventilador desacelerará até parar. Mas, se você ficar ligando e desligando a chave, em intervalos de 1
segundo, perceberá que o ventilador vai girar a uma velocidade inferior que 200 RPM. E se você exercer
pulsos ligados mais largos, e pulsos desligados mais curtos, o ventilador acelerará.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
278

É dessa forma que o PWM funciona, trabalhando com frequências bem elevadas, com vários
acionamentos por segundo. Obtemos uma saída que poderá ser adequada, usando um filtro RC adequado,
para a tensão necessária.
É comum também utilizar a saída pulsante diretamente no dispositivo de amplificação (transistor ou
circuito integrado de potência) para gerar a mesma saída pulsante em níveis de tensão e corrente mais
elevados. Desta forma, é possível controlar a intensidade de luminosidade, a temperatura, a velocidade e
o torque de motores, o som etc.
E quais são as características de uma saída PWM?
Podemos citar três características: o nível de tensão, o tempo de ciclo e a taxa (tamanho do
pulso). Quanto ao nível de tensão, ficará restrito ao nível de trabalho do microcontrolador. No caso
do PIC16F877, que funciona a 5V, o nível dos pulsos também será de 5V, respeitando-se os limites
de corrente da saída digital, de alguns miliampéres. Caso haja interesse em aumentar este valor, ou
de aumentar a corrente, será necessária a amplificação com transistores ou outro circuito integrado
(FIGURA 256).

+24V C.C.

R1
Motor
C1 D1
Microcontrolador

R2
Transistor
NPN

Figura 256 -  Ligação de um transistor a um motor


Fonte: SENAI - RS

Já o tempo de ciclo e o tamanho do pulso podem ser controlados por software.


Veja o exemplo a seguir.
5 MICROCONTROLADORES
279

#include <16f877.h> // porque vamos usar um PIC16F877 ou PIC16F877A


#use delay (clock=20000000) // Importante que o valor do CLOCK esteja correto

void main()
{
long TAXA = 0;
setup_ccp1(CCP_PWM); // ativa PWM 1 (pino C2)
setup_ccp2(CCP_PWM); // ativa PWM 2 (pino C1)
setup_timer_2(T2_DIV_BY_4, 250, 1); // O tamanho do ciclo é 4*(4/CLOCK)*250.
while(1)
{
if (input(PIN_D0)) TAXA = 0; // estas linhas, carregam a variável
if (input(PIN_D1)) TAXA = 100; // TAXA com valores variando de 0 a
if (input(PIN_D2)) TAXA = 300; // 1023. Esta variável é utilizada
if (input(PIN_D4)) TAXA = 500; // pela função SET_PWM1_DUTY para definir
if (input(PIN_D5)) TAXA = 750; // a taxa (tempo do pulso em nível alto) da
if (input(PIN_D6)) TAXA = 1023; // saída PWM1, e SET_PWM2_DUTY, que realiza a
set_pwm1_duty(TAXA); // mesma operação no canal pwm 2 (pino c1)
set_pwm2_duty(512); //
delay_ms(100);
}
}

Observação importante: o exemplo anterior terá efeito sobre os pinos do PWM físico, ou seja, pinos C2
(PWM1) e C1 (PWM2). Em outros casos, e para outros pinos, será necessário gerar um PWM via software.
Isso quer dizer que seu programa deve ficar ligando e desligando o pino em questão. Veja como seria no
exemplo abaixo:

#include <16f877.h> // porque vamos usar um PIC16F877 ou PIC16F877A


#use delay (clock=20000000) // Importante que o valor do CLOCK esteja correto
void main()
{
long TEMPO_PULSO = 0; // variável que determina tamanho do pulso ligado
while(1) // laço infinito
{
output_c(0x01010101);
delay_us(TEMPO_PULSO);
output_c(0x10101010);
delay_us(1024 – TEMPO_PULSO);
if (input(PIN_D0)) TEMPO_PULSO = 0; // Se A1 acionado, tamanho do pulso é zero
if (input(PIN_D1)) TEMPO_PULSO = 200; // Se A2 acionado, tamanho do pulso é 200
if (input(PIN_D2)) TEMPO_PULSO = 400; // Se A2 acionado, tamanho do pulso é 400
if (input(PIN_D3)) TEMPO_PULSO = 800; // Se A2 acionado, tamanho do pulso é 800
if (input(PIN_D4)) TEMPO_PULSO = 1023; // Se A2 acionado, tamanho do pulso é 1023
}
}
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
280

RECAPITULANDO

Neste capítulo, vimos que os microcontroladores são circuitos integrados programáveis muito
versáteis, que podem ser utilizados em inúmeras aplicações de controle. Por serem programáveis, seu
comportamento é determinado por um software, em que técnicas de programação permitem gerar, a
partir de programas, a leitura de sinais digitais e analógicos, processamentos lógicos e matemáticos e
acionamentos de dispositivos atuadores.
Vimos que os microcontroladores executam programas escritos em linguagem de máquina, mas
que podem ser gerados através de outras linguagens, dentre as quais a linguagem C. Estas linguagens
precisam ser compiladas através de um programa chamado compilador, que transforma instruções de
alto nível em instruções de máquina para que o microcontrolador possa executar.
Durante o estudo sobre a linguagem C, uma importante linguagem de programação também aplicada
a microcontroladores, entendemos o conceito das estruturas e dos subprogramas, representados por
sinais de início e fim através de símbolos, no caso, chaves. Vimos que os programas são executados
instrução a instrução, e que o desvio na execução do programa pode ser pré-definido por meio das
estruturas de controle de fluxo, como o while, do/while, for, if e switch. As sub-rotinas de um programa
escrito em linguagem C são conhecidas como funções, e uma função pode, ou não, receber parâmetros
e retornar dados.
Vimos também que a representação de dados em memória requer a declaração de variáveis, e que
durante esta etapa o programador deve determinar o tipo de dado adequado para que a variável consiga
comportar a informação da forma mais eficiente possível.
Por último, vimos aplicações onde o microcontrolador é utilizado para a leitura de sinais analógicos, a
comunicação e a geração de sinais pulsantes através da técnica de PWM.
5 MICROCONTROLADORES
281

Anotações:
REFERÊNCIAS

ALMEIDA, José Luiz Antunes de. Dispositivos semicondutores: tiristores: controle de potência em
CC e CA. São Paulo: Érica, 1996.

BALBINOT, Alexandre; BRUSAMARELLO, Valner João. Instrumentação e fundamentos de medidas.


Vol 1. 2.ed. Rio de Janeiro: LTC, 2010. v.1.

BERNARDO, Giovanni. Corso programmazione PICMicro in C – Lezione 1 – Cos’è un


microcontrollore, caratteristiche, note introduttive, come scegliere programmatore e
linguaggio di programmazione. Disponível em: <http://www.settorezero.com/wordpress/corso-
programmazione-pic-in-c-lezione-1-cose-un-microcontrollore-caratteristiche-note-introduttive-
come-scegliere-programmatore-e-linguaggio-di-programmazione/>. Acesso em 26 jan. 2012.

BOYLESTAD, Robert L. Dispositivos eletrônicos e teoria de circuitos. 8.ed. São Paulo: Pearson
Prentice Hall, 2004.

CUSTOM COMPUTER SERVICES INC. PCW: demo software. [S.l.], [20--].Windows. Disponível em:<
http://www.ccsinfo.com/ccsfreedemo.php>. Acesso em 10 nov. 2015.

CRUZ, Eduardo Cesar Alves; CHOUERI JÚNIOR Salomão. Eletrônica aplicada. 2.ed.São Paulo: Érica, 2008.

ERCEGOVAC, M. Introdução aos sistemas digitais. Porto Alegre: Bookman, 2000.

ELETRONICA.ORG. Amplificador Operacional. E-book. Disponível em: <http://www2.eletronica.


org/apostilas-e-ebooks/componentes/AOP.pdf >. Acesso em 26 jan. 2012.

ESCOLA PROFISSIONAL DE ALVITO. Curso Técnico de Gestão de Equipamentos Informáticos.


O que é um amplificador operacional ? Electrónica Fundamental (AMPOPs- Módulo 7) ano lectivo
2006/2007. Disponível em: <http://miniportal.weebly.com/uploads/2/7/6/2/2762008/o_que_eh_
um_amplificador_operacional.pdf>. Acesso em 26 jan. 2012.

FIALHO, Arivelto Bustamante. Instrumentação Industrial: conceitos, aplicações e análises. 7.ed. São
Paulo, Érica, 2010.
GRUITER, Arthur François de. Amplificadores operacionais: fundamentos e aplicações. São Paulo:
McGraw-Hill, 1988
IDOETA, I. V. Elementos de eletrônica digital. São Paulo: Érica, 1990.

LOURENÇO, Antonio Carlos de et al. Circuitos digitais. 9. ed. São Paulo: Érica, 2009.

MALVINO, A. P. Eletrônica digital: princípios e aplicações. São Paulo: McGraw-Hill, 1988.

MARKUS, Otávio. Ensino modular: sistemas analógicos. Circuitos com diodos e transistores. São
Paulo: Érica, 2000.

MARQUES, Angelo Eduardo B; CHOUERI JÚNIOR, Salomão; CRUZ, Eduardo Cesar Alves. Dispositivos
semicondutores: diodos e transistores. 12. ed. São Paulo: Érica, 2008.

MEHL, Ewaldo L. M. Do Transistor ao microprocessador. [S.l.], [200-]. Disponível em: <http://www.


lsi.usp.br/~bariatto/fatec/ds2/historia_transistor.pdf>. Acesso em 26 jan.2012.

MELO, Mairton. Eletronica digital. São Paulo: Makron Books, 1993.

PERTENCE JÚNIOR, Antonio. Amplificadores operacionais e filtros ativos: teoria, projetos,


aplicações e laboratório. São Paulo: McGraw-Hill, 1988.

TAUB, H. Circuitos digitais e microprocessadores. São Paulo: McGraw-Hill, 1984.

_______; SCHILLING, D. Eletrônica digital. São Paulo: McGraw-Hill, 1982.

THOMAZINI, Daniel. Sensores industriais: fundamentos e aplicações. 6.ed. rev. e atual. São
Paulo: Érica, 2009.

TOCCI, R. L. Sistemas digitais: princípios e aplicações. 5.ed. Rio de Janeiro: Prentice-Hall do


Brasil, 1994.
UYEMURA, J. P. Sistemas digitais. São Paulo: Pioneira, 2002.

VASCONCELOS, Laércio. Fontes de alimentação, reguladores, potência. Disponível em: <http://


blogs.forumpcs.com.br/laercio_vasconcelos/2005/05/16/fontes-de-alimentacao-reguladores-
potencia/>. Acesso em 26 jan. 2012.

WIKILIVROS. Eletrônica digital/Sistemas analógicos e digitais. Livro Eletrônico Digital. Disponível


em: <http://pt.wikibooks.org/wiki/Eletr%C3%B4nica_Digital/Sistemas_anal%C3%B3gicos_e_
digitdig>. Acesso em 26 jan. 2012.
MINICURRÍCULO DO AUTOR

DANIEL CORTELETTI
Graduação em Ciência da Computação pela Universidade de Caxias do Sul - UCS. Graduação
no programa especial de formação pedagógica para formadores de educação profissional pela
Universidade do Sul de Santa Catarina - UNISUL. Instrutor de educação profissional de nível
técnico do Centro Tecnológico de Mecatrônica SENAI desde 2000 nas áreas de microcomputação,
sistemas embarcados, robótica industrial e automação industrial, atuando também em serviços
de pesquisa e desenvolvimento no núcleo de serviços técnicos e tecnológicos desta instituição.
ÍNDICE

A
Acionamentos 43, 44, 51, 55, 56, 58, 59, 60, 69, 195, 218, 236, 241, 251, 278, 280
Álgebra booleana 143, 146, 150, 151, 154
Algoritmos 112, 205, 206, 208
amplificador operacional 70, 71, 73, 74, 76, 77, 172, 173, 283
Anodo 27, 30, 37, 46, 47, 64, 65, 66, 176
Aplicações de transistores 45
Arquivos executáveis 202
autoprogramação 198, 204

B
Bootloader 198, 204, 205

C
Catodo 27, 30, 37, 46, 47, 64, 65, 66, 176
Células de carga 119, 120
Circuitos codificadores 174, 178, 180
circuitos decodificadores 145, 166, 176, 177
Circuitos demultiplexadores 164, 166
Circuitos lógicos 96, 146, 150, 172, 209
Circuitos multiplexadores 146, 159
Comandos para acionamento 223, 224
Como compilar 214
Comparador 70, 74, 75, 76, 114, 119, 198
Comunicação serial 201, 270
condicionamento de sinal 30, 68, 135
Conversão analógica/digital 273
Conversor A/D 170, 171, 172
Conversor D/A 170, 172, 173
Conversores 132, 136, 136, 146, 169, 170, 171, 174, 189, 193, 194, 197, 202, 270, 274
Criação de um programa 212

D
Declaração de variáveis 227, 234, 280
DIAC 64, 66, 67
Dígitos 36, 140, 141, 142, 144, 146, 175, 176, 232, 236, 269
Diodo de sinal 29, 30
Diodo emissor de luz 35
Diodo retificador 29, 30
Diodo Zener 29, 31, 32
Display alfanumérico 264, 265, 268
Display de 7 segmentos 176, 236

E
Eletrônica Analógica 21, 72, 91, 139, 189, 192, 193
ENCAPSULAMENTO DE TRANSISTORES 51
Encoders 128,129, 130, 131, 132, 274
Entradas e saídas digitais 178, 197
Estrutura de repetição 219, 220, 222, 253, 254, 255
Estruturas de controle de fluxo 246, 205, 219, 245, 280
Estruturas de decisão 250
Extensômetros 119, 120, 134

F
Filtro ativo 85, 86
Filtro passivo 82, 83
Flip-flop D 186
Flip-flop JK 183, 184, 185, 186, 187, 188
Flip-flop JK mestre-escravo 184, 186
Flip-flop RS 181, 182, 183, 184, 185
Flip-flop RS síncrono 182, 183, 184, 185
Fluxograma 207, 208, 246
Fonte chaveada 86, 90
Fonte linear 88
Fontes de alimentação 41, 42, 44, 86, 87, 91, 100, 285
Fonte simétrica 88, 89
Fotodiodo 38, 39, 40, 41, 105, 106

H
HISTERESE 75, 76, 208
J
JFET 55, 56, 58, 60

L
Linguagem C 210, 211, 212, 213, 217, 221, 223, 238, 242, 244, 246, 247, 263, 267, 280

M
Memória RAM 194, 197, 228, 257, 259
memória ROM 198, 202, 205, 211
Microcontrolador 8051 195
Microcontrolador MICROCHIP 195
Microprocessadores 110, 189, 193, 194, 195
Microprocessadores na Automação Industrial 192
MODOS DE DISPARO 64
MOSFET 55, 61, 69
Multivibrador biestável 180

N
Nome das variáveis 233

O
Operadores 147, 148, 150, 151, 152, 189, 238, 239, 240, 241, 242, 245, 274
Optoacopladores 41, 42, 65, 99, 100
Osciladores 79, 81, 91

P
Passagem de parâmetros 259, 260, 262
Portas lógicas 62, 79, 148, 149, 150, 160, 162, 163, 182, 186, 189
Printf 255, 261, 267, 268, 269, 270, 271, 272, 276
PWM 80, 173, 197, 198, 201, 277, 278, 279, 280

R
Recursos de um Microcontrolador PIC 197
Relés fotoelétricos 111
Retorno de dados 263

S
SCR 64, 65, 66
Sensor de barreira óptica 109
Sensor de pressão 69, 117, 118
Sensor de ultrassom 94, 112
Sensores a laser 110
Sensores analógicos 69, 96, 101, 102, 137, 159, 171, 274
Sensores capacitivos 115, 116, 118
Sensores de aceleração 119
Sensores de posicionamento 128, 129, 134
Sensores de temperatura 88, 102, 122, 274
Sensores de vazão 120, 121, 122
Sensores digitais 96, 97, 100, 114, 137
Sensores eletromecânicos 104, 137
Sensores indutivos 104, 114, 115, 133
Sensores magnéticos 104, 116, 117, 122
Sensores NPN 97, 98, 99, 100
Sensores ópticos 105, 106, 108, 110, 114, 137
Sensores ópticos por transmissão 108
Sensor infravermelho 111, 127
Sensor óptico por retrorreflexão 107
Simplificação de circuitos lógicos 150
Sistemas digitais 44, 139, 141, 142, 143, 144, 146, 174, 180, 189, 283, 284
Sistemas Digitais 139
Strain-gage 119, 120
String 265, 268, 269, 270, 272
Sub-rotinas 212, 216, 233, 256, 257, 259, 280

T
Tabela verdade 147, 148, 149, 153, 154, 155, 156, 158, 161, 162, 165, 166, 177, 178, 182, 183, 185,
186, 188, 189
Técnicas digitais 143, 144
Teoremas e Leis da álgebra booleana 151
Termopares 68, 124, 125, 126, 127, 134, 136
TESTAR TRANSISTORES BIPOLARES 53
Testar um diodo 40
Timers 81, 194, 195, 198
Tipos de dados 228, 231, 232, 233, 236, 239, 242, 243, 244, 245, 262
Tiristores 63, 64, 65, 66, 87, 91, 283
Transdutores 93, 129, 132, 133, 134, 135, 136
Transistor bipolar 45, 46, 47, 50, 53, 55, 61, 69, 98
Transistor Darlington 55
Transistores CMOS 62, 63
Transistores de efeito de campo 55
Transistor NPN 46, 48, 49, 50, 54, 62
Transistor PNP 47, 50
TRIAC 64, 66, 67

V
Visão artificial 112
SENAI – DEPARTAMENTO NACIONAL
UNIDADE DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA – UNIEP

Felipe Esteves Morgado


Gerente Executivo

Waldemir Amaro
Gerente

Fabíola de Luca Coimbra Bomtempo


Coordenação Geral do Desenvolvimento dos Livros Didáticos

SENAI – DEPARTAMENTO REGIONAL DO RIO GRANDE DO SUL

Claiton Oliveira da Costa


Coordenação do Desenvolvimento dos Livros no Departamento Regional

Daniel Corteletti
Elaboração

Giancarllo Josias Soares


Rodrigo Rodrigues
Revisão Técnica

Fernando R. G. Schirmbeck
Coordenação Educacional

Enrique Sérgio Blanco


Maria de Fátima R.de Lemos
Patricia Camargo da Silva Rodrigues
Juliana Gemelli
Design Educacional

Bárbara V. Polidori Backes


Camila J. S. Machado
Rafael Andrade
Ilustrações

Bárbara V. Polidori Backes


Roniere Teixeira dos Santos
Aurélio Athayde Rauber
Tratamento de imagens e Diagramação

Cristiane Mesquita T. Luvizetto


Normatização

Patricia Camargo da Silva Rodrigues


Juliana Gemelli
Revisão Ortográfica e Gramatical

i-Comunicação
Projeto Gráfico
ISBN 978-85-7519-850-6

9 788575 198506

Você também pode gostar