PROCESSAMENTO

DE SINAIS
SÉRIE AUTOMAÇÃO INDUSTRIAL
SÉRIE AUTOMAÇÃO 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
SÉRIE AUTOMAÇÃO INDUSTRIAL
PROCESSAMENTO
DE SINAIS
SENAI
Serviço Nacional de
Aprendizagem Industrial
Departamento Nacional
Sede
Setor Bancário Norte . Quadra 1 . Bloco C . Edifício Roberto
Simonsen . 70040-903 . Brasília – DF . Tel.: (0xx61)3317-9190
http://www.senai.br
© 2012. SENAI – Departamento Nacional
© 2012. SENAI – Departamento Regional do Rio Grande do Sul
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 Unidade Estratégica de Desenvolvimento
Educacional – UEDE/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 Profssional e Tecnológica – UNIEP
SENAI Departamento Regional do Rio Grande do Sul
Unidade Estratégica de Desenvolvimento Educacional – UEDE/Núcleo de Educação a
Distância – NEAD
FICHA CATALOGRÁFICA
S491p
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. Brasília : SENAI/DN, 2012.
295 p. : il. (Série Automação Industrial).

ISBN 978-85-7519-531-4
1. Dispositivos eletrônicos. 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: Enilda Hack- CRB 599/10
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 retifcador ..........................................................................................................................................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 - Inversamente Polarizado ........................................................................................................................28
Figura 12 - Diretamente Polarizado ...........................................................................................................................28
Figura 13 - Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de fuxo
de elétrons ...........................................................................................................................................................................28
Figura 14 - Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de re-
pulsão na junção, interrompendo o fuxo de elétrons ........................................................................................29
Figura 15 - Símbolo do diodo retifcador, segundo norma IEEE 315 .............................................................30
Figura 16 - Conversor de corrente alternada para corrente contínua, com retifcador de onda completa .30
Figura 17 - Ponte retifcadora 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 ..............................................................................................................36
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 ...........................................................................................37
Figura 25 - LEDs junto a resistores em um circuito série ...................................................................................37
Figura 26 - Dígito de 7 segmentos, composto por 7 leds para mostar o número, mais um para o ponto .38
Figura 27 - Fotodiodo ....................................................................................................................................................39
Figura 28 - Cortina ótica de segurança com LED .................................................................................................40
Figura 29 - Símbolo do varicap segundo norma IEEE315 .................................................................................40
Figura 30 - Diodo schottky ...........................................................................................................................................41
Figura 31 - Diodo túnel ..................................................................................................................................................41
Figura 32 - Multimetro ...................................................................................................................................................41
Figura 33 - Diodo diretamente polarizado .............................................................................................................42
Figura 34 - Diodo inversamente polarizado ...........................................................................................................42
Figura 35 - Optoacopladores .......................................................................................................................................43
Figura 36 - Circuito divisor de tensão ......................................................................................................................43
Figura 37 - Optoacoplador ..........................................................................................................................................44
Figura 38 - Diagrama de um sistema automatizado ...........................................................................................44
Figura 39 - Circuito integrado ......................................................................................................................................45
Figura 40 - Transmissores NPN e PNP .......................................................................................................................47
Figura 41 - Símbolo de um transistor bipolar NPN e diagrama da junção NPN ........................................48
Figura 42 - Transistor NPN polarizado. Carga representa um circuito ou componente que está
sendo energizado .............................................................................................................................................................48
Figura 43 - Símbolo de um transistor bipolar PNP e diagrama da junção PNP .........................................49
Figura 44 - Transistor NPN polarizado. Carga representa um circuito ou componente que está
sendo energizado .............................................................................................................................................................49
Figura 45 - Circuito de acionamento de relé utilizando transistor NPN .......................................................50
Figura 46 - Circuito de acionamento de relé utilizando transistor PNP .......................................................53
Figura 47 - Encapsulamento: principais encapsulamentos de transistores e suas potências ..............54
Figura 48 - Tela de busca do Google .........................................................................................................................56
Figura 49 - Datasheet do transistor pesquisado ...................................................................................................56
Figura 50 - Detalhe do multímetro, marcado para teste de diodo ................................................................56
Figura 51 - Teste transistor NPN ..................................................................................................................................57
Figura 52 - Teste transistor PNP ...................................................................................................................................57
Figura 53 - Transistor Darlington ................................................................................................................................58
Figura 54 - Símbolo de JFET e representação da estrutura construtiva .......................................................59
Figura 55 - Estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P tipo
enriquecimento e seus respectivos símbolos .........................................................................................................60
Figura 56 - Estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P tipo
depleção e seus respectivos símbolos.......................................................................................................................61
Figura 57 - Motor de corrente contínua convencional ......................................................................................62
Figura 58 - Motor de corrente contínua convencional 1 ...................................................................................62
Figura 59 - Motor DC .......................................................................................................................................................62
Figura 60 - Ponte H para controle da rotação de um motor utilizando transistores MOS .....................63
Figura 61 - Detalhamento .............................................................................................................................................63
Figura 62 - Terminal de controle de um transistor ..............................................................................................64
Figura 63 - Terminal de controle de um transistor 1............................................................................................65
Figura 64 - Conexão da carga a um transistor NPN usado como chave.......................................................65
Figura 65 - Circuito CMOS ou MOS ............................................................................................................................66
Figura 66 - Símbolos CMOS .........................................................................................................................................66
Figura 67 - Tipos de tiristores ......................................................................................................................................67
Figura 68 - Símbolo do SCR ..........................................................................................................................................69
Figura 69 - Analogia entre um SCR e um circuito com dois transistores .....................................................69
Figura 70 - Representação da Curva V x A de um SCR ........................................................................................69
Figura 71 - Símbolo de DIAC ........................................................................................................................................70
Figura 72 - Circuito de um dimmer ............................................................................................................................71
Figura 73 - Voltímetro para milivolts conectado a um sensor de temperatura tipo termopar ............72
Figura 74 - Da direita para esquerda: Sensor de pressão que envia sinal analógico através de vari-
ação de corrente (4 a 20 mA); Sensor tubular indutivo analógico, que envia sinal de 0 a 10V con-
forme proximidade; sensores analógicos por ultrasom, que envia sinal de 0 a 10V ................................73
Figura 75 - Amplifcador operacional. CI LM741 ...................................................................................................75
Figura 76 - Amplifcador inversor. No gráfco em vermelho, o sinal de entrada (V
i
), e em azul o sinal
de saída, já amplifcado e invertido (V
o
). ...................................................................................................................76
Figura 77 - Amplifcador. No gráfco em vermelho, o sinal de entrada (V
i
), e em azul o sinal de saída,
já amplifcado (V
o
). ............................................................................................................................................................76
Figura 78 - Tanque de fuido ........................................................................................................................................77
Figura 79 - Tanque de fuido 1 .....................................................................................................................................77
Figura 80 - Divisor de tensão .......................................................................................................................................78
Figura 81 - Circuito ..........................................................................................................................................................79
Figura 82 - Circuito 1 .......................................................................................................................................................79
Figura 83 - Circuito somador inversor ......................................................................................................................81
Figura 84 - Amplifcador operacional como subtrator .......................................................................................82
Figura 85 - Amplifcador operacional como subtrator 1 ....................................................................................82
Figura 86 - Representação do sinal de entrada (Vin) e saída (Vo) de um oscilador astável ..................83
Figura 87 - Circuito integrado 555 e gráfco de saída .........................................................................................83
Figura 88 - Gráfco de PWM a 1kHz ............................................................................................................................84
Figura 89 - Oscilador Monoestável ............................................................................................................................85
Figura 90 - Filtro com capacitor, aplicado e fontes para diminuição do “ripple” .......................................86
Figura 91 - Gráfco da Intensidade de sinal x Frequência ..................................................................................87
Figura 92 - Filtro passa baixa ........................................................................................................................................87
Figura 93 - Filtro passa alta ...........................................................................................................................................88
Figura 94 - Filtro passa-faixa, usando capacitor, indutor e resistor ................................................................88
Figura 95 - Filtro rejeita-faixa, também conhecido como rejeita-banda .....................................................89
Figura 96 - Filtro passa-baixa ......................................................................................................................................90
Figura 97 - Filtro passa-alta ..........................................................................................................................................90
Figura 98 - Filtro ativo passa-banda ..........................................................................................................................90
Figura 99 - Fonte de bancada ......................................................................................................................................91
Figura 100 - Fonte de microcomputador ................................................................................................................91
Figura 101 - Fonte chaveada 2A .................................................................................................................................91
Figura 102 - Gráfco da tensão após retifcação, sem aplicação de fltros ...................................................92
Figura 103 - Transformador utilizado em uma fonte linear ..............................................................................93
Figura 104 - Fonte simétrica .........................................................................................................................................93
Figura 105 - Esquema de fonte simétrica ................................................................................................................93
Figura 106 - Esquema de fonte simétrica ................................................................................................................94
Figura 107 - Fases de uma fonte chaveada .............................................................................................................95
Figura 108 - Reservatórios d’água ..............................................................................................................................99
Figura 109 - Reservatórios d’água com sensor potenciométrico ................................................................ 100
Figura 110 - Reservatórios d’água com sensor de ultrassom ........................................................................ 100
Figura 111 - Reservatórios d’água medido através do ângulo e refração ................................................ 100
Figura 112 - Reservatórios d’água sensor de nível ............................................................................................ 101
Figura 113 - Reservatórios d’água de célula de carga ..................................................................................... 101
Figura 114 - Reservatórios d’água com terminais condutivos...................................................................... 101
Figura 115 - Sensor de nível digital e um sensor de nível analógico ......................................................... 102
Figura 116 - Chave de contato normalmente aberto com princípio de acionamento magnético . 103
Figura 117 - Botão de emergência com contato normalmente fechado ................................................. 104
Figura 118 - Sensor NPN e PNP, forma de ligação e tipo de sinal de retorno .......................................... 105
Figura 119 - Sensores NPN e PNP com resistor de defnição de sinal para alta impedância ............. 105
Figura 120 - Sensores NPN e PNP ............................................................................................................................ 106
Figura 121 - Dispositivos de acoplamento eletromecânicos (a relé).......................................................... 107
Figura 122 - Sistema de sinaleiro e botoeiras cuja alimentação e comunicação é realizada por um
único cabo de dois fos condutores, usando comunicação digital serial em rede padrão AS-I ........ 107
Figura 123 - Sensor analógico .................................................................................................................................. 108
Figura 124 - Sensor eletrônico de temperatura ................................................................................................. 109
Figura 125 - Princípio físico ....................................................................................................................................... 110
Figura 126 - Chaves mecânicas ............................................................................................................................... 111
Figura 127 - Sensor óptico de refexão, e suas partes emissora/receptora ............................................. 112
Figura 128 - Sensor óptico por retrorrefexão com espelho refetor especial, usado como barreira
óptica para a deteção de objetos ........................................................................................................................... 114
Figura 129 - Sensor óptico por refexão difusa ................................................................................................. 114
Figura 130 - Sensores ópticos por transmissão ................................................................................................. 115
Figura 131 - Sistema de sensor óptico por transmissão usando fbra óptica ......................................... 115
Figura 132 - Sensor de barreira óptica ................................................................................................................. 116
Figura 133 - Scanner a laser ...................................................................................................................................... 117
Figura 134 - Sensor infravermelho .......................................................................................................................... 118
Figura 135 - Relés fotoelétricos e um resistor dependente de luz .............................................................. 119
Figura 136 - Sensor de visão ..................................................................................................................................... 119
Figura 137 - Sensor com ultrasom .......................................................................................................................... 120
Figura 138 - Equipamento aplicado à análise por ultrassom, permitindo identifcar fssuras internas
no material através da análise da propagação do som através do material ............................................. 120
Figura 139 - Sensores indutivos ............................................................................................................................... 121
Figura 140 - Aplicação de sensores indutivos .................................................................................................. 122
Figura 141 - Sensores capacitivos ........................................................................................................................... 123
Figura 142 - Sensores magnéticos .......................................................................................................................... 124
Figura 143 - Cilindro pneumático com êmbolo magnético .......................................................................... 124
Figura 144 - Circuito integrado sensor de efeito HALL A1101, da Allegro MicroSystems Inc. ......... 124
Figura 145 - 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 ....................................... 126
Figura 146 - Sensor de pressão do tipo pressostato de membrana ........................................................... 126
Figura 147 - Circuitos integrados acelerômetros ............................................................................................... 127
Figura 148 - Sensor industrial ................................................................................................................................... 127
Figura 149 - Equipamentos que utilizam acelerômetros ................................................................................ 127
Figura 150 - Sensor strain-gage acoplado à célula de carga ......................................................................... 127
Figura 151 - Modelo de posicionamento ............................................................................................................. 127
Figura 152 - Strain-gage ............................................................................................................................................. 127
Figura 153 - Sensores de turbinas ........................................................................................................................... 128
Figura 154 - Tubulação com ponto de estrangulamento ............................................................................... 129
Figura 155 - Representação de um sensor tipo pitot ....................................................................................... 129
Figura 156 - Rotâmetro ............................................................................................................................................... 129
Figura 157 - Gráfco da curva de sensores NTC e PTC genéricos ................................................................. 131
Figura 158 - Voltímetro ............................................................................................................................................... 132
Figura 159 - Sonda com termopar .......................................................................................................................... 134
Figura 160 - Gráfco das curvas de termopares, entre temperatura e tensão gerada em milivolts 134
Figura 161 - Imagem térmica de um motor elétrico em funcionamento................................................. 135
Figura 162 - Sensor infravermelho para a medição de temperaturas ....................................................... 135
Figura 163 - Braço robótico ....................................................................................................................................... 137
Figura 164 - Encoders ópticos usados em suas articulações e seu princípio de funcionamento .... 137
Figura 165 - Sensor de posição linear .................................................................................................................... 138
Figura 166 - Encoders analógico potenciométrico ........................................................................................... 138
Figura 167 - Encoders absolutos óptico................................................................................................................ 139
Figura 168 - Encoders incrementais ou relativos óptico ................................................................................. 140
Figura 169 - Encoders incrementais ....................................................................................................................... 140
Figura 170 - Diagrama de funcionamento de um transdutor ....................................................................... 142
Figura 171 - Transdutor de corrente, usado para medir a corrente através do campo elétrico gerado
pelo condutor .................................................................................................................................................................. 144
Figura 172 - Esquema de um transdutor industrial de corrente ............................................................... 144
Figura 173 - Transdutores de posição tipo LVDT ............................................................................................... 144
Figura 174 - Transdutores de pressão .................................................................................................................... 144
Figura 175 - Transdutor de força – célula de carga ........................................................................................... 145
Figura 176 - Conversor de 4 a 20mA para sinal de radiofrequência ........................................................... 145
Figura 177 - Comparação analógica e digital ..................................................................................................... 149
Figura 178 - Manômetro analógico (ponteiro) ................................................................................................... 150
Figura 179 - Manômetro digital ............................................................................................................................... 150
Figura 180 - Sistemas numéricos ............................................................................................................................. 151
Figura 181 - Exemplo tabela verdade .................................................................................................................... 157
Figura 182 - Portas Lógicas ........................................................................................................................................ 160
Figura 183 - Operadores da álgebra booleana ................................................................................................... 161
Figura 184 - Mapas de Karnaugh para 5 e para 6 variáveis ............................................................................ 168
Figura 185 - Diagrama de um multiplexador ...................................................................................................... 169
Figura 186 - Multiplexador de 2 canais ................................................................................................................ 170
Figura 187 - Multiplexador de quatro entradas - a) Tabela verdade - b) Circuito implementado ... 170
Figura 188 - Multiplexador de 8 entradas - a) Tabela verdade - b) Símbolo lógico - c) Diagrama lógico .. 171
Figura 189 - Portas lógicas utilizadas como circuitos de habilitação ......................................................... 172
Figura 190 - Multiplexador quádruplo de 2 entradas 74xx157 - a) Tabela verdade - b) Símbolo
lógico - c) Diagrama lógico ......................................................................................................................................... 172
Figura 191 - Diagrama de um demultiplexador ................................................................................................ 173
Figura 192 - Demultiplexador de 2 canais ........................................................................................................... 174
Figura 193 - Projeto de um demultiplexador 1:4 - a) Tabela verdade - b) Expressões para as saídas -
c) Circuito implementado ........................................................................................................................................... 174
Figura 194 - Demultiplexador 1:8 - a) Tabela verdade - b) Expressões para as saídas - c) Diagrama
lógico .................................................................................................................................................................................. 175
Figura 195 - Circuito 74xx138, Decodifcador/Demultiplexador confgurado como demultiplexador
com a entrada de habilitação funcionando como entrada de dados ......................................................... 176
Figura 196 - Circuito 74xx154 confgurado como demultiplexador 1:16 - a) e b) Confgurações para
funcionamento como demultiplexador 1:16 - c) Diagrama lógico .............................................................. 176
Figura 197 - Decodifcador/Demultiplexador 74xx155: a) Tabela verdade; b) Diagrama de conexões;
c) Diagrama lógico ......................................................................................................................................................... 177
Figura 198 - Conversores DA e AD .......................................................................................................................... 178
Figura 199 - Conversão de um sinal analógico para digital ........................................................................... 179
Figura 200 - Conversor AD muito utilizado, o ADC0808 ................................................................................. 180
Figura 201 - Conversor D/A de 4 bits ..................................................................................................................... 182
Figura 202 - Diagrama esquemático de uma calculadora.............................................................................. 183
Figura 203 - Código BCD (Binary Coded Decimal) ............................................................................................ 185
Figura 204 - Display de 7 segmentos ..................................................................................................................... 186
Figura 205 - Circuitos decodifcadores .................................................................................................................. 186
Figura 206 - Decodifcador 74xx138, diagrama lógico e tabela verdade em relação às entradas de
habilitação (enable) ....................................................................................................................................................... 187
Figura 207 - Esquema de ligação de um decodifcador de 2 bits para controlar até 4 saídas, usadas
em um motor de passo de 4 bobinas ..................................................................................................................... 187
Figura 208 - Diagrama geral de um codifcador ................................................................................................ 188
Figura 209 - Painel de equipamento com chave seletora de 8 posições .................................................. 188
Figura 210 - CLP usando 3 entradas digitais para ler sinal de 8 diferentes combinações possíveis 188
Figura 211 - Codifcador de 8 para 3 linhas ......................................................................................................... 189
Figura 212 - Flip-fop RS - a) implementação do circuito com portas NOR - b) símbolo lógico ....... 190
Figura 213 - Flip-fop RS - a) implementação do circuito com portas NAND - b) símbolo lógico .... 191
Figura 214 - Flip-fop RS síncrono - a) implementação do circuito com portas lógicas - b) símbolo
lógico .................................................................................................................................................................................. 191
Figura 215 - Implementação do circuito de um fip-fop JK com portas lógicas ................................... 192
Figura 216 - Implementação do circuito de um fip-fop JK mestre-escravo .......................................... 193
Figura 217 - Símbolo lógico de um fip-fop JK mestre-escravo .................................................................. 194
Figura 218 - Flip-fop sensível à borda................................................................................................................... 194
Figura 219 - Flip-fop JK mestre-escavo com entradas Preset e Clear - a) implementação do circuito
com portas lógicas - b) símbolo lógico .................................................................................................................. 195
Figura 220 - Flip-flop tipo D - a) implementação do circuito a partir de um flip-flop JK - b)
símbolo lógico ............................................................................................................................................................... 196
Figura 221 - Flip-flop tipo T - a) implementação do circuito a partir de um flip-flop JK - b) sím-
bolo lógico ...................................................................................................................................................................... 196
Figura 222 - Circuito com Flip-Flop J-K aplicado à confguração de Toggle. CI utilizado: 74xx73 ... 196
Figura 223 - Gráfco de Aplicações de microcontroladores PIC por família ............................................. 207
Figura 224 - Encapsulamentos do microcontrolador PIC16F877A ............................................................. 210
Figura 225 - Microcontrolador PIC16F877A I/P e seus principais pinos de alimentação, conexão e I/O .. 210
Figura 226 - Microcontrolador PIC16f877A e alguns dos terminais de funções especiais ................. 212
Figura 227 - 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 ......................................... 214
Figura 228 - Controlador multifunção ................................................................................................................... 214
Figura 229 - DB25 femea porta paralela física .................................................................................................... 216
Figura 230 - Fluxograma ............................................................................................................................................. 220
Figura 231 - Janela de novo aquivo ........................................................................................................................ 226
Figura 232 - Tela “Salvar Como”, que aparece ao se iniciar um novo programa ..................................... 226
Figura 233 - Demonstrando a opção para compilação (pode ser obtida pela tecla de atalho F9) . 228
Figura 234 - Demonstrando a compilação em processo ................................................................................ 228
Figura 235 - Hardware criado em um simulador de circuitos eletrônicos ................................................ 230
Figura 236 - Esquema Elétrico .................................................................................................................................. 232
Figura 237 - Comandos para acionamento das saídas digitais .................................................................... 237
Figura 238 - Controle de motor de passo unipolar ........................................................................................... 239
Figura 239 - Comandos para leitura das saídas digitais 1 .............................................................................. 244
Figura 240 - Tipos de dados complexos ................................................................................................................ 248
Figura 241 - Máquina de cálculo inadequada .................................................................................................... 256
Figura 242 - Máquina de cálculo inadequada 1 ................................................................................................. 256
Figura 243 - Fluxograma ............................................................................................................................................. 258
Figura 244 - Hardware ................................................................................................................................................. 263
Figura 245 - Fluxo de execução em um programa com estruturas de repetição while ...................... 265
Figura 246 - Chamadas a funções/sub-rotinas ................................................................................................... 269
Figura 247 - Esquema de ligação de um microcontrolador PIC16F877A ................................................. 272
Figura 248 - Display alfanumérico .......................................................................................................................... 277
Figura 249 - LCD ............................................................................................................................................................ 278
Figura 250 - Uso com o LCD ...................................................................................................................................... 279
Figura 251 - Uso com o LCD 1 ................................................................................................................................... 280
Figura 252 - Uso com o LCD 2 ................................................................................................................................... 282
Figura 253 - Comunicação serial ............................................................................................................................. 283
Figura 254 - Esquema de ligação de um MAX232 a um microcontrolador e uma porta serial
padrão DB9 ..................................................................................................................................................................... 283
Figura 255 - Pinos do PIC16F877A que podem ser confgurados para conversão analógica/digital .... 286
Figura 256 - Potenciômetro de 10K conectado a um microcontrolador. Para facilitar entendimento,
demais ligações de alimentação e clock do microcontrolador foram suprimidas ................................. 287
Figura 257 - Sensor de temperatura LM35DZ, de característica linear, conectado diretamente ao
canal AN0 de um microcontrolador ........................................................................................................................ 288
Figura 258 - Ligação de um LDR em um microcontrolador usando o canal AN1 .................................. 290
Figura 259 - Ligação de um transistor a um motor ........................................................................................... 291
Tabela 1: Técnico em Automação Industrial ............................................................................................................19
Tabela 2: Diodos retifcadores e suas principais características .......................................................................31
Tabela 3: Principais modelos e valores comerciais ................................................................................................34
Tabela 4: Principais modelos de transistores NPN e PNP disponíveis ............................................................54
Tabela 5: Circuito A e B ................................................................................................................................................. 157
Tabela 6: Circuito A e B ................................................................................................................................................. 158
Tabela 7: Principais portas lógicas ............................................................................................................................ 159
Tabela 8: Equivalencias das portas lógicas ............................................................................................................ 160
Tabela 9: Verdade para as expressões equivalentes: a) XY e b) X + Y ...................................................... 164
Tabela 10: Verdade para as expressões complementares a) XY e b) XY..................................................... 164
Tabela 11: Universalidade das portas NAND e NOR .......................................................................................... 164
Tabela 12: Verdade considerando condições irrelevantes .............................................................................. 168
Tabela 13: Tabela verdade para o circuito ............................................................................................................. 174
Tabela 14: Código binário natural de 4 bits .......................................................................................................... 184
Tabela 15: Verdade de um codifcador com entradas negadas ..................................................................... 189
Tabela 16: Verdade para o fip-fop RS implementado com portas NOR.................................................... 190
Tabela 17: Verdade para o fip-fop RS implementado com portas NAND ................................................ 191
Tabela 18: Verdade para o fip-fop RS síncrono .................................................................................................. 192
Tabela 19: Verdade para o fip-fop RS síncrono .................................................................................................. 193
Tabela 20: Verdade para o fip-fop RS síncrono .................................................................................................. 194
Tabela 21: Verdade para o fip-fop JK mestre-escravo com preset e clear .............................................. 195
Tabela 22: Verdade para o fip-fop tipo D ............................................................................................................ 196
Tabela 23: Verdade para o fip-fop tipo T ............................................................................................................. 197
Tabela 24: Modelos comerciais de fip-fop ......................................................................................................... 197
Tabela 25: Execução de uma algoritmo ................................................................................................................ 218
Tabela 26: 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 ............................................................... 222
Tabela 27: Comando executado em linguagem C, e a produção (em código executável) gerada pela
instrução ............................................................................................................................................................................ 223
Tabela 28: Tipos de dados para armazenar valores ............................................................................................ 244
Tabela 29: Prefxo de declaração das variáveis .................................................................................................... 245
Tabela 30: Operadores .................................................................................................................................................. 251
Tabela 31: Operadores avançados ........................................................................................................................... 253
Tabela 32: Especifcadores de formato ................................................................................................................... 281
1 Introdução ......................................................................................................................................................................19
2 Eletrônica Analógica ....................................................................................................................................................21
2.1 Diodos ............................................................................................................................................................24
2.1.1 Diodo retifcador / 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 Amplifcador operacional .....................................................................................................74
2.4.2 Amplifcador operacional como comparador ................................................................78
2.4.3 Amplifcador operacional como somador .......................................................................81
2.4.4 Amplifcador 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
Sumário
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 retrorrefexão ...................................................................................... 114
3.5.2 Sensor óptico por refexão difusa .................................................................................... 114
3.5.3 Sensores ópticos por transmissão ................................................................................... 115
3.5.4 Sensores ópticos através de cabos de fbra ó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 artifcial ........................................................................................................................... 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. Simplifcaçã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 codifcadores e decodifcadores ...................................................................................... 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 decodifcadores .................................................................................................... 186
4.6.4 Circuitos codifcadores ......................................................................................................... 188
4.7 Flip-fop (multivibrador biestável) ..................................................................................................... 189
4.7.1 Flip-fop RS (“reset-set”) ....................................................................................................... 190
4.7.2 Flip-fop RS síncrono ............................................................................................................. 191
4.7.3 Flip-fop JK ................................................................................................................................ 192
4.7.4 Flip-fop JK mestre-escravo (master-slave) ................................................................... 193
4.7.5 Flip-fop JK mestre-escravo com preset e clear .......................................................... 195
4.7.6 Flip-fop D ................................................................................................................................. 195
4.7.7 Flip-fop Tipo T......................................................................................................................... 196
4.7.8 Modelos comerciais de fip-fop ....................................................................................... 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 infnito ............................................................................................................................. 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 fuxo ...................................................................................... 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
Nesta unidade curricular “Processamento de Sinais” começaremos na área específca de
formação, familiarizando-o com o processamento de sinais eletrônicos em sistemas de controle
e automação. Consideraremos conhecimentos relativos à Eletrônica Analógica, Eletrônica Digital,
Microcontroladores e Sensores(DCN-DN).
No primeiro capítulo, que é Eletrônica Analógica, identifcaremos a aplicabilidade dos
fundamentos de eletrônica analógica relativos aos sistemas de controle e automação. No segundo
capítulo, Sensores, analisaremos o funcionamento de dispositivos sensores aplicáveis em sistemas
de controle e automação. No terceiro capítulo, Sistemas Digitais, identifcaremos a aplicabilidade
dos fundamentos de eletrônica digital relativos aos sistemas de controle e automação. No último
capítulo, que é o de Microcontroladores, identifcaremos a aplicabilidade dos fundamentos de
programação de microcontroladores relativos aos sistemas de controle e automação.
A seguir são descritos na matriz curricular dos módulos as unidades curriculares previstas e as
respectivas cargas horárias. (Tabela 1)
Tabela 1: Técnico em Automação Industrial
MÓDULOS DENOMINAÇÃO UNIDADES CURRICULARES CARGA
HORÁRIA
CARGA HORÁRIA
MÓDULO
Módulo Básico Fundamentos técnicos e
científcos
• Fundamentos da Comunicação
• Fundamentos da Eletrotécnica
• Fundamentos da Mecânica
100h
140h
100h
340h
Módulo
Introdutório
Fundamentos técnicos e
científcos
• Acionamento de Dispositivos
Atuadores
160 h
180 h
340h
• Processamento de Sinais
Específco I Manutenção e Implemen-
tação de equipamentos e
dispositivos
• Gestão da Manutenção
• Implementação de Equipamentos
Dispositivos
• Instrumentação e Controle
• Manutenção de Equipamentos e
Dispositivos
34h
136h
102h
68h
340 h
Específco II Desenvolvimento de
sistemas de controle e
Automação
• Desenvolvimento de Sistemas de
Controle
• Sistemas Lógicos Programáveis
• Técnicas de Controle
100h
160h
80h
340h
Fonte: SENAI
Introdução
1
2
Eletrônica Analógica
Eletricidade é o fenômeno físico que tem origem na movimentação dos elétrons. Estudar
eletricidade signifca 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 Automação Industrial, 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 INDUSTRIAL
22
Capacitor
Relés
Resistores
Conectores
Chave
Transistor
Capacitor
Circuitos integrados
Chave táctil
Diodos emissores de luz (LED)
Figura 1 - Circuito
Fonte: Autor
Durante este curso, vamos procurar estudar os principais componentes utilizados
em circuitos eletrônicos (Figura 1) relacionados à área de Automação Industrial.
Para isso precisamos rever os conceitos já estudados sobre ELETRICIDADE. Sendo
assim, vamos fazer uma breve recapitulação destes conteúdos:
REVISANDO 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 defne a força capaz de movimentar cargas
elétricas de um ponto a outro. Para fcar 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)
Em condições normais de temperatura e pressão uma
tensão de 1000V pode romper a rigidez dielétrica de 1 mm
de ar, criando uma “faísca” entre dois pontos? Chamamos
esta faísca de “arco elétrico” ou “arco voltáico”.
VOCÊ
SABIA?
Figura 2 - Raio - Tensão
Fonte: Autor
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 signifcativamente 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 defne 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 em um determinado período, 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.
FIQUE
ALERTA
Uma das grandes variantes que determina a fatalidade
de um choque elétrico não é dada pela TENSÃO, mas
pela CORRENTE. Como a corrente é determinada pela
resistência do corpo em um choque elétrico, uma pessoa
desprotegida, sem luvas isolantes e usando ferramentas
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ífca. Se ligarmos esta fonte de energia em uma carga, teremos
a energia sempre fuindo em uma mesma direção.
Imagem de uma bateria e de um gráfco mostrando que a corrente se mantém
constante durante o tempo. (Figura 3)
Tempo
Corrente tem um único sentido
C
o
r
r
e
n
t
e

e
l
é
t
r
i
c
a
(
A
)
C
a
r
g
a
+
-
Figura 3 - Corrente contínua
Fonte: Autor
AUTOMAÇÃO 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)
C
a
r
g
a
Corrente mude de
sentido periodicamente
F +/-
N Tempo
C
o
r
r
e
n
t
e

e
l
é
t
r
i
c
a

(
A
)
Figura 4 - Corrente alternada
Fonte: Autor
O Paraguai vende ao Brasil a energia elétrica excedente
gerada por sua parte da hidroelétrica de Itaipú, onde
a corrente alternada de 50Hz proveniente das turbinas
geradoras paraguaias é convertida para corrente contínua,
e posteriormente volta a ser transformada em corrente
alternada de 60Hz.
VOCÊ
SABIA?
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 defnir 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 através de semicondutores, que são materiais que reagem de forma
diferente e controlada à passagem da corrente elétrica. (Figura 5 e Figura 6)
(K) (A)
Figura 5 - Símbolo do diodo
Fonte: Autor
Figura 6 - LED (diodo emissor de luz)
Fonte: Autor
2 ELETRÔNICA ANALÓGICA
25
Para que servem os diodos?
Em alguns circuitos, são usados para fazer com que a corrente tenha 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 retifcador
Fonte: Autor
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: Autor
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)
AUTOMAÇÃO INDUSTRIAL
26
V+
DIODO
RESISTOR
GND
RELÉ
TRANSISTOR
Figura 9 - Diodo de proteção contra transientes de tensão
Fonte: Autor
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 é desligado o fuxo de elétrons é bruscamente
interrompido. A bobina do relé, devido a suas características construtivas, possui
uma acentuada propriedade de INDUTÂNCIA, que faz com que o componente
tente manter o fuxo eletromagnético, elevando a tensão várias vezes. Isso pode
danifcar componentes se não houver uma região de “escape” para esta energia. A
função do DIODO neste circuito é fazer com que estes elétrons fquem 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 efciência. Este é o caso
dos diodos emissores de luz, também conhecidos por LEDs.
Em uma TV ou monitor de vídeo de tecnologia LED a luz
tem origem em uma grande matriz de LEDs, dispostos em
linhas e colunas, que iluminam o fundo de acordo com a
imagem? Uma tela de cristal líquido posicionada entre o
espectador e os LEDs determina, através de milhões de
pequenos pontos, por onde a luz deve passar, compondo,
assim, a imagem que vemos.
VOCÊ
SABIA?
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.
2 ELETRÔNICA ANALÓGICA
27
Podemos afrmar 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.
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: Autor
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ífcos 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.
O nome DIODO vem das palavras DI (duplo) com ELETRODO.
VOCÊ
SABIA?
Portanto, um DIODO possui suas características defnidas 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.
AUTOMAÇÃO INDUSTRIAL
28
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 fuam 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 neste 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 signifcativa no circuito.
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)
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
ANODO CATODO
P+
+
-
-
N
C
A
R
G
A
a
l
c
a
l
i
n
a
1
,
5
V

-

A
A
+
-
INVERSAMENTE POLARIZADO
,
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
ANODO CATODO
P
+
+
-
-
N
C
A
R
G
A
a
l
c
a
l
i
n
a
1
,
5
V

-

A
A
+
-
DIRETAMENTE POLARIZADO
,
Figura 11 - Inversamente Polarizado
Fonte: Autor
Figura 12 - Diretamente Polarizado
Fonte: Autor
Na fgura acima observa-se um diodo DIRETAMENTE polarizado em um circuito
alimentado por uma bateria. Neste 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 fuxo de elétrons
Fonte: Autor
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.
2 ELETRÔNICA ANALÓGICA
29
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 difculdades 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 fuxo de elétrons
Fonte: Autor
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 retifcador).
O diodo 1N4007 é um diodo retificador bastante comum,
utilizado em diversas aplicações. Pesquise na internet pelo
termo “datasheet 1n4007” e tente encontrar o material de
alguns fabricantes deste diodo, descobrindo qual corrente e
tensão reversa máximas são suportadas.
SAIBA
MAIS
Algumas características podem variar de diodo para diodo, mudando também
seu comportamento e sua aplicação. Conforme esta relação de aplicação e
comportamento, podemos enumerar os diodos conforme a lista que segue.
• Diodo retifcador ou diodo de sinal
• Diodo zener
• Diodo emissor de luz (led)
• Fotodiodo
• Varicap
• Diodo schottky
• Diodo túnel
Vamos discorrer um pouco sobre os diodos mais utilizados e suas
principais aplicações.
AUTOMAÇÃO INDUSTRIAL
30
2.1.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)
(K) (A)
Figura 15 - Símbolo do diodo retifcador, segundo norma IEEE 315
Fonte: Autor
Os diodos retifcadores são comumente empregados em circuitos que
convertem a Corrente Alternada em Corrente Contínua. Dado o fato de possuir
como principal funcionalidade impedir que haja corrente em um dos sentidos
do circuito, o diodo retifcador pode ser utilizado sozinho ou combinado a outros
diodos em circuitos conhecidos como “pontes retifcadoras”, 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). (Figura 16)
-
+
-
+
FILTRO
DIODOS
RETIFICADORES
Corrente
contínua
Corrente
alternada
~
~
~
~
Figura 16 - Conversor de corrente alternada para corrente contínua, com retifcador de onda completa
Fonte: Autor
Na Figura 16, notamos a presença de quatro diodos retifcadores 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. Desta 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)
- +
-
+
DIODOS
RETIFICADORES
Corrente
contínua
Corrente
alternada
~
~
~
~
+
-
V
+
-
V
s
e
n
t
i
d
o
c
o
r
r
e
n
t
e
- +
-
+
DIODOS
RETIFICADORES
Corrente
contínua
Corrente
alternada
~
~
~
~
+
-
V
+
-
V
s
e
n
t
i
d
o
c
o
r
r
e
n
t
e
Figura 17 - Ponte retifcadora e seus diodos convertendo corrente contínua em corrente alternada
Fonte: Autor
2 ELETRÔNICA ANALÓGICA
31
Devemos observar que, na saída deste tipo de circuito retifcador, a tensão na
saída tem sempre o mesmo sentido, porém ainda está “pulsando” em ondas que
refetem a variação de tensão da entrada CA. Para evitar estes pulsos e estabilizar
a tensão, utilizamos outros tipos de circuito como fltros 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 retifcadores.
Na Tabela 2 apresentamos alguns diodos retifcadores e suas principais características.
Tabela 2: Diodos retifcadores e suas principais características
ENCAPSU-
LAMENTO
NOME(CÓDIGO)
DO DIODO
TENSÃO
REVERSA (V)
CORRENTE
DIRETA
CORRENTE
DE PICO
DIFERENCIAL
DE POTENCIAL
DE JUNÇÃO
SOD - 18
1N4001 50 1A 50A < 1.1V
1N4002 100
1N4003 200
1N4004 400
1N4005 600
1N4006 800
1N4007 1000
DO-04
1N5400 50 3A 200A < 1.2V
1N5401 100
1N5402 200
1N5403 300
1N5404 400
1N5405 500
1N5406 600
1N5407 800
1N5408 1000
1N3879 50 6A 75A < 1.4V
1N3881 200
1N3882 300
1N3883 400
SOD-18
BY126 650 1,75A 50A < 1.5V
BY127 1250
Fonte: Autor, baseado em ESQUEMAS, 2012.
AUTOMAÇÃO INDUSTRIAL
32
Na tabela de diodos retifcadores comerciais observamos as informações de
ENCAPSULAMENTO (forma com que o componente é fsicamente 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: Autor
Em um diodo convencional, ao ultrapassamos a tensão reversa limite, a junção
é danifcada; já em um diodo zener podemos obter o chamado “efeito avalanche”,
sem causar dano ao componente.
o diodo zener tem este nome devido a Clarence Zener, que
descobriu esta propriedade elétrica
VOCÊ
SABIA?
Quando um diodo zener é reversamente polarizado até uma tensão específca
(Vz), a corrente é praticamente nula, mas ao atingir esta tensão o diodo passa a
permitir passagem de corrente. (Figura 19)
3V (+)
6V (+)
0.00
Amps
_ +
+3.00
Volts
-
+
0.00
Volts
-
+
D1
1N5231B
R1
100
+8.77
Amps
_ +
+5.12
Volts
-
+
+0.88
Volts
-
+
D1
1N5231B
R1
100
12V (+)
+65.4
Amps
_ +
+5.46
Volts
-
+
+6.54
Volts
-
+
D1
1N5231B
R1
100
Figura 19 - Circuito
Fonte: Autor
2 ELETRÔNICA ANALÓGICA
33
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 esta 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.
É muito comum circuitos que precisam garantir uma tensão específca 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: Autor
Na fgura acima 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 3 os principais modelos e valores comerciais.
AUTOMAÇÃO INDUSTRIAL
34
Tabela 3: 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 1 W
1N747 3,6 0,4 1N5228 3,9 0,5 1N4752 33 1 W
1N748 3,9 0,4 1N5229 4,3 0,5 1N4753 36 1 W
1N749 4,3 0,4 1N5230 4,7 0,5 1N4754 39 1 W
1N750 4,7 0,4 1N5231 5,1 0,5 1N4755 43 1 W
1N751 5,1 0,4 1N5232 5,6 0,5 1N4756 47 1 W
1N752 5,6 0,4 1N5234 6,2 0,5 1N4757 51 1 W
1N753 6,2 0,4 1N5235 6,8 0,5 1N4758 56 1 W
1N754 6,8 0,4 1N5236 7,5 0,5 1N4759 62 1 W
1N755 7,5 0,4 1N5237 8,2 0,5 1N4760 68 1 W
1N756 8,2 0,4 1N5239 9,1 0,5 1N4761 75 1 W
1N757 9,1 0,4 1N5240 10 0,5 1N4762 82 1 W
1N758 10 0,4 1N5242 12 0,5 1N4763 91 1 W
1N759 12 0,4 1N5245 15 0,5 1N4764 100 1 W
1N957 6,8 0,4 1N5246 16 0,5 1N5333 3,3 5 W
1N958 7,5 0,4 1N5248 18 0,5 1N5334 3,6 5 W
1N959 8,2 0,4 1N5250 20 0,5 1N5335 3,9 5 W
1N960 9,1 0,4 1N5251 22 0,5 1N5336 4,3 5 W
1N961 10 0,4 1N5252 24 0,5 1N5337 4,7 5 W
1N962 11 0,4 1N5254 27 0,5 1N5338 5,1 5 W
1N963 12 0,4 1N5256 30 0,5 1N5339 5,6 5 W
1N964 13 0,4 1N5257 33 0,5 1N5340 6,0 5 W
1N965 15 0,4 1N5258 36 0,5 1N5341 6,2 5 W
1N966 16 0,4 1N5259 39 0,5 1N5342 6,8 5 W
1N967 18 0,4 1N5260 43 0,5 1N5343 7,5 5 W
1N968 20 0,4 1N5261 47 0,5 1N5344 8,2 5 W
1N969 22 0,4 1N5262 51 0,5 1N5345 8,7 5 W
1N970 24 0,4 1N5263 56 0,5 1N5346 9,1 5 W
1N971 27 0,4 1N5265 62 0,5 1N5347 10 5 W
1N972 30 0,4 1N5266 68 0,5 1N5348 11 5 W
1N973 33 0,4 1N5267 75 0,5 1N5349 12 5 W
1N974 36 0,4 1N5268 82 0,5 1N5350 13 5 W
1N975 39 0,4 1N5270 91 0,5 1N5351 14 5 W
1N976 43 0,4 1N5271 100 0,5 1N5352 15 5 W
1N977 47 0,4 1N4728 3,3 1 W 1N5353 16 5 W
1N978 51 0,4 1N4729 3,6 1 W 1N5354 17 5 W
1N979 56 0,4 1N4730 3,9 1 W 1N5355 18 5 W
1N980 62 0,4 1N4731 4,3 1 W 1N5356 19 5 W
1N981 68 0,4 1N4732 4,7 1 W 1N5357 20 5 W
1N982 75 0,4 1N4733 5,1 1 W 1N5358 22 5 W
1N983 82 0,4 1N4734 5,6 1 W 1N5359 24 5 W
1N984 91 0,4 1N4735 6,2 1 W 1N5361 27 5 W
1N985 100 0,4 1N4736 6,8 1 W 1N5362 28 5 W
Continua
2 ELETRÔNICA ANALÓGICA
35
Continuação - Tabela 3: Principais modelos e valores comerciais
CÓD. TENSÃO WATTS CÓD. TENSÃO WATTS CÓD. TENSÃO WATTS
1N986 110 0,4 1N4737 7,5 1 W 1N5363 30 5 W
1N987 120 0,4 1N4738 8,2 1 W 1N5364 33 5 W
1N988 130 0,4 1N4739 9,1 1 W 1N5365 36 5 W
1N989 150 0,4 1N4740 10 1 W 1N5366 39 5 W
1N990 160 0,4 1N4742 12 1 W 1N5367 43 5 W
1N991 180 0,4 1N4743 13 1 W 1N5368 47 5 W
1N992 200 0,4 1N4744 15 1 W 1N5369 51 5 W
1N5221 2,4 0,5 1N4745 16 1 W 1N5370 56 5 W
1N5222 2,5 0,5 1N4746 18 1 W 1N5371 60 5 W
1N5223 2,7 0,5 1N4747 20 1 W 1N5372 62 5 W
1N5224 2,8 0,5 1N4748 22 1 W 1N5373 68 5 W
1N5225 3,0 0,5 1N4749 24 1 W 1N5374 75 5 W
1N5226 3,3 0,5 1N4750 27 1 W
FONTE: ELBEST, 2011
2.1.3 DIODO EMISSOR DE LUZ
É um dos tipos mais conhecidos de diodo, embora seja costumeiramente
conhecido pelo termo LED, que signifca 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)

Figura 21 - Símbolo de LED e um LED
Fonte: Autor
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 signifcativamente 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 retifcadores 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 defnidas
pela junção e a dopagem do semicondutor.
AUTOMAÇÃO INDUSTRIAL
36
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 30mA. (Figura 22)
Matrizes de LEDs orgânicos miniaturizados já são utilizadas
também para construir telas mais finas e menos caras, e, ao
contrário dos displays de cristal líquido, os displays OLED
(Organic LED) não precisam de luz de fundo, pois cada
ponto emite sua própria luz.
VOCÊ
SABIA?
Diodo
Emissão de Luz
Plastico transparente
Terminais
Figura 22 - Imagem interna de um diodo
Fonte: Autor
Muitos dispositivos eletrônicos utilizam LEDs como sinalizadores
visuais, porém só recentemente os LEDs começaram a ser
aplicados em iluminação. Pesquise sobre as vantagens e
desvantagens da iluminação a LED residencial e automotiva.
SAIBA
MAIS
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: Autor
2 ELETRÔNICA ANALÓGICA
37
Figura 24 - Máquina utilizando os sinaleiros de LED
Fonte: Autor
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
24V C. C.
Resistor
LED
+
-
Figura 25 - LEDs junto a resistores em um circuito série
Fonte: Autor
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.
Neste caso, temos um LED de 1,7V e 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.
AUTOMAÇÃO INDUSTRIAL
38
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: Autor
Pesquisando sobre a diferença entre displays LED de 7
segmentos dos tipos anodo comum e catodo comum, e sobre o
custo médio de um dígito numérico com 10 a 20 mm de altura.
SAIBA
MAIS
CASOS E RELATOS
Uso de LEDs no lugar de lâmpadas de flamento 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 lubrifcação e fnal 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 fos de alimentação,
substituindo cada um por um sinaleiro LED 24V. Embora os sinaleiros novos tivessem
a mesma especifcaçã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 fos 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 ELETRÔNICA ANALÓGICA
39
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.
É bastante comum sua aplicação em circuitos receptores de controle remoto
ou em sensores ópticos. (Figura 27)
Led emitindo
pulsos de luz
infravermelha
simbologia
Sensor
fotodiodo
Figura 27 - Fotodiodo
Fonte: Autor
A comunicação do controle remoto com o aparelho de TV
é realizada através de pulsos de luz infravermelha longos
e curtos, cada um com duração menor que um milésimo
de segundo? Ao se pressionar uma tecla do controle,
são enviados pulsos longos e curtos (zeros e uns) que,
combinados, geram a sequência binária que identifica a
função desejada.
VOCÊ
SABIA?
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 de Automação
Industrial, como cortinas óticas de segurança ou sensores ópticos, utilizam os
LEDs e FOTODIODOS em um processo onde 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.
AUTOMAÇÃO INDUSTRIAL
40
Figura 28 - Cortina ótica de segurança com LED
Fonte: Autor
Para evitar interferência de outras fontes de luz, geralmente ocorre a
“modulação” do sinal luminoso, gerando uma frequência específca 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 signifcativamente menor.
2.1.5 VARICAP
Embora quase todos os componentes baseados em semicondutores
apresentem uma “capacitância” devido a suas junções, o VARICAP possui esta
característica mais intensa que os outros diodos. (Figura 29)
Figura 29 - Símbolo do varicap segundo norma IEEE315
Fonte: Autor
Em outras palavras, o VARICAP é um diodo que também tem a propriedade
de capacitor. Ele possui CAPACITÂNCIA variada conforme a tensão reversa. Sua
principal aplicação é na área de Telecomunicações, principalmente em circuitos
de radiofreqüência, como alternativa de capacitores variáveis.
2 ELETRÔNICA ANALÓGICA
41
2.1.6 DIODO SCHOTTKY
É um diodo que apresenta uma resposta bem mais veloz do que o diodo retifcador
convencional, pois é construído com materiais semicondutores alternativos, e
geralmente é utilizado em aplicações que exigem velocidades de resposta muito
rápida, como na área de Telecomunicações, onde a quantidade de ciclos por segundo
(frequência) das aplicações pode ser superior a 1.000.000 (1 GHz). (Figura 30)
Anodo Catodo
Figura 30 - Diodo schottky
Fonte: Autor
2.1.7 DIODO TÚNEL
Também conhecido como Diodo Esaki em homenagem a Leo Esaki, que
descobriu o efeito túnel. Este diodo possui características relativas a rápidas
respostas e é geralmente utilizado na construção de circuitos de radiofrequência.
A K
Figura 31 - Diodo túnel
Fonte: Autor
2.1.8 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.
Neste caso, observe que no multímetro deve haver a indicação para teste de diodo.
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
Figura 32 - Multimetro
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
42
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 33 e Figura 34)
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
Figura 33 - Diodo diretamente polarizado
Fonte: Autor
Figura 34 - Diodo inversamente polarizado
Fonte: Autor
Se o diodo conduzir quando diretamente polarizado (na imagem, mostrando
o valor da queda de tensão realizada pela junção) e não conduzir quando
inversamente polarizado (mostrando representação de leitura infnita no display),
então provavelmente ele estará bom.
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, danifcado.
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.9 OPTOACOPLADORES
Optoacopladores, também chamados de fotoacopladores, são componentes
que utilizam semicondutores para realizar acoplamento através 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 35)
2 ELETRÔNICA ANALÓGICA
43
Fotoacoplador
de 4 terminais
Fotoacoplador
de 6 terminas
Encapsulamento
para montagem
em superfície - 6 terminais
Símbolos
1
2
3
4
1 2 3
6 5 4
Figura 35 - Optoacopladores
Fonte: Autor
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 24V a um microcontrolador
que opera a 5V, podemos:
1) Criar um circuito divisor de tensão com resistores e baixar a tensão de 24V para 5V.
24V +
24V
(GND) ligação entre
as fontes
5V
4K7
1k2
(GND)
5V +
SENSOR
uC
Figura 36 - Circuito divisor de tensão
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
44
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.
2) Usar um OPTOACOPLADOR, dimensionando um resistor em série com o LED
interno do componente para atingir a corrente ideal ao ser polarizado com 24V.
24V +
24V
(GND)
1K2
10K
5V
(GND)
5V +
SENSOR
uC
Figura 37 - Optoacoplador
Fonte: Autor
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 danifquem 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ífco. Alguns exemplos
de atuadores são os motores elétricos, cilindros pneumáticos e hidráulicos,
eletroválvulas, sinalizadores, relés e contactoras. (Figura 38)
Equipamento
+
ambiente
Sensores
Atuadores
Controlador
Processamento
Figura 38 - Diagrama de um sistema automatizado
Fonte: Autor
2 ELETRÔNICA ANALÓGICA
45
Entre o sinal capturado pelos sensores e o controle dos atuadores existe a
necessidade de circuitos físicos (hardware) ou lógicos (software) que defnirã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), onde complexas e numerosas redes de circuitos são construídas em
pastilhas minúsculas.
Com a redução do tamanho dos transistores, houveram reduções de custo,
aumento de velocidade, redução do tamanho do hardware fnal e redução
signifcativa no consumo de energia. O problema é que estes semicondutores,
como no caso do microcontrolador, fcam impedidos de controlar diretamente
cargas utilizadas em sistemas automatizados, como motores elétricos ou mesmo
a simples bobina de um relé convencional.
Segue na Figura 39 o interior de um circuito integrado, onde a
nanotecnologia permitiu a integração de milhares de transistores em uma
única pastilha de alguns milímetros.
Figura 39 - Circuito integrado
Fonte: Autor
Portanto, devido a suas características construtivas, um circuito integrado
não permite acionamentos diretos de dispositivos através de correntes e tensões
signifcativas. Uma tensão elevada (acima de 5V) poderia romper a isolação
minúscula entre as trilhas, e correntes elevadas poderiam facilmente romper os
minúsculos flamentos e ligações internas do C.I.
AUTOMAÇÃO INDUSTRIAL
46
Na automação, 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 amplifcar 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 através
do controle realizado por um sinal elétrico.
Considerando uma fonte de alimentação estabilizada, por exemplo, com saída
de 24V, 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 fcar 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.
No uso como controle de corrente, o transistor substituiu as antigas válvulas
termoiônicas por ter um consumo de energia muito menor e tamanho e custo
bastante reduzidos.
2 ELETRÔNICA ANALÓGICA
47
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.
A invenção do transistor ocorreu após a Segunda Guerra
Mundial, e que foi influenciada pelas pesquisas realizadas
durante a Guerra, onde se estudou o uso de cristais de
germânio e silício para a construção de detectores de radar.
VOCÊ
SABIA?
Anteriormente afrmamos 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.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 40)
N N N P P P
E
m
i
s
s
o
r
B
a
s
e
C
o
l
e
t
o
r
E
m
i
s
s
o
r
B
a
s
e
C
o
l
e
t
o
r
Figura 40 - Transmissores NPN e PNP
Fonte: Autor
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 fna camada com uma dopagem média; através dela
POLARIZAMOS o transistor, permitindo que as cargas elétricas fuam. 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.
O transistor foi inventado em 1947 pelos pesquisadores
da Bell Telephones, nos EUA, para substituir as válvulas
eletrônicas nas aplicações de telefonia.
VOCÊ
SABIA?
AUTOMAÇÃO INDUSTRIAL
48
Podemos dividir os transistores bipolares em duas categorias, de acordo com
o arranjo entre seus tipos de material semicondutor: NPN e PNP.
Transistores NPN: (Figura 41)
coletor
base
emissor
NPN
N N P
e
m
i
s
s
o
r
b
a
s
e
c
o
l
e
t
o
r
Figura 41 - Símbolo de um transistor bipolar NPN e diagrama da junção NPN
Fonte: Autor
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).
Inicialmente, podemos imaginar o TRANSISTOR NPN como um DIODO,
onde 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 (V
BE
), 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 42)
corrente
menor
c
a
r
g
a
NPN
coletor
base
emissor
corrente
maior
Figura 42 - Transistor NPN polarizado. Carga representa um circuito ou componente que está sendo energizado
Fonte: Autor
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.
2 ELETRÔNICA ANALÓGICA
49
Transistores PNP: (Figura 43)
coletor
base
emissor
PNP
P P N
e
m
i
s
s
o
r
b
a
s
e
c
o
l
e
t
o
r
Figura 43 - Símbolo de um transistor bipolar PNP e diagrama da junção PNP
Fonte: Autor
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, onde 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.
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 h
fe
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 44)
corrente
menor
c
a
r
g
a
PNP
coletor
base
emissor
corrente
maior
Figura 44 - Transistor NPN polarizado. Carga representa um circuito ou componente que está sendo energizado
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
50
Embora possamos controlar a corrente que passa por um transistor através
da variação da corrente em sua base, nosso objetivo agora é utilizar o transistor
como uma CHAVE ELETRÔNICA, onde iremos utilizar transistores em duas 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 simplifcada, podemos pensar que já bastariam 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 :
1) Fornece tensão de 0V ou de 5V (sinal digital).
2) 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.
+70.2
Amps
5V
+
D1
5V
RL1
+3.28
Amps
+
B
C
TRANSISTOR
PNP
E
R2
1K2
R3
20K
SINAL 5V
(MAX 0,02A)
atuador
(ligado)
atuador
(desligado)

0.00
Amps
5V
+
D1
5V
RL1
0.00
Amps
0V
+
B
C
TRANSISTOR
NPN
E
R2
1K2
R3
20K
Figura 45 - Circuito de acionamento de relé utilizando transistor NPN
Fonte: Autor
No circuito acima, o objetivo é ligar ou desligar um relé com bobina de 5V.
Ao liga-lo, a corrente do circuito da bobina ultrapassa 70mA, várias vezes maior
do que o limite de corrente do circuito de controle informado, que é de 20mA.
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.
2 ELETRÔNICA ANALÓGICA
51
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 4mA, obtendo uma corrente coletor
-> emissor máxima de 400mA, 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 BASE -> 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 a base é de 5V, sobram 5V – 0,7V = 4,3V para o
restante do circuito.
Sendo que este transistor suporta até 500 mA, e sabendo que uma corrente
de 400mA é 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.
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? Este resistor é utilizado para estabilizar e ajudar a
defnir 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 fm de estabilizar sua base. Como este resistor interfere na
corrente aplicada na base, seu valor não pode ser muito baixo.
AUTOMAÇÃO INDUSTRIAL
52
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.
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.
2 ELETRÔNICA ANALÓGICA
53
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.
Segue, Figura 46, um circuito similar ao anterior, porém usando um TRANSISTOR PNP.
5V
C
O
N
T
R
O
L
E
R2
1K2
R3
20K
Q2
BC557
PNP
5V
RL1
D1
1N4007
5V
C
O
N
T
R
O
L
E
R2
1K2
R3
20K
Q2
BC557
PNP
5V
RL1
D1
1N4007
Figura 46 - Circuito de acionamento de relé utilizando transistor PNP
Fonte: Autor
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.
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 47)
AUTOMAÇÃO INDUSTRIAL
54
E-Line
1 2 3
1
2
3
TO1
1
2
3
1
2
3
3
4
TO72
1 2
TO3/ TO204
1
2
4 3
TO3( 4PI N)
1 2
3
(CASA)
SOT103
T05/T018
TO39/TO205
4
1
2
3
T0250
1
2
3
4
3
4
T0218/T0220
SOT93/TAB

(TAB)
T02205
1 2 3
T03P/T0247
4
( TAB)
1 2 3
1 2 3
SOTB2
4
(TAB)
3
( TAB)
1 2 34 5
4
1 2 3
TO 262/TO 251
1 2 3
TO126/SOT32
4
(TAB)
SOT199
1 2 3
ISO TOP / SOT227B
4 3
1 2
1 2 3
ISO 218/220
1 2 3
SOT186
ISO 221
1 2 3
ISO126
1 2 3
TO247/5
TO92/TO237
12345
3
TO246
4
( TAB)
Figura 47 - Encapsulamento: principais encapsulamentos de transistores e suas potências
Fonte: Autor
Segue na Tabela 4 com os principais modelos de transistores NPN e PNP disponíveis.
Tabela 4: Principais modelos de transistores NPN e PNP disponíveis
NPN PNP CORRENTE
MÁXIMA
COLETOR-
EMISSOR (A)
ENCAPSULAMENTO TENSÃO
MÁXIMA
COLETOR-
EMISSOR (V)
GANHO ( β )
BC546 BC556 0.1 to-92 65
BC547 BC557 0.1 to-92 45
BC548 BC558 0.1 to-92 30
BC549 BC559 0.1 to-92 30
BC550 BC560 0.1 to-92 45
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
2 ELETRÔNICA ANALÓGICA
55
Continuação Tabela 4: Principais modelos de transistores NPN e PNP disponíveis
NPN PNP CORRENTE
MÁXIMA
COLETOR-
EMISSOR (A)
ENCAPSULAMENTO TENSÃO
MÁXIMA
COLETOR-
EMISSOR (V)
GANHO ( β )
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 1 to-92 40 300
MMB-
T2222A
1 sot-23 40 300
PZT2222A 1 sot-223 40 300
2N3019 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 60 1000
TIP141 TIP146 5 80 1000
TIP142 TIP147 5 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
Fonte: Autor
A Tabela 4 deve ser utilizada como uma referência rápida e superfcial.
Consulte a documentação (folha de dados, ou “datasheet”) do componente para
informações atualizadas.
COMO TESTAR TRANSISTORES BIPOLARES
1° passo: identifcar os pinos e o tipo do transistor.
Embora haja certa padronização em relação ao encapsulamento, é importante
identifcar no transistor os PINOS relativos o emissor, à base e ao coletor. Em caso
de dúvida, pesquise na internet pelo DATASHEET do componente em sites de
busca, como na Figura 48:
AUTOMAÇÃO INDUSTRIAL
56
Figura 48 - Tela de busca do Google
Fonte: Autor, captura de tela
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 signifcativas, 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 49)
NPN
Figura 49 - Datasheet do transistor pesquisado
Fonte: Autor
2° passo: ferramenta
Para verifcar o transistor bipolar, podemos usar um multímetro digital na
posição de teste de diodo. (Figura 50)
OFF
V
V
mV
Ω
mA
A
µ A
Figura 50 - Detalhe do multímetro, marcado para teste de diodo
Fonte: Autor
2 ELETRÔNICA ANALÓGICA
57
3° passo:
Se for um transistor NPN, siga os testes conforme Figura 51.
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
infnito infnito
infnito
infnito
C
B
E
C
B
E
C
B
E
A
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
C
B E
C
B E
tensão junção PN tensão junção PN
C
B
E
Figura 51 - Teste transistor NPN
Fonte: Autor
Se o transistor for PNP, faça os testes conforme Figura 52.
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
infnito
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
infnito
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
infnito
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
tensão junção PN
infnito
C
B
E
C
B
E
C
B
E
C
B E
C
B E
tensão junção PN
C
B
E
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
Figura 52 - Teste transistor PNP
Fonte: Autor
Caso alguma medição que deva resultar em INFINITO demonstre algum valor,
há indícios de que este 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.
AUTOMAÇÃO INDUSTRIAL
58
FIQUE
ALERTA
Caso um transistor esteja em curto, a provável causa é dada
ao excesso de corrente coletor - emissor ou base – emissor.
Se o transistor apresentar junções abertas, a provável causa
será dada a uma tensão reversa acima do limite suportado.
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 53:
B
Q1
Q2
E
C
B
Q1
Q2
E
C
(NPN) (PNP)
Figura 53 - Transistor Darlington
Fonte: Autor
É 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 confguraçã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 (NPN ou PNP).
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 efciê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 signifcativas 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).
2 ELETRÔNICA ANALÓGICA
59
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 Efect Transistor (transistor de efeito de campo de junção)
e o MOSFET - Metal Oxide Semiconductor Field Efect Transistor (Transistor de
efeito de campo de óxido de metal). Este último ainda é dividido em outras duas
subcategorias, conhecidas como MOSFET tipo crescimento ou intensifcação e
MOSFET tipo depleção.
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). (Figura 54)
dreno(D)
porta(G)
fonte(S)
D
P P
N
G
S
c
a
n
a
l

N
dreno(D)
porta(G)
fonte(S)
c
a
n
a
l

P
D
N N
P
G
S
Figura 54 - Símbolo de JFET e representação da estrutura construtiva
Fonte: Autor
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 fuxo
de elétrons, e SOURCE (fonte) fornece os elétrons.
Alguns autores associam o comportamento dos JFET a resistores controláveis,
pois, através 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.
Podemos fazer a comparação entre os transistores bipolares e os JFET da
seguinte forma: COLETOR = DRAIN, BASE = GATE e EMISSOR = SOURCE.
AUTOMAÇÃO INDUSTRIAL
60
Pesquise sobre o uso de transistores JFET em
amplificadores, fontes de corrente, circuitos recortadores
(ou chopper) e chaves analógicas.
VOCÊ
SABIA?
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.
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:
• Transistor MOS canal N (ou NMOS) tipo crescimento ou enriquecimento;
• Transistor MOS canal N tipo depleção;
• Transistor MOS canal P (ou PMOS) tipo crescimento ou enriquecimento;
• Transistor MOS canal P tipo depleção.
A Figura 55 mostra a estrutura construtiva de um transistor MOS canal N de um
transistor MOS canal P tipo enriquecimento e seus respectivos símbolos:
N+
N+
Dreno
(drain)
Porta
(gate)
Fonte
(source)
P
Substrato
(body)
N
P+
P+
Dreno
(drain)
Porta
(gate)
Fonte
(source)
Substrato
(body)
N-MOS ou MOSFET canal N P-MOS ou MOSFET canal P
SUB
D
G
S
CANAL N
SUB
D
G
S
CANAL P
Figura 55 - Estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P
tipo enriquecimento e seus respectivos símbolos
Fonte: Autor
2 ELETRÔNICA ANALÓGICA
61
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 (V
DS
), a
condução de corrente entre esses terminais dependerá da tensão aplicada na porta
(V
GS
). Se a tensão aplicada ao terminal de porta for positiva e grande o sufciente,
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.
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 56 mostra a estrutura construtiva de um transistor MOS canal N e um
transistor MOS canal P tipo depleção e seus respectivos símbolos:
P
N+
N+
N
Substrato
(body)
Dreno
(drain)
Porta
(gate)
Fonte
(source)
MOSFET canal N
P
P+
P+
N
Substrato
(body)
Dreno
(drain)
Porta
(gate)
Fonte
(source)
MOSFET canal P
SUB
D
G
S
CANAL N
SUB
D
G
S
CANAL P
Figura 56 - Estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P
tipo depleção e seus respectivos símbolos
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
62
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 Automação Industrial é
a chamada ponte H. Este circuito é utilizado em situações onde, 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 57)
+
_
horário
+
_
anti-horário
Figura 57 - Motor de corrente contínua convencional
Fonte: Autor
Através de um circuito com quatro chaves podemos defnir o sentido de
rotação do motor. (Figura 58)
+
_
+
_
C
h
a
v
e

2



C
h
a
v
e
1
C
h
a
v
e

4



C
h
a
v
e

3
C
h
a
v
e

2


C
h
a
v
e

1
C
h
a
v
e

4


C
h
a
v
e

3
+
_
C
h
a
v
e

2


C
h
a
v
e

1
C
h
a
v
e

4


C
h
a
v
e

3
Figura 58 - Motor de corrente contínua convencional 1
Fonte: Autor
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.
nf na
C
b
o
b
i
n
a
b
o
b
i
n
a
+
_
nf
na
C
Figura 59 - Motor DC
Fonte: Autor
2 ELETRÔNICA ANALÓGICA
63
Apesar de o circuito acima funcionar, existem limitações quanto ao tamanho (o
circuito usando relés tende a ser maior do que usando semicondutores), à lentidão
(o uso de dispositivos eletromecânicos, como os relés, é muitas vezes mais lento
do que os que usam semicondutores como transistores) e à necessidade de um
sinal de controle amplifcado o sufciente 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 através 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.
Na Figura 60 é apresentado o esquema de uma ponte H controlando um
motor DC.
D1 D3
D4
D2
Q1
Q2
Q3
Q4 M
+ V
Controle
Figura 60 - Ponte H para controle da rotação de um motor utilizando transistores MOS
Fonte: Autor
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 61.
V+ V+ V+ V+
Figura 61 - Detalhamento
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
64
É 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.
FIQUE
ALERTA
Em uma PONTE H, é importante avaliar a implementação
de um circuito de controle robusto e proteção em caso de
acionamento indevido, pois caso haja acionamento em
ambas as direções, ocorrerá um “curto circuito”, elevando
drasticamente a corrente e podendo causar danos
irreversíveis aos componentes.
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
transistores para acionamentos em ponte H.
SAIBA
MAIS
OBSERVAÇÕES SOBRE A UTILIZAÇÃO DE TRANSISTORES BIPOLARES E
MOSFETS
1) Nem o transistor bipolar, nem o MOSFET servem para controlar correntes
alternadas.
2) Os MOSFETS são mais caros que os transistores bipolares, mas funcionam
melhor como chaves em altas frequências.
3) 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. (Figura 62)
C
E
B
carga
D
S
G
carga
NÃO!
Figura 62 - Terminal de controle de um transistor
Fonte: Autor
Costumeiramente, a carga, quando em série com um terminal, é colocada
junto ao coletor ou ao dreno.
4) É 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. (Figura 63)
2 ELETRÔNICA ANALÓGICA
65
B
C
E
carga
C
E
B
carga
NÃO!
+V
+V
Figura 63 - Terminal de controle de um transistor 1
Fonte: Autor
Para evitar o problema, um simples resistor em série com a base evitará esse
curto, além de limitar a corrente de base.
5) Sempre devemos colocar um diodo em paralelo com uma carga indutiva,
como mostra a Figura 64. Quando a corrente fui normalmente, o diodo não conduz,
mas quando o fuxo 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
( indutor, relé,
transformador etc.)
Chave eletrônica
(transistor bipolar,
MOSFET, SCR etc.)
Diodo
Figura 64 - Conexão da carga a um transistor NPN usado como chave
Fonte: Autor
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 65. Esses circuitos são chamados de CMOS ou MOS complementar
(Complementary Metal-Oxide Semiconductor).
AUTOMAÇÃO INDUSTRIAL
66
P= substrate
n-well
p+ p+ p+ n+ n+ n+
B B S S
G G
D D
NMOS PMOS
Figura 65 - Circuito CMOS ou MOS
Fonte: Autor
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.
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
amplifcadores 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 66)
D
S
G
D
S
G
D
S
G
D
S
G
CMOS canal P CMOS canal N
Figura 66 - Símbolos CMOS
Fonte: Autor
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 através de quatro ou mais
camadas P e N.
2 ELETRÔNICA ANALÓGICA
67
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 através de
um terminal de disparo (GATE), ou através 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 (I
H
).
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 retifcaçã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.
Conforme a construção e a forma de disparo, os tiristores são classifcados
conforme a Figura 67:
A
K
K
SCR
(Silicon Controlled Rectifer)
G
A
K
G
TRIAC
(Triode AC Switch)
M2 M2
M1
G
G G
A
M1
K
SUS
(Silicon Unilateral Switch)
ASBS
(Assymmetrical Silicon Bilateral
Switch)
1
PUT
(Programmable Unijunction
Transistor)
A
G
LASCAR
(Light Activated SCR)
K
A
G
G2
K
G
SCS
(Silicon Controlled Switch)
GTO
(Gate Turn-Of Switch)
M2
G
M1
SBS
(Silicon Bilateral Switch)
DIAC
(Bidirectional Diode
Thyristor)
A2
M1
K
G
K
G2
LAPUT
(Light Activated PUT)
LASCS
(Light Activated SCS)
G1
Figura 67 - Tipos de tiristores
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
68
MODOS DE DISPARO:
Os tiristores são controlados por uma ação específca que faz com que mudem
de ESTADO DE BLOQUEIO para ESTADO CONDUTIVO. Esta ação é chamada de
disparo e pode ser realizada por processos diferentes, que seguem.
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).
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ífco, sem a necessidade de um terceiro terminal. Este procedimento é usado
para o tiristor do tipo DIAC.
TAXA DE SUBIDA DA TENSÃO ANODO – CATODO: Quando o disparo é realizado
por uma rápida variação na tensão entre anodo e catodo.
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 sufciente é atingido, ocorre a mudança de estado (disparo).
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 vida útil, ausência de arco
elétrico durante comutações, e velocidade muito mais
elevada? Este componente, bastante utilizado em sistemas
de automação, utiliza tiristores como componente de
comutação da parte de potência.
VOCÊ
SABIA?
Pesquisando por relés de estado sólido e optoacopladores
baseados em tiristores.
SAIBA
MAIS
2.3.1 SCR
SCR signifca SILICON CONTROLLED RECTIFIER – Retifcador 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 deve estar diretamente
polarizado, e receber um pulso através de seu pino GATE, que alguns autores
acabam associando ao termo “gatilho” devido à característica do DISPARO, embora
a tradução literal seja “comporta”.
2 ELETRÔNICA ANALÓGICA
69
PORTA
ANODO CATODO
Figura 68 - Símbolo do SCR
Fonte: Autor
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 defnamos 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, segundo a Figura 69:
ANODO
ANODO
PORTA
PORTA
CATODO
CATODO
NPN
PNP
Figura 69 - Analogia entre um SCR e um circuito com dois transistores
Fonte: Autor
Apresentamos agora um gráfco 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.
I
g
2

>

I
g
1
I
g
1
>
0
I
g
=

0
Característica
de condução direta
(A)
Corrente direta
Tensão direta
(V)
VRO Corrente de fuga
Corrente de fuga
VT
Corrente inversa
Zona de ruptura inversa
(dano no componente)
Tensão Inversa
Intensidade da corrente
de manutenção
(I
H
)
Intensidade da corrente
de disparo
Figura 70 - Representação da Curva V x A de um SCR
Fonte: Autor
Tomando por análise o valor da corrente quando diretamente polarizado,
observe, na Figura 70, que, após a corrente de disparo ser atingida, a tensão
necessária para manter o estado condutivo cai repentinamente.
AUTOMAÇÃO INDUSTRIAL
70
2.3.2 DIAC
ANODO 1 ANODO 2
Figura 71 - Símbolo de DIAC
Fonte: Autor
O nome DIAC vem de “Diode for Alternating Current” e signifca DIODO para
CORRENTE ALTERNADA.
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 fca 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.3.3 TRIAC
O nome TRIAC vem de “Triode for Alternating Current” e signifca 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 confguraçã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.
2 ELETRÔNICA ANALÓGICA
71
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, onde 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 fm de realizar um disparo controlado em determinado momento da onda
senoidal AC, ajustado por um potenciômetro.
O DIMMER 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
C1 = C2 = 100nF / 400V
TRIAC = TIC226D
RV1=
220K (p/110V)
470K (p/220V)
Efeito do triac
“ceifando” a curva
da corrente alternada
V+
V- t(ms)
V+
V- t(ms)
V+
V- t(ms)
220V
N
CARGA
TRIAC
DIAC
R1
R2
C1 C2
chave
RV1
F
Figura 72 - Circuito de um dimmer
Fonte: Autor
FIQUE
ALERTA
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 circuitos
deste tipo, utilizando EPIs e procedimentos adequados.
2.4 CONDICIONAMENTO DE SINAL
Na automação industrial, um SINAL é uma informação enviada ou recebida
através de um meio físico. Os SINAIS podem ser digitais ou analógicos.
Em um sinal DIGITAL, a informação é representada por estados fnitos e
defnidos, e geralmente é representada através 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.
AUTOMAÇÃO INDUSTRIAL
72
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, onde existem infnitas
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 através da variação 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 infnitas informações
dentro deste limite. (Figura 73)
V
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
,
(mV)
INFINITOS VALORES
termopar
+
-
C
Figura 73 - Voltímetro para milivolts conectado a um sensor de temperatura tipo termopar
Fonte: Autor
Os termopares são agrupamentos de dois metais que geram
uma pequena tensão (geralmente em milésimos de volts)
que varia proporcionalmente à temperatura.
SAIBA
MAIS
A informação analógica é constituída de infnitos valores possíveis em um
determinado intervalo. Um sinal analógico é a representação desta informação
através de 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 através de 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
73
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 através de LEDs
e os capturamos com fotodiodos ou fototransistores. Na automação industrial,
sensores padronizados enviam sinais de temperatura, pressão, vazão e outras
grandezas através de 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 sinais de baixa tensão e com
correntes bastante reduzidas, menores do que a necessária para acionamentos da
maioria dos atuadores. (Figura 74)
Figura 74 - Da direita para esquerda: Sensor de pressão que envia sinal analógico através de variação de corrente (4 a 20 mA);
Sensor tubular indutivo analógico, que envia sinal de 0 a 10V conforme proximidade;
sensores analógicos por ultrasom, que envia sinal de 0 a 10V
Fonte: Autor
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 através do enrolamento de fos 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, fos 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 padre
brasileiro de Porto Alegre que, na década de 1890, realizava
experiências de comunicação através de ondas de rádio.
VOCÊ
SABIA?
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
AUTOMAÇÃO INDUSTRIAL
74
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 através
de oscilações indesejadas causadas por equipamentos a ela conectados.
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.
Algumas redes industriais, como a AS-i, permite utilizar
um único par de fios para disponibilizar alimentação e um
canal de troca de dados entre vários sensores e atuadores,
diminuindo o custo e facilitando a implantação de sistemas
de automação.
VOCÊ
SABIA?
Portanto, ao utilizar SINAIS digitais e analógicos na automação, enfrentaremos
problemas relativos a:
• ruídos: interferência indesejada nos sinais elétricos,
• níveis de tensão e corrente limitados que precisam ser amplifcados e
• 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, amplifcando níveis de
tensão, comparando sinais, somando ou subtraindo tais sinais elétricos, além de
gerar e fltrar sinais de frequência.
2.4.1 AMPLIFICADOR OPERACIONAL
O amplifcador 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 amplifcador operacional em um circuito com comportamento
de fltro, de amplifcador, 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.
2 ELETRÔNICA ANALÓGICA
75
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ífco. No caso dos amplifcadores operacionais, a forma como a
realimentação é ligada determina a função do componente no circuito.
Abaixo, a Figura 75 representa um amplifcador operacional e um circuito
integrado LM741 no encapsulamento DIP.
V+
Vo
V -
+
1
2
3
4 5
6
7
8
LM741
V+
V-
+
-
VO
Figura 75 - Amplifcador operacional. CI LM741
Fonte: Autor
Pesquise sobre os encapsulamentos possíveis para os
amplificadores operacionais, observando quanto à
tecnologia de montagem e à quantidade de amplificadores
em um mesmo CI.
SAIBA
MAIS
Muitos autores iniciam o conteúdo de amplifcadores operacionais propondo o
modelo de um OPAMP IDEAL, tendo este componente as características que seguem:
1) Possui ganho de tensão infnito.
2) A impedância de entrada é infnita, não havendo corrente.
3) Saída com impedância zero, sem promover perda alguma no sinal gerado.
4) Não há retardo algum no tempo de resposta.
5) Apresenta a mesma efciência para qualquer frequência.
Porém, devido a fatores construtivos, os amplifcadores 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 amplifcador operacional
que se comporta próximo ao OPAMP ideal, sendo importante pesquisar sobre as
diferentes características de amplifcadores operacionais existentes no mercado.
Pesquisando sobre características de diferentes modelos
de amplificadores operacionais, como frequência máxima
suportada, ganho máximo, corrente ou impedância de
entrada e tensão máxima.
SAIBA
MAIS
Em uma primeira confguraçã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.
AUTOMAÇÃO INDUSTRIAL
76
A confguração que segue é conhecida como AMPLIFICADOR INVERSOR, utilizada
como uma confguração bastante comum para amplifcador de ganho constante.
Este circuito não é recomendado para amplifcar sinais limitados em corrente
devido à baixa impedância do circuito causado, principalmente pelo resistor Rf.
Vi
Ri
Rf
VO
VO
Vi
ganho = =
VO
Vi
Rf
Ri
Figura 76 - Amplifcador inversor. No gráfco em vermelho, o sinal de entrada (V
i
),
e em azul o sinal de saída, já amplifcado e invertido (V
o
).
Fonte: Autor
Para sinais de entrada débeis (de baixíssima corrente) é recomendada a confguração
de AMPLIFICADOR OPERACIONAL NÃO-INVERSOR, onde a impedância de entrada é
apenas a do componente, variando conforme a qualidade e o modelo do componente.
A seguir, fgura de um amplifcador não inversor. Observe a mudança na fórmula
para cálculo do ganho para esta confguração, que é dada por A
v
= 1 + (Rf / Ri).
Aplicação: Aumentar a amplitude de um sinal elétrico para um ganho defnido.
Exemplo: Um termopar conectado a um sistema de controle.
Vi
Ri
Rf
VO
VO
Vi
ganho =
Rf
Ri
1+
Figura 77 - Amplifcador. No gráfco em vermelho, o sinal de entrada (V
i
),
e em azul o sinal de saída, já amplifcado (V
o
).
Fonte: Autor
Dado o exemplo de ligação de um termopar em um sistema de controle,
vamos a algumas considerações importantes sobre este sensor:
• Termopares são dispositivos muito utilizados em medição de temperatura,
visto sua efciência e, principalmente, seu custo.
• Seu funcionamento é baseado no fato de uma junção de dois metais poder
gerar tensão de acordo com a temperatura à qual ele é submetido.
• Dependendo da faixa de temperatura e da precisão, utilizamos uma
combinação de par metálico específca. 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 amplifcados 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
77
Para facilitar o entendimento sobre o uso de amplifcadores operacionais na
automação, vamos estudar o equipamento abaixo, propondo algumas estratégias
de controle utilizando eletrônica analógica através de amplifcadores operacionais.
220V relé
sinal 0...48,8 mV
0V ou 24V, 120 mA
CONTROLE
aquecedor
Figura 78 - Tanque de fuido
Fonte: Autor
Um tanque de fuído, 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,0025V).
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,5mV.
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 amplifcador operacional segundo o esquema que segue:
220V
relé
aquecedor
5V
5V
Ri
1K
Rf
1M
VO
OPAMP não inversor
ganho = 1+ Rf / Ri = 1 + 1000000 / 1000 = 1001
Figura 79 - Tanque de fuido 1
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
78
Devida à confguração de ganho 1001, a tensão de 2,5 mV (limite para o controle
do aquecedor) será amplifcada pelo OPAMP, gerando uma tensão 1001 vezes maior.
Após passar pelo OPAMP, o sinal é amplifcado 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 amplifcado o sinal de alguns milivolts para uma
tensão mais signifcativa, 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 fxo o mais próximo possível desta tensão.
Usando um divisor de tensão, podemos obter, através da mesma fonte de
alimentação do circuito, uma tensão próxima a 2,5V. O divisor de tensão pode ser obtido
através da ligação em série de dois resistores entre a alimentação de 5V e a referência
(GND). Recomendamos resistores de precisão (1%) para obter melhor resultado.
R
1
1k2
R
2
1k2
V
out
2,5V
V
in
5V C.C.
Figura 80 - Divisor de tensão
Fonte: Autor
2 ELETRÔNICA ANALÓGICA
79
Neste tipo de circuito, Vout pode ser determinado pela fórmula que segue:
V
out
= V
in
.
R2
(R1 + R2)
Tendo a referência de 2,5V, bastante aproximada do valor desejado para a aplicação,
precisamos agora COMPARAR o sinal proveniente do circuito de amplifcaçã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 que segue: (Figura 81)
220V
relé
aquecedor
5V
5V
Ri
1K
Rf
1M
V
O
R
1
R
2
Vin5V
1K2
1K2
2,5V
Vi
5V
V
O
= 5V quando Vi < 2,5V
0V quando Vi > 2,5V
amplifcador
Figura 81 - Circuito
Fonte: Autor
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 danifcar componentes ou partes
do circuito devido ao excessivo LIGA e DESLIGA intermitente. Em outras palavras, a
saída do circuito comparador fcará muito instável quando as entradas do OPAMP
comparador estiverem com valores muito próximos.
Neste caso, podemos confgurar 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áfco que demonstra o
comportamento da saída em função do sinal de entrada. (Figura 82)
R1
R3
R2
Vref
V0
Vi
Vinf: V -
Vsup:V +
Vc
Vc
Vc ‘ Vi
(s)
V+
V0
V0 V0 = V + = 0
quando sinal de
entrada fcar acima
de Vc
quando sinal de
entrada fcar
abaixo de Vc’.
Figura 82 - Circuito 1
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
80
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ífca, HISTERESE signifca RETARDO, mas a utilização deste
termo na automação industrial é referente a uma área neutra, onde um estímulo
externo não causa efeito na saída.
Como R
1
, R
2
e R
3
são dimensionados?
Primeiro precisamos calcular a resistência R
TOT
, dada pelo cálculo:
R
TOT
= 1 / (1/R
1
+ 1/R
2
+ 1/R
3
)
Posteriormente, podemos calcular A e B, dados pela fórmula:
A = V
REF
. R
TOT
/ R
1
B = V
SUP
. R
TOT
/ R
3
Finalmente, obtemos os limites dos níveis de tensão desejados:
Vc = A + B
Vc’ = A – B
Você pode criar uma planilha eletrônica com as fórmulas para
ajudar à calcular, utilizando dos valores de V
SUP
, R
1
, R
2
e R
3
, o
valor para Vc e Vc’.
SAIBA
MAIS
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 infexível, pois a tensão de
Vc é fxa, 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
81
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 confguração de AMPLIFICADOR OPERACIONAL
COMO SOMADOR.
Segue, na Figura 83, o esquema de um circuito somador inversor.
R1
R2
Rn
Rf
Vout V
in
1
V
in
2
V
in
n
Figura 83 - Circuito somador inversor
Fonte: Autor
A tensão de saída será dada pela fórmula (
V
0ut
= -R
f
(
V
in1 +
V
in2 +
V
inn)
R
1
R
2
R
n
).
Se todos os resistores utilizados forem de mesmo valor, teremos como saída
do amplifcador a média aritmética das entradas, amplifcada pelo ganho defnido
por R
f
, 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
amplifcado relativo à média deles.
2.4.4 AMPLIFICADOR OPERACIONAL COMO SUBTRATOR
Também conhecido como amplifcador de diferença por alguns autores, é
caracterizado pela disposição do circuito onde se obtém a diferença entre os
sinais multiplicado por um ganho que pode ser confgurado.
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.
Um cabo blindado utiliza o princípio de “gaiola de Faraday”
para, através de sua malha, eliminar a interferência de um
campo elétrico externo em seu núcleo.
VOCÊ
SABIA?
AUTOMAÇÃO INDUSTRIAL
82
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 através da técnica de
cancelamento em par trançado.
Cabos de telefonia e de rede de computadores utilizam esta técnica, onde 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.
Amplifcadores operacionais são comumente utilizados na comparação destes
sinais, podendo atuar como “fltros” de ruído. (Figura 84)
Amplifcador
de diferenças
Sinal fltrado
e amplifcado
Sinal recebido
(transdutor + interferências)
Transdutor
Sinal do
transdutor
(sinal enviado)
Sinais de
interferências
interf
V
t
V
t
V
t t t
t
s
V
s
V
+
-
Figura 84 - Amplifcador operacional como subtrator
Fonte: Autor
Segue, na Figura 85, uma confguração bastante comum para amplifcador
subtrator:
R3
R1
R2
Vout
Vin1
Vin2
R4
R1 = R3
R2 = R4
Figura 85 - Amplifcador operacional como subtrator 1
Fonte: Autor
Observando que R1 = R3, e R2 = R4, teremos:
V
out
= ( V
in1
- V
in2
) .
R
2

R
1
2 ELETRÔNICA ANALÓGICA
83
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 é
confgurável através de uma malha de componentes externos. (Figura 86)
Vin
Vo
Figura 86 - Representação do sinal de entrada (Vin) e saída (Vo) de um oscilador astável
Fonte: Autor
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
amplifcadores 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 confgurado através da 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 amplifcadores, transistores e portas
lógicas encontra-se em sua fexibilidade, seu baixo custo e sua confabilidade.
4 8
3
7
5
1
2
6
10n
R1
R2
C1
Saída
+Vcc
Capacitor
(V6= V2)
Saída
(V3)
R1+R2
R2
2/3Vcc
Vcc 1/3
0V
0V
+ Vcc
1 2
Figura 87 - Circuito integrado 555 e gráfco de saída
Fonte: Autor
Observando o gráfco, da Figura 87, podemos perceber que a duração dos
pulsos t
1
(em estado alto) e t
2
(em estado baixo) não é a mesma, e pode ser
confgurada pelos resistores R1, R2 e C1.
A defnição dos valores de t
1
e t
2
é dado por:
AUTOMAÇÃO INDUSTRIAL
84
t
1
= 0,7 . (R
1
+ R
2
) C
1
e t
2
= 0.7 . R
2
C
1
Para calcular a frequência do sinal gerado pelo 555 usamos:
f =
1,44
(R
1
+ 2R
2
) C
1
No circuito apresentado anteriormente, a presença opcional do diodo permite
que a carga do capacitor C1 ocorra apenas através de R1 e que a descarga ocorra
somente por R2. Dessa forma, t
1
= 0,7 . R
1
. C
1
e t
2
= 0.7 . R
2
C
1
.
O capacitor de 10nF conectado entre os pinos 1 e 5 é sugestão do fabricante.
Com o diodo, a relação entre t
1
e t
2
fca respectivamente vinculada a R
1
e R
2
,
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 fxa e largura
variável, como ilustrado na Figura 88.
5V
t
e
n
s
ã
o
tempo (ms)
5V
t
e
n
s
ã
o
m
é
d
i
a
tempo (ms)
Figura 88 - Gráfco de PWM a 1kHz
Fonte: Autor
A taxa de trabalho (Duty Cycle) é defnida 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. Desta forma, temos:
Sem o diodo:
D
H
R
1
=
+
+
R
2
2R
2
R
1
D
H
=0.5 (mín)
D
H
= (máx) 1
Com o diodo:
D
L
R
2
+2R
2
R
1
=
D
L
D
L
R
2
+R
2
R
1
=
D
H
D
H
R
1
+R
2
R
1
=
D
H
=0 (mín)
D
H
= (máx) 1
2 ELETRÔNICA ANALÓGICA
85
FIQUE
ALERTA
O limite de saída de um CI 555 é de 10mA. Portanto, se for
necessário amplifique este sinal conectando o pino 3 a um
resistor em série com a base de um transistor, dimensione
o resistor para uma corrente não superior a 10mA usando a
fórmula R = V / I.
Consultando a folha de dados (datasheet) do circuito
integrado 555. Pesquise também sobre aplicações deste
circuito integrado relacionadas a timers e frequência.
SAIBA
MAIS
2.5.2 OSCILADOR MONOESTÁVEL
Trata-se de um oscilador onde 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 89)
4 8
3
7
5
1
2
6
10n
R1
Saída
+Vcc
Disparo
(V2)
Saída
(V3) 0V
+ Vcc
Disparo
C1
t t t
Figura 89 - Oscilador Monoestável
Fonte: Autor
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 confgurado 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 é confgurado 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.
Pesquise sobre a configuração de um circuito biestável
utilizando o CI 555. Descubra as diferenças de funcionamento
em relação aos circuitos osciladores já estudados.
SAIBA
MAIS
AUTOMAÇÃO INDUSTRIAL
86
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
fltrar á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 fltro 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 interfram no funcionamento dos equipamentos.
Um exemplo de fltro 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 retifcada, porém ainda com um “ripple” (ondulação). Este “ripple”
precisa ser fltrado, para que o resíduo da frequência de entrada desapareça. É
aplicado, então, um fltro capacitivo, reduzindo a ondulação signifcativamente.
Corrente
contínua
CAPACITOR
V+
GND
Corrente
alternada
DIODOS
RETIFICADORES
+
-
+
-
V
t t t t
V
+
-
V
+
-
V
Figura 90 - Filtro com capacitor, aplicado e fontes para diminuição do “ripple”
Fonte: Autor
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 fltros são aplicados no domínio da frequência, nos
ateremos a estes tipos.
Podemos categorizar os FILTROS passivos de frequência como:
PASSA BAIXA: Somente deixa passar frequências abaixo de um valor.
2 ELETRÔNICA ANALÓGICA
87
PASSA ALTA: Somente deixa passar frequência acima de um valor.
PASSA FAIXA: Somente deixa passar frequências em uma determinada faixa.
REJEITA FAIXA: Bloqueia a passagem de frequências específcas.
É importante observar que, nos fltros supracitados, o funcionamento real não
é igual ao funcionamento ideal, pois os fltros atenuam as frequências indesejadas,
mas não as eliminam por completo.
A resposta de um fltro geralmente é representada por um gráfco, conforme
a Figura 91:
i
n
t
e
n
s
i
d
a
d
e
d
o

s
i
n
a
l
sinal desejado
sinal
indesejado
70,7%
frequência
frequência de corte
Figura 91 - Gráfco da Intensidade de sinal x Frequência
Fonte: Autor
A efciência do fltro pode variar devido a seus aspectos construtivos. Os fltros
passivos tendem a ser menos efcientes que os fltros ativos, mas seu custo e
simplicidade justifca a aplicação na maioria das situações.
Melhores respostas em fltros passivos também podem ser obtidas com a
realização de combinações entre mais de um fltro simples. Quando dois fltros são
combinados, obtemos uma curva mais íngreme após o valor de corte. Chamamos
a combinação destes dois fltros de fltro de segunda ordem. Aplicando um
terceiro fltro, a curva apresenta uma queda ainda mais acentuada e o chamamos
de fltro de terceira ordem. No entanto, a cada “camada” adicionada ao fltro há
uma perda considerável na intensidade do sinal para fltros passivos. Cabe a quem
projeta o circuito dimensionar o fltro mais adequado para a aplicação.
Vamos agora estudar a aplicação de um fltro utilizado para eliminar ruídos
de alta frequência em um sensor digital de velocidade. Embora haja mais de
uma confguração de circuito possível para um fltro passivo, nos ateremos a
confgurações mais comuns para este primeiro nível de estudo.
Segue a implementação de um fltro PASSA BAIXA 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
C
V
i
n
V
o
u
t
Frequência de corte =
1
2. π . R . C
Figura 92 - Filtro passa baixa
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
88
Portanto, para 200Hz, temos:
F
c
= 1 / (2 . π . R . C)
200 = 1 / (2 . 3,1416 . R . C)
R . C = 1 / (2 . 3,1416 . 200)
R . C = 0,000796
Temos então que, 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.
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 fltros PASSA ALTA permite eliminar ruídos
abaixo de uma frequência específca. (Figura 93)
Vin Vout
R
Figura 93 - Filtro passa alta
Fonte: Autor
Neste tipo de ligação, os sinais de baixa frequência (abaixo da frequência de
corte: f
c
) são atenuados.
A frequência de corte é defnida por: F
c
= 1 / (2 . π . R . C) .
Para situações em que é necessário fltrar 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 94)
R
L C Vin Vout
Figura 94 - Filtro passa-faixa, usando capacitor, indutor e resistor
Fonte: Autor
2 ELETRÔNICA ANALÓGICA
89
Neste tipo de fltro 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 que segue :
f
R
=
2 . π . LC
1
Onde L é o valor do indutor, em henry.
Em um fltro rejeita-faixa, o objetivo é atenuar o sinal justamente em uma frequência
específca, deixando passar sinais acima e abaixo da faixa defnida. (Figura 95)
R
L
C Vin Vout
Figura 95 - Filtro rejeita-faixa, também conhecido como rejeita-banda
Fonte: Autor
Devemos observar que os fltros passivos acabam por atenuar o sinal, não só do
sinal que desejamos fltrar, mas também do sinal que deve passar, necessitando
de uma etapa de amplifcação em casos de sinais mais débeis. Outro fator
importante é a condição de atenuação para frequências próximas à zona de corte,
que ainda permite uma signifcativa passagem de sinais em casos de fltros de
primeira ordem.
É sugere, portanto, a implementação destes fltros 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 fltros aplicados a sinais de baixa corrente e
tensão, é recomendado o uso de amplifcadores operacionais para a construção
dos fltros, a que chamamos de FILTROS ATIVOS.
2.6.2 FILTRO ATIVO
Seguimos agora com confgurações mais utilizadas de amplifcadores
operacionais para fltros de frequência.
Para os fltros que seguem, o ganho pode ser confgurado pela fórmula:
A
v
= 1 + R
f
/ R
g
No caso do filtro passa-baixa, serão atenuados sinais acima da frequência
de corte. (Figura 96)
No caso do filtro passa-alta, serão atenuados sinais abaixo da frequência
de corte. (Figura 97)
AUTOMAÇÃO INDUSTRIAL
90
Amp- op
+
Saída
(V
o
)
V -
C
1
R
1
V
1
V+
R
f
R
g
Figura 96 - Filtro passa-baixa
Fonte: Autor
Amp- op
+
(V
o
)
C
1
R
1
R
f
R
g
V
1
Figura 97 - Filtro passa-alta
Fonte: Autor
Através da ligação de dois fltros, sendo um passa alta e outro passa baixa, é
possível criar um fltro passa-banda. (Figura 98)
Amp- op
+
C
1
C
2
R
1
R
2
R
f
R
g
V
1
Amp- op
+
R
f
R
g
(V
o
)
Seção passa-altas Seção passa-baixas
Figura 98 - Filtro ativo passa-banda
Fonte: Autor
Neste caso, a frequência que “passará” pelo fltro é 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 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.
2 ELETRÔNICA ANALÓGICA
91
o
1
********** **********
*** *** *** ***
Fonte de bancada,
entrada AC 110V/
220V c/ chave seletora,
saída ajustável DC de 0 a 30V
Fonte de um microcomputador
DESKTOP 250W. Entrada
110V/220V (c/ chave seletora)
e saídas DC5V 20A, -5V 1A,12V
5A, -12V 1A, 3.3V 1A
Fonte chaveada 2A
Entrada 100-240V
AC Saída 24V DC (estabilizada)
Figura 99 - Fonte de bancada
Fonte: Autor
Figura 100 - Fonte de
microcomputador
Fonte: Autor
Figura 101 - Fonte chaveada 2A
Fonte: Autor
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.
Algumas fontes de alimentação são construídas de forma a funcionar com
um nível de tensão de entrada fxa. Outras possuem uma chave seletora onde o
usuário pode defnir 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ífca, 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
ALERTA
Alimentar uma fonte com tensão superior à indicada pode
causar superaquecimento, causando danos permanentes
ao equipamento e aos circuitos por ela alimentados.
Algumas fontes podem ser construídas a fm 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 -12VCC,
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 onde, através de uma
chave seletora ou potenciômetro, podemos defnir 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
fque acima do valor limite. Em fontes não estabilizadas, a tensão da saída pode
variar conforme a carga, infuenciada pelos fltros nela utilizados.
AUTOMAÇÃO INDUSTRIAL
92
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 102)
t(ms)
V+
PMPO
RMS
Figura 102 - Gráfco da tensão após retifcação, sem aplicação de fltros
Fonte: Autor
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 é geralmente composta das seguintes partes:
1) 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).
2) 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ífcos, como tiristores e transistores.
3) Circuito de retifcação: responsável por transformar a corrente alternada
em corrente contínua através de circuitos com semicondutores (diodos), como já
estudado anteriormente.
4) Filtros: responsáveis por eliminar ou atenuar as oscilações no nível de tensão
após a retifcação.
5) Regulador de tensão: responsável por estabilizar o nível de tensão de saída.
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
fltros 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 efciência devido ao aquecimento indesejado.
2 ELETRÔNICA ANALÓGICA
93
Este tipo de fonte é geralmente empregado em circuitos de áudio tradicionais
e tem sido cada vez menos utilizado em equipamentos modernos. (Figura 103)
Figura 103 - Transformador utilizado em uma fonte linear
Fonte: Autor
FIQUE
ALERTA
Na maioria das fontes lineares devemos observar a chave
seletora de tensão de entrada. 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 104)
fonte
simética
+9V
0V
-9V
Figura 104 - Fonte simétrica
Fonte: Autor
Este tipo de fonte geralmente é aplicado em circuitos que precisam de níveis
de tensão positivas e negativas, como amplifcadores operacionais e alguns tipos
de sensores de temperatura.
A seguir, na Figura 105, é apresentado o esquema de uma fonte simétrica, que
utiliza reguladores de tensão 7812 e 7912.
- +
~
~
SELETOR DE
TENSÃO
CHAVE
ON/OFF
fusível
T
220V
120V
0V
12V
-12V
center
tape
Ponte retifcadora
(4 diodos)
100nF
50V
100nF
50V
220uF
16V
220uF
16V
+
+
1
2
3
7812
1
2 3
7912
+
+
0,25W
470 ohms
LED
0,25W
+12V
-12V
0V
470 ohms
LED
1
2
3
Regulador
positivo
E
n
t
r
a
d
a
S
a
í
d
a

1
2
V
G
n
d
7812
1
2
3
Regulador
negativo
G
n
d
S
a
í
d
a

-
1
2
V
E
n
t
r
a
d
a
7912
Transformador
110 / 220v <--> 12+12V, 1A
Figura 105 - Esquema de fonte simétrica
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
94
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 106)
1N4004
1N4004
220R
220R
2k
10uF
10uF
LM317
100n
1 2 3
3 2
1
A
O I
+ VE
OUT
- VE
OUT
1N4004 X 4
+
+
1k
LED
1k
LED
2200uF
35V
2200uF
35V
+
+
1k5
2k
1k5
VAC
(CT)
VAC
OV
1N4004
1N4004
3 2
1
A
O I
LM337 100n
Figura 106 - Esquema de fonte simétrica
Fonte: Autor
Pesquise sobre fontes simétricas utilizando os reguladores de
tensão 78XX e 79XX (7805, 7905, 7812, 7912 etc.).
SAIBA
MAIS
2.7.3 FONTE CHAVEADA
As fontes chaveadas são largamente utilizadas devido a seu tamanho reduzido,
menor custo de fabricação e melhor efciê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 efciê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 retifcaçã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 107)
2 ELETRÔNICA ANALÓGICA
95
Entrada
Saída do
retifcador
Saída do
fltro
Saída do
chaveador
Saída do
transformador
Saída do
retifcador
Saída do
fltro
Saída do
regulador
12V CA
alta frequência
12V CA
alta frequência
e retifcada
12V CC
fltrado
10V CC
regulado
110V CA
110V CA
retifcada
110V CA
retifcada
e fltrada
Onda quadrada
pulsante com alta
tensão e alta
frequência
V
t
V
t
V
t
V
t
V
t
V
t
V
t
V
t
Figura 107 - Fases de uma fonte chaveada
Fonte: Autor
Após a retifcaçã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 modifcar 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 retifcada e fltrada.
Devido à alta frequência, os capacitores usados como fltro 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 efciência,
e devido ao reduzido tamanho dos componentes (transformador e capacitores),
possuem tamanho bastante reduzido. Este tipo de fonte é o mais empregado em
equipamentos modernos, e também já vem sendo largamente empregado em
produtos de automação industrial.
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 podem ser propagado na forma de rádiofrequência, gerando interferência
em sistemas de telecomunicações.
FIQUE
ALERTA
Ao interligar eletricamente sistemas alimentados por fontes de
alimentação distintas, realize primeiro sua equipotencialização,
interligando circuitos de terra e de referência.
AUTOMAÇÃO INDUSTRIAL
96
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 mais frágil entre a rede de alta
tensão e a de baixa tensão, aumentando o risco de choque
elétrico, mesmo na saída de baixa tensão.
VOCÊ
SABIA?
RECAPITULANDO
Neste capítulo, abordamos alguns conceitos básicos da Eletrônica Analógica
para automação industrial, 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, onde
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 retifcadores,
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
amplifcar sinais, permitindo o acionamento de cargas maiores.
Vimos, ainda, que os amplifcadores operacionais são componentes que,
de forma genérica, podem amplifcar, comparar, somar, multiplicar ou subtrair
sinais analógicos. Eles podem ser utilizados para compor fltros 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, estes componentes estudados podem ser utilizados
individualmente ou de forma combinada, condicionando e amplifcando sinais
elétricos para a produção de um efeito desejado.
2 ELETRÔNICA ANALÓGICA
97
Anotações:
3
Sensores
Na automação industrial, 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,
o morcego, que possui audição bastante apurada, é capaz de ouvir
sons com frequência de até 160kHz.
VOCÊ
SABIA?
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.
Na automação industrial não é diferente, pois existem diferentes tipos de sensores que
funcionam através 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 108)
Figura 108 - Reservatórios d’água
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
100
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 109)
Variação de resistência
N
í
v
e
l
Figura 109 - Reservatórios d’água com sensor potenciométrico
Fonte: Autor
Com um sensor de ultrassom posicionado na parte superior do reservatório é
possível medir o nível do reservatório através do 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.
N
í
v
e
l
Variação de tempo
entre emitir e receber
o refexo sonoro
Figura 110 - Reservatórios d’água com sensor de ultrassom
Fonte: Autor
Poderia ser medido através do ângulo de refexão ou de refração da luz no
líquido, obtendo-se, desta forma, a altura da lâmina d´água. (Figura 111)
SENSOR ÓTICO
Variação de
destino de um feixe
de laser (luz) devido
a refração ar - água
N
í
v
e
l
Figura 111 - Reservatórios d’água medido através do ângulo e refração
Fonte: Autor
3 SENSORES
101
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 futuador. (Figura 112)
N
í
v
e
l
Sensores captam o campo
magnético do imã do
futuador,
revelando o nível
Figura 112 - Reservatórios d’água sensor de nível
Fonte: Autor
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 113)
N
í
v
e
l
Células de carga
Sensores de força
medem o peso
do recipiente
Figura 113 - Reservatórios d’água de célula de carga
Fonte: Autor
Terminais condutivos poderiam ser mergulhados em alturas diferentes,
informando o nível de água através da medição de sua condutividade. (Figura 114)
N
í
v
e
l
Fluído levemente
condutivo muda
resistência entre
os terminais
Figura 114 - Reservatórios d’água com terminais condutivos
Fonte: Autor
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.
AUTOMAÇÃO INDUSTRIAL
102
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.
Para escolher o melhor sensor a ser utilizado em uma medição, veremos neste
capítulo algumas características relevantes.
Um sensor é defnido 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ífco, gerando uma informação contida em um número fnito 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 sufciente em um local, detectar se há ou
não pressão sufciente 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 quantifcar uma determinada grandeza
medida, gerando uma informação que pode variar em infnitas possibilidades em
um intervalo específco.
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 quantifcar 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 115)
Sensor analógico
Sensor digital
Nível mínimo
+
+
Nível de água (mm)
Figura 115 - Sensor de nível digital e um sensor de nível analógico
Fonte: Autor
3 SENSORES
103
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.1 SENSORES DIGITAIS
Após detectar a grandeza monitorada, o sensor deve enviar esta informação
ao circuito de controle onde 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 116:
SENSOR MAGNÉTICO
“ REED SWITCH ”
CONTATO ABERTO
CIRCUITO DE CONTROLE
CONTATO FECHADO
Figura 116 - Chave de contato normalmente aberto com princípio de acionamento magnético
Fonte: Autor
Perceba, na fgura acima, 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 117)
AUTOMAÇÃO INDUSTRIAL
104
Figura 117 - Botão de emergência com contato normalmente fechado
Fonte: Autor
Botões ou chaves de contato utilizados para detectar a vontade
do usuário são sensores e podem ser de contato normalmente
aberto (NA) ou normalmente fechado (NF), dependendo de sua
construção mecânica.
VOCÊ
SABIA?
A exemplo de um botão ou chave de fnal de curso, alguns sensores podem
produzir o efeito (contato abrindo e fechando) através de uma ação mecânica
simples, sem a necessidade de amplifcação, processamento interno ou fltragens
de sinais, não necessitando de alimentação para funcionar. Outros utilizam-se de
um fltro 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 através de semicondutores, geralmente
transistores bipolares. A exemplo de um transistor 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 através de
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 através de 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
ALERTA
Embora existam normas para a definição de cores para
os condutores dos sensores industriais, muitos sensores
podem não segui-las, sendo interessante observar a
documentação do componente antes de energizá-lo para
evitar danos permanentes nele.
3 SENSORES
105
Em sensores PNP, quando ocorre a detecção, o sensor fornece, através do
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 118)
sinal alta impedância
sem detecção
com detecção
sinal +
sinal alta impedância
sem detecção
com detecção
sinal -
SENSOR PNP
SENSOR NPN
carga carga
carga carga
Figura 118 - Sensor NPN e PNP, forma de ligação e tipo de sinal de retorno
Fonte: Autor
Observe que, quando o sensor não está no modo detecção, o fo de retorno
(preto) entra em modo de alta impedância, difcultando o fuxo da corrente. Alta
impedância, neste caso, signifca um sinal não defnido, comportando-se como
uma chave aberta, sem corrente signifcativa. Observe que, quando não estiver
em modo detecção, o fo do sensor não pode ser usado como alimentação para
um determinado circuito, pois não há um sinal defnido 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 119)
carga
sem detecção
carga
com detecção
sinal + sinal -
sem detecção
R1
R1
R1
R1
com detecção
sinal - sinal +
SENSOR PNP
SENSOR NPN
carga carga
Figura 119 - Sensores NPN e PNP com resistor de defnição de sinal para alta impedância
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
106
Na imagem acima foi instalado um resistor de 10.000 Ω como PULL-UP (NPN) e
PULL-DOWN (PNP) para defnir 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. Verifque isso na documentação (“datasheet”). Em
alguns sistemas de controle padronizados, como CLPs e controladores dedicados,
existem opções, através de microchaves ou confgurações por software, para
defnir 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.
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), verifque
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 Figura119, 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 danifcar o microcontrolador (provavelmente 5V
ou 3V). (Figura 120 e Figura 121)
OPTOACOPLADOR
uC
10K 2K2
OPTOACOPLADOR
NPN
SENSOR
uC
10K
2K2
GND 24V +
PNP
SENSOR
24V + 5V +
GND
5V +
GND
GND
Figura 120 - Sensores NPN e PNP
Fonte: Autor
FIQUE
ALERTA
Acoplamentos ópticos ou a relé são uma forma de oferecer
segurança aos equipamentos na transmissão de sinais em
linhas automatizadas muito abrangentes, que integram
sistemas com várias fontes de alimentação.
3 SENSORES
107
GND
SINAL 5V
SINAL (RETORNO)
SISTEMA B SISTEMA A
ACOPLAMENTO A RELÉ
SINAL
V + (24V)
RELÉ
BOBINA
24V
Figura 121 - Dispositivos de acoplamento eletromecânicos (a relé)
Fonte: Autor
Além de saídas digitais através de níveis de tensão defnidos, contato NA, NF,
NPN ou PNP, alguns sensores digitais podem produzir informações mais complexas
através de saídas de dados. Isso ocorre em sensores industriais preparados para se
interligar a um sistema de controle através de uma rede de dados digitais.
Neste caso, o sensor envia os sinais a um dispositivo de controle (geralmente um
CLP) através de uma rede, podendo compartilhar o meio físico de comunicação,
ou enviando a informação através de radiofrequência (wireless).
FIQUE
ALERTA
A rede AS-i é um padrão de rede industrial bastante
versátil, pois permite que, em seu cabeamento, um
único fio contendo um par metálico transporte sinal de
comunicaçã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 122)
Figura 122 - Sistema de sinaleiro e botoeiras cuja alimentação e comunicação é realizada por um único cabo de dois fos
condutores, usando comunicação digital serial em rede padrão AS-I
Fonte: Autor
3.2 SENSORES ANALÓGICOS
Sensores analógicos são caracterizados por gerar uma informação que varia
uniformemente em uma faixa específca, 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 infuencia na variação de frequência ou resistência.
AUTOMAÇÃO INDUSTRIAL
108
Como padrão mais comum para sensores industriais analógicos, temos os
seguintes tipos de saída:
- Tensão: 0 a 10V.
Embora outros níveis de tensão também possam ser utilizados, sensores
analógicos com saída de tensão de 0 a 10V são bastante fáceis de serem
implementados e conectados a sistemas de controle que utilizam CLP.
- Corrente: 0 mA a 20 mA.
Neste 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.
- Corrente: 4mA a 20mA.
Este 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
fca nula) ou curto (corrente infnita), permitindo detecção da anomalia por
parte da malha de controle. (Figura 123)
SENSOR ANALÓGICO
CLP (circuito de controle)
saída por corrente 4..20mA linear
G
r
a
n
d
e
z
a
m
e
n
s
u
r
a
d
a
corrente (mA)
saída por tensão, 0..10V linear
G
r
a
n
d
e
z
a
m
e
n
s
u
r
a
d
a
Tensão (V)
saída por tensão, 0..10V não linear.
G
r
a
n
d
e
z
a
m
e
n
s
u
r
a
d
a
Tensão (V)
saída por corrente, 4..20mA linear inversa.
G
r
a
n
d
e
z
a
m
e
n
s
u
r
a
d
a
corrente (mA)
Figura 123 - Sensor analógico
Fonte: Autor
É 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.
3 SENSORES
109
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áfca 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-lineares, comparando custos e
faixas de medição. Observe que os sensores lineares geralmente
apresentam um custo mais elevado e menor simplicidade.
SAIBA
MAIS
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ífcos, 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 através de uma rede de dados a um sistema de controle, podendo ser um
computador, sistema microcontrolado ou PLC.
0 0 0 0 0 1 1
T
E
N
S
Ã
O
TEMPO
ºC
MAXIM
18B20
1 2 3
G
N
D
D
Q
V
D
D
Figura 124 - Sensor eletrônico de temperatura
Fonte: Autor
Acima, a Figura 124 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
afrmar que seu tipo de informação analisado é analógico, mas a saída de dados
tem formato digital.
Pesquise sobre as folhas de dados (datasheets) dos
sensores DS18B20 e LM35, descobrindo qual a vantagem e
desvantagem dos modelos citados em relação ao formato da
saída gerada pelo sensor.
SAIBA
MAIS
AUTOMAÇÃO INDUSTRIAL
110
3.3 PRINCÍPIO FÍSICO
Todo sensor utiliza-se de um princípio físico para realizar a detecção. (Figura 125)
PRINCÍPIOS MECÂNICOS
P
R
I
N
C
Í
P
I
O

F
Í
S
I
C
O
CALOR
LUZ
SOM POSIÇÃO
N
0
S
L
VELOCIDADE
10
0
90
80
70
60
50
40
30
20
10
20
30
40
50
60
70
80
90
1
23
9
7
1
4 5 6
8
001mm
10
0
90
80
70
60
50
40
30
20
10
20
30
40
50
60
70
80
90
0
23
9
7
1
4 5 6
8
001mm
0
FORÇA
SAÍDA DE SINAL
Figura 125 - Princípio físico
Fonte: Autor
Um mesmo princípio físico pode ser utilizado para medir grandezas diferentes. Por
exemplo, a temperatura de um forno pode ser medida através de um sensor que utiliza
o princípio físico de calor, como um termopar (que estudaremos em breve), ou pode ser
medida através do princípio físico da luz, através de 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:
• ELETRO-MECÂNICO: Quando um movimento pode gerar um acionamento
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.
• ÓPTICOS: Utilizam-se de luz visível ou invisível (infravermelho ou ultravioleta).
• 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.
• RESISTIVO: Os sensores resistivos apresentam variações de resistência
elétrica de acordo com a grandeza que está sendo mensurada (medida).
• 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.
• 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.
3 SENSORES
111
• 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.
• PIEZOELÉTRICO: Estes sensores são capazes de gerar uma tensão elétrica toda
vez que sofrem defexões mecânicas. São usados em balanças, microfones,
sistemas de detecção de esforço mecânico etc.
• 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
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 126 - Chaves mecânicas
Fonte: Autor
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.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 127)
AUTOMAÇÃO INDUSTRIAL
112
EMISSOR
RECEPTOR
luz refetida
luz emitida
SENSOR ÓPTICO
REFLEXIVO
Figura 127 - Sensor óptico de refexão, e suas partes emissora/receptora
Fonte: Autor
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 refetida (objeto refete a luz emitida no receptor do
sensor) ou, ainda, pela interrupção da refexão causada por um objeto opaco
interrompendo a refexão causada por um espelho refetor especial.
Alguns sensores ópticos podem mensurar a quantidade ou o ângulo da luz
refetida, podendo não só identifcar a presença de um objeto, como determinar
a distância da superfície refetora.
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 questões de
interferência externa.
VOCÊ
SABIA?
FIQUE
ALERTA
Alguns sensores ópticos emitem uma radiação laser muito forte,
e não é recomendável olhar 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 identifcada posteriormente pelo circuito de leitura. Conjuntos
ópticos compostos de refetores e principalmente lentes especiais permitem
concentrar ou difundir o feixe gerado, permitindo defnir 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 efciência.
3 SENSORES
113
Para o receptor, além do conjunto óptico, podem ser utilizados fltros em forma
de lentes que limitam as cores lidas pelo receptor, que é composto de um ou mais
componentes fotosensíveis (fotodiodo ou fototransistor).
CASOS E RELATOS
Sensor óptico refexivo 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, 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 fxado em um dos marcos da
porta, e um fotodiodo fxado 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 amplifcar 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 fltragem 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.
Através de ajustes no ganho, alguns sensores ópticos permitem a detecção de
objetos a distâncias bastante signifcativas, 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.
AUTOMAÇÃO INDUSTRIAL
114
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 fca apontado para uma superfície refetora. O objeto é
detectado através da interrupção do feixe de luz. (Figura 128)
luz refetida
luz emitida
luz difundida
SENSOR ÓPTICO REFLEXIVO
SENSOR ÓPTICO REFLEXIVO
O
B
J
E
T
O
R
E
F
L
E
T
O
R
R
E
F
L
E
T
O
R
Sensor PNP detectando refetor, gerando sinal V+
Objeto interrompe feixe de luz interrompendo o sinal
SINAL V+
SEM SINAL
Figura 128 - Sensor óptico por retrorrefexão com espelho refetor especial, usado como
barreira óptica para a deteção de objetos
Fonte: Autor
Quando os objetos são muito transparentes ou excessivamente refexivos, eles
podem não ser detectados por este sensor. Para evitar que objetos refexivos sejam
confundidos com o refetor do sensor, alguns sensores utilizam lentes e refetores
polarizadas. Estas lentes são combinadas aos refetores e evitam confundi-lo com
objetos de superfícies refexivas. 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 retrorrefexão, este tipo de sensor também usa o
princípio de refexão de luz, mas desta vez ele utiliza o objeto a ser detectado
como superfície refetora. (Figura 129)
luz refetida
luz emitida
luz difundida
SENSOR ÓPTICO REFLEXIVO
SENSOR ÓPTICO REFLEXIVO
O
B
J
E
T
O
Luz emitida não encontra nenhuma superfície refetora próxima, e o
sensor não envia sinal.
Luz refetida pelo objeto é detectada pelo receptor e sensor envia sinal.
SEM SINAL
SINAL V+
Figura 129 - Sensor óptico por refexão difusa
Fonte: Autor
3 SENSORES
115
Sensores refexivos por difusão são mais práticos e geralmente mais baratos, pois
não necessitam da instalação de refetores especiais. Sua aplicação exige que o objeto
detectado não seja opaco, transparente ou muito fosco, havendo um mínimo de
capacidade refexiva, e que o local para onde o sensor é direcionado quando não houver
peça a ser detectada não tenha um fundo refexivo o sufciente 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 130)
EMISSOR
EMISSOR
luz emitida
SENSOR ÓPTICO
por transmissão
SENSOR ÓPTICO
por transmissão
O
B
J
E
T
O
SINAL
SEM SINAL
RECEPTOR
RECEPTOR
Figura 130 - Sensores ópticos por transmissão
Fonte: Autor
3.5.4 SENSORES ÓPTICOS ATRAVÉS DE 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 fbra óptica para “direcionar e conduzir” os sinais luminosos.
E
R
E
R
E
R
E
R
sensor óptico
fbra óptica
emissor receptor
terminais
Figura 131 - Sistema de sensor óptico por transmissão usando fbra óptica
Fonte: Autor
FIQUE
ALERTA
Fibras ópticas necessitam de cuidados especiais. Se for
necessário seccionar a fibra óptica, o corte deve ser
realizado através de ferramentas especiais e de forma
perpendicular. Quando for necessário curvar a fibra óptica,
devemos respeitar um raio mínimo, para evitar que sofra
fissuras que impeçam a passagem da luz.
AUTOMAÇÃO INDUSTRIAL
116
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. As curvas devem respeitar um raio mínimo para evitar que
haja rompimentos internos da fbra, que poderiam gerar perdas e alterações nos
sinais lidos. Ferramentas especiais também devem ser utilizadas para cortar a
fbra, permitindo que o ponto de secção seja o mais perpendicular possível em
relação ao sentido da fbra. Apesar de possível, não são recomendadas emendas
em cabos de fbra ó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 fbra específca empregada.
Pesquise na internet sobre as diferenças entre fibras ópticas
monomodo e multimodo, descobrindo suas aplicações na
automação industrial e em telecomunicações.
SAIBA
MAIS
3.5.5 SENSOR DE BARREIRA ÓPTICA DE SEGURANÇA
Como sugerido pelo nome, este sensor é utilizado para identifcar 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 132 - Sensor de barreira óptica
Fonte: Autor
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 confgurados para permitir zonas livres de detecção.
3 SENSORES
117
FIQUE
ALERTA
Sensores de segurança e chaves de emergência
devem ser de característica NF e devem ser ligados em
série. Desta forma, no caso de dano em sensores ou
rompimento de condutores da rede de emergência, o
sistema entrará em estado de erro, impedindo que o
dano passe desapercebido.
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 refexão do feixe de laser para defnir
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 refexã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 efciente, porém com um elevado custo. (Figura 133)
Figura 133 - Scanner a laser
Fonte: Autor
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.
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 entender a função dos diversos sensores
estudados neste tipo de equipamento.
SAIBA
MAIS
AUTOMAÇÃO INDUSTRIAL
118
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 134)
Figura 134 - Sensor infravermelho
Fonte: Autor
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, identifcando 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 indicador
luminoso, com um objeto em suas mãos. Aguarde o sensor
parar de indicar movimento, evitando ao máximo se mover,
solte o objeto. Observe o comportamento do sensor.
SAIBA
MAIS
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.
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 135)
3 SENSORES
119
LDR Relés fotoelétricos
Figura 135 - Relés fotoelétricos e um resistor dependente de luz
Fonte: Autor
3.5.9 VISÃO ARTIFICIAL
Câmeras fotográfcas digitais aliadas a velozes sistemas de processamento e
algoritmos específcos permitem realizar a aquisição e a análise de uma imagem,
de modo que informações podem ser comparadas com um padrão, defnindo se
um produto está ou não adequado às características esperadas. (Figura 136)
Figura 136 - Sensor de visão
Fonte: Autor
O procedimento é conhecido como “visão artifcial”, e é realizado por câmeras que
capturam a imagem, comparando com um padrão pré-defnido, 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 fuídos.
Seu funcionamento tem princípio acústico, onde um dispositivo gera um som
de alta frequência (não percebido pelo ouvido humano).
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
ficam na faixa de 33kHz a 40kHz, sendo imperceptíveis aos
ouvidos humanos.
VOCÊ
SABIA?
AUTOMAÇÃO INDUSTRIAL
120
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 refeti-las de volta à origem. Um microfone capta e amplifca 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 137)
receptor
(microfone)
emissor
(altofalante)
OBJETO
DETECTADO
Figura 137 - Sensor com ultrasom
Fonte: Autor
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 refexão sonora por parte do objeto,
que pode refetir mais ou menos ondas sonoras de volta ao sensor.
FIQUE
ALERTA
Alguns objetos podem absorver as ondas sonoras (como
espumas e superfícies muito macias), não refetindo o sufciente
para ser identifcado por sensores ultrassônicos. Objetos de
dimensões reduzidas também podem não ser identifcados.
Algumas superfícies podem ser “transparentes” ao som, não refetindo ou
refetindo parcialmente o sinal sonoro. Essa capacidade em refexõ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 138)
Figura 138 - Equipamento aplicado à análise por ultrassom, permitindo identifcar fssuras internas no material através da
análise da propagação do som através do material
Fonte: Autor
3 SENSORES
121
Sensores de ultrassom combinados com processamento de sinais digitais
podem compor equipamentos de análise por ultrassom capazes de identifcar
fssuras internas em materiais sólidos, ou ainda visualizar materiais compostos com
densidades diferentes. Esta tecnologia já é usada há algum tempo na medicina,
onde a “ultrassonografa” permite visualizar os órgãos internos de pacientes.
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.
FIQUE
ALERTA
o uso de sensores de ultrassom depende de algumas
variáveis do ambientes, tais como temperatura, pressão
atmosférica e umidade relativa do ar. Ambientes onde estas
variáveis não são controladas, e que possuem presença
de fortes deslocamentos 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 139)
Sensor sem objeto próximo. Objeto não metálico.
Praticamente sem mudança no
campo eletromagnético gerado.
Objeto metálico produz
Uma grande mudança no
campo eletromagnético.
Figura 139 - Sensores indutivos
Fonte: Autor
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 lubrifcante, 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 fuídos lubrifcante, sendo adequados para situações de detecção
onde os sensores ópticos não podem ser empregados.
AUTOMAÇÃO INDUSTRIAL
122
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,
identifcando 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 140)
roda dentada (metal)
sensor
indutivo
saída digital
referência
Figura 140 - Aplicação de sensores indutivos
Fonte: Autor
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 amplifcado e fltrado, gera o sinal desejado.
3 SENSORES
123
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, fuí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.
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 141)
sensor capacitivo
sensor capacitivo
reservatório
ÁGUA
Figura 141 - Sensores capacitivos
Fonte: Autor
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
fuído não-condutivo. Como a constante dielétrica do fuí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 fuído.
AUTOMAÇÃO INDUSTRIAL
124
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 142)
SENSOR MAGNÉTICO
“ REED SWITCH ”
CONTATO ABERTO
CIRCUITO DE CONTROLE
CONTATO FECHADO
ÍMÃ
(OBJETO DETECTADO)
Figura 142 - Sensores magnéticos
Fonte: Autor
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 143)
m
a
g
n
é
t
i
c
o
m
a
g
n
é
t
i
c
o
sensor magnético
sensor magnético
cilindro pneumático com êmbolo magnético
Figura 143 - Cilindro pneumático com êmbolo magnético
Fonte: Autor
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 144)
A
A
N
N
T
NNT
Figura 144 - Circuito integrado sensor de efeito HALL A1101, da Allegro MicroSystems Inc.
Fonte: Autor
3 SENSORES
125
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 amplifcado 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/
defexã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 modifcadas, 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.
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
variações de resistência elétrica
VOCÊ
SABIA?
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 145)
AUTOMAÇÃO INDUSTRIAL
126
bar bar
Sensor de pressão
microcontrolado
Sensor de pressão Piezoresistor
Figura 145 - 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: Autor
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 através 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ífca foi ou não atingida.
Figura 146 - Sensor de pressão do tipo pressostato de membrana
Fonte: Autor
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? Esta
técnica é utilizada em máquinas de lavar roupas.
VOCÊ
SABIA?
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.
Pesquise sobre o uso e a função de acelerômetros e
giroscópios em aplicações aeroespaciais.
VOCÊ
SABIA?
3 SENSORES
127
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 147, Figura 148 e Figura 149)
Wii
Figura 147 - Circuitos inte-
grados acelerômetros
Fonte: Autor
Figura 148 - Sensor industrial
Fonte: Autor
Figura 149 - Equipamentos que
utilizam acelerômetros
Fonte: Autor
3.12 EXTENSÔMETROS E CÉLULAS DE CARGA
Também conhecidos pelo termo STRAIN-GAGE, os extensômetros 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.
Base Fio ou lâmina
Terminal
para a Solda
Sensor strain - gage
Modelo de
posicionamento.
Strain -gage acoplado
a célula de carga.
Figura 150 - Sensor strain-gage acoplado
à célula de carga
Fonte: Autor
Figura 151 - Modelo de
posicionamento
Fonte: Autor
Figura 152 - Strain-gage
Fonte: Autor
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.
AUTOMAÇÃO INDUSTRIAL
128
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 fuxos 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 passem desapercebidos.
Hidrômetros são usados para medir o consumo de água
nas residências. Sensores de vazão por turbina também são
aplicados em bombas de postos de combustíveis.
VOCÊ
SABIA?
Os sensores de vazão são apresentados nas mais diversas confguraçõ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.
0,000
Figura 153 - Sensores de turbinas
Fonte: Autor
Acima, a Figura 153 de sensores de turbina, frequentemente utilizados na
medição de vazão para líquidos.
Em caso de produtos sólidos que podem ser transportados em esteiras, a medida
aproximada da vazão pode ser feita através do 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 fuí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.
3 SENSORES
129
Representação da tubulação com um ponto de estrangulamento, com pontos
de pressão diferencial. (Figura 154)
P P
A
A: Area do buraco
: Area do cano
de seção transversal
Figura 154 - Tubulação com ponto de estrangulamento
Fonte: Autor
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 fuído. Este sensor é usado em aviões para o cálculo da velocidade
através da vazão do ar.
Pressão de Impacto
(velocidade)
Pressão estática
Figura 155 - Representação de um sensor tipo pitot
Fonte: Autor
A Figura 155 é de um tubo pitot. Observe que a diferença entre as pressões
estáticas e de impacto será proporcional à vazão.
União de saída
Conexão de saída
Limitador do futuador
Caixa de vedação sela o tubo
De vidro com a união de metal
Máximo fuxo é obtido
Na parte superior do tubo
Tubo afunilado de vidro
Flutuador de medida
Mínimo fuxo é obtido na
Parte inferior do tubo
Limitador do futuador
Conexão de entrada
União de entrada
Figura 156 - Rotâmetro
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
130
Rotâmetros (Figura 156) são sensores de vazão aplicados a fuí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 é sufciente
para que a suspensão do futuador causada pelo atrito e seu peso entrem em
equilíbrio. A altura do futuador é o indicador do fuxo.
Sensores magnéticos podem medir a vazão através do campo magnético
causado pelo deslocamento de um fuído levemente condutor.
Sensores de ultrassom podem ser usados para medir a vazão através da
diferença de tempo entre a geração e a captação de sinais sonoros propagados
pela tubulação. A velocidade do fuí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 fuí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 fm de estimar o atrito com o elemento e defnir
sua velocidade, usando esta informação para o cálculo da vazão.
Pesquise sobre aplicações de sensores de vazão aplicados a
líquidos e gases.
SAIBA
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.
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.
3 SENSORES
131
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
Coefcient), em português, coefciente 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 Coefcient),
em português, coefciente 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 157)
NTC
PTC
R
e
s
i
s
t
ê
n
c
i
a

(
o
h
m
s
)
Temperatura (C)
Figura 157 - Gráfco da curva de sensores NTC e PTC genéricos
Fonte: Autor
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étrica. Este princípio foi
descoberto por Thomas Johann Seebeck em 1821, e é
conhecido como efeito termoelétrico.
VOCÊ
SABIA?
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 158)
AUTOMAÇÃO INDUSTRIAL
132
V
POWER PK HOLD B / L DC / AC
AUTO POWER OFF
CAT ll
20A mA COM VΩHz
+
-
DC
,
(mV)
INFINITOS VALORES
termopar
+
-
C
Figura 158 - Voltímetro
Fonte: Autor
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ífca, não tolerando temperaturas acima ou abaixo de uma faixa específca,
podendo ocorrer danos permanentes se utilizados fora desta faixa de temperatura.
3.14.1 TIPOS DE TERMOPARES
Estes termopares podem ser formados com junção de metais diferentes,
apresentando respostas diferentes e principalmente faixas de leitura bem
particulares. Na automação industrial, são conhecidos por letras.
• 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
• 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
133
• Tipo J (Ferro / Constantan): possui medição em faixa de -40 a 750°C, mas é
pouco usado atualmente.
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
• 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.
• 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
• 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
• 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
• Tipo T (Cobre / Constantan): indicado para medições na gama dos -270°C a 400°C.
AUTOMAÇÃO INDUSTRIAL
134
Termoelemento positivo (TP): Cu 100%
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 159)
Figura 159 - Sonda com termopar
Fonte: Autor
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 160)
E
K
N
R
S
B
70
65
60
55
50
45
40
35
30
25
20
15
10
5
0
-5
-10
-200 0 200 400 600 800 1000 1200 1400 1600
TERMOPARES: F.E.M. X Temperatura
Termperatura (ºC)
F
.

E
.

M
.


(
m
V
)
Tipo B
Tipo N
Tipo R
Tipo S
Tipo K
Tipo E
Tipo J
Tipo T
J
T
Figura 160 - Gráfco das curvas de termopares, entre temperatura e tensão gerada em milivolts
Fonte: Autor
3 SENSORES
135
3.14.2 SENSOR INFRAVEMELHO APLICADO À MEDIÇÃO DE TEMPERATURA
Uma das formas de transmissão térmica é através da irradiação, onde 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 161)
Câmeras sensíveis à luz infravermelha, ou câmeras
termográficas, permitem a detecção de pontos de geração
de calor, sendo uma moderna ferramenta de detecção de
anomalias, muito utilizada na manutenção preditiva.
VOCÊ
SABIA?
Figura 161 - Imagem térmica de um motor elétrico em funcionamento
Fonte: Autor
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 162)
O
A
V
Figura 162 - Sensor infravermelho para a medição de temperaturas
Fonte: Autor
Alguns sensores infravermelhos apresentam curvas de saída similar a alguns
tipos de termopares, para facilitar sua implantação em sistemas padronizados.
Ao utilizá-los, é importante conhecer as características de emissividade do
objeto a ser medido para melhorar a precisão da leitura.
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.
AUTOMAÇÃO INDUSTRIAL
136
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.
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
fuí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
fque na parte inferior do recipiente, facilitando a convecção e fazendo com que
haja um aquecimento de todo o fuí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 refetir 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.
3 SENSORES
137
Como exemplo, vamos estudar um braço robótico. (Figura 163 e Figura 164)
fotodiodo
eixo
led
infravermelho
disco perfurado
encoder óptico
braço robótico aplicando a solda
Figura 163 - Braço robótico
Fonte: Autor
Figura 164 - Encoders ópticos
usados em suas articulações e
seu princípio de funcionamento
Fonte: Autor
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, quantifcando-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.
Alguns encoders podem gerar até 360000 pulsos por
revolução; ou seja um pulso é gerado a cada milésimo de
grau de movimento angular do eixo do encoder.
VOCÊ
SABIA?
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
fta graduada translúcida, como em um encoder óptico.
AUTOMAÇÃO INDUSTRIAL
138
LVDT : Linear Variable Diferential Transformer - Transformador Diferencial Linear
Variável. Constitui um sistema que utiliza transformadores acoplados através 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 defnido 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 165)
Figura 165 - Sensor de posição linear
Fonte: Autor
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.
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 166)
5V
270
o
Ângulo
T
e
n
s
ã
o

(
V
)
5
V
S
i
n
a
l
G
N
D
Figura 166 - Encoders analógico potenciométrico
Fonte: Autor
3 SENSORES
139
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 167)
1
0
1
Disco com áreas
refexivas e
áreas foscas
Figura 167 - Encoders absolutos óptico
Fonte: Autor
É 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.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 168)
AUTOMAÇÃO INDUSTRIAL
140
101010101
Disco com áreas
refexivas e
áreas foscas
Figura 168 - Encoders incrementais ou relativos óptico
Fonte: Autor
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.
disco conectado ao eixo
mascara fxa
emissores
Sensor A
Sensor B
receptores
Figura 169 - Encoders incrementais
Fonte: Autor
Na Figura 169, vemos 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.
FIQUE
ALERTA
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 deslocados até um limite pré-determinado (ponto zero).
3 SENSORES
141
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.
AUTOMAÇÃO INDUSTRIAL
142
3.16 TRANSDUTORES / CONVERSORES
Na automação industrial, 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 170)
Forma de energia
de entrada
Forma de energia
de saída
Perdas
Transdutor
Figura 170 - Diagrama de funcionamento de um transdutor
Fonte: Autor
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 efciê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.
Segue uma lista dos principais transdutores conhecidos.
3 SENSORES
143
3.16.1 TRANSDUTORES PASSIVOS
• 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.
• 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.
• termistores: também já estudados, são resistências que variam de forma
diretamente proporcional ou inversamente proporcional à temperatura.
• 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.
• 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.
• 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
• 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).
• transdutores piezoelétricos: dispositivos que geram energia elétrica ao
serem deformados/defexã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.
• fotodiodo: em um diodo sensível à luz quando inversamente polarizado, a
corrente aumenta proporcionalmente à luz incidente.
AUTOMAÇÃO INDUSTRIAL
144
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 fuído através da deformação gerada. (Figura 171)
Figura 171 - Transdutor de corrente, usado para medir a corrente através do campo elétrico gerado pelo condutor
Fonte: Autor
V
Condutor
Corrente
Figura 172 - Esquema de um transdutor industrial de corrente
Fonte: Autor
A Figura 172 é 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). Nas extremidades do resistor, devidamente conectada
a bobina de fo, obtemos uma variação de tensão proporcional à corrente, que
pode ser amplifcada e utilizada em um sistema de controle. (Figura 173, Figura
174 e Figura 175)
Figura 173 - Transdutores de posição tipo LVDT
Fonte: Autor
Figura 174 - Transdutores de pressão
Fonte: Autor
3 SENSORES
145
Figura 175 - Transdutor de força – célula de carga
Fonte: Autor
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 CLPs, precisam ser adequados para
variações de corrente de 4 a 20mA, 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 176)
1
2
3
4 5
6
5 4 3 2 1
6
Figura 176 - Conversor de 4 a 20mA para sinal de radiofrequência
Fonte: Autor
Alguns dispositivos conversores permitem também converter sinais elétricos
em sinais de rádio, e vice-versa, permitindo instalações remotas sem fo.
FIQUE
ALERTA
Sistemas de comunicação wireless podem interferir e sofrer
interferências de outras fontes de ruído eletromagnético.
AUTOMAÇÃO INDUSTRIAL
146
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 infnitas 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.
3 SENSORES
147
Anotações:
4
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 177)
Degraus
(digital)
Rampa
(analógico)
Figura 177 - Comparação analógica e digital
Fonte: Autor
Ao analisar a rampa, observamos que uma pessoa pode ocupar cada uma das infnitas
posições existentes entre o início e o fm dela. No caso da escada, a pessoa pode se encontrar
em apenas um de seus degraus, em uma posição defnida. Assim, é correto dizer que a rampa
representa um sistema analógico, enquanto a escada representa um sistema digital.
Esse conceito pode ser ainda explicado através das 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 efciente. Existem duas formas de
representação dos valores numéricos das quantidades: a analógica e a digital.
150
AUTOMAÇÃO INDUSTRIAL
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 178)
2
4
6
8
10
11
50
100
150
psi
bar
Figura 178 - Manômetro analógico (ponteiro)
Fonte: Autor
Neste tipo de manômetro, a defexã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 infnitas variações de pressão entre 0 e 11 bar, e existem infnitas
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 infnitas 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.
Observando a Figura 179:
Figura 179 - Manômetro digital
Fonte: Autor
4 SISTEMAS DIGITAIS
151
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 defne as características repassadas a seus decendentes.
Então, o que é “eletrônica digital”?
É a ciência eletrônica que trabalha com estes estados defnidos de tensão,
onde sinais digitais (geralmente binários) são aplicados em circuitos elétricos.
Sistemas digitais utilizam um conjunto fnito 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 180)
0
1
Sistema binário
2 digitos (0 ou 1)
Sistema decimal
10 digitos (0 a 9)
1
0
2
3
4
5
6
7
8
9
dígitos
Figura 180 - Sistemas numéricos
Fonte: Autor
152
AUTOMAÇÃO INDUSTRIAL
Porém, o sistema decimal ainda apresenta um desafo 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 indefnição no valor representado, pois não seria possível saber se
0,75V signifcam 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 efciente.
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 (0V) e nível alto (5V).
Neste sistema, se um condutor destinado ao transporte da informação estiver
apresentando uma tensão diferente de 0V, porém muito próxima a este (por
exemplo, 0,75V), 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 5V, 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.
4 SISTEMAS DIGITAIS
153
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.
FIQUE
ALERTA
Estamos acostumados a lidar com sistemas decimais
(utilizamos dígitos de zero a nove para contar, calcular,
registrar), e dimensionar sistemas para representações
em dois dígitos requer estudos de técnicas, pois algumas
regras aplicadas ao sistema decimal não podem ser
aplicadas ao sistema binário.
Felizmente, no século XIX (década de 1830), o matemático e fló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 afrmar
que seus estudos permitiram o surgimento e os avanços na área.
A álgebra de Boole (álgebra booleana) é o fundamento da
Matemática Computacional, baseada em números binários.
VOCÊ
SABIA?
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 os que seguem:
Maior robustez, precisão e exatidão: sistemas digitais toleram variações em
componentes eletrônicos sem alterar a informação representada, o que não
ocorre em sistemas analógicos.
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.
Fácil armazenamento de informação: é possível armazenar informações
digitais usando princípios físicos (cartõ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.
154
AUTOMAÇÃO INDUSTRIAL
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.
Adequação à integração: embora o desenvolvimento de circuitos integrados
tenha benefciado os circuitos analógicos, os benefícios foram maiores para sistemas
digitais, pois em sistemas analógicos há um limite para integraçõ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.
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:
1- Converter sinais analógicos capturados do mundo real para formato digital.
2- Realizar o processamento da informação digitalizada.
3- Converter saídas digitais de volta para o formato analógico.
Como exemplo, vamos usar o princípio de funcionamento de um sistema de
telefonia digital.
Sinal analógico
(frequência e amplitude
da voz humana)
1
2
3 4
5
6 7
8
9 *
0
#
• A voz humana é um som, e como todo
som é caracterizado por vibrações
propagadas no meio (ar). Quando
capturada pelo microfone do telefone,
estas oscilações analógicas geram
variações de frequência e amplitude em
sinais elétricos, porém continuando com
comportamento de sinal analógico.
Sinal analógico
(frequência e amplitude
da voz humana)
Na digitalização, cada
amostra em um dado
paríodo de tempo é
convertida em uma
grandeza numérica,
representada usando
o sistema binários (0 e 1)
1 1 , 1 5 , 1 6 , 1 5 , 1 2 , 4 , 1 , 4 , 1 2 , 1 4 , 1 1 , 5 , 6 , . . .
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
• O som é representável em uma
onda analógica, que é digitalizada,
transformando-se em uma
sequência de bits (dígitos binários).
Na digitalização, a informação
analógica é analisada em várias
amostras por segundo (geralmente
próximo a algumas milhares de
amostra por segundo). Cada amostra
é quantifcada, virando um valor
numérico inteiro.
4 SISTEMAS DIGITAIS
155
• Estes valores são então codifcados
para representação binária e
transmitidos em uma rede de
dados por ondas de rádio, usando
sistemas que diferenciam a altura
ou a frequência das ondas enviadas,
chegando até o equipamento de
destino. Embora a informação seja
digital, caracterizada por bits (zeros ou
uns), uma onda de rádio é o meio físico
analógico por onde ela é transferida.
0 e 1 são
transmitidos
através de ondas
de rádio, por
frequências
diferentes. 1 1 , 1 5 , 1 6 , 1 5 , 1 2 , 4 , 1 , 4 , 1 2 , 1 4 , 1 1 , 5 , 6 , . . .
1 5 ( 1 1 1 1 ) , 1 2 ( 1 1 0 0 ) , 4 ( 0 1 0 0 ) , 1 ( 0 0 0 1 ) , . . .
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1 2 3
4 5 6
7 8 9
* 0 #
• No equipamento de destino, as ondas
de rádio são lidas e interpretadas
como bits zeros e uns. Circuitos
decodifcadores então recalculam e
reconstroem a onda capturada na
origem, e a informação novamente
revertida para o sistema analógico
produz oscilações que movimentam
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 difcultando
alterações nas informações durante o
processo de transmissão.
Equipamento converte o sinal
digital em ondas analógicas (som).
Sinal chega vai ondas de
rádio, e é interpretado
como sinal digital.
1
2
3
4
5
6
7
8
9
*
0
#

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 verifcado, e até corrigido,
permitindo que a informação digital seja enviada, copiada e armazenada sem
perdas, ou que estas perdas, ao menos, sejam identifcadas.
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.
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)
que percorre trilhas reflexivas, percebendo pontos e traços.
VOCÊ
SABIA?
156
AUTOMAÇÃO INDUSTRIAL
Para realizar a conversão entre sistemas de codifcação diferentes (decimal,
hexadecimal, binário...) são utilizados conversores de código, também conhecidos
como codifcadores e decodifcadores, 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 defnem a saída, mas também o tempo e a ordem como elas
são modifcadas determinam o funcionamento do circuito.
São exemplos deste tipo de circuito digital os latches, fip-fops, 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
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.
4 SISTEMAS DIGITAIS
157
É isso que ocorre em expressões lógicas: 1 representa VERDADEIRO e 0
representa FALSO.
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 simplifcar 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 181)
A
B
x
?
Figura 181 - Exemplo tabela verdade
Fonte: Autor
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 5:
Tabela 5: Circuito A e B
A B
A?B
X
0 0
0 1
1 0
1 1
Fonte: Autor
158
AUTOMAÇÃO INDUSTRIAL
Para termos a tabela 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 6)
Tabela 6: Circuito A e B
A B
A?B
X
0 0 0
0 1 1
1 0 1
1 1 0
Fonte: Autor
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 defnida pela combinação
das entradas. São, portanto, circuitos combinacionais.
Cada porta lógica possui uma representação (símbolo) específca, uma
expressão e uma tabela verdade. Esses elementos são utilizados e combinados
para implementar circuitos dedicados para aplicações específcas.
Segue na Tabela 7, 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.
4 SISTEMAS DIGITAIS
159
Tabela 7: Principais portas lógicas
PORTAS LÓGICAS
OPERAÇÃO SÍMBOLO EXPRESSÃO TABELA
VERDADE
EXEMPLOS COMERCIAIS
OR (ou)
A
X
B
X = A + B
A B X
0 0 0
0 1 1
1 0 1
1 1 1
74HC32 (quad 2-input OR gates)
74HC4075 (triple 3-input OR gates)
CD4075 (triple 3-input OR gates)
CD4072 (dual 4-input OR gates)
AND (e)
A
X
B
X = A . B
A B X
0 0 0
0 1 0
1 0 0
1 1 1
74HC08 (quad 2-input OR gates)
74HC11 (triple 3-input OR gates)
CD4082 (dual 4-input OR gates)
74HC21 (dual 4-input OR gates)
NOT (não)
A X
X = A A X
0 1
1 0
74HC04 (hex inverter)
MC14049 (hex inverter)
CD4049 (hex inverter)
NOR
(não ou)
A
X
B
X = A + B A B X
0 0 1
0 1 0
1 0 0
1 1 0
74HC00 (quad 2-input NOR gates)
CD4025 (triple 3-input NOR gates)
CD4002 (dual 4-input NOR gates)
CD4078 (single 8-input NOR gates)
NAND
(não e)
A
X
B
X = A . B A B X
0 0 1
0 1 1
1 0 1
1 1 0
74HC02 (quad 2-input NAND gates)
CD4023 (triple 3-input NAND gates)
CD4102 (dual 4-input NAND gates)
CD4058 (single 8-input NAND gates)
XOR (ou
exclusivo)
A
X
B
X = AO B
X = AB + AB
A B X
0 0 0
0 1 1
1 0 1
1 1 0
74HC85 (quad 2-input XOR gates)
CD4070 (quad 2-input XOR gates)
XNOR (não
ou exclu-
sivo)
A
X
B
X = AO B
X = A B + AB
A B X
0 0 1
0 1 0
1 0 0
1 1 1
74LS266 (quad 2-input XNOR gates)
74LS811 (quad 2-input XNOR gates)
CD4077 (quad 2-input XNOR gates)
Fonte: Autor
Portas NOR, NAND, XOR e XNOR são combinações da
portas básicas AND, OR e NOT? Devido à sua frequente
utilização os fabricantes já constroem essas combinações e
disponibilizam em modelos comerciais, porém elas podem
ser implementadas com as ligações de portas básicas.
VOCÊ
SABIA?
FIQUE
ALERTA
Embora haja algumas similiaridades e padronizações, os
circuitos integrados de um mesmo modelo podem variar
em suas características dependendo do fabricante e versão.
Sempre use o “datasheet” (folha de dados) do componente
como principal referência.
160
AUTOMAÇÃO INDUSTRIAL
A equivalência entre as portas lógicas é demonstrada na tabela abaixo, 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. (Tabela 8)
Tabela 8: Equivalencias das portas lógicas
PORTA EXPRESSÃO SÍMBOLO EQUIVALÊNCIA
NOR
X = A + B
A
X
B
X
A
B
NAND
X = A . B A
X
B
A
B
X
XOR X = AO B
X = AB + AB A
X
B
A
X
B
XNOR X = AO B
X = A B + AB
A
X
B
A
X
B
Fonte: Autor
A representação simplifcada 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 182)
A
X
A
B
=AB
AB
X
A
B
=AB
AB
X
A
B
=AB
A
X
A
B
=AB
Figura 182 - Portas Lógicas
Fonte: Autor
4.3.4 OPERADORES DA ÁLGEBRA BOOLEANA
Existem várias formas de obter o mesmo resultado. Nas tabelas acima,
expressões equivalentes provam sua equivalência justamente porque o resultado
obtido em função das entradas é o mesmo. Por que podemos preferir uma
expressão à outra em dado momento?
4 SISTEMAS DIGITAIS
161
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 fsicamente 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 simplifcação de circuitos lógicos mais efcientes.
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.
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 183 - Operadores da álgebra booleana
Fonte: Autor
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
162
AUTOMAÇÃO INDUSTRIAL
b) 1 + 1 = 1 V ou V = V
Axioma 4:
a) 0 . 1 = 1 . 0 = 0 F e V = V e F = 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 simplifcação de funções lógicas ou na
expressão de sua equivalência. Esses teoremas são descritos a seguir.
• 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)
4 SISTEMAS DIGITAIS
163
• 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)
• 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 nas
tabelas abaixo:
164
AUTOMAÇÃO INDUSTRIAL
Tabela 9: Verdade para as expressões equivalentes: a) XY e b) X + Y
a)
X Y XY
XY
0 0 0 1
0 1 0 1
1 0 0 1
1 1 1 0
b)
X Y
X Y X + Y
0 0 1 1 1
0 1 1 0 1
1 0 0 1 1
1 1 0 0 0
Fonte: Autor
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 10:
Tabela 10: 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: autor
4.3.7 UNIVERSALIDADE DAS PORTAS NAND E NOR
Através 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. (Tabela 11)
Tabela 11: Universalidade das portas NAND e NOR
FUNÇÃO CIRCUITO ORIGINAL EQUIVALENTE NAND EQUIVALENTE NOR
NOT
A Y A Y = A A Y = A
AND
A
Y = A . B
B
Y = A . B
Y = A . B
A
B
Y = A+B
Y = A . B
A
B
OR
A
Y = A+B
B
Y = A . B
Y = A+B
A
B
Y = A+B
Y = A+B
A
B
Fonte: Autor
4 SISTEMAS DIGITAIS
165
4.3.8. SIMPLIFICAÇÃO DE CIRCUITOS LÓGICOS
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.
O Mapa de Karnaugh consiste em um método gráfco utilizado para simplifcar
expressões lógicas a partir da tabela verdade. Os exemplos a seguir ilustram os
mapas para 2, 3 e 4 variáveis:
Os diagramas conhecidos como Mapas de Karnaugh foram
desenvolvidos originalmente por Edward Veitch? Mais tarde, o
engenheiro de telecomunicações Maurice Karnaugh aperfeiçoou-
os para utilizá-los na simplifcação de circuitos de telefonia. Por
isso o nome completo do método é Veitch-Karnaugh.
VOCÊ
SABIA?
a) Função de duas variáveis:
TABELA VERDADE EXPRESSÃO MAPA DE KARNAUGH
A B F
0 0 1
0 1 0
1 0 0
1 1 1
F = A . B + A . B
B
B
A
1 0
A 0 1
b) Função de três variáveis:
TABELA
VERDADE
EXPRESSÃO MAPA DE KARNAUGH
A B C F
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
F = A . B . C+ A . B . C+ A . B . C+ A . B . C
C
C
A
B
1 1
A B
1 0
A B 1 0
A B
0 0
166
AUTOMAÇÃO INDUSTRIAL
c) 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
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
1 0 0 0 0
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 0
1 1 0 1 1
1 1 1 0 0
1 1 1 1 1
F = A . B . C . D + A . B . C . D + A . B . C . D + A . B . C . D
MAPA DE KARNAUGH
C

D CD
CD CD
A
B
0 1 0 0
A B
0 1 0 0
A B 0 1 1 0
A B
0 0 0 0
Pontos importantes nos Mapas de Karnaugh
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).
Agrupamentos
A expressão para a saída de uma função pode ser simplifcada 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 simplifcada é 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:
4 SISTEMAS DIGITAIS
167
a) Pares ou Duplas
0 0 1 1
0
C
AB AB AB AB
C 0 0 0
0 0
1
C C
1
0 0
0 0
A B
AB
AB
AB
1 0
0
C C
0
0 0
1 0
A B
AB
AB
AB
0 1 0 1
0
C D CD CD CD
0 0 0
0 0 0 0
1 1 0 0
A B
AB
AB
AB
X = A.B X = B.C X = A.B.C + A.B.D
X = A.B.C + A.B.C = (B.C).(A+A)= B.C
Obs: Note que nesses dois termos, apenas A varia,
enquanto BC não se altera.
b) Quadras
0 0 0 0
1
C
A B AB AB AB
C 1 1 1
0 0 0 0
0
C D CD CD CD
0 1 1
0 0 1 1
0 0 0 0
A B
AB
AB
AB
1 1 0 0
0
C D CD CD CD
0 0 0
0 0 0 0
1 1 0 0
A B
AB
AB
AB
X = B.D
X = B.D
X = C
Obs: Note que nesses quatro termos, A e B variam,
enquanto C não se altera.
c) Octetos
1 1 1 1
0
C D CD CD CD
0 0 0
0 0 0 0
1 1 1 1
A B
AB
AB
AB
X = B
0 0 0 0
1
C D CD CD CD
1 1 1
1 1 1 1
0 0 0 0
A B
AB
AB
AB
X = B
1 0 1 0
1
C D CD CD CD
0 1 0
1 0 1 0
1 0 1 0
A B
AB
AB
AB
X = C
d) Agrupamentos Mistos
0 1 0 0
0
C D CD CD CD
0 1 1
0 0 1 1
0 0 0 1
A B
AB
AB
AB
0 0 0 1
1
C D CD CD CD
1 1 1
1 0 1 0
0 0 0 0
A B
AB
AB
AB
X = B.C + A.C.D + A.B.C.D X = A.B + B.C + A.C.D
168
AUTOMAÇÃO INDUSTRIAL
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 12)
Tabela 12: 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: Autor
Analisando a tabela verdade para esse sistema, vemos que X é defnido 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.
Os Mapas de Karnaugh podem ser utilizados para
simplificar funções de até 6 variáveis?
VOCÊ
SABIA?
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 184)
0
1
1
1 1
1
1
1
9 12 8
1 5 13 9
3 7 15 11
7 6 14 10
16
1 1 1
20 28 24
17 21 29 25
19 23 31 27
18 22 36 26
1 1
1 1
BC
DE
00 01 11 10
00 01 11 10
A = 0
A - 1 0 4 3 2
4
5 2 6
12 13
14 15
8
9 11
10
16 17 19 18
20 21 23 22
28 29
36 31
24 25
27
26
48 49 51 50
52 53 55 54
60 61
62 63
56
57 59
58
32 33 35
34
36 37
39 38
44 45
46 47
40
41 43
42
f
f
f
f
d
d
d
d
C
C
C
C
e
e
e
e
a
b
Figura 184 - Mapas de Karnaugh para 5 e para 6 variáveis
Fonte: Autor
Pesquisando sobre programas de edição e simplificação de
expressões booleanas na internet.
SAIBA
MAIS
4 SISTEMAS DIGITAIS
169
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 185:
ENTRADAS DE DADOS
I
I
I
I
I
N
S S S
ENTRADAS DE SELEÇÃO
Figura 185 - Diagrama de um multiplexador
Fonte: Autor
• A saída Z recebe um dado
de entrada de acordo com o
código na entrada de seleção.
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, defnindo 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.
170
AUTOMAÇÃO INDUSTRIAL
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
defnirá qual dado será enviado para a saída. Assim, para um multiplexador com
“n” entradas de seleção, teremos 2
n
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.
a) Multiplexador básico de 2 entradas (2:1)
Considere o circuito da fgura a seguir, o qual apresenta um multiplexador
com duas entradas de dados (I
0
e I
1
) 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.
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 186)
1
I
I
o
1
S
2
Figura 186 - Multiplexador de 2 canais
Fonte: Autor
• Z = I
0
S + I
1
S
Assim, quando S = 0, a porta 2 é
habilitada, permitindo que o sinal de
I
1
seja enviado para a saída, e a porta 1
é desabilitada, fazendo com que I
0
não
interfra na saída.
b) Multiplexador de 4 entradas (4:1)
Utilizando a ideia básica apresentada anteriormente, é possível implementar
um multiplexador de quatro entradas de dados (I
0
, I
1
, I
2
e I
3
) e duas entradas de
seleção (S
0
e S
1
). A tabela verdade para essa operação e o circuito implementado
são apresentados na Figura 187.
a)
S0 S1 SAÍDA
0 0 Z = I
0
0 1 Z = I
1
1 0 Z = I
2
1 1 Z = I
3
b)
3 2 1 0
Figura 187 - Multiplexador de quatro entradas - a) Tabela verdade - b) Circuito implementado
Fonte: Autor
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 um maior números de entradas.
4 SISTEMAS DIGITAIS
171
Pesquisando como associar multiplexadores em série ou
paralelo para formar um multiplexador com um número
maior de entradas.
SAIBA
MAIS
A) MUX de 8 entradas (8:1)
O circuito apresentado na fgura 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 188 e Figura 189)
a)
ENTRADAS SAÍDAS
E
S2 S1 S0
Z
Z
H X X X H L
L L L L I
0
I
0
L L L H I
1
I
1
L L H K I
2
I
2
L L H H I
3
I
3
L H L L I
4
I
4
L H L H I
5
I
5
H H L I
6
I
6
L H H H I
7
I
7
b)
I 0 I 1 I 2 I 3 I 4 I 5 I 6 I 7
S 2
0
S 1
0
S 0
0
E
74 x x 151
MUX de 8 Entradas
c)
4 3 2 1 15 14 13 12
0 1 2 3 4 5 6 7
9
10
11
7
S
S
S
E

Figura 188 - Multiplexador de 8 entradas - a) Tabela verdade - b) Símbolo lógico - c) Diagrama lógico
Fonte: Autor
Muitos circuitos digitais possuem entradas que permitem
que o circuito funcione ou não. Essas entradas de controle
são chamadas de entradas de habilitação e podem ser o
terminal de uma porta lógica ou de uma combinação de
portas lógicas.
VOCÊ
SABIA?
172
AUTOMAÇÃO INDUSTRIAL
PORTAS HABILITADAS PORTAS DESABILITADAS
A
B
B
=
=
=
B =
=
=
=
1
A
=A
= =A
= =A
=A
A
1
0
B = 0
X
A
B
=
=
=
X
X
X
B =
=
=A
X
X = =A
=A
B =
X =
0
0
0
A
B
=
=
=
X
0
1
1
1
1
Figura 189 - Portas lógicas utilizadas como circuitos de habilitação
Fonte: Autor
Nos circuitos da Figura 189, 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.
b) 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 190. Esse
circuito também apresenta uma entrada para habilitação como o modelo anterior.
a)
E
S Za Zb Zc Zd
H X L L L L
L L I
0a
I
0b
I
0c
I
0d
L H I
1a
I
1b
I
1c
I
1d
b) I1a I1b I1c I1d I0a I0b I0c I0d
S
Z Z Z Z
E
74 x x 157
a b c d
c)
a b c d
I
a
I
a
I
b
I
b
I
c
I
c
I
d
I
d
E S
Figura 190 - Multiplexador quádruplo de 2 entradas 74xx157 - a) Tabela verdade - b) Símbolo lógico - c) Diagrama lógico
Fonte: Autor
4 SISTEMAS DIGITAIS
173
Encontram-se comercialmente disponíveis multiplexadores com várias
entradas; no entanto, podemos implementar circuitos com um grande número
de entradas através da associação de multiplexadores menores.
Pesquisando como associar multiplexadores em série ou
paralelo para formar um multiplexador com um número
maior de entradas.
SAIBA
MAIS
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 através de um código de
seleção, conforme é possível observar na Figura 191:
S
0 S
1
S
2
ENTRADAS DE SELEÇÃO
Z0
Z1
Z2
Z3
ZN
I
ENTRADA
DE DADOS
Figura 191 - Diagrama de um demultiplexador
Fonte: Autor
• A entrada de dados é transmitida
apenas para uma das saídas, de
acordo com a entrada de código
de seleção.
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 2
n
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 DEMUX: um circuito básico de 2
entradas (ou canais) de dados e um circuito para 4 entradas.
a) Demultiplexador de 2 saídas (1:2)
Considere o circuito da Figura 192, onde temos um demultiplexador com uma
entrada de dados (I), uma entrada de seleção (S) e duas saídas (O
0
e O
1
). O nível
lógico na entrada S determina para qual saída será transmitido o dado de entrada.
174
AUTOMAÇÃO INDUSTRIAL
I
S
O
O
Figura 192 - Demultiplexador de 2 canais
Fonte: Autor
Obtendo a tabela verdade para o circuito, temos: (Tabela 13)
Tabela 13: Tabela verdade para o circuito
S O
0
O
1
0 1 0
1 0 1
Fonte: Autor
e a expressão para cada uma das saídas é dada por: O
0
= I . S e O
1
= I. S
b) 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 193
o projeto de um demultiplexador 1:4.
a)
S
0
S
1
O
0
O
1
O
2
O
3
0 0 I 0 0 0
0 1 0 I 0 0
1 0 0 0 I 0
1 1 0 0 0 I
b)
O
=
I S . S
O
=
I S . S
O
=
I S . S
O
=
I S . S
c)
O
O
O
O
S
S
I
Figura 193 - Projeto de um demultiplexador 1:4 - a) Tabela verdade - b) Expressões para as saídas - c) Circuito implementado
Fonte: Autor
4 SISTEMAS DIGITAIS
175
Circuitos demultiplexadores comerciais podem ser encontrados com 2,
4, 8 e 16 terminais de saída. Assim como os multiplexadores, esses circuitos
podem ser encontrados com 2, 4, 8 e 16 terminais de saida. Assim como os
multiplexadores, esses circuitos podem ser combinados com a fnalidade de
formar demultiplexadores com um número maior de saídas.
a) DEMUX de oito saídas
A fgura abaixo apresenta o diagrama lógico de um demultiplexador de 8
canais. Nela, percebemos que a entrada I é conectada a todas as saídas através
de portas AND, mas somente uma dessas portas é acionada através do código
de seleção. O circuito mostrado é semelhante a alguns decodifcadores 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 decodifcadores que apresentam uma entrada de habilitação
podem ser utilizados como demultiplexadores. (Figura 194)
a)
S
2
S
1
S
0
O
7
O
6
O
5
O
4
O
3
O
2
O
1
O
0
0 0 0 0 0 0 0 0 0 0 I
0 0 1 0 0 0 0 0 0 I 0
0 1 0 0 0 0 0 0 I 0 0
0 1 1 0 0 0 0 I 0 0 0
1 0 0 0 0 0 I 0 0 0 0
1 0 1 0 0 I 0 0 0 0 0
1 1 0 0 I 0 0 0 0 0 0
1 1 1 I 0 0 0 0 0 0 0
b)

¬
I(S, . S, . S¸)
O,
¬
I(S, . S, . S¸)
O,
¬
I(S, . S, . S¸)
O,
¬
I(S, . S, . S¸)
O,
¬
I(S, . S, . S¸)
O_
¬
I(S, . S, . S¸)
O_
¬
I(S, . S, . S¸)
O,
¬
I(S, . S, . S¸)
( b )
c)
00 01 02 03 04 05 06 07
A A A I
( C ) (FIGURA RETIRADA DO DARASHEET DE COMPONENTES - REFAZER)
Figura 194 - Demultiplexador 1:8 - a) Tabela verdade - b) Expressões para as saídas - c) Diagrama lógico
Fonte: Autor
Na Figura 195 temos o diagrama do circuito integrado 74xx138, um
decodifcador confgurado para ser usado como um demultiplexador, com o
dado de entrada aplicado em uma das entradas de habilitação.
176
AUTOMAÇÃO INDUSTRIAL
A,
A,

DLCOD|P/DLMUX
74 XX l38
CÓD|GOS
DL
SLLLÇÃO
L
l23
I
vcc
O¸ O, O, O, O, O_ O¸ O,
Figura 195 - Circuito 74xx138, Decodifcador/Demultiplexador confgurado como demultiplexador com a entrada de
habilitação funcionando como entrada de dados
Fonte: Autor
b) DEMUX de desesseis saídas
O circuito integrado 74xx154 é um decodifcador 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 - fgura (a) – ou,
ainda, reservar uma das entradas de strobe como entrada de dados e a outra
com sua função normal, conforme mostrado na fgura (b). A entrada de strobe
funciona como uma entrada de bloqueio. Quando ambas as entradas estiverem
em 0, o circuito funcionará como decodifcador/demultiplexador. (Figura 196)
a)
D
C
B
A
S
S
G
G
S
S
7
4
x
x
1
5
4
I
D
C
B
A
S
S
G
G
S
S
7
4
x
x
1
5
4
I
(a)
(b)
Strobe
(...) (...)
b)
D
C
B
A
S
S
G
G
S
S
7
4
x
x
1
5
4
I
D
C
B
A
S
S
G
G
S
S
7
4
x
x
1
5
4
I
(a)
(b)
Strobe
(...) (...)
c)
(

1
6

)
(

1
5

)
(

1
4

)
(

1
3

)
(

1
2

)
(

1
1

)
(

1
0

)
(

1

)
(

1
7

)
(

1
8

)
(

1
9

)
(

2
0

)
(

2
2

)
(

2
1

)
(

2

)
(

3

)
(

4

)
(

5

)
(

6

)
(

7

)
(

8

)
(

9

)
D C B A
G
2
G
1
A
A
B
B
C
C
D
D D
D D C C B B A A G
A
B
B
C
C
D
A
G
15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
OUTPUTS
INPUTS
Figura 196 - Circuito 74xx154 confgurado como demultiplexador 1:16 - a) e b) Confgurações para funcionamento como
demultiplexador 1:16 - c) Diagrama lógico
Fonte: Autor
4 SISTEMAS DIGITAIS
177
c) Duplo DEMUX de quatro saídas
A Figura 197 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)
ENTRADAS SAÍDAS
SELEÇÃO STROBE DADO
B A 1G 2G 1
C
2
C
nO
0
nO
1
nO
2
nO
3
X X 1 X X 1 1 1 1
0 0 0 1 0 0 1 1 1
0 1 0 1 0 1 0 1 1
1 0 0 1 0 1 1 0 1
1 1 0 1 0 1 1 1 0
X X X 0 1 1 1 1 1
b)
10
10
10
10
20
20
20
20
- 1C
1G
2G
2C
Strobe
Dado
7
4
X
X
1
5
5
A B
Seleção
( b )
Oa Oa Oa Oa Ob Ob Ob Ob
A A
Ea Ea Eb Eb
c)
10
10
10
10
20
20
20
20
- 1C
1G
2G
2C
Strobe
Dado
7
4
X
X
1
5
5
A B
Seleção
( b )
Oa Oa Oa Oa Ob Ob Ob Ob
A A
Ea Ea Eb Eb
Figura 197 - Decodifcador/Demultiplexador 74xx155: a) Tabela verdade; b) Diagrama de conexões; c) Diagrama lógico
Fonte: Autor
Assim como no caso dos multilexadores, podem ser encontrados comercialmente
demultiplexadores com várias saídas; no entando, podemos implementar circuitos com
um número maior de saídas através da associação de demultiplexadores menores.
4.5 CONVERSORES D/A E A/D
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ífcos 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.
178
AUTOMAÇÃO INDUSTRIAL
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é 2
10
= 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.
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 198)
Sinal Analógico
Conversores
A/D
Sinal Digital
Conversores
D/A
0101101011
V
t
Sinal Analógico Sinal Digital
0101101011 2
4
6
8
10
11
50 100
150 psi bar
Figura 198 - Conversores DA e AD
Fonte: Autor
Com o advento dos circuitos integrados (CI), muitos componentes foram
desenvolvidos com o objetivo de realizar a conversão entre os tipos de sinais.
4 SISTEMAS DIGITAIS
179
Porém, quando realizamos a conversão, os seguintes fatores devem ser
considerados:
1) Tipo de sinal analógico: um sinal analógico é um sinal que varia dentro de
uma faixa específca e pode ser representado, dentre outras formas, por variações
de corrente ou de tensão (padrões mais utilizados na automação industrial).
2) Resolução: a conversão de um sinal analógico em um sinal digital
requer um sacrifício: 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.
Vejamos a Figura 199:
3 bits 1 bit 2 bits analógico
000
00
01
10
11
0
1
001
010
011
100
101
110
111
Figura 199 - Conversão de um sinal analógico para digital
Fonte: Autor
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 2
2

= 4 estágios diferentes. Com conversão de 3 bits, são 2
3
= 8 estágios diferentes.
Um conversor A/D de 8 bits pode, então, fornecer 2
8
= 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 (2
8
) possíveis valores. Se este conversor A/D fosse de 10
bits, seriam 1024 (2
10
) 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é 2
4
= 16 velocidades diferentes.
180
AUTOMAÇÃO INDUSTRIAL
Sabemos que não é uma representação fel de um sistema analógico; no
entanto, quanto maior é a resolução, mais aproximada é a representação.
3) 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 confguraçõ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.
500 kHz CLK
5.000V
0.000V
VREF (+)
VREF ( - )
START
ALE
DE
EDC
2
-1
2
2
-2
-3
2
-4
2
-5
2
-6
2
-7
2
-8
In7 V
IN
V
IN
8
1
A
B
C
ADC0808
ADC0809
Vcc
GND
In0
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
MSB
LSB
0 -5V
ANALOG
INPUT RANGE
AD0
AD1
AD2
5V SUPPLY
GROUND
Figura 200 - Conversor AD muito utilizado, o ADC0808
Fonte: Autor
4 SISTEMAS DIGITAIS
181
O exemplo da Figura 200 é 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 (AD
0
a AD
2
) 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
, o procedimento será:
1) 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 DB
0
a DB
7
representará a combinação binária
desejada, referente à entrada In
3
.
2) 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.
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, 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 Lógicos Programáveis, também
conhecidos por CLPs (ou PLCs), 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.
Os microcontroladores são circuitos integrados
programáveis, e também podem possuir uma ou mais
entradas analógicas atuando em níveis de tensão de até 5V.
VOCÊ
SABIA?
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
amplifcador operacional, conforme a imagem que segue.
182
AUTOMAÇÃO INDUSTRIAL
2R
2R
Vs
Vc Vd Vb Va
2R 2R 2R
2R R P O
R R 3R
+
-
A
(Va)
B
(Vb)
C
(Vc)
D
(Vd)
Vpo
(V)
V
S
(V)
0 0 0 0 0,00 0,00
0 0 0 1 0,20 0,40
0 0 1 0 0,40 0,80
0 0 1 1 0,60 1,20
0 1 0 0 0,80 1,60
0 1 0 1 1,00 2,00
0 1 1 0 1,20 2,40
0 1 1 1 1,40 2,80
1 0 0 0 1,60 3,20
1 0 0 1 1,80 3,60
1 0 1 0 2,00 4,00
1 0 1 1 2,20 4,40
1 1 0 0 2,40 4,80
1 1 0 1 2,60 5,20
1 1 1 0 2,80 5,60
1 1 1 1 3,00 6,00
Exemplo:
Se R = 10k, R2 = 20k
R2 (pode ser obrido por dois resistores R em série)
Se R = 10k, R3 = 30k
R3 (pode ser obtido por três resistores R em série)
Vd, Vc, Vb e Va são entradas digitais, Vs é uma
saída de comportamento próximo as analógico,
com resolução de 4 bits (16 possobilidades)
Figura 201 - Conversor D/A de 4 bits
Fonte: Autor
A Figura 201 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.
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, através 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 CLPs 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.
4 SISTEMAS DIGITAIS
183
4.6 CIRCUITOS CODIFICADORES E DECODIFICADORES
Chamamos de codifcador o circuito combinacional que possibilita a
transformação de um código em outro código. Chamamos de decodifcador o
circuito que realiza a operação inversa. Como exemplo, considere o diagrama de
uma calculadora conforme mostrado na Figura 202:
1
1234567890
CE % +/-
2 3 +
-
x
/
=
4 5 6
7 8 9
00 0 .
1
1234567890
CE % +/-
2 3 +
-
x
/
=
4 5 6
7 8 9
00 0 .
decimal
codifcador decodifcador
processador
aritmético
binário
decimal
Figura 202 - Diagrama esquemático de uma calculadora
Fonte: Autor
O circuito inicial da calculadora (codificador) transforma uma entrada
decimal, feita através 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 codifcador e decodifcador
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 decodifcador para ambas as operações.
Muitas vezes utilizamos o termo conversores de código para evitar problemas
com a defnição dos códigos.
4.6.1 CÓDIGOS NUMÉRICOS E ALFANUMÉRICOS
Quando representamos informações através de símbolos, chamamos o grupo
de símbolos de código e dizemos que a informação está sendo codifcada. As
letras que compõem este texto são exemplos de códigos. Cada letra é um símbolo
que, junto a outros, tem um signifcado.
Nos sistemas digitais existe a necessidade de representar números,
quantidades, textos, imagens, vídeos e sons, dentre outras informações,
através de símbolos que possam ser armazenados, processados e transmitidos
através de 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.
Discuta com seus colegas sobre a frase que segue: “Existem
10 tipos de pessoas: As que conhecem números binários e as
que não conhecem números binários.
SAIBA
MAIS
184
AUTOMAÇÃO INDUSTRIAL
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 padrão de codificação de
caracteres de oito bits baseada no alfabeto inglês, onde os
códigos representam caracteres? Exemplo: Na tabela ASCII,
a letra H maiúscula e representada pelo código 72, que em
binário é 01001000.
VOCÊ
SABIA?
Dispositivos digitais de codifcação/decodifcação são usados para transformar
uma combinação específca (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 14)
Tabela 14: 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: Autor
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.
4 SISTEMAS DIGITAIS
185
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.
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 (2
4
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 (2
3
, 2
2
, 2
1
, 2
0
). 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 203)
Ex.: (874)
10
Conversão do número 874 e um sistema BCD 8421
1000
8 7 4
0111 0100
(874) = (100001110100)
(874) = (1101100010)
BCD
Figura 203 - Código BCD (Binary Coded Decimal)
Fonte: Autor
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 204)
186
AUTOMAÇÃO INDUSTRIAL
a
b f
c e
g
d
Figura 204 - Display de 7 segmentos
Fonte: Autor
Pesquise sobre a diferença entre os displays de 7 segmentos
ANODO COMUM e CATODO COMUM. Observe diagramas
de ligação entre estes displays e os circuitos integrados
estudados neste tópico.
SAIBA
MAIS
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
decodifcador. Possui 3 entradas (A
0
, A
1
e A
2
) e 8 saídas (O
0
a O
7
). Com as 3 entradas,
há 8 combinações possíveis, e cada combinação faz referência a uma possível saída.

0,
0,
0,
0,
0_

0,
A,
A,

L,
L,
L,
LNTPADAS DL
SLLLÇÃO
LNA8LL
SA|DA
Figura 205 - Circuitos decodifcadores
Fonte: Autor
Alguns decodifcadores 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 A
2
A
1
A
0
sendo A
2
o MSB (bit mais signifcativo). 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 206)
4 SISTEMAS DIGITAIS
187
A,
A,

DLCOD|P/DLMUX
74 XX l38
CÓD|GOS
DL
SLLLÇÃO
L
l23
vcc
O¸ O, O, O, O, O_ O_ O,
E
1
E
2
E
3
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 206 - Decodifcador 74xx138, diagrama lógico e tabela verdade em relação às entradas de habilitação (enable)
Fonte: Autor
As entradas E
1
, E
2
e E
3
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 E
1
= E
2
= 0 e E
3
= 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 desejamos acionar somente uma bobina por vez, o uso de um decodifcador
permite que duas saídas digitais sejam sufcientes para o controle deste dispositivo.
Controlador Decodifcador
E
n
t
r
a
d
a
s
E
S
S
S
S
E
S
a
í
d
a
s
Motor de passo
Circuito
amplifcador
Figura 207 - Esquema de ligação de um decodifcador de 2 bits para controlar até 4
saídas, usadas em um motor de passo de 4 bobinas
Fonte: Autor
Observe que, sem o uso do decodifcador, seriam necessárias 4 saídas digitais
para o controle do motor de passo. Portanto, uma das principais aplicações de
codifcadores e decodifcadores é para a otimização de entradas e saídas digitais
de sistemas de controle.
188
AUTOMAÇÃO INDUSTRIAL
4.6.4 CIRCUITOS CODIFICADORES
Um codifcador é um circuito que realiza a operação inversa do decodifcador;
ou seja, o acionamento de uma das entradas gera um código de N bits na saída,
correspondente à entrada ativada.
A Figura 208 a seguir apresenta o diagrama geral de um codificador com M
entradas e N saídas.
C
o
n
t
r
o
l
a
d
o
r
I
M
e
n
t
r
a
d
a
s
N
s
a
í
d
a
s
I
I
M-1
*
*
*
O
O
O
N-1
*
*
*
M entradas com apenas
uma entrada em nível
ALTO de cada vez
Código de saída
de N bits
Figura 208 - Diagrama geral de um codifcador
Fonte: Autor
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 209)
S4
S3
S2
S1
S0
24V
comum
Chave Seletora
S5
S6
S7
Figura 209 - Painel de equipamento com chave seletora de 8 posições
Fonte: Autor
Observando a Figura 209, necessitariamos 8 entradas digitais para ligar
esta chave diretamente a um dispositivo de controle, no caso um CLP. Como
as entradas digitais são limitadas (finitas), utilizar 8 entradas digitais pode
ser um problema. (Figura 210)
S4
S3
S2
S1
S0
24V
comum
Chave Seletora
S5
S6
S7
C
o
d
i
f
c
a
d
o
r
Figura 210 - CLP usando 3 entradas digitais para ler sinal de 8 diferentes combinações possíveis
Fonte: Autor
4 SISTEMAS DIGITAIS
189
FIQUE
ALERTA
Embora sejam bastante versáteis, circuitos integrados
codificadores e decodificadores são meramente circuitos
combinacionais de sinal, e não são adequados para sinais
de tensão ou corrente elevada. Se necessario, utilize
configurações com circuitos de proteção e amplificação.
Considere o codifcador de 8 para 3 linhas mostrado na Figura 211, em que o
acionamento de uma das 8 entradas gera um código de 3 bits na saída. (Tabela 15)

A,
A,
A,
A,
A_
A_
A,
O, (MS8)
O,
O¸ (LS8)
Figura 211 - Codifcador de 8 para 3 linhas
Fonte: Autor
Tabela 15: Verdade de um codifcador com entradas negadas
A
0
A
1
A
2
A
3
A
4
A
5
A
6
A
7
O
2
O
1
O
0
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: Autor
Através do circuito, é fácil verifcar 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
codifcadores simples. Uma versão modifcada, denominada codifcador 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-fop é 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.
190
AUTOMAÇÃO INDUSTRIAL
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 confguração de
hardware funcione como uma memória de 1 bit. Em circuitos digitais, fip-fops
são implementados geralmente com esta fnalidade.
Geralmente, fip-fops são implementados na forma de circuitos integrados e,
portanto, necessitam de alimentação geralmente não superior a 5V.
Um fip-fop possui dois estados de saída. A mudança destes estados de saída
é determinada por eventos externos. Alguns circuitos de fip-fop 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. Ele foi inicialmente chamado
de circuito de disparo Eccles-Jordan, porém o nome
flip-flop é devido ao som produzido em um alto-falante
conectado à saída do circuito.
VOCÊ
SABIA?
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 fip-fop RS assíncrono (sem clock) pode ser implementado
utilizando-se portas NOR, como mostrado na Figura 212:
a)
R
Q
Q
S
1
2
b)
R
S
Q
Q
Figura 212 - Flip-fop RS - a) implementação do circuito com portas NOR - b) símbolo lógico
Fonte: Autor
Para realizar a análise do circuito, considere a Tabela 16 verdade que segue.
Tabela 16: Verdade para o fip-fop RS implementado com portas NOR
ENTRADAS SAÍDAS OPERAÇÕES OBSERVAÇÕES
R S Q
Q
0 0 Q
anterior
Q
anterior
Conservação As saídas mantém seus estados anteriores.
0 1 1 0 Estabelecimento Saída Q fxa seu valor em 1, independente do
valor anterior.
1 0 0 1 Restauração Saída Q fxa seu valor em 0, independente do
valor anterior.
1 1 0 0 Proibido Combinação proibida para biestáveis RS.
Fonte: Autor
4 SISTEMAS DIGITAIS
191
Outro circuito possível para a construção de um fip-fop RS assíncrono pode
ser implementado utilizando-se portas NAND, como mostrado abaixo:
a)
R
Q
Q
S
b)
R
S
Q
Q
Figura 213 - Flip-fop RS - a) implementação do circuito com portas NAND - b) símbolo lógico
Fonte: Autor
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 17:
Tabela 17: Verdade para o fip-fop 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 fxa seu valor em 1, independente do
valor anterior.
1 0 0 1 Restauração Saída Q fxa seu valor em 0, independente do
valor anterior.
1 1 Q
anterior
Q
anterior
Conservação As saídas mantém seus estados anteriores.
Fonte: Autor
4.7.2 FLIP-FLOP RS SÍNCRONO
O fip-fop RS síncrono é assim chamado porque, além das entradas reset (R) e
set (S), possui uma terceira entrada chamada clock (CLK), através da qual um sinal
externo determina o instante em que as saídas serão atualizadas. O circuito para
esse fip-fop é apresentado na Figura 214:
a)
R
Q
Q
S
CLK
b)
R
CLK
S
Q
Q
Figura 214 - Flip-fop RS síncrono - a) implementação do circuito com portas lógicas - b) símbolo lógico
Fonte: Autor
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.
192
AUTOMAÇÃO INDUSTRIAL
Entretanto, quando a entrada CLK está em nível lógico alto, temos o
funcionamento de um fip-fop RS conforme estudado anteriormente, com as
entradas R e S, juntamente com o estado anterior das saídas, defnindo o estado
atual das saídas.
Ou seja, a atualização do estado das saídas é sincronizada através do 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 e pode ser
conferida na Tabela 18:
Tabela 18: Verdade para o fip-fop RS síncrono
ENTRADAS SAÍDAS OPERAÇÕES OBSERVAÇÕES
CLK R S Q
Q
0 X X Q
anterior
Q
anterior
Inibição As saídas permanecem inalteradas.
1 0 0 Q
anterior
Q
anterior
Conservação As saídas mantém seus estados anteriores.
1 0 1 1 0 Estabelecimento Saída Q fxa seu valor em 1, independente do
valor anterior.
1 1 0 0 1 Restauração Saída Q fxa seu valor em 0, independente do
valor anterior.
1 1 1 0 0 Proibido Combinação proibida para biestáveis RS.
Fonte: Autor
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 215)
K
Q
Q
J
CLK
(set)
(reset)
Figura 215 - Implementação do circuito de um fip-fop JK com portas lógicas
Fonte: Autor
O funcionamento do fip-fop JK assemelha-se ao do fip-fop 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 fip-fop 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.
4 SISTEMAS DIGITAIS
193
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 19)
Tabela 19: Verdade para o fip-fop RS síncrono
ENTRADAS SAÍDAS OBSERVAÇÕES
CLK J K Q
Q
0 X X Q
anterior
Q
anterior
As saídas permanecem inalteradas.
1 0 0 Q
anterior
Q
anterior
As saídas mantém seus estados anteriores.
1 0 1 0 1 Saída Q fxa seu valor em 0, independente do
valor anterior.
1 1 0 1 0 Saída Q fxa seu valor em 1, independente do
valor anterior.
1 1 1
Q
anterior
Q
anterior
Oscilação
Fonte: Autor
4.7.4 FLIP-FLOP JK MESTRE-ESCRAVO (MASTER-SLAVE)
O fip-fop 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 fip-fops RS síncronos conectados em cascata, com uma porta inversora
entre o clock do primeiro fip-fop (mestre) e o clock do segundo fip-fop (escravo),
além de uma segunda realimentação entre as saídas e as portas de entrada. Esse
circuito é apresentado na Figura 216.
Q
Q
K
J
CLK
CLK
x
y
Mestre Escravo
Figura 216 - Implementação do circuito de um fip-fop JK mestre-escravo
Fonte: Autor
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 fip-
fop mestre está habilitado e as saídas intermediárias X e Y se complementam.
Entretanto o clock do fip-fop 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.
194
AUTOMAÇÃO INDUSTRIAL
• Quando a entrada de clock do circuito está em nível lógico baixo (CLK = 0), o fip-
fop escravo está habilitado e as saídas Q e Q sofrem alteração. Entretanto, como
o fip-fop 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. Abaixo, na Tabela 20, é apresentada a tabela verdade para um fip-
fop mestre escavo, e na Figura 217, seu símbolo lógico.
Tabela 20: Verdade para o fip-fop RS síncrono
ENTRADAS SAÍDAS OBSERVAÇÕES
CLK J K Q
Q
0 X X Q
anterior
Q
anterior
As saídas permanecem inalteradas.
0 0 Q
anterior
Q
anterior
As saídas mantém seus estados anteriores.
0 1 0 1 Saída Q fxa seu valor em 0, independente do valor anterior.
1 0 1 0 Saída Q fxa seu valor em 1, independente do valor anterior.
1 1
Q
anterior
Q
anterior
As saídas se complementam
Fonte: Autor
J
CLK
K
Q
Q
Figura 217 - Símbolo lógico de um fip-fop JK mestre-escravo
Fonte: Autor
Um flip-flop síncrono pode ser sensível à borda de descida
ou à borda de subida.
VOCÊ
SABIA?
Existem modelos de fip-fop 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 fip-fops pode ser observada na entrada de clock no
símbolo lógico do componente: (Figura 218)
J
CLK
K
Q
Q
Transição
negativa

J
CLK
K
Q
Q
Transição
positiva
Figura 218 - Flip-fop sensível à borda
Fonte: Autor
4 SISTEMAS DIGITAIS
195
4.7.5 FLIP-FLOP JK MESTRE-ESCRAVO COM PRESET E CLEAR
A inclusão das entradas preset (PR) e clear (CL) no fip-fop 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 219 é apresentado
o circuito para esse fip-fop: (Tabela 21)
a)
Q
Q
K
J
CLK
CLK
x
y
PR
CL
b)
J
CLK
PR
CL
K
Q
Q
Figura 219 - Flip-fop JK mestre-escavo com entradas Preset e Clear - a) implementação do circuito com
portas lógicas - b) símbolo lógico
Fonte: Autor
Tabela 21: Verdade para o fip-fop JK mestre-escravo com preset e clear
A tabela verdade para esse circuito pode ser escrita como segue. É 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.
ENTRADAS SAÍDAS OBSERVAÇÕES
PR CL
CLK J K Q
Q
1 0 X X X 0 1 Clear ativo: Saída Q fxa seu valor em 0, inde-
pendente das demais entradas.
0 1 X X X 1 0 Preset ativo: Saída Q fxa seu valor em 1, inde-
pedente das demais entradas.
1 1 0 0 Q
anterior
Q
anterior
As saídas mantém seus estados anteriores.
1 1 0 1 0 1 Saída Q fxa seu valor em 0, independente do
valor anterior.
1 1 1 0 1 0 Saída Q fxa seu valor em 1, independente do
valor anterior.
1 1 1 1
Q
anterior
Q
anterior
As saídas se complementam
Fonte: Autor
4.7.6 FLIP-FLOP D
O fip-fop 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 fip-fop tipo D a
partir de um JK, basta acrescentar uma porta NOT à entrada K. Essa inversora será
conectada à entrada J do fip-fop, como mostrado na Figura 220 e Tabela 22.
196
AUTOMAÇÃO INDUSTRIAL
a)
J
CLK
K
Q
Q
D
b)
D
CLK
Q
Q
Figura 220 - Flip-fop tipo D - a) implementação do circuito a partir de um fip-fop JK - b) símbolo lógico
Fonte: Autor
Tabela 22: Verdade para o fip-fop tipo D
ENTRADAS SAÍDAS
CLK D Q
Q
0 0 1
1 1 0
Fonte: Autor
Analisando o circuito, observamos que, após o pulso de clock, o fip-fop apenas
armazena o valor da entrada D. Por essa razão, o fip-fop tipo D é chamado de
latch (memória). É preciso lembrar que, comercialmente, estão disponíveis vários
modelos de fip-fops tipo D, podendo esses componentes apresentar, assim como
o fip-fop JK, entradas preset, clear e clock com transição positiva ou negativa.
4.7.7 FLIP-FLOP TIPO T
O fip-fop 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 fip-fop tipo T a partir de um JK, basta interligar as
entradas J e K, como mostrado na Figura 221.
a)
J
CLK
K
Q
Q
T
b)
T
CLK
Q
Q
Figura 221 - Flip-fop tipo T - a) implementação do circuito a partir de um fip-fop JK - b) símbolo lógico
Fonte: Autor
Uma aplicação prática de um circuito de Flip-Flop (T) é para adequar um botão
de pulso (ou circuito que gere pulso) em uma lógica liga/desliga. (Figura 222)
Botão
5V
1k5
D
i
o
d
o
R
e
l
é
Transistor
NPN
R1
11
4
21
3
31
2
51
0
69
78
41
1
Figura 222 - Circuito com Flip-Flop J-K aplicado à confguração de Toggle. CI utilizado: 74xx73
Fonte: Autor
4 SISTEMAS DIGITAIS
197
Analisando o circuito implementado, com base no funcionamento de um fip-
fop JK, podemos obter a seguinte tabela verdade. (Tabela 23)
Tabela 23: Verdade para o fip-fop tipo T
ENTRADAS SAÍDAS
CLK T Q
Q
0 Q
anterior
Q
anterior
1
Q
anterior
Q
anterior
Fonte: Autor
4.7.8 MODELOS COMERCIAIS DE FLIP-FLOP
Abaixo, na Tabela 24, é apresentada uma tabela com alguns exemplos de modelos
comerciais de fip-fop. É 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 24: Modelos comerciais de fip-fop
MODELO DESCRIÇÃO RESUMIDA
74xx72 Flip-fip JK mestre-escravo com preset e clear
74xx73 Flip-fip JK com clear
74xx74 Flip-fip tipo D com preset e clear
74xx107 Flip-fip JK com clear
74xx109 Flip-fip JK com preset e clear
74xx111 Flip-fip JK mestre-escravo com preset e clear
74xx112 Flip-fip JK com preset e clear
74xx113 Flip-fip JK com preset
74xx114 Flip-fip JK com preset e clear
74xx171 Flip-fip tipo D com clear
74xx175 Flip-fip tipo D com clear
74xx273 Flip-fip tipo D com clear
74xx276 Flip-fip JK
74xx279 Flip-fip RS
74xx374 Flip-fip tipo D
Fonte: Autor
198
AUTOMAÇÃO INDUSTRIAL
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 codifcadores, decodifcadores,
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 defnidas 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 defnir 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, circuitos combinacionais podem ser utilizados para
realizar conversões, codifcar e decodifcar sinais, aumentar as possibilidades
de leitura de sinais através de técnicas de multiplexação e demultiplexação, e
permitir a construção de sistemas de controle programáveis através de circuitos
digitais sequenciais, como microcontroladores e microprocessadores.
4 SISTEMAS DIGITAIS
199
Anotações:
5
Microcontroladores
5.1 SISTEMAS EMBARCADOS NA AUTOMAÇÃO INDUSTRIAL
Automação é uma palavra derivada do latim (Automatus), e significa mover-se por
si mesmo. Um sistema automático, portanto, é o que consegue realizar uma tarefa
(geralmente associada a movimento e transformação de energia) sem a necessidade de
interferência humana.
A Automação Industrial estuda justamente estes sistemas aplicados aos processos
industriais. Uma fábrica automatizada é a que possui equipamentos automatizados em
seus processos, e um equipamento automatizado é o que realiza tarefas sem a necessidade
da constante interferência humana.
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.
202
AUTOMAÇÃO INDUSTRIAL
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.
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 fuxo de
matéria-prima e produtos de forma a otimizar o transporte e economizar energia.
Portanto, a Automação Industrial moderna é 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 PLCs
(ou CLPs) 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 CLPs 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.1 MICROPROCESSADORES NA AUTOMAÇÃO INDUSTRIAL
Antes de entender a aplicação dos microcontroladores na automação,
precisamos conhecer um pouco mais sobre eles.
5 MICROCONTROLADORES
203
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 infexí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.
Pesquisando na internet sobre a aplicação dos
microprocessadores 8080 e Z80, e a diferença entre eles.
SAIBA
MAIS
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:
• Conhecer Eletrônica Analógica e Digital.
• Conhecer técnicas de programação. Criar programas efcientes e sem falhas.
• Ser capaz de integrar os sensores e atuadores (seus sinais, níveis de tensão,
corrente etc.) aos circuitos computacionais.
• Ser capaz de implementar circuitos de apoio, utilizados para temporizar,
converter sinais, codifcar sinais etc.
204
AUTOMAÇÃO INDUSTRIAL
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.
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.
5 MICROCONTROLADORES
205
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.
Exemplo de produtos que utilizam microcontroladores e suas aplicações:
1) Forno de micro-ondas: o microcontrolador controla o painel, o
funcionamento dos atuadores internos responsáveis pelo aquecimento,
gerenciando o funcionamento do equipamento.
2) 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.
3) 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).
4) 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.
5) 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.
6) 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.
7) 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.
206
AUTOMAÇÃO INDUSTRIAL
Quanto aos fabricantes de microcontroladores, hoje existem dezenas de
fabricantes, dentre os quais podemos citar os mais famosos:
• 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.
• ATMEL – Seu forte são microcontroladores ATMega, de 8 bits, similares
ao 8051, e de baixo custo.
• MICROCHIP – Fabricante do famoso PIC, um microcontrolado bastante
versátil e de baixo custo, bastante difundido.
• FREESCALE – Surgiu como divisão de semicondutores da Motorola.
• NXP – Antiga Philips Semiconductor, é referência na produção de
microcontroladores de alto desempenho.
• TEXAS INSTRUMENTS – Dentre seus produtos de sucesso podemos citar
os microcontroladores MSP.
• 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 modifcações.
5.3 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.
5 MICROCONTROLADORES
207
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 223)
F
u
n
c
i
o
n
a
l
i
d
a
d
e
Performance
PIC10
PIC12
8
-
b
it
s
1
6
-
b
it
s
3
2
-
b
it
s
PIC16
PIC18
PIC24F
PIC24H
dsPIC30
dsPIC33
PIC32
Figura 223 - Gráfco de Aplicações de microcontroladores PIC por família
Fonte: www.microchpp.com, acesso em 28 mar. 2012
Podemos separar as “famílias” de microcontroladores PIC em:
Famílias 8 bits: PIC10, PIC12, PIC16 e PIC18
Famílias 16 bits: PIC24F, PIC24H, dsPIC30, dsPIC33
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.
208
AUTOMAÇÃO INDUSTRIAL
5.3.1 RECURSOS DE UM MICROCONTROLADOR PIC
Dada a diversidade de modelos, vamos listar os recursos inerentes aos
microcontroladores e suas respectivas definições.
• 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.
• 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).
• 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.
• 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.
5 MICROCONTROLADORES
209
• Saídas PWM (Pulse Wide Modulation): São destinados a gerar, através
de onda quadrada pulsante, sinais onde 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.
• 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.
• 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.
• 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:
210
AUTOMAÇÃO INDUSTRIAL
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 20MHz,
conseguindo até 5MIPS (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 fsicamente em confguração
de 40 pinos. Pode ser encontrado em diversos encapsulamentos: (Figura 224)
QFP
PDIP
PLCC
Figura 224 - Encapsulamentos do microcontrolador PIC16F877A
Fonte: Autor
Como citado anteriormente, vamos nos ater à versão DIP (ou PDIP), mais
fácil de manipular e que permite uso em placas protótipos, sendo também
mas facilmente encontrada em lojas de componentes eletrônicos. (Figura 225)
B
7
B
6
B
5
B
4
B
3
B
2
B
1
B
0
5V (RUN)
A
0
A
1
A
2
A
3
A
4
A
5
E
0
E
1
E
2
PORTA
PORTE
5V
CRISTAL
(MHz)
PORTC
C
0
C
1
C
2
C
3
D
0
D
1
D
7
D
6
D
5
D
4
C
7
C
6
C
5
C
4
D
3
D
2
PORTD
PORTC
PORTB
1 2 3 4 5 6 7 8 9 1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
RESET (OV)
PROG (13,4V)
PIC16F877
5V
Figura 225 - Microcontrolador PIC16F877A I/P e seus principais pinos de alimentação, conexão e I/O
Fonte: Autor
5 MICROCONTROLADORES
211
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.
• 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.
• 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.
• 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.
• 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 (leia Aiôus, que vem do inglês
Inputs/Outputs, que significa entradas/saídas). Estas I/Os são agrupadas 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 é confgurado 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 é confgurado 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.
212
AUTOMAÇÃO INDUSTRIAL
FIQUE
ALERTA
Enquanto na Automação Industrial a maior parte dos
dispositivos sensores e atuadores 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:
1) São nominadas por uma letra e um número. Cada agrupamento de pinos
da mesma letra é denominado PORTO (ou PORT). No microcontrolador PIC16F877A
temos o PORTA, PORTB, PORTC, PORTD e PORTE.
2) Um PORTO pode ter até 8 I/Os, embora haja alguns com menos.
3) Quando uma I/O é confgurada 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.
4) Quando uma I/O é confgurada como entrada, o microcontrolador deixa o
nível de tensão do pino “futuar”, variando conforme estímulos externos. Neste caso,
é importante observar a necessidade de aplicação de resistores de “pull-ups” ou “pull-
downs” para defnir um nível de tensão padrão, evitando ruído e falsas leituras.
5) 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.
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 confante. (Figura 226)
5V
CRISTAL(MHz)
1 2 3 4 5 6 7 8 9 1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
PIC16F877
5V
R
X

(
R
S
2
3
2
)
T
X

(
R
S
2
3
2
)
P
W
M
A
N
O
A
N
1
A
N
2
A
N
3
C
O
N
T
A
N
4
A
N
5
A
N
6
A
N
7
G
R
A
V
A
D
O
R
I
C
S
P
5V (RUN)
RESET (OV)
PROG (13,4V)
Figura 226 - Microcontrolador PIC16f877A e alguns dos terminais de funções especiais
Fonte: Autor
5 MICROCONTROLADORES
213
Na figura acima, 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 através da detecção de pulsos.
Tradicionalmente, conhecemos os pinos do microcontrolador NÃO POR
SEU NÚMERO, mas sim 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.
FIQUE
ALERTA
A letra F presente no nome do microcontrolador PIC
identifica que o microcontrolador em questão utiliza a
tecnologia FLASH, ou seja, pode ser regravado. Alguns
modelos (que utilizam a letra C no nome, como o
PIC16C877) só podem ser gravados uma única vez.
5.4 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.
214
AUTOMAÇÃO INDUSTRIAL
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 227)
PIC
PIC
C++
Compter
*.HEX
*.C
*** ***
PC
Programador
Compilador
Programa fonte
Programa executável
em linguagem de máquina
Software programador
Circuito programador
Microcontrolador Aplicação
Figura 227 - Diagrama que demonstra o caminho percorrido por um programa, desde sua criação até a gravação no microcon-
trolador de destino, e seu uso no equipamento
Fonte: Autor
5.5 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 228:
QUIT MAN AL1 AL2
novus
Black
N1100
QUIT MAN AL1 AL2
Figura 228 - Controlador multifunção
Fonte: Autor
A empresa que produz este equipamento deve fabricar (montar) as placas
de circuito impresso e seus componentes. Devido à quantidade de produtos, o
processo é automatizado.
5 MICROCONTROLADORES
215
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 esta gravação no PIC16F877A, precisamos conectar
os pinos 39 e 40 (PGD e PGC) e o pino 1 (MCLR) ao computador, através 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 equipamentos prontos, sendo a
solução completa para a programação de microcontroladores, através de
um conjunto de hardware e softwares adequados.
Algumas destas 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.
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.
Dentre estes 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 através 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 229)
216
AUTOMAÇÃO INDUSTRIAL
>+17V
D1
1N4001
U1
7805
IN OUT +5V
PL1
PL2
1
14
2
15
3
1b
4
5
17
C1
10u
C2
100n
C3
100n
C4
100n
COM U3
14
7
9 8
U3d
7407
R4
4k7
R5
10k
Q1
PNP
R6
1k2
C6
100n
IN OUT +13V
COM D4
U2
78L12
D2
1N4148
D3
1N4148
U3f
7407
U3c
7407
6 5
12 13
R1
4k7
R2
10k
Q2
PNP
R3
10k
R7
10k
C5
100n
MCLR
MCLR
GND
PIC
5V
PGD
PGC
VDD
R8
10k
R10
10k
U3a
7407
RB7
R9
10k
RB6
2
11
4
10 ACK
U3e
7407
1 D0
U3b
7407
3 D1
D0
D1
D2
D3
ACK
DB25F
18
6
19
7
20
8
21
22
9
10
23
11
12
24
13
25
Programador TAIT, criado por David Tait em 1996
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
Figura 229 - DB25 femea porta paralela física
Fonte: Autor
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 fns 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.5.1 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.
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.
Neste sentido, utilizamos um programador ICSP somente uma única vez,
programando-o com um programa que chamamos de FIRMWARE DE BOOTLOADER.
5 MICROCONTROLADORES
217
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.
pesquisando sobre circuitos gravadores para
microcontroladores na internet. Verifique que alguns
circuitos oferecem a opção de depuração, enquanto outros
oferecem um circuito simplificado e de custo reduzido.
SAIBA
MAIS
5.6 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 “prefro 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.
218
AUTOMAÇÃO INDUSTRIAL
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.
É 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. (Tabela 25)
Tabela 25: Execução de uma algoritmo
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.
5 MICROCONTROLADORES
219
Continuação: Tabela 25: Execução de uma algoritmo
PASSO INSTRUÇÃO
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
Fonte: Autor
Note que todas as instruções, embora estejam escritas em descrição narrativa, são
instruções bem defnidas, 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.
220
AUTOMAÇÃO INDUSTRIAL
5.7 FLUXOGRAMA
Dizem que uma imagem pode valer mais do que mil palavras.
Geralmente, através 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.
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 230)
inicio
obter
temperatura
temperatura
>45ºC?
temperatura
<40ºC?
NÃO
NÃO
SIM
SIM
desligar
ventilação
desligar
aquecimento
ligar
ventilação
ligar
aquecimento
Figura 230 - Fluxograma
Fonte: Autor
5 MICROCONTROLADORES
221
Observando o fluxograma, podemos chegar rapidamente a algumas
conclusões:
1) Trata-se de um controlador de temperatura.
2) Podemos observar que há o controle de atuadores de ventilação e de
aquecimento.
3) O sistema busca manter a temperatura em uma faixa fxa de 40ºC a 45ºC.
4) Não há histerese (caso não conheça esta palavra, pesquise a respeito.).
Como visto anteriormente, 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.8 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 signifcativas 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.
222
AUTOMAÇÃO INDUSTRIAL
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 26)
Tabela 26: 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: Autor
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.
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.
5 MICROCONTROLADORES
223
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 27)
Tabela 27: 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)
VAR1 = VAR2 * 10;
00110100001010
01110101010101
00110010000000
01101001010101
00101011011111
11110101010010
10100101111010
Fonte: Autor
Na tabela acima, uma expressão está multiplicando a variável VAR2 por 10,
armazenando o valor obtido na variável VAR1. Como visto anteriormente, isso é
realizado através 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.
224
AUTOMAÇÃO INDUSTRIAL
5.8.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.
5.9 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.
5 MICROCONTROLADORES
225
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:
1) 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.
2) 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.
3) 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.
4) 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.
5) SOURCEBOOST. Compilador pago, porém de menor custo.
Possui suporte a microcontroladores PIC das famílias 10, 12,
16 e 18.
6) 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.
SAIBA
MAIS
5.9.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 231)
226
AUTOMAÇÃO INDUSTRIAL
Figura 231 - Janela de novo aquivo
Fonte: Autor
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 posteriormente 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
fnalizado por .C, desta forma sendo diferenciado dos demais arquivos. Gerar um arquivo
com outro nome pode incorrer em erros na fase fnal de compilação. (Figura 232)
Figura 232 - Tela “Salvar Como”, que aparece ao se iniciar um novo programa
Fonte: Autor
5 MICROCONTROLADORES
227
FIQUE
ALERTA
Observe o nome do arquivo (com extensão C) e a
pasta onde ele será gravado. É 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) // defne valor de clock para delays
void main(void) // funçao 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.9.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 -> 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 233 e Figura 234)
228
AUTOMAÇÃO INDUSTRIAL
Figura 233 - Demonstrando a opção para compilação (pode ser obtida pela tecla de atalho F9)
Fonte: Autor
Figura 234 - Demonstrando a compilação em processo
Fonte: Autor
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
5 MICROCONTROLADORES
229
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, onde 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
230
AUTOMAÇÃO INDUSTRIAL
Outra execução da instrução de tempo, fazendo com que o programa tenha
uma “pausa” de um segundo.
}
Finalização do programa principal. Sinais de chaves são usados para indicar o
início e o fnal dos blocos de instruções na linguagem C.
// ========== fm do programa ==============
Esta linha é de comentário, sem nenhum comando ou instrução. Comentários
não infuenciam no tamanho do arquivo em linguagem de máquina (HEX) gerado
e são muito úteis para melhorar a manutenibilidade do programa, facilitando
modifcaçõ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 fnal 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 fnalizado por asterisco barra.
5.9.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ífco para transferência, transfra o arquivo HEX
para o microcontrolador. Verifque a documentação adequada do sistema de
transferência, se necessário.
Vamos adotar o hardware abaixo (criado em um simulador de circuitos eletrônicos).
1 1
0
9 8

7 6

5 34 2
1
4
1
3
3
0
2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
1
9
1
8
1
7
1
6
1
5
4
0
3
9
3
8
3
7
3
6
3
5
3
4
3
3
O
S
C
1
/
C
L
K
I
N
O
S
C
2
/
C
L
K
O
U
T
R
A
0
/
A
N
0
R
A
1
/
A
N
1
R
A
2
/
A
N
2
/
V
R
E
F
-
/
C
V
R
E
F
R
A
3
/
A
N
3
/
V
R
E
F
+
R
A
4
/
T
O
C
K
I
/
C
1
O
U
T
R
A
5
/
A
N
4
/
S
S
/
C
2
O
U
T
R
E
0
/
A
N
5
/
R
D
R
E
1
/
A
N
6
/
W
R
R
E
2
/
A
N
7
/
C
S
M
C
L
R
/
V
p
p
/
T
H
V
R
B
0
/
I
N
T
R
B
1
R
B
2
R
B
3
/
P
G
M
R
B
6
/
P
G
C
R
B
6
/
P
G
D
R
C
0
/
T
1
O
S
O
/
T
1
C
K
I
R
C
1
/
T
1
O
S
I
/
C
C
P
2
R
C
2
/
C
C
P
1
R
C
3
/
S
C
K
/
S
C
L
R
C
4
/
S
D
I
/
S
D
A
R
C
5
/
S
D
O
R
C
6
/
T
X
/
C
K
R
B
4
R
B
5
R
C
7
/
R
X
/
D
T
R
D
0
/
P
S
P
0
R
D
1
/
P
S
P
1
R
D
2
/
P
S
P
2
R
D
3
/
P
S
P
3
R
D
4
/
P
S
P
4
R
D
5
/
P
S
P
5
R
D
6
/
P
S
P
6
R
D
7
/
P
S
P
7
D1
LED-RED
R = 470 ohms
P
I
C

1
6
F
8
7
7
A
P
R
O
G
R
A
M
=
P
R
O
G
1
.
H
E
X
.
Figura 235 - Hardware criado em um simulador de circuitos eletrônicos
Fonte: Autor
5 MICROCONTROLADORES
231
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.
Procure adicionar linhas para realizar outros acionamentos,
mudando também os tempos, sempre lembrando de
compilar e transferir novamente o programa para realizar
novos testes. Usando o HELP do compilador (tecla F1), tente
descobrir e utilizar outras funções embutidas do compilador.
SAIBA
MAIS
5.9.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) // defne 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: // defne 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”
}

// ========================= fm do programa ==========================
No programa acima, observamos que são controlados dois pinos, o C0 e C1.
232
AUTOMAÇÃO INDUSTRIAL
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 defne um local para onde, em algum dado momento, o programa será desviado.
Na sequência, o pino C0 é ligado e desligado e, posteriormente, surge a instrução
“goto retorno”, que desvia o fuxo de execução para o rótulo previamente defnido.
(Figura 236)
1
10
9
8
7
6
5
3
4
28
27
26
25
24
23
22
21
20
19
18
17
16
15
40
39
38
37
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/TOCKI/C1OUT
RA5/AN4/SS/C2OUT
RE0/AN5/RD
RE1/AN6/WR
RE2/AN7/CS
MCLR/Vpp/THV
RB6/PGC
RB6/PGD
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RB4
RB5
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
330
470
R1
R2
D1
D2
LED - RED
LED - BLUE
Este LED fcará piscando
Este LED irá LIGAR e
DESLIGAR uma vez início
Figura 236 - Esquema Elétrico
Fonte: Autor
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 fuxo que determinam
para onde e o que o programa deve executar.
Uma estrutura muito usada para criar o laço de repetição infnita é o comando while.
#include <16f877.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // defne 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
}
}
// ==================== fm do programa =======================
5 MICROCONTROLADORES
233
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 signifca “verdadeiro”, o laço não é interrompido, tornando-se um “laço
infnito”. O mesmo efeito pode ser obtido substituindo a linha while(true) por:
while(1)
ou
for(;true;)(este comando veremos adiante)
5.9.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 exemplifcar, 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:
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”.
234
AUTOMAÇÃO INDUSTRIAL
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 independente do resultado.
Já vimos que, em um sistema computacional, não pode haver margem para
dupla interpretação.
Como resolver isso?
Vamos ao texto novamente, adicionando algumas marcações de início e fm:

ir até a sala
abrir a janela
se estiver chovendo
início
pegar o guarda-chuva
comprar pão e leite
fm

Com a marcação de início e fm, 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 fm.
O alinhamento com recuos (também chamado de indentação) permite
visualizar melhor esta hierarquia, tornando mais fácil identifcar a conexão das
instruções e dos blocos.
Na linguagem C, o início e o fnal de um bloco é delimitado por sinais de
chaves, sendo o abrir chaves ({) o sinal de início, e o fechar chaves (}) o sinal de
fm. A indentação (alinhamento com recuos) é facultativa na linguagem C, porém
extremamente recomendada. Um programa mal-alinhado fca 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 fm, 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, #defne...), deve ter ao
menos uma função principal, com seu início e fm 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.
No trecho estudado anteriormente
5 MICROCONTROLADORES
235
#include <16f877.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // defne 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
}
}

// ================== fm 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 fnalizadas 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
ALERTA
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 um programador deve trabalhar em um mesmo sistema
ou programa.
236
AUTOMAÇÃO INDUSTRIAL
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.9.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 o porto inteiro (PORT), podendo enviar uma
informação binária combinada, fazendo com que todas as saídas do porto sejam
modifcadas 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_foat(PIN_xx); -> Deixa o pino futuando, 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_foat(PIN_E1);
Exemplo de uso:
Segue o exemplo de um “semáforo” simples, composto de dois sinaleiros com
três cores cada. (Figura 237)
5 MICROCONTROLADORES
237
11
0
98

76

53 42
1
4
1
3
3
0
2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
1
9
1
8
1
7
1
6
1
5
4
0
3
9
3
8
3
7
3
6
3
5
3
4
3
3
O
S
C
1
/
C
L
K
I
N
O
S
C
2
/
C
L
K
O
U
T
R
A
0
/
A
N
0
R
A
1
/
A
N
1
R
A
2
/
A
N
2
/
V
R
E
F
-
/
C
V
R
E
F
R
A
3
/
A
N
3
/
V
R
E
F
+
R
A
4
/
T
O
C
K
I
/
C
1
O
U
T
R
A
5
/
A
N
4
/
S
S
/
C
2
O
U
T
R
E
0
/
A
N
5
/
R
D
R
E
1
/
A
N
6
/
W
R
R
E
2
/
A
N
7
/
C
S
M
C
L
R
/
V
p
p
/
T
H
V
R
B
0
/
I
N
T
R
B
1
R
B
2
R
B
3
/
P
G
M
R
B
6
/
P
G
C
R
B
6
/
P
G
D
R
C
0
/
T
1
O
S
O
/
T
1
C
K
I
R
C
1
/
T
1
O
S
I
/
C
C
P
2
R
C
2
/
C
C
P
1
R
C
3
/
S
C
K
/
S
C
L
R
C
4
/
S
D
I
/
S
D
A
R
C
5
/
S
D
O
R
C
6
/
T
X
/
C
K
R
B
4
R
B
5
R
C
7
/
R
X
/
D
T
R
D
0
/
P
S
P
0
R
D
1
/
P
S
P
1
R
D
2
/
P
S
P
2
R
D
3
/
P
S
P
3
R
D
4
/
P
S
P
4
R
D
5
/
P
S
P
5
R
D
6
/
P
S
P
6
R
D
7
/
P
S
P
7
P
I
C

1
6
F
8
7
7
A
L
E
D
_
V
E
R
M
E
L
H
O

1
L
E
D
_
A
M
A
R
E
L
O

1
L
E
D
_
A
M
A
R
E
L
O

2
L
E
D
_
V
E
R
M
E
L
H
O

2
L
E
D
_
V
E
D
E
1
L
E
D
_
V
E
D
E

2

R
1
R
2
R
3
R
4
R
5
R
6
3
3
0
3
3
0
3
3
0
3
3
0
3
3
0
3
3
0
Figura 237 - Comandos para acionamento das saídas digitais
Fonte: Autor
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:
1) Nenhum semáforo pode fcar sem uma indicação.
2) Nenhum semáforo pode fcar com mais de uma indicação.
3) Sempre deve haver ao menos um dos semáforos em vermelho.
4) O tempo dos semáforos abertos deve ser de 30 segundos, com mais 10
segundos de advertência (luz amarela).
Segue o programa sugerido:
238
AUTOMAÇÃO INDUSTRIAL
#include <16f877.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // defne 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) // defne um rótulo chamado “retorno”
{
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
}
}

// ======================== fm 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 prefxo).
Alguns compiladores interpretam o valor na base octal, muito pouco utilizada,
porém ainda suportada por alguns fabricantes e pelo padrão C ANSI.
5 MICROCONTROLADORES
239
5.9.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 exemplifcar 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 238)
+12V
12V
1
N
4
0
0
7
12V
1
N
4
0
0
7
B
o
T
1
B
o
T
2
10k 10k
5V 5V
1k
1k
1k
1k
12V
1
N
4
0
0
7
12V
1
N
4
0
0
7
TIP 122
TIP 122
TIP 122
TIP 122
C0
C1
C2
C3
D0
D1
Figura 238 - Controle de motor de passo unipolar
Fonte: Autor
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 defnir o
sentido de rotação do motor (horário ou anti-horário).
240
AUTOMAÇÃO INDUSTRIAL
#include <16f877.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // defne 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) // defne 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
} // fm
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
} // fm
}
}

// ========================== fm 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.
5 MICROCONTROLADORES
241
5.9.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 microcontroladores da Microchip
acessando o site www.microchip.com e pesquisando sobre
microcontroladores PIC.
SAIBA
MAIS
É 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, quantifcar, acumular, contar, enfm,
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 identifcar as
variáveis existentes:
242
AUTOMAÇÃO INDUSTRIAL
#include <16f877.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // defne 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 principal
{
while(!input(PIN_D0)); // repete linha enquanto não houver sinal em D0
delay_ms(10); // tempo de 10 ms
while(input(PIN_D0)); // repete linha enquanto D0 estiver acionado
delay_ms(10); // tempo de 10 ms
contaparcial ++; // aumenta variável contaparcial
if (contaparcial >= 1000) // se contador 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 for a quinta amostra
{ // início
output_high(PIN_E2); // liga sirene
amostras = 0; // zera contador de amostras
} // fm
contaparcial = 0; // zera contador parcial
} // fm
else // senão (se contaparcial for inferior a 1000)
{ // início
output_low(PIN_E2); // desliga sirene
output_low(PIN_C0); // desliga cilindro de remoção da amostra
} // fm
contatotal ++; // contador total é incrementado uma unidade
}
}

// ========================= fm do programa ==========================
Vamos a um exemplo de programa que utiliza variáveis, iniciando por um
estudo de caso:
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.
5 MICROCONTROLADORES
243
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 através 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 exitem 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 estas 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 identifca 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
identifca 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, identifcando 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
2
16
, ou seja, 65536 combinações.
long contatotal = 0;
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 através de uma das linhas que segue:
244
AUTOMAÇÃO INDUSTRIAL
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 2
32
= 4.294.967.296, o
limite para este tipo de dado difcilmente será alcançado. (Figura 239)
00110100
10010010
10100101
10111101
10101110
10101011
10101010
10101011
10101001
01010101
10111101
10101010
10101111
10101010
10101010
iA
int = 8bits. Inteiros de 0 a 255 ou -128 e 127
int iA, iB;
long IVAR;
int32 dAUX;
foat fVLR;
long = 16bits. Inteiros de 0 a 65535 ou -32768 a 32767
int32 = 32bits. Inteiros de 0 a 4.294.967.295 ou
-2.147.483.648 a 2.147.483.647
foat = 32bits. Ponto futuante (valores com virgula). Funciona
como notação cientícica. Possui grande abrangência, mas não
garante precisão.
iB
IVAR
dAUX
fVLR
Figura 239 - Comandos para leitura das saídas digitais 1
Fonte: Autor
Portanto, observamos que para utilizar as variáveis, antes de tudo precisamos conhecer:
1) os tipos de dados existentes, que defnem quanta memória a variável irá
ocupar, e como será a informação que ela irá armazenar;
2) que nomes podem ser dados a estas variáveis; e
3) onde podemos declarar as variáveis.
Quanto aos tipos de dados, para armazenar valores inteiros e positivos em um
microcontrolador de 8 bits podemos usar: (Tabela 28)
Tabela 28: Tipos de dados para armazenar valores
TIPO DE DADO/
NOME
ALTERNATIVO
QUANTIDADE
ALOCADA EM
BITS
MENOR
VALOR
SUPORTADO
MAIOR
VALOR
SUPORTADO
short
int1
boolean
1 0 1
int
int8
8 0 255
long
int16
16 0 65.535
long long
int32
32 0 4.294.967.295
Fonte: Autor
5 MICROCONTROLADORES
245
Para declarar variáveis que suportem números inteiros negativos, faz-se
necessária (no CCS) a adição de um prefxo na declaração das variáveis. Neste
caso, temos: (Tabela 29)
Tabela 29: Prefxo de declaração das variáveis
TIPO DE DADO/
NOME
ALTERNATIVO
QUANTIDADE
ALOCADA EM
BITS
MENOR
VALOR
SUPORTADO
MAIOR
VALOR
SUPORTADO
signed int
signed int8
8 -128 127
signed long
signed int16
16 -32.768 32.767
signed long long
signed int32
32 -2.147.483.648 2.147.483.647
Fonte: Autor
Em alguns casos, existe a necessidade de declarar variáveis que suportem
números reais. Devido a sua natureza discretizada e fnita, os sistemas
computacionais não podem representar números com infnitas casas decimais,
e usamos estratégias para promover o armazenamento de forma mais efciente,
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ífca.
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 10
8
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ífca, é 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 futuante.
Pontos futuantes são tipos de dados compostos similares à “notação científca”, porém
com representação na base binária.
Ao programador, esta representação é totalmente transparente, mas, a exemplo
da notação científca, quando usamos uma variável do tipo “ponto futuante”, podem
ocorrer imprecisões nos valores armazenados, pois parte menos signifcativa 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
foat 32
246
AUTOMAÇÃO INDUSTRIAL
Quanto aos limites de um foat, 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 signifcativas 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 signifcativa 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, codifcados 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 identifcarmos 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.9.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:
contador de pecas (mais de uma palavra. Sugerido: contador_de_pecas)
123aux (iniciado por número. Sugerido: aux123)
main (palavra reservada. Sugerido: principal)
peças (uso de símbolo especial – cedilha. Sugerido: pecas)
5.9.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.
5 MICROCONTROLADORES
247
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.
Segue um pequeno exemplo, com as variáveis em destaque:
#include <16f877.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // defne 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
} // fm do while
} // fm 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 infnito
{ // início do laço infnito
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
} // fm do bloco condicional
} // fm do laço infnito
} // fm da função principal
// ========================= fm do programa ============================
248
AUTOMAÇÃO INDUSTRIAL
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.
5.9.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 240)
1
10
9
8
7
6
5
3
4
2
14
13
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
40
39
38
37
36
35
34
33
OSC1/CLKIN
OSC2/CLKOUT
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/TOCKI/C1OUT
RA5/AN4/SS/C2OUT
RE0/AN5/RD
RE1/AN6/WR
RE2/AN7/CS
MCLR/Vpp/THV
RB0/INT
RB1
RB2
RB3/PGM
RB6/PGC
RB6/PGD
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RB4
RB5
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
PIC 16F877A
PROGRAM = 7 SEGMENTOS.cof
BOT +
R1 330
R2 330
R3 330
R4 330
R5 330
R6 330
R7 330
BOT -
U1
Figura 240 - Tipos de dados complexos
Fonte: Autor
5 MICROCONTROLADORES
249
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 fcam
armazenadas as combinações para cada um dos 10 possíveis dígitos (0 a 9) que
possam existir para este display.
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) // defne 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 defnem 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
} // fm 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 infnito
{ // início do laço infnito
if (input(PIN_D0)) // se D0 (BOT+) estiver em nível alto...
{ // início
nro ++; // incrementa nro
delay_ms(300); // delay de 300 ms
} // fm 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
} // fm 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
} // fm do laço infnito
} // fm da função principal

// ========== fm do programa ==============
Neste programa, a variável mascara (máscara) é dada por um int (8 bits),
porém a indicação entre os colchetes identifca 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];
250
AUTOMAÇÃO INDUSTRIAL
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 defnirá 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 signifcativo será ligado. Este bit será relacionado
a um dos segmentos comuns que compõem a representação destes números.
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 (structs) em linguagem C.
Pesquise sobre o uso de ponteiros em variáveis e matrizes,
suas vantagens e desvantagens.
SAIBA
MAIS
5.9.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 defnição da precedência (que defne 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 30)
5 MICROCONTROLADORES
251
Tabela 30: Operadores
CATEGORIA OPERADOR AÇÃO EXEMPLOS OBS.
A
t
r
i
b
u
i
ç
ã
o

e

p
r
i
o
r
i
d
a
d
e
= Atribuição
(recebe)
int x = 5;
x = 20;
a = x + y / 2;
x=y=z=105;
A atribuição é simbolizada por um único sinal
de igual, e indica que tudo o que está a sua
direita será computado, resolvido e a solução
obtida será armazenada na área de memória
(variável) indicada a sua esquerda. Recomen-
damos ler este sinal como RECEBE. Portanto,
leia a linha var2 = 20 como var2 recebe 20.
( ) Prioridade x = 20 * (y
+ 1);
Em uma expressão, os parênteses indicam
o que será executado prioritariamente. No
exemplo citado, caso não fossem utilizados, a
multiplicação ocorreria antes da soma.
A
r
i
t
m
é
t
i
c
o
s
+ Soma x = a + b; Retorna a soma de dois elementos.
- Sub-
tração ou
Inversão
de sinal
x = a – b;
x = -x;
Subtração ou inversão de sinal.
* Multipli-
cação
x = a * b; Multiplicação. Assim como a divisão, tem
prioridade sobre a soma e a subtraçã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 (foat),
a divisão é real.
% Resto de
divisão
(somente
inteiros)
x = a % b; Somente para valores inteiros, retorna o
resto da divisão do primeiro termo pelo
segundo. Por exemplo, o resto da divisão
de 20 por 6 é 2.
++ Incre-
mento
x ++;
y = ++ x * 5;
Operador que atua em um único oper-
ando. Ao ser escrito ao lado direito de uma
variável, esta será incrementada ao fnal 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-
mento
x --;
y = x -- / 9;
Operador que atua em um único operando,
similar ao ++, porém decrementando a var-
iável no lugar de incrementá-la. O uso antes
ou depois da variável a ser decrementada
(diminuida em uma unidade) identifca que o
valor da variável será diminuido antes ou de-
pois de ser utilizada na expressão. Operador
restrito ao uso com tipos de dados inteiros,
como int, long, shor, long long.
252
AUTOMAÇÃO INDUSTRIAL
Continuação Tabela 30: Operadores
CATEGORIA OPERADOR AÇÃO EXEMPLOS OBS.
R
e
l
a
c
i
o
n
a
i
s
> Maior que if (a > b) ...;
x = a > b;
Assim como outros operadores relacionais,
retorna verdadeiro (1) ou falso (0). Retorna
(1) se o primeiro operando for maior que o
segundo, e (0) caso contrário.
>= Maior ou
igual a
if (a >= b) ...;
x = a >= b;
Retorna (1) se o primeiro operando for
maior ou igual ao segundo. Caso contrário,
retorna (0).
< Menor
que
if (a < b) ...;
x = a < b;
Retorna (1) se o primeiro operando for menor
que o segundo, e (0) caso contrário.
<= Menor ou
igual a
if (a <= b) ...;
x = a <= b;
Retorna (1) se o primeiro operando for
menor ou igual ao segundo. Caso contrário,
retorna (0).
== Igual if (a == b) ...;
x = a == b;
Retorna (1) se o primeiro operando for igual
ao segundo, e (0) se for diferente.
!= Diferente if (a != b) ...;
x = a != b;
Retorna (1) se o primeiro operando for difer-
ente que o segundo, e (0) se for igual.
L
ó
g
i
c
o
s
&& E (AND) if ((a > b) &&
(a > c)) ...;
x = (a && c);
Retorna verdadeiro (1) somente se o primeiro
operando for verdadeiro e o segundo oper-
ando também for verdadeiro.
|| OU (OR) if ((a > b) || (a
> c)) ...;
x = (a || c);
Retorna verdadeiro (1) se pelo menos um dos
operandos for verdadeiro. Se ambos forem
falso (0), o valor retornado será falso (0).
! NÃO
(NOT)
if
(!input(PIN_
D3))...;
x = !a;
Retorna o valor lógico invertido. O operador
NÃO inverte o valor lógico em um teste. Se o
operando for diferente de zero (verdadeiro),
o operador retorna falso. Se for igual a zero
(falso), o operador retorna verdadeiro.
B
i
t

a

B
i
t
& 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 signifcativos de um byte, basta
aplicar: x = x & 0b11111000
| 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 signifcativos
de um byte, basta utilizar da seguinte forma:
x = x | 0b11110000
5 MICROCONTROLADORES
253
Continuação Tabela 30: Operadores
CATEGORIA OPERADOR AÇÃO EXEMPLOS OBS.
B
i
t

a

B
i
t
^ XOR (OU
exclu-
sivo)
x = a ^ b; Operação binária OU EXCLUSIVO entre os
bits de dois números binários. Se o bit n
do primeiro valor estiver ligado e o bit n
do segundo valor desligado, ou se o bit n
do primeiro valor estiver desligado e o do
segundo valor ligado, o bit n do resultado
estará ligado. 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
signifcativos serão invertidos.
~ NOT
(NÃO)
x = ~a; Inverte o valor de todos os bits.~ 01100101
= 10011010 x = ~x equivale a x = x ^
0b11111111.
>> RIGHT
SHIFT
(Deslo-
camento
de bits
para
direita)
x = a >> 1;
x = a >> b;
Desloca os bits para a direita, um determina-
do número de casas. Útil para realiar rotações
binárias em PORTs conectados a dispositivos
que precisam ser acionados em sequência,
como motores de passo. 11000101 >> 1 =
01100010 11000101 >> 2 = 00110001
<< LEFT
SHIFT
(Deslo-
camento
de bits
para es-
querda)
x = a << 1;
x = a << 2;
Desloca os bits para a esquerda, um deter-
minado número de casas. Da mesma forma
que o RIGHT SHIFT, o LEFT SHIFT pode ser
útil para rotações binárias em acionamentos
realizados sequencialmente, como mo-
tores de passo. 11000101 << 1 = 10001010
11000101 << 2 = 00010100
Fonte: Autor
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
efciente, 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 31)
Tabela 31: 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: Autor
254
AUTOMAÇÃO INDUSTRIAL
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 foat, 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 efcientes 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 efciente.
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, no
lugar do !=) 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
identifcar o erro, alguns programas podem ser implantados e utilizados com a
falha, conhecida por “bug” de programação.
Dentre os principais problemas enfrentados com o uso dos operadores,
podemos citar:
1) Uso inadequado do operador de comparação e atribuição.
if (x = 10)
{
...
}
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.
2) Uso inadequado de tipos de dados, gerando a possibilidade de
5 MICROCONTROLADORES
255
... // na declaração das variávies:
long A;
int B, X;
… // no meio do programa, após algumas instruções
… // modifcarem 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 defne 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 overfow), 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
signifcativa 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 signifcativo, 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.
3) 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
… // modifcarem os valores de A e B:
X = A * B;
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 (overfow). Porém, um detalhe característico da linguagem C (padrão ANSI) é
realizar cálculos da forma mais efciente 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 overfow 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.
256
AUTOMAÇÃO INDUSTRIAL
variável do
tipo LONG
16bits
variáveis do
tipo INT
8bits
área temporária,
de 8bits
X = A * B;
X =
01011010
Figura 241 - Máquina de cálculo inadequada
Fonte: Autor
Para evitá-lo, podemos utilizar MODELADORES, que são formas de especifcar
o comportamento de uma variável em uma expressão.
Na Figura 241, 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, foat...) 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ável do
tipo LONG
16bits
variáveis do
tipo INT
8bits
área temporária,
de 16bits
modelador faz com que a variável se
comporte como LONG durante a resolução
X = (long)A * B;
X =
0101101001011010
Figura 242 - Máquina de cálculo inadequada 1
Fonte: Autor
Mas na Figura 242, 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.
Outros exemplos de uso de modeladores (casting):
foat VLR; // vamos supor a declaração de VLR, do tipo FLOAT (nros 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.
5 MICROCONTROLADORES
257
Se a expressão fosse, VLR = (foat)A / 2; o resultado seria outro, pois a variável A,
embora sendo um INT, se comportará como um foat, 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
ALERTA
O uso de modeladores permite ao operador defnir
comportamentos distintos às variáveis durante a execução.
Evite declarar variáveis com tipos de dados muito complexos
ou que consumam mais memória do que o necessário.
5.9.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 (PLCs), 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.
Pesquise sobre compiladores ladder para microcontroladores
na internet. Compare trechos de programas escritos em
ladder com programas escritos em linguagem C, e aponte
vantagens e desvantagens de cada linguagem.
SAIBA
MAIS
258
AUTOMAÇÃO INDUSTRIAL
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.9.14 ESTRUTURAS DE CONTROLE DE FLUXO
Na programação estruturada, o fuxo de execução das instruções é determinado
por sua ordem. Por exemplo, no trecho de programa abaixo
...
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
...
as linhas serão executadas em sequência. Inicialmente, o pino C2 será defnido
para nível alto (5V), após o programa fcará “parado” por um segundo (devido à
instrução delay_ms), e, em seguida, o pino C2 será defnido 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 243)
inicio
obter
temperatura
temperatura
>45ºC?
temperatura
<40ºC?
NÃO
NÃO
SIM
SIM
desligar
ventilação
desligar
aquecimento
ligar
ventilação
ligar
aquecimento
Figura 243 - Fluxograma
Fonte: Autor
5 MICROCONTROLADORES
259
Fluxogramas são diagramas muito amplos e difíceis de serem construídos devido
a sua característica gráfca, porém facilitam a interpretação e a visualização do fuxo
de execução. Para representar o fuxo de execução de forma textual, são necessárias
algumas regras e instruções de controle de fuxo, muito comuns em todas as linguagens.
5.9.15 GOTO (VÁ PARA...)
Sintaxe:
goto nomerotulo;
Onde nomerotulo é um nome único que identifca um rótulo, ou seja, um
ponto único do programa. Este nome (rótulo) deve ser identifcado 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 fé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;
}
260
AUTOMAÇÃO INDUSTRIAL
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.9.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, signifca SE. ELSE, por sua vez, signifca SENÃO.
Para todo SENÃO deve haver um SE, porém nem 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
261
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 fuxo 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.
262
AUTOMAÇÃO INDUSTRIAL
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
ALERTA
Não adicione o sinal de ponto e vírgula após o fechar
parênteses da condição do IF. Isso trunca a instrução,
quebrando a conexão entre ela e a condição que segue.
5.9.17 SWITCH / CASE (ESCOLHA)
Switch em inglês signifca 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 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 identifcar 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 (:).
5 MICROCONTROLADORES
263
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
fuxo de execução seja desviado para o término (fechar chaves) do bloco de
instruções do switch.
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 fnalizado.
A opção default permite que um determinado bloco seja executado no caso
de nenhuma condição anterior ter sido executada.
Exemplo de uso do comando em um programa que utiliza o SWITCH para o
hardware que segue: (Figura 244)
R1
R2
R3
R4
R5
R6
330
330
330
330
330
330
1
10
9
8
7
6
5
3
4
2
14
13
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
40
39
38
37
36
35
34
33 OSC1/CLKIN
OSC2/CLKOUT
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/TOCKI/C1OUT
RA5/AN4/SS/C2OUT
RE0/AN5/RD
RE1/AN6/WR
RE2/AN7/CS
MCLR/Vpp/THV
RB0/INT
RB1
RB2
RB3/PGM
RB6/PGC
RB6/PGD
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RB4
RB5
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
PIC 16F877A
PROGRAM = 7 SEGMENTOS.cof
U1
R7
330
R8
330
R10
10K
R9
10K
BOT +
BOT -
5V C. C.
Figura 244 - Hardware
Fonte: Autor
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.
264
AUTOMAÇÃO INDUSTRIAL
#include <16f877.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // defne valor de clock para delays
void main(void)
{
int menu = 0; // declara variável de 8 bits
short fag = 1; // declara variável de 1 bit
while(true) // laço infnito
{
if (input(PIN_D0) && fag) // se BOT + for pressionado ...
{
menu ++; // incrementa variável
fag = 0; // registra que já processou
}
if (input(PIN_D1) && fag) // se BOT - for pressionado ...
{
menu --; // decrementa variável
fag = 0; // registra que já processou
}
if (!input(PIN_D1) && !input(PIN_D0))
fag = 1; // caso nenhum botão pressionado, reseta fag
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 fnal do switch
case 2 : output_c(0b10000001); // caso = 2, habilita + e - signifcativos
break; // e vai para fnal do switch
case 3 : output_c(0b11111111); // caso = 3, habilita todo PORTC
break; // e vai para fnal do switch
case 4 : output_c(0b11100111); // caso = 4, habilita 6 bits de PORTC
break; // e vai para fnal 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 fnal 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
}
}
No exemplo acima, a estrutura condicional defnida pelo SWITCH / CASE está
em destaque. Atente para o uso do CASE que defne 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 fuxo de execução para o fnal (fechar chaves) do switch. O uso do
rótulo DEFAULT dentro do switch permite que o fuxo de execução seja desviado
para esta linha se nenhuma situação anterior tiver sido atendida.
5 MICROCONTROLADORES
265
5.9.18 WHILE – ESTRUTURA DE REPETIÇÃO
“WHILE” signifca “enquanto”, e sua sintaxe 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 245)
void main(void)
{
int x;
while (true)
{
while (!input(PIN_D0));
x = 0;
while (x < 12)
{
output_high(PIN_E 0);
delay_ms(100);
output_low(PIN_E 0);
delay_ms(100);
x++;
}
}
}
repetir
incondicionalmente
fcar repetindo enquanto
não houve nível alto em D0
fcar repetindo enquanto
o valor de X for inferior a 12
Figura 245 - Fluxo de execução em um programa com estruturas de repetição while
Fonte: Autor
Sua versatilidade é demonstrada pela fgura anterior, onde o while é utilizado
de três diferentes formas. Na primeira (laço vermelho), o while (true) é usado para
defnir um bloco de repetição que fcará sendo executado incondicionalmente.
A condição (true) é sempre verdadeira, fazendo com que o laço aja como um
“laço infnito”. 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, fcando 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, refetindo o comportamento de um sensor ou outro elemento
conectado às entradas digitais.
266
AUTOMAÇÃO INDUSTRIAL
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.
Como interromper um while: Não somente o while, mas qualquer estrutura
de repetição pode ser interrompida se executada a instrução break.
Já a instrução continue promove um reinicio do laço, ignorando o restante das
instruções compreendidas no bloco defnido 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
} //fnal 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 MICROCONTROLADORES
267
5.9.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 fnal do laço. Sua sintaxe é:
do {
instruções;
} while (condição);

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.9.20 FOR (PARA)
For signifca 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...
}

268
AUTOMAÇÃO INDUSTRIAL
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.
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
{T
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 fnal 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 MICROCONTROLADORES
269
5.9.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.
Na programação estruturada, as sub-rotinas são usadas com os seguintes objetivos:
1) 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, difcultando 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.
2) Reaproveitamento de código: Ao fragmentar um problema, talvez seja possível
observar que, em muitos casos, uma mesma sequência de comandos deve ser executada
em pontos diferentes do programa. O uso de sub-rotinas permite executar 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.
3) Otimização de memória: Variáveis locais são variáveis que possuem escopo
limitado à função onde são declaradas, 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 abaixo: (Figura 246)
1
10
9
8
7
6
5
3
4
2
14
13
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
40
39
38
37
36
35
34
33 OSC1/CLKIN
OSC2/CLKOUT
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/TOCKI/C1OUT
RA5/AN4/SS/C2OUT
RE0/AN5/RD
RE1/AN6/WR
RE2/AN7/CS
MCLR/Vpp/THV
RB0/INT
RB1
RB2
RB3/PGM
RB6/PGC
RB6/PGD
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RB4
RB5
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
PIC 16F877A
R1
R2
R3
330
330
330
R10
10K
R9
10K
BOT 1
BOT 2
R4
1K
R5
10K
PROGRAM = sonoro-hex
Figura 246 - Chamadas a funções/sub-rotinas
Fonte: Autor
270
AUTOMAÇÃO INDUSTRIAL
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) // defne 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 infnito
{
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
271
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.
Considerações importantes sobre funções:
• Você pode realizar chamadas de funções a partir de qualquer ponto do
programa principal ou de outras funções.
• 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.
• 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.
• Funçõ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.9.22 PASSAGEM DE PARÂMETROS
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.
272
AUTOMAÇÃO INDUSTRIAL
24V
+ -
RL1
5V
1
10
9
8
7
6
5
3
4
2
14
13
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
40
39
38
37
36
35
34
33 OSC1/CLKIN
OSC2/CLKOUT
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/TOCKI/C1OUT
RA5/AN4/SS/C2OUT
RE0/AN5/RD
RE1/AN6/WR
RE2/AN7/CS
MCLR/Vpp/THV
RB0/INT
RB1
RB2
RB3/PGM
RB6/PGC
RB6/PGD
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RB4
RB5
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
PIC 16F877A
PROGRAM = sonoro-hex
1
2
123456789
1
0
1
1
1
3
1
4
LCD2
LM016L
V
S
S
V
D
D
V
E
E
R
S
R
W
ED
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
R3
1K
R2
10K
R1
470K
VDD
R6
10K
R4
10K
R5
10K
VDD
VDD
U
1
D1
LED-BLUE
Q1
BC542
MOTOR DA ESTEIRA
Figura 247 - Esquema de ligação de um microcontrolador PIC16F877A
Fonte: Autor
A Figura 247 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.
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.
5 MICROCONTROLADORES
273
Segue o programa sugerido:
#include <16f877.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // defne valor de clock para delays
#defne use_portb_lcd true // defne 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
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.
274
AUTOMAÇÃO INDUSTRIAL
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 refetidas nestas variáveis.
FIQUE
ALERTA
A informação passada à função durante a passagem de
parâmetros por conteúdo é somente o conteúdo. Alterando
o valor do parâmetro dentro da função, não alteramos o 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
275
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.
FIQUE
ALERTA
Embora não seja muito comum em estudos iniciais
com linguagens de programação, o uso de ponteiros
na linguagem C pode tornar os programas muito mais
eficientes, porém, em caso de erro, podemos alterar valores
em outras áreas de memória, causando efeitos inesperados
durante a execução do programa.
276
AUTOMAÇÃO INDUSTRIAL
5.9.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.9.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 fos no PORTB ou PORTD.
Utilizaremos a ligação via PORTB, usando o esquema que segue: (Figura 248)
5 MICROCONTROLADORES
277
CONTRASTE
0 ... 5V
5V
1
14
D7
D6
D5
D4
EN
RS
RW
B7
B6
B5
B4
B3
B2
B1
B0
Figura 248 - Display alfanumérico
Fonte: Autor
Esta ligação utiliza um display de caracteres em modo “4 + 3 fos”. 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 defnido 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 identifcar o caractere ‘x’, diferenciando da variável X.
278
AUTOMAÇÃO INDUSTRIAL
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 identifca 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.
\n: Nova linha. Posiciona o cursor na primeira coluna da segunda linha do LCD.
Veja alguns exemplos de uso: (Figura 249)
lcd_putc(”Oi”);
lcd_putc(”Teste.”);
lcd_putc(”\fTestX”);
lcd_putc(”\be”);
lcd_putc(”\fLipando...”);
lcd_putc(”\nsegunda linha”);
Oi Teste.
Limpando . . .
segunda linha
Teste
1
2
3
Figura 249 - LCD
Fonte: Autor
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 modifcada, 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 modifcada,
utilize o comando lcd_shift_left().
5 MICROCONTROLADORES
279
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.9.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.
Exemplo de uso com o LCD: (Figura 250)
#include <16f877.h>
#use delay (clock=20000000)
#defne use_portb_lcd true
#include <lcd.c>
void main()
{
int CONTA = 0;
lcd_init();
while(true)
{
printf(lcd_putc,”\fcontando -> %u”, CONTA);
CONTA = CONTA + 1;
delay_ms(300);
}
}
contando - > 2
contando - > 3
contando - > 0
contando - > 1
. . .
Figura 250 - Uso com o LCD
Fonte: Autor
O programa acima realiza uma contagem progressiva, iniciando pelo valor
zero e mostrando um número a cada 300 milésimos de segundo.
280
AUTOMAÇÃO INDUSTRIAL
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 251)
contando - > 2
printf (lcd_putc, ”\fcontando - > %u”, CONTA);
função de saída
caractere especial
string (delimitada
por aspas duplas)
especifcador de formato
variável
efeito deste linha:
Figura 251 - Uso com o LCD 1
Fonte: Autor
Dentro dos parênteses da função printf, devemos dispor os seguintes
elementos, separados por vírgulas:
1 – 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 direita USE RS232 para confgurar a porta serial.
2 – STRING: É o trecho de caracteres delimitado por aspas duplas, que irá defnir
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 especifcadores 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 identifcando um caractere especial ou especifcador 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 especifcação de formato ou um caractere especial.
5 MICROCONTROLADORES
281
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) especifcadores de formato, que são os 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 especifcador de formato que será inserido
o valor da primeira variável, no segundo especifcador, o local onde será inserido o valor
contido na segunda variável, e assim por diante. O nome especifcador de formato se dá
pelo fato de o símbolo defnir 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 especifcador de formato está relacionado a uma variável
(identifcada após a string, dentro dos parênteses do PRINTF), é importante utilizar
um especifcador compatível com o tipo de dado da variável correspondente.
Observe a seguinte na Tabela 32:
Tabela 32: Especifcadores de formato
TIPO DE VARIÁVEL ESPECIFICADOR DE FORMATO E EXEMPLOS DE USO
short ou
int
%u -> valor decimal (ex: 30)
%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
int32
%lu -> valor decimal (ex: 1000);
%05lu -> valor decimal cinco casas c/ zeros a esquerda. (ex:
01000)
signed long
signed int32
%li -> valor decimal c/ sinal (ex: -500)
%4li -> valor decimal c/ sinal alinhado a esquerda (ex: -_500)
foat %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)
Fonte: Autor
282
AUTOMAÇÃO INDUSTRIAL
Mais especifcadores de formato e respectivas funcionalidades podem ser
obtidos no manual do compilador utilizado.
3 – VARIÁVEIS: Deve ser utilizada uma variável para cada especifcador de
formato da STRING. As variáveis indicarão qual o valor que será impresso no lugar
de cada especifcador 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 252)
printf (lcd_putc,“\fTESTE\n12345”);
printf (lcd_putc,“\fRELOGIO %02u: %02u”, HORA, MINUTO);
printf (lcd_putc,“\fCont.Total: %5lu\nCont.Parc.:
%5lu”, CONT_TOT, CONT_PARC);
TESTE
12345
RELOGIO 03:23
CONT. TOTAL: 13145
CONT. PARC.: 32
Obs: as variáveis HORA e MINUTO são do tipo INT, enquanto que TOTAL e PARCIAL são LONG ou INT32
Figura 252 - Uso com o LCD 2
Fonte: Autor
5.9.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.
5 MICROCONTROLADORES
283
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 confgurar como será usada a porta serial. Vamos usar
os seguintes parâmetros: (Figura 253)
Figura 253 - Comunicação serial
Fonte: Autor
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 efciente): 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 confguraçã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.
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 amplifcados e
negativos, sugerimos o uso de um TRANCEIVER RS232, como o MAX232, ST232,
ICL232, ADM232 ou HIN232. (Figura 254)
DB9
DB9
FÊMEA MACHO
DB9
MACHO
DB9
FÊMEA
P
I
C
1
6
F
8
7
7
A
C6
C7
1µ F
1µ F
1µ F
1µ F
1µ F
CABO
SERIAL
5V
2
3
5
2
3
5
M
A
X
2
3
2
C
TX
RX
Figura 254 - Esquema de ligação de um MAX232 a um microcontrolador e uma porta serial padrão DB9
Fonte: Autor
284
AUTOMAÇÃO INDUSTRIAL
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 confguram e enviam dados à saída serial.
#include <16f877A.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // defne 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 infnito.
}
}
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
confgurada, como na terceira linha do programa, através da diretiva #use rs232.
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.
5 MICROCONTROLADORES
285
#include <16f877A.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // defne 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 bufer 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;
}
}
} // fm do laço infnito.
} // fm 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.9.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.
286
AUTOMAÇÃO INDUSTRIAL
Algumas confguraçõ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.
Pesquisando na folha de dados do componente sobre
mudanças nas referências de tensão para a conversão AD no
microcontrolador PIC16F877A.
SAIBA
MAIS
É 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 255)
1
2
3
4
5
6
7
8
9
10
11
12
13
40
39
38
37
36
35
34
33
32
31
30
29
28
0 a 5 Volts AN0 PIN_A0
0 a 5 Volts AN1 PIN_A1
0 a 5 Volts AN2 PIN_A2
0 a 5 Volts AN3 PIN_A3
0 a 5 Volts AN4 PIN_A5
0 a 5 Volts AN5 PIN_E0
0 a 5 Volts AN6 PIN_E1
0 a 5 Volts AN7 PIN_E2
Figura 255 - Pinos do PIC16F877A que podem ser confgurados para conversão analógica/digital
Fonte: Autor
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. Através 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.
5 MICROCONTROLADORES
287
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 256)
5V
A0
POTENCIÔMETRO
Figura 256 - Potenciômetro de 10K conectado a um microcontrolador. Para facilitar entendimento, demais ligações de
alimentação e clock do microcontrolador foram suprimidas
Fonte: Autor
É 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 (2
10
=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.
288
AUTOMAÇÃO INDUSTRIAL
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 257)
1
2
3
4
5
6
7
8
9
10
11
12
13
40
39
38
37
36
35
34
33
32
31
30
29
28
ANO
LM =
35dz
5V
Figura 257 - Sensor de temperatura LM35DZ, de característica linear,
conectado diretamente ao canal AN0 de um microcontrolador
Fonte: Autor
A resposta em tensão, portanto, será de:
V
AN0
= 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:
V
AN
= T
ºC
* 0,01V
V
AN
= 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.
5 MICROCONTROLADORES
289
Para facilitar a utilização, o programa que segue usa uma sub-rotina para
realizar a aquisição da informação.
//------------------------
#include <16f877.h>
#device ADC=10 // defne que a conversão AD será de 10 bits
#use delay (clock=20000000)
#defne use_portb_lcd true // inclui biblioteca de LCD
#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); //Confguração do clock do conversor AD
set_adc_channel(CANAL); //Congiguraçã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
foat TEMP; // declara variável de ponto futuante
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 * (foat)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 fque 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 modifcado, 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.
Segue, na Figura 258, outro exemplo de ligação do microcontrolador a um LDR
ligado em um divisor de tensão.
290
AUTOMAÇÃO INDUSTRIAL
5V
1
2
3
4
5
6
7
8
9
10
11
12
13
40
39
38
37
36
35
34
33
32
31
30
29
28
AN1
LDR
1K2
Figura 258 - Ligação de um LDR em um microcontrolador usando o canal AN1
Fonte: Autor
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.9.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, facultando controle de periféricos.
Através do PWM, é possível pulsar (ativar e desativar) uma saída, fltrando-a
com circuitos geralmente compostos por resistores e capacitores, e gerando, com
estes pulsos fltrados, o efeito desejado.
5 MICROCONTROLADORES
291
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á.
É 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 fltro RC adequado, para a tensão necessária.
É comum também utilizar a saída pulsante diretamente no dispositivo de
amplifcaçã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 259)
M
i
c
r
o
c
o
n
t
r
o
l
a
d
o
r
C1
R1
R2
D1
+24V C.C.
Motor
Transistor
NPN
Figura 259 - Ligação de um transistor a um motor
Fonte: Autor
Já o tempo de ciclo e o tamanho do pulso podem ser controlados por software.
292
AUTOMAÇÃO INDUSTRIAL
Veja o 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 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 defnir
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
fcar 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 infnito
{
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
}
}
5 MICROCONTROLADORES
293
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, onde 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 fm
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é-
defnido através das estruturas de controle de fuxo, 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 efciente 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.
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.
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. Amplifcador 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 amplifcador 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_amplifcador_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. Amplifcadores 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. 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. Amplifcadores operacionais e fltros 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 41, 42, 50, 56, 58, 59, 60, 61, 71, 207, 233, 251, 256, 267, 293, 296
Álgebra booleana 7, 12, 153, 157, 161, 162, 165
Algoritmos 117, 219, 223
Amplifcador operacional 73, 74, 76, 77, 79, 80, 182, 183, 299
Anodo 23, 24, 27, 35, 45, 46, 65, 66, 67, 68, 187
Aplicações de transistores 43
Arquivos executáveis 13, 215
Autoprogramação 13, 211, 218
B
Barramento de comunicação 211
Bootloader 211, 218, 219
C
Catodo 23, 24, 27, 35, 45, 46, 65, 66, 67, 68, 187
Células de carga 126
Circuitos codifcadores 184, 189, 190
Circuitos decodifcadores 155, 176, 187
Circuitos demultiplexadores 174, 175
Circuitos lógicos 101, 156, 161, 165, 182, 223
Circuitos multiplexadores 156, 169, 170
Comandos para acionamento 13, 238, 239
Como compilar 13, 229
Comparador 73, 77, 78, 79, 120, 126, 211
Comunicação serial 215, 285
Condicionamento de sinal 27, 70, 143
Conversão analógica/digital 288, 289
Conversor a/d 180, 181, 182, 210
Conversor d/a 181, 182, 183
Conversores 141, 144, 145, 156, 178, 179, 181, 184, 200, 205, 206, 210, 215, 285, 289
Criação de um programa 227
D
Declaração de variáveis 13, 243, 249, 296
Diac 65, 68, 69
Dígitos 33, 150, 151, 152, 153, 155, 156, 186, 248, 251, 283, 284
Diodo de sinal 26, 27
Diodo emissor de luz 26, 32
Diodo retifcador 5, 21, 25, 26, 38
Diodo schottky 26, 38
Diodo zener 25, 26, 28, 29
Display alfanumérico 279, 283
Display de 7 segmentos 187, 251
E
Eletrônica analógica 15, 17, 75, 95, 149, 200, 204, 205
Encapsulamento de transistores 50
Encoders 136, 137, 138, 139, 140, 289
Entradas e saídas digitais 189, 210, 211
Estrutura de repetição 234, 235, 237, 238, 268, 269, 270, 271
Estruturas de controle de fuxo 219, 234, 260, 261, 296
Estruturas de decisão 265
Extensômetros 126, 142
F
Filtro ativo 88, 89
Filtro passivo 85, 86
Flip-fop d 197
Flip-fop jk 193, 194, 195, 196, 197, 198
Flip-fop jk mestre-escravo 194, 196
Flip-fop rs 191, 192, 193, 194, 195
Flip-fop rs síncrono 192, 193, 194, 195
Fluxograma 221, 222, 261
Fonte chaveada 90, 93
Fonte linear 91, 92
Fontes de alimentação 40, 41, 43, 89, 90, 94, 95, 105
Fonte simétrica 92, 93, 94
Fotodiodo 26, 36, 37, 40, 111, 143
H
Histerese 78, 223
J
Jfet 57, 58, 61
L
Linguagem c 225, 226, 228, 232, 236, 238, 253, 257, 258, 261, 262, 268, 272, 278, 282, 296
M
Memória ram 206, 210, 243, 273, 274
Memória rom 210, 211, 215, 218, 219, 226
Microcontrolador 8051 208
Microcontrolador microchip 12, 208
Microprocessadores 115, 200, 205, 206, 207, 208
Microprocessadores na automação industrial 204
Modos de disparo 65
Mosfet 57, 61, 71
Multivibrador biestável 191
N
Nome das variáveis 13, 249
O
Operadores 157, 158, 161, 162, 200, 253, 254, 255, 256, 257, 260, 289
Optoacopladores 39, 40, 41, 66, 104
Osciladores 81, 84, 95
P
Passagem de parâmetros 275, 277, 278
Portas lógicas 8, 63, 82, 159, 160, 170, 172, 193, 196, 200
Portas lógicas 159, 160, 161, 172
Printf 270, 276, 282, 283, 284, 287, 292
Pwm 83, 183, 210, 211, 214, 215, 293, 294, 296
R
Recursos de um microcontrolador pic 12, 209
Relés fotoelétricos 117
Retorno de dados 13, 278
S
Scr 65, 66, 67
Sensor de barreira óptica 6, 11, 115
Sensor de pressão 71, 124, 125
Sensor de ultrassom 98, 118
Sensores a laser 11, 115, 116
Sensores analógicos 71, 100, 101, 106, 145, 169, 182, 289
Sensores capacitivos 121, 122, 124
Sensores de aceleração 125, 126
Sensores de posicionamento 136, 137, 142
Sensores de temperatura 92, 107, 129, 290
Sensores de vazão 127, 128, 129
Sensores digitais 100, 101, 105, 120, 145
Sensores eletromecânicos 145, 109
Sensores indutivos 6, 11, 109, 120, 121, 122, 141
Sensores magnéticos 6, 11, 109, 122, 123, 129
Sensores npn 5, 101, 103, 104
Sensores ópticos 5, 11, 110, 111, 112, 113, 114, 115, 120, 145
Sensores ópticos por transmissão 5, 11, 113
Sensor infravermelho 6, 11, 116, 117, 118, 134
Sensor óptico por retrorrefexão 5, 11, 112
Simplifcação de circuitos lógicos 12, 161, 165
Sistemas digitais 12, 43, 149, 151, 153, 154, 157, 184, 185, 191, 200, 299, 300
Strain-gage 6, 126
String 280, 283, 284, 287
Sub-rotinas 13, 227, 231, 248, 272, 273, 275, 296
T
Tabela verdade 7, 9, 12, 157, 158, 159, 164, 165, 166, 168, 171, 172, 173, 175, 176, 188, 191, 192,
193, 195, 197, 198, 200
Técnicas digitais 12, 154
Teoremas e leis da álgebra booleana 12, 162
Termopares 6, 11, 70, 75, 131, 132, 133, 134, 142, 144
Testar transistores bipolares 52
Testar um diodo 38
Timers 84, 206, 207, 211
Tipos de dados 8, 13, 243, 247, 248, 251, 254, 257, 258, 259, 260, 277
Tiristores 64, 65, 66, 68, 91, 95, 299
Transdutores 6, 11, 12, 97, 136, 137, 141, 142, 143, 144
Transistor bipolar 44, 45, 46, 50, 53, 56, 61, 71, 102
Transistor darlington 55, 56
Transistores cmos 63, 64
Transistores de efeito de campo 56, 57
Transistor npn 45, 47, 48, 49, 50, 54, 63
Transistor pnp 46, 49, 50
Triac 65, 68, 69
V
Varicap 26, 37
Visão artifcial 11, 117, 118
SENAI – DEPARTAMENTO NACIONAL
UNIDADE DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA – UNIEP
Rolando Vargas Vallejos
Gerente Executivo
Felipe Esteves Morgado
Gerente Executivo Adjunto
Diana Neri
Coordenação Geral do Desenvolvimento dos Livros
SENAI – DEPARTAMENTO REGIONAL DO RIO GRANDE DO SUL - CONSELHO REGIONAL
Heitor José Müller – Presidente do Sistema FIERGS
Presidente Nato
Elisabeth Urban
Diretora de Educação e Tecnologia
José Zortea
Diretor Regional e Membro Nato do Conselho Regional do SENAI-RS
DIRETORIA SENAI-RS
José Zortea Carlos Artur Trein
Diretor Regional Diretor de Operações
Carlos Heitor Zuanazzi Claiton Oliveira da Costa
Diretor Administrativo e Financeiro Coordenação do Desenvolvimento dos Livros no
Departamento Regional
Daniel Corteletti
Elaboração
Giancarllo Josias Soares
Revisão Técnica
Enrique S. Blanco
Fernando R. G. Schirmbeck
Luciene Gralha da Silva
Maria de Fátima R.de Lemos
Design Educacional
Regina M. Recktenwald
Revisão Ortográfca e Gramatical
Bárbara V. Polidori Backes
Camila J. S. Machado
Rafael Andrade
Ilustrações
Bárbara V. Polidori Backes
Tratamento de imagens e Diagramação
Enilda Hack
Normatização
i-Comunicação
Projeto Gráfco
9 788575 195314
ISBN 978-85-7519-531-4