Vous êtes sur la page 1sur 308

série AUTOMAÇÃO INDUSTRIAL

Processamento
de Sinais
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
© 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 Profissional 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

SENAI Sede
Serviço Nacional de Setor Bancário Norte . Quadra 1 . Bloco C . Edifício Roberto
Aprendizagem Industrial Simonsen . 70040-903 . Brasília – DF . Tel.: (0xx61)3317-9190
Departamento Nacional http://www.senai.br
Lista de ilustrações
Figura 1 -  Circuito..............................................................................................................................................................22
Figura 2 -  Raio - Tensão...................................................................................................................................................22
Figura 3 -  Corrente contínua.........................................................................................................................................23
Figura 4 -  Corrente alternada........................................................................................................................................24
Figura 5 -  Símbolo do diodo.........................................................................................................................................24
Figura 6 -  LED (diodo emissor de luz)........................................................................................................................24
Figura 7 -  Diodo retificador...........................................................................................................................................25
Figura 8 -  Diodo em série na alimentação de um circuito eletrônico............................................................25
Figura 9 -  Diodo de proteção contra transientes de tensão..............................................................................26
Figura 10 -  Interior de um diodo, a junção PN (anodo e catodo)....................................................................27
Figura 11 -  Inversamente Polarizado.........................................................................................................................28
Figura 12 -  Diretamente Polarizado............................................................................................................................28
Figura 13 -  Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de fluxo
de elétrons............................................................................................................................................................................28
Figura 14 -  Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de re-
pulsão na junção, interrompendo o fluxo de elétrons.........................................................................................29
Figura 15 -  Símbolo do diodo retificador, segundo norma IEEE 315..............................................................30
Figura 16 -  Conversor de corrente alternada para corrente contínua, com retificador de onda completa..30
Figura 17 -  Ponte retificadora e seus diodos convertendo corrente contínua em corrente alternada..... 30
Figura 18 -  Símbolo de diodo zener, segundo norma IEEE315, e diodo zener...........................................32
Figura 19 -  Circuito...........................................................................................................................................................32
Figura 20 -  Diodo 1N746 ...............................................................................................................................................33
Figura 21 -  Símbolo de LED, segundo norma IEEE 315, 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 -  Amplificador operacional. CI LM741....................................................................................................75
Figura 76 -  Amplificador inversor. No gráfico em vermelho, o sinal de entrada (Vi), e em azul o sinal
de saída, já amplificado e invertido (Vo)....................................................................................................................76
Figura 77 -  Amplificador. No gráfico em vermelho, o sinal de entrada (Vi), e em azul o sinal de saída,
já amplificado (Vo).............................................................................................................................................................76
Figura 78 -  Tanque de fluido.........................................................................................................................................77
Figura 79 -  Tanque de fluido 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 -  Amplificador operacional como substrator......................................................................................82
Figura 85 -  Amplificador operacional como substrator 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áfico de saída..........................................................................................83
Figura 88 -  Gráfico de PWM a 1KHz............................................................................................................................84
Figura 89 -  Oscilador Monoestável.............................................................................................................................85
Figura 90 -  Filtro Passivo.................................................................................................................................................86
Figura 91 -  Gráfico 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áfico da tensão após retificação, sem aplicação de filtros....................................................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 -  Fonte Chaveada........................................................................................................................................94
Figura 107 -  Esquema de fonte simétrica.................................................................................................................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 -  Figura de um 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 definiçã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 fios 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 reflexão, e suas partes emissora/receptora .............................................. 112
Figura 128 -  Sensor óptico por retrorreflexão com espelho refletor especial, usado como
barreira óptica para a deteção de objetos ........................................................................................................... 114
Figura 129 -  Sensor óptico por reflexão difusa .................................................................................................. 114
Figura 130 -  Sensores ópticos por transmissão .................................................................................................. 115
Figura 131 -  Sistema de sensor óptico por transmissão usando fibra ó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 identificar fissuras 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áfico da curva de sensores NTC e PTC genéricos.................................................................. 131
Figura 158 -  Voltímetro................................................................................................................................................ 132
Figura 159 -  Sonda com termopar........................................................................................................................... 134
Figura 160 -  Gráfico das curvas de termopares, entre temperatura e tensão gerada em milivolts.134
Figura 161 -  Partes sobreaquecidas de um quadro elétrico, revelando um ponto de aquecimento
causado por mau contato............................................................................................................................................ 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, Decodificador/Demultiplexador configurado como demultiplexador
com a entrada de habilitação funcionando como entrada de dados.......................................................... 176
Figura 196 -  Circuito 74xx154 configurado como demultiplexador 1:16 - a) e b) Configurações para
funcionamento como demultiplexador 1:16 - c) Diagrama lógico............................................................... 176
Figura 197 -  Decodificador/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 decodificadores................................................................................................................... 186
Figura 206 -  Decodificador 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 decodificador 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 codificador................................................................................................. 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 -  Codificador de 8 para 3 linhas.......................................................................................................... 189
Figura 212 -  Flip-flop RS - a) implementação do circuito com portas NOR - b) símbolo lógico........ 190
Figura 213 -  Flip-flop RS - a) implementação do circuito com portas NAND - b) símbolo lógico..... 191
Figura 214 -  Flip-flop 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 flip-flop JK com portas lógicas.................................... 192
Figura 216 -  Implementação do circuito de um flip-flop JK mestre-escravo........................................... 193
Figura 217 -  Símbolo lógico de um flip-flop JK mestre-escravo................................................................... 194
Figura 218 -  Flip-flop sensível à borda................................................................................................................... 194
Figura 219 -  Flip-flop 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ímbolo lógico.196
Figura 222 -  Circuito com Flip-Flop J-K aplicado à configuração de Toggle. CI utilizado: 74xx73.... 196
Figura 223 -  Gráfico 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................................................................................................................. 249
Figura 241 -  Máquina de cálculo inadequada..................................................................................................... 257
Figura 242 -  Máquina de cálculo inadequada 1.................................................................................................. 257
Figura 243 -  Fluxograma.............................................................................................................................................. 260
Figura 244 -  Hardware.................................................................................................................................................. 264
Figura 245 -  Fluxo de execução em um programa com estruturas de repetição while....................... 266
Figura 246 -  Chamadas a funções/sub-rotinas.................................................................................................... 270
Figura 247 -  Esquema de ligação de um microcontrolador PIC16F877A.................................................. 273
Figura 248 -  Display alfanumérico........................................................................................................................... 277
Figura 249 -  LCD............................................................................................................................................................. 279
Figura 250 -  Uso com o LCD....................................................................................................................................... 280
Figura 251 -  Uso com o LCD 1.................................................................................................................................... 280
Figura 252 -  Uso com o LCD 2.................................................................................................................................... 283
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.284
Figura 255 -  Pinos do PIC16F877A que podem ser configurados 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 retificadores 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 codificador com entradas negadas...................................................................... 189
Tabela 16: Verdade para o flip-flop RS implementado com portas NOR.................................................... 190
Tabela 17: Verdade para o flip-flop RS implementado com portas NAND................................................. 191
Tabela 18: Verdade para o flip-flop RS síncrono................................................................................................... 192
Tabela 19: Verdade para o flip-flop RS síncrono................................................................................................... 193
Tabela 20: Verdade para o flip-flop RS síncrono................................................................................................... 194
Tabela 21: Verdade para o flip-flop JK mestre-escravo com preset e clear ............................................... 195
Tabela 22: Verdade para o flip-flop tipo D ............................................................................................................. 196
Tabela 23: Verdade para o flip-flop tipo T .............................................................................................................. 197
Tabela 24: Modelos comerciais de flip-flop .......................................................................................................... 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............................................................................................. 245
Tabela 29: Prefixo de declaração das variáveis..................................................................................................... 245
Tabela 30: Operadores................................................................................................................................................... 251
Tabela 31: Operadores avançados............................................................................................................................ 254
Tabela 32: Especificadores de formato.................................................................................................................... 282
Sumário

1  Introdução.......................................................................................................................................................................19

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

4  Sistemas Digitais......................................................................................................................................................... 149


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

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

Referências......................................................................................................................................................................... 295

Minicurrículo do Autor.................................................................................................................................................. 298

Índice................................................................................................................................................................................... 299
Introdução

1
Nesta unidade curricular “Processamento de Sinais” começaremos na área específica 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, identificaremos 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, identificaremos a aplicabilidade
dos fundamentos de eletrônica digital relativos aos sistemas de controle e automação. No último
capítulo, que é o de Microcontroladores, identificaremos 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 Carga Horária
Horária Módulo
Módulo Básico Fundamentos técnicos e • Fundamentos da Comunicação 100h 340h
científicos • Fundamentos da Eletrotécnica 140h
• Fundamentos da Mecânica 100h
Módulo Fundamentos técnicos e • Acionamento de Dispositivos 160 h 340h
Introdutório científicos Atuadores
• Processamento de Sinais 180 h
Específico I Manutenção e Implemen- • Gestão da Manutenção 34h 340 h
tação de equipamentos e • Implementação de Equipamentos 136h
dispositivos Dispositivos
• Instrumentação e Controle
• Manutenção de Equipamentos e 102h
Dispositivos 68h
Específico II Desenvolvimento de • Desenvolvimento de Sistemas de 100h 340h
sistemas de controle e Controle
Automação • Sistemas Lógicos Programáveis 160h
• Técnicas de Controle 80h
Fonte: SENAI
Eletrônica Analógica

Eletricidade é o fenômeno físico que tem origem na movimentação dos elétrons. Estudar
eletricidade significa estudar as grandezas relacionadas a esta movimentação, como corrente,
tensão e resistência.
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

Chave

Transistor
Capacitor
Capacitor
Relés
Circuitos integrados
Resistores
Chave táctil
Conectores
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: é medida em Volts e identificada pelo símbolo U ou V. 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
bateira. Tensão define a força capaz de movimentar cargas elétricas de um ponto
a outro. Para ficar mais claro, podemos imaginar a tensão como a “pressão que os
elétrons exercem para ir de um ponto a outro”. (Figura 2)

Em condições normais de temperatura e pressão uma


VOCÊ tensão de 1000V pode romper a rigidez dielétrica de 1 mm
SABIA? de ar, criando uma “faísca” entre dois pontos? Chamamos
esta faísca de “arco elétrico” ou “arco voltáico”.

Figura 2 -  Raio - Tensão


Fonte: Autor
2 Eletrônica Analógica
23

RESISTÊNCIA: é medida em Ohms e identificada pelo símbolo R. É a


capacidade dos materiais em se opor à passagem de corrente elétrica. Quanto
maior a resistência, mais difícil para as cargas se deslocarem pelo corpo. Além
de oferecerem diferentes resistências entre si, alguns materiais ainda variam a
resistência quando submetidos a variações de temperatura e pressão. A adição
de alguns elementos em uma solução ou na composição de um determinado
material também pode alterar significativamente sua capacidade condutiva.
Graças a esta diversidade de comportamentos que os materiais apresentam ao
serem submetidos a uma tensão elétrica, a eletrônica evoluiu.
CORRENTE: é medida em Ampères, identificada pelo símbolo I, e define o
movimento ordenado de cargas elétricas em uma determinada direção em um
determinado período de tempo. Quanto mais elétrons se deslocarem de um
ponto a outro 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.

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
FIQUE resistência do corpo em um choque elétrico, uma pessoa
ALERTA 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ífica. Se ligarmos esta fonte de energia em uma carga, teremos
a energia sempre fluindo em uma mesma direção.
Imagem de uma bateria e de um gráfico mostrando que a corrente se mantém
constante durante o tempo. (Figura 3)
Tensão

Tempo
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)
Tensão

Tempo

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
VOCÊ a corrente alternada de 50Hz proveniente das turbinas
SABIA? geradoras paraguaias é convertida para corrente contínua,
e posteriormente volta a ser transformada em corrente
alternada de 60Hz.

Em um sistema de corrente alternada monofásico (maioria das tomadas


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

2.1 Diodos

Os diodos são componentes geralmente usados com o intuito de definir a


movimentação dos elétrons em um circuito. Em alguns casos também são usados
com o objetivo de transformar energia elétrica em ondas eletromagnéticas. São
produzidos através de semicondutores, que são materiais que reagem de forma
diferente e controlada à passagem da corrente elétrica. (Figuras 5 e 6)

(A) (K)

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


Fonte: Autor 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 retificador


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

RELÉ
TRANSISTOR
RESISTOR

GND

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 fluxo de elétrons é bruscamente
interrompido. A bobina do relé, devido a suas características construtivas, possui
uma acentuada propriedade de INDUTÂNCIA, que faz com que o componente
tente manter o fluxo eletromagnético, elevando a tensão várias vezes. Isso pode
danificar componentes se não houver uma região de “escape” para esta energia. A
função do DIODO neste circuito é fazer com que estes elétrons fiquem circulando
pelo componente, dissipando a energia de forma graduada e controlada, sem
haver o surto de tensão no transistor, protegendo-o e aumentando sua vida útil.
Outra aplicação dos diodos é no controle de tensão, pois, devido a características
relativas aos materiais e à forma da construção, diodos podem ser utilizados para
realizar uma queda controlada de tensão, e são úteis em circuitos reguladores por
apresentarem um comportamento bastante estável e previsível. Veremos mais sobre
isso ao falar sobre DIFERENÇA DE POTENCIAL DE JUNÇÃO e sobre EFEITO ZENER.
Alguns tipos de diodos são construídos de forma a gerarem LUZ em suas
junções, algumas vezes de forma bastante intensa, como nos DIODOS LASER, e
em outros casos em luz visível ou invisível, com excelente eficiência. 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
VOCÊ linhas e colunas, que iluminam o fundo de acordo com a
imagem? Uma tela de cristal líquido posicionada entre o
SABIA? 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.

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 afirmar que os diodos são componentes constituídos de


semicondutores bastante utilizados em circuitos eletrônicos, e que podem
auxiliar no controle de tensão, no sentido da corrente, na proteção de circuitos, e
até mesmo na geração e detecção de luz.
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. (Figrua 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íficos e devido a composições diferentes, pode
apresentar reações diferentes. O processo de adição de elementos para criar
estes compostos envolvendo material semicondutor é chamado de dopagem.
Genericamente, os semicondutores podem ser divididos em TIPO P e TIPO N.
Um DIODO é justamente a junção de um condutor de tipo P e outro de tipo
N, conhecida como JUNÇÃO PN. Devido a variações realizadas no processo de
dopagem, a junção pode apresentar variações de comportamento.

VOCÊ O nome DIODO vem das palavras DI (duplo) com ELETRODO.


SABIA?

Portanto, um DIODO possui suas características definidas pelo tipo dos


SEMICONDUTORES usados na JUNÇÃO PN e a forma com que são propositadamente
contaminados com outros elementos no processo de dopagem. O nome JUNÇÃO
PN se deve ao fato de a junção ser feita usando dois materiais, sendo um com
lacunas elétricas (P - positivo) e outro com elétrons que sobram (N - negativo).
Explicando melhor, nos semicondutores tipo P e tipo N existem desequilíbrios
relativos à quantidade de elétrons em suas ligações químicas. No caso do
semicondutor tipo N existem elétrons sobrando, e no do semicondutor tipo P
existem elétrons faltando. Nestas “vagas” para elétrons nas ligações químicas do
semicondutor P chamamos de lacunas.
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 fluam no circuito, havendo corrente elétrica.
Já quando submetemos o terminal de tipo P de um diodo (ANODO) a uma
tensão NEGATIVA, e o terminal do tipo N (CATODO) a uma tensão POSITIVA,
temos a polarização REVERSA, e 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 significativa no circuito.
Portanto, em um sentido da corrente o diodo convencional se comporta como
condutor, e em outro, se comporta como isolante. (Figuras 11 e 12)

CATODO ANODO ANODO CATODO


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

+
+

CARGA
CARGA

alcalina
DC DC

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

A A

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

AUTO POWER OFF


AUTO POWER OFF

-
-
+
+
-
-
CAT ll
CAT ll

20A mA COM VΩHz


20A mA COM VΩHz

INVERSAMENTE POLARIZADO DIRETAMENTE POLARIZADO

Figura 11 -  Inversamente Polarizado Figura 12 -  Diretamente Polarizado


Fonte: Autor Fonte: Autor

Na figura 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 fluxo 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 dificuldades em passar pela junção, assumindo um
comportamento isolante. (Figura 14)

ANODO CATODO

- - - - - - - -++ -- + + + + + + + + +
+P N-
+ --
+ +
Figura 14 -  Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de repulsão na junção,
interrompendo o fluxo de elétrons
Fonte: 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 retificador).

O diodo 1N4007 é um diodo retificador bastante comum,


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

Algumas características podem variar de diodo para diodo, mudando também


seu comportamento e sua aplicação. Conforme esta relação de aplicação e
comportamento, podemos enumerar os diodos conforme a lista que segue.
• Diodo retificador 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)

(A) (K)

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


Fonte: Autor

Os diodos retificadores 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 retificador pode ser utilizado sozinho ou combinado a outros
diodos em circuitos conhecidos como “pontes retificadoras”, para limitar o “vai
e volta” de elétrons existentes na rede de corrente alternada. Nestes circuitos,
a corrente alternada (hora positiva, hora negativa) é transformada em corrente
contínua (pulsos somente positivos). (Figura 16)
DIODOS
~ ~ RETIFICADORES
Corrente - + +
alternada Corrente
~
~ FILTRO contínua
-
Figura 16 -  Conversor de corrente alternada para corrente contínua, com retificador de onda completa
Fonte: Autor

Na figura, notamos a presença de quatro diodos retificadores ligados em uma


espécie de losângulo, sendo que dois vértices possuem um anodo e um catodo
cada, e dois vértices possuem somente anodo ou somente catodo. Nos vértices
que possuem anodo e catodo, é ligada a entrada de CA (Corrente Alternada),
lembrando que em CA existe a variação da tensão de positiva para negativa várias
vezes por segundo. Quando a tensão for positiva, ela escolhe a passagem pelo
diodo cujo anodo esteja conectado, e quando for negativa, a corrente passará
pelo diodo cujo catodo esteja conectado. 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)
V DIODOS
+ ~ ~ RETIFICADORES V
Corrente - +
+ +
- alternada Corrente
~
~ contínua -
-
V DIODOS
+ ~ ~ RETIFICADORES V
Corrente - + + +
- alternada Corrente
~
~ contínua -
-
Figura 17 -  Ponte retificadora 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 retificador, a tensão na


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

Diferencial
Encapsu- Nome(código) Tensão COrrente Corrente
de Potencial
lamento do DIODO reversa (V) direta de Pico
de Junção

1N4001 50 1A 50A < 1.1V


1N4002 100
1N4003 200
SOD - 18 1N4004 400
1N4005 600
1N4006 800
1N4007 1000
1N5400 50 3A 200A < 1.2V
1N5401 100
1N5402 200
1N5403 300
1N5404 400
1N5405 500
DO-04 1N5406 600
1N5407 800
1N5408 1000
1N3879 50 6A 75A < 1.4V
1N3881 200
1N3882 300
1N3883 400
BY126 650 1,75A 50A < 1.5V
SOD-18
BY127 1250
Fonte: Autor, baseado em ESQUEMAS, 2012.
AUTOMAÇÃO INDUSTRIAL
32

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


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

2.1.2 Diodo zener

É um diodo que apresenta um comportamento similar a um diodo convencional


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

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


Fonte: Autor

Em um diodo convencional, ao ultrapassamos a tensão reversa limite, a junção


é danificada; já em um diodo zener podemos obter o chamado “efeito avalanche”,
sem causar dano ao componente.

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

Quando um diodo zener é reversamente polarizado até uma tensão específica


(Vz), a corrente é praticamente nula, mas ao atingir esta tensão o diodo passa a
permitir passagem de corrente. (Figura 19)
(+) 3V (+) 6V (+) 12V
_ _ _
0.00 +8.77 +65.4
+

+
+

Amps Amps Amps

+ + +

+3.00 D1 +5.12 D1 +5.46 D1


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

+ + +

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

Figura 19 -  Circuito
Fonte: Autor
2 Eletrônica Analógica
33

No circuito acima, estão ligados em série um diodo zener reversamente


polarizado, e uma carga representada pelo resistor de 100 ohms. 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ífica utilizarem
este tipo de diodo para criar um referencial de tensão estável. (Figura 20)

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

Figura 20 -  Diodo 1N746


Fonte: Autor

Na figura 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 1W
1N747 3,6 0,4 1N5228 3,9 0,5 1N4752 33 1W
1N748 3,9 0,4 1N5229 4,3 0,5 1N4753 36 1W
1N749 4,3 0,4 1N5230 4,7 0,5 1N4754 39 1W
1N750 4,7 0,4 1N5231 5,1 0,5 1N4755 43 1W
1N751 5,1 0,4 1N5232 5,6 0,5 1N4756 47 1W
1N752 5,6 0,4 1N5234 6,2 0,5 1N4757 51 1W
1N753 6,2 0,4 1N5235 6,8 0,5 1N4758 56 1W
1N754 6,8 0,4 1N5236 7,5 0,5 1N4759 62 1W
1N755 7,5 0,4 1N5237 8,2 0,5 1N4760 68 1W
1N756 8,2 0,4 1N5239 9,1 0,5 1N4761 75 1W
1N757 9,1 0,4 1N5240 10 0,5 1N4762 82 1W
1N758 10 0,4 1N5242 12 0,5 1N4763 91 1W
1N759 12 0,4 1N5245 15 0,5 1N4764 100 1W
1N957 6,8 0,4 1N5246 16 0,5 1N5333 3,3 5W
1N958 7,5 0,4 1N5248 18 0,5 1N5334 3,6 5W
1N959 8,2 0,4 1N5250 20 0,5 1N5335 3,9 5W
1N960 9,1 0,4 1N5251 22 0,5 1N5336 4,3 5W
1N961 10 0,4 1N5252 24 0,5 1N5337 4,7 5W
1N962 11 0,4 1N5254 27 0,5 1N5338 5,1 5W
1N963 12 0,4 1N5256 30 0,5 1N5339 5,6 5W
1N964 13 0,4 1N5257 33 0,5 1N5340 6,0 5W
1N965 15 0,4 1N5258 36 0,5 1N5341 6,2 5W
1N966 16 0,4 1N5259 39 0,5 1N5342 6,8 5W
1N967 18 0,4 1N5260 43 0,5 1N5343 7,5 5W
1N968 20 0,4 1N5261 47 0,5 1N5344 8,2 5W
1N969 22 0,4 1N5262 51 0,5 1N5345 8,7 5W
1N970 24 0,4 1N5263 56 0,5 1N5346 9,1 5W
1N971 27 0,4 1N5265 62 0,5 1N5347 10 5W
1N972 30 0,4 1N5266 68 0,5 1N5348 11 5W
1N973 33 0,4 1N5267 75 0,5 1N5349 12 5W
1N974 36 0,4 1N5268 82 0,5 1N5350 13 5W
1N975 39 0,4 1N5270 91 0,5 1N5351 14 5W
1N976 43 0,4 1N5271 100 0,5 1N5352 15 5W
1N977 47 0,4 1N4728 3,3 1W 1N5353 16 5W
1N978 51 0,4 1N4729 3,6 1W 1N5354 17 5W
1N979 56 0,4 1N4730 3,9 1W 1N5355 18 5W
1N980 62 0,4 1N4731 4,3 1W 1N5356 19 5W
1N981 68 0,4 1N4732 4,7 1W 1N5357 20 5W
1N982 75 0,4 1N4733 5,1 1W 1N5358 22 5W
1N983 82 0,4 1N4734 5,6 1W 1N5359 24 5W
1N984 91 0,4 1N4735 6,2 1W 1N5361 27 5W
1N985 100 0,4 1N4736 6,8 1W 1N5362 28 5W
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 1W 1N5363 30 5W
1N987 120 0,4 1N4738 8,2 1W 1N5364 33 5W
1N988 130 0,4 1N4739 9,1 1W 1N5365 36 5W
1N989 150 0,4 1N4740 10 1W 1N5366 39 5W
1N990 160 0,4 1N4742 12 1W 1N5367 43 5W
1N991 180 0,4 1N4743 13 1W 1N5368 47 5W
1N992 200 0,4 1N4744 15 1W 1N5369 51 5W
1N5221 2,4 0,5 1N4745 16 1W 1N5370 56 5W
1N5222 2,5 0,5 1N4746 18 1W 1N5371 60 5W
1N5223 2,7 0,5 1N4747 20 1W 1N5372 62 5W
1N5224 2,8 0,5 1N4748 22 1W 1N5373 68 5W
1N5225 3,0 0,5 1N4749 24 1W 1N5374 75 5W
1N5226 3,3 0,5 1N4750 27 1W
Fonte: elbest, 2011

2.1.3 Diodo emissor de luz

É um dos tipos mais conhecidos de diodo, embora seja costumeiramente


conhecido pelo termo LED, que significa Light Emitting Diode – diodo emissor
de luz. Dependendo do tipo de dopagem e do material utilizado na junção, é
possível obter luz de diferentes cores. (Figura 21)

Figura 21 -  Símbolo de LED, segundo norma IEEE 315, 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 significativamente o custo destes diodos,
e modelos cada vez mais poderosos têm sido utilizados, sendo hoje empregados
também em iluminação predial e automotiva.
A junção de um DIODO sempre tende a emitir algum tipo de energia, resultando
em leve queda de tensão no circuito. Na maioria dos diodos retificadores e zener
já estudados, esta energia é transformada em calor. No caso dos LEDs, a liberação
de energia se dá pela emissão de ondas eletromagnéticas (luz) em cores definidas
pela junção e a dopagem do semicondutor.
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
VOCÊ contrário dos displays de cristal líquido, os displays OLED
SABIA? (Organic LED) não precisam de luz de fundo, pois cada
ponto emite sua própria luz.

Emissão de Luz

Diodo

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

Muitos dispositivos eletrônicos utilizam LEDs como sinalizadores


SAIBA visuais, porém só recentemente os LEDs começaram a ser
MAIS aplicados em iluminação. Pesquise sobre as vantagens e
desvantagens da iluminação a LED residencial e automotiva.

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 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
-

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


SAIBA segmentos dos tipos anodo comum e catodo comum, e sobre o
MAIS custo médio de um dígito numérico com 10 a 20 mm de altura.

CASOS E RELATOS

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


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

Led emitindo
pulsos de luz
infravermelha
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
VOCÊ de segundo? Ao se pressionar uma tecla do controle,
SABIA? são enviados pulsos longos e curtos (zeros e uns) que,
combinados, geram a sequência binária que identifica a
função desejada.

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


equipamento possui um “sensor” capaz de captar os pulsos de luz gerados pelo
controle remoto. Este sensor geralmente é construído utilizando-se um fotodiodo,
devido a sua sensibilidade e à velocidade de resposta.
Em equipamentos de segurança usados em processos de Automação
Industrial, como cortinas óticas de segurança ou sensores óticos, 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ífica que é avaliada
pelos circuitos de processamento ligados ao fotodiodo, permitindo que seja
possível separar o sinal real do sinal de interferência.
Em algumas aplicações que exigem mais corrente costumamos utilizar
um FOTOTRANSISTOR no lugar do FOTODIODO. Neste caso, o princípio de
funcionamento é semelhante, porém a corrente de trabalho do componente é
maior e sua velocidade de acionamento pode ser significativamente menor.

2.1.5 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 retificador
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.

DC

POWER PK HOLD B/L DC / AC

AUTO POWER OFF

+
-
CAT ll

20A mA COM VΩHz

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 34)

DC
DC DC
DC

AA AA

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

AUTO
AUTOPOWER
POWEROFF
OFF AUTO POWER
AUTO OFF
POWER OFF

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

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

Figura 33 -  Diodo diretamente polarizado Figura 34 -  Diodo inversamente polarizado


Fonte: Autor 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 infinita 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, danificado.
Dica: Faça o teste em diodos emissores de luz (LEDs), de preferência da cor
vermelha, que apresentam uma menor tensão de trabalho. Observe o que ocorre
com o LED durante os testes.

2.1.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

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

1 2 3

Figura 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 5V para 24V.

24V ligação entre 5V


24V + (GND) 5V +
as fontes (GND)

4k7
uC

SENSOR
1k2

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) 5V
(GND) 5V +

1k2 10k uC

SENSOR

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 danifiquem o microcontrolador,
aumentando a robustez do sistema.
Portanto, usamos optoacopladores com o intuito de conectar sistemas com
diferentes níveis de tensão e fontes de alimentação, e também com o objetivo de
proteger o sistema de problemas gerados por ruídos eletromagnéticos.

2.2 Acionamentos a transistor

Em um sistema automatizado, os SENSORES têm o objetivo de “sentir”


as características de funcionamento de um equipamento, e os ATUADORES
são responsáveis por atuar, gerando um efeito específico. Alguns exemplos
de atuadores são os motores elétricos, cilindros pneumáticos e hidráulicos,
eletroválvulas, sinalizadores, relés e contactoras. (Figura 38)

Processamento
Sensores
Equipamento
Controlador
+
ambiente Atuadores

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 definirão
como o equipamento deve funcionar.
Para a construção do CONTROLADOR de um sistema automatizado existem
diversas estratégias, que vão desde estratégias mais simples, como dispositivos
eletromecânicos (lógica de relés), até mais complexas, como sistemas
computacionais com vários processadores interligados.
Em casos que envolvem circuitos de controle mais complexos, os dispositivos
eletrônicos compostos basicamente de semicondutores trabalham utilizando
limites de tensão e corrente que os impedem de acionar diretamente um atuador.
Por exemplo, um microcontrolador tem saídas digitais limitadas a poucas dezenas
de miliampères, geralmente, com níveis de tensão que não ultrapassam 5 volts.
Isso se deve ao fato de, internamente, o microcontrolador ser composto de
uma quantidade enorme de transistores com alguns nanômetros (bilionésimos
de metro), onde complexas e numerosas redes de circuitos são construídas em
pastilhas minúsculas.
Com a redução do tamanho dado a estes componentes, há redução no custo,
aumento de velocidade, redução de tamanho e de consumo de energia. O
problema é que estes semicondutores, como no caso do microcontrolador, ficam
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
significativas. 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 filamentos 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 amplificar os sinais elétricos, aumentando a tensão e a corrente para uso no
controle de atuadores.
Outra aplicação bastante comum de transistores é no controle de tensão e
corrente em fontes de alimentação. Em sistemas digitais, geralmente utilizamos
o transistor como uma “chave eletrônica”, fazendo com que tenha dois
comportamentos distintos: conduzir ou não conduzir elétrons. Porém, o transistor
é bastante versátil e pode ser usado também com o objetivo de controlar a
corrente, permitindo que mais ou menos elétrons passem pelo condutor 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 ficar muito abaixo
da desejada podemos ter variações indesejadas no funcionamento do circuito que
será alimentado. Em casos como estes, as fontes possuem estratégias de regulação
de tensão, fazendo com que ela se adapte ao circuito alimentado dentro de faixas
predeterminadas e mantendo a tensão desejada na saída, não importando se a
corrente aumenta ou diminui em um determinado espaço de tempo.

2.2.1 Características e aplicações

Como já citado anteriormente, as duas principais aplicações de transistores são


seu uso como CHAVE (ligando e desligando um circuito) ou como estratégia de
CONTROLE DE CORRENTE (dosando a passagem da corrente elétrica em um circuito).
No uso como chave eletrônica, o transistor oferece uma resposta muito rápida e
de baixo custo se comparado à estratégias eletromecânicas como relés; além isso,
o acionamento da carga pode ser feito com um sinal mínimo de corrente e tensão.
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


VOCÊ Mundial, e que foi influenciada pelas pesquisas realizadas
SABIA? durante a Guerra, onde se estudou o uso de cristais de
germânio e silício para a construção de detectores de radar.

Anteriormente afirmamos que a eletrônica é a ciência que estuda a forma de


controlar a energia elétrica. Neste caso, o transistor é, sem sombra de dúvidas, um
dos principais instrumentos de controle utilizados.

2.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 P N P N P

Emissor Base Coletor


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 fina camada com uma dopagem média; através dela
POLARIZAMOS o transistor, permitindo que as cargas elétricas fluam. Entendemos
por cargas elétricas as cargas positivas (lacunas) ou negativas (elétrons),
dependendo do tipo do transistor (NPN ou PNP).
O COLETOR é uma camada levemente dopada e tem a função de coletar as
cargas elétricas.

O transistor foi inventado em 1947 pelos pesquisadores


VOCÊ da Bell Telephones, nos EUA, para substituir as válvulas
SABIA? eletrônicas nas aplicações de telefonia.
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
N P N
base
NPN

emissor

coletor
base
emissor

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)

NPN
carga

coletor corrente
maior
base

corrente
menor emissor

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)

emissor
P N P
base
PNP

emissor

coletor
base
coletor

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)

PNP

corrente emissor
menor
corrente
base maior

coletor
carga

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 NÃO POLARIZADO (como uma chave aberta).
De forma simplificada, 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.

atuador atuador
(desligado) (ligado)

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

C C
R2 B TRANSISTOR SINAL 5V + R2 B TRANSISTOR
0V + 0.00 +3.28
Amps
1K2 NPN (MAX 0,02A) Amps
1K2 NPN
R3 E R3 E
20K 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
definir o nível de tensão de 0V na base, quando o sinal estiver em nível baixo. Sem
ele, pequenas oscilações de corrente, fugas na junção do transistor e até mesmo
ruídos eletromagnéticos gerariam pequenas correntes elétricas que poderiam
acionar indevidamente o transistor, mesmo em curtos espaços de tempo. Para
evitar problemas com ruídos, este resistor (R3) possibilita um caminho alternativo
para os elétrons a fim de estabilizar sua base. Como este resistor interfere na
corrente aplicada na base, seu valor não pode ser muito baixo.
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 5V
R3 R3
20K 20K
CONTROLE
CONTROLE

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

Figura 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

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

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

4 3 4
123

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

1 2 3 1 2 3 1 2 34 5

TO 262/TO 251 SOT199


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

1 2

1 2 3 1 2 3
1 2 3

ISO 218/220 SOT186 ISO 221 ISO126

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

Figura 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 Encapsulamento Tensão
Ganho ( β )
máxima máxima
COLETOR- COLETOR-
EMISSOR (A) EMISSOR (V)
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 Encapsulamento Tensão
Ganho ( β )
máxima máxima
COLETOR- COLETOR-
EMISSOR (A) EMISSOR (V)
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- 1 sot-23 40 300
T2222A
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 superficial.


Consulte a documentação (folha de dados, ou “datasheet”) do componente para
informações atualizadas.

COMO TESTAR TRANSISTORES BIPOLARES

1° passo: identificar os pinos e o tipo do transistor.


Embora haja certa padronização em relação ao encapsulamento, é importante
identificar 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 significativas, pode haver
variações de um para outro fabricante. :
Por hora, vamos nos ater no fato de o transistor a ser testado ser PNP ou NPN,
e quais são os pinos de emissor, base e coletor. (Figura 49)

NPN

Figura 49 -  Datasheet do transistor pesquisado


Fonte: Autor

2° passo: ferramenta
Para verificar o transistor bipolar, podemos usar um multímetro digital na
posição de teste de diodo. (Figura 50)

Ω
mV mA
A
V

V
µA
OFF

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.

infinito infinito infinito


DC DC DC

C C
A A A

POWER PK HOLD B/L DC / AC


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

AUTO POWER OFF


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

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

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


DC DC DC

C C
A A A

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


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

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

Figura 51 -  Teste transistor NPN


Fonte: Autor

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

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


DC DC DC

POWER PK HOLD B/L DC / AC


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

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

infinito infinito infinito


DC DC DC

POWER PK HOLD B/L DC / AC


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

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

Figura 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

Caso um transistor esteja em curto, a provável causa é dada


FIQUE ao excesso de corrente coletor - emissor ou base – emissor.
ALERTA 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 Figrua 53:

(NPN) C (PNP) Q2 E
Q1
B B
Q1

Q2
E C

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 configuração de transistores pode apresentar instabilidade em altas
frequências (faixa dos MHz), mas é uma excelente alternativa para acionamentos de
atuadores devido ao ganho elevado (geralmente superior a 1000).

2.2.4 Transistores de efeito de campo

Nos transistores bipolares anteriormente estudados, o fator que controla


a passagem da corrente é dado pela própria corrente elétrica entre a base e o
emissor e é chamado de transistor bipolar devido às características de suas
junções sobrepostas (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 eficiência do circuito.
Os transistores de efeito de campo, também conhecidos como transistores
unipolares, utilizam um campo elétrico proporcionado por um sinal de tensão, sem
necessidade de correntes significativas para seu controle. São assim chamados,
porque a corrente elétrica é determinada por um único tipo de portador, podendo
ser ELÉTRONS (N-Channel) ou LACUNAS (P-Channel).
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 Effect Transistor (transistor de efeito de campo de junção)
e o MOSFET - Metal Oxide Semiconductor Field Effect Transistor (Transistor de
efeito de campo de óxido de metal). Este último ainda é dividido em outras duas
subcategorias, conhecidas como MOSFET tipo crescimento ou intensificação e
MOSFET tipo depleção.
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) dreno(D)
canal N

canal P

porta(G) porta(G)

fonte(S) fonte(S)
D D

N P
G P P G N N

S S
Figura 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 fluxo
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


VOCÊ amplificadores, fontes de corrente, circuitos recortadores
SABIA? (ou chopper) e chaves analógicas.

O JFET é empregado em aplicações de pequenos sinais, não sendo o transistor


de efeito de campo mais indicado para acionamentos de dispositivos. Para estas
aplicações, é recomendado o uso dos MOSFETs.

MOS – Metal-Óxido-Semicondutor

Outro transistor de efeito de campo é do tipo Metal-Óxido-Semicondutor


(MOS). Ele é atualmente um dos dispositivos eletrônicos mais importantes. Graças
ao desenvolvimento da tecnologia MOS, é possível obter a miniaturização dos
circuitos, ampliando a capacidade de processamento de informações.
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:

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

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

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

D D

SUB SUB

G G

S S

CANAL N CANAL P

Figura 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 (VDS), a
condução de corrente entre esses terminais dependerá da tensão aplicada na porta
(VGS). Se a tensão aplicada ao terminal de porta for positiva e grande o suficiente,
atrairá cargas negativas para a superfície do semicondutor tipo P (substrato) abaixo
dele. Aumentando ainda mais a tensão aplicada na porta, haverá uma camada de
elétrons formando um canal ligando os semicondutores tipo N do dreno e da fonte,
possibilitando a condução de corrente entre esses terminais.
Analogamente, nos transistores PMOS deve ser aplicada uma tensão negativa no
terminal de porta, a qual atrairá cargas positivas para a superfície do semicondutor
tipo N, induzindo a formação de uma camada de lacunas (canal) entre o dreno e a
fonte, que permitirá a condução de corrente entre eles.
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:

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

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

MOSFET canal N MOSFET canal P

D D

SUB SUB

G G

S S

CANAL N CANAL P

Figura 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 definir o sentido de


rotação do motor. (Figura 58)
Chave 2 Chave 1
Chave 2 Chave1

Chave 4 Chave 3

Chave 4 Chave 3
+ +
_ _
Chave 2 Chave 1

Chave 4 Chave 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.

na
bobina

nf

C
+
_
na
bobina

nf

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 amplificado o suficiente para poder acionar os relés.
Usando transistores no lugar das chaves, podemos ter um circuito mais
leve, de menor custo e que permite acionamentos 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.

+V

Q1 Q3
D1 D3
Q2 M Q4
Controle
D2 D4

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.

Em uma PONTE H, é importante avaliar a implementação


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

Pesquise pelo termo HALF BRIDGE e sua aplicação no


SAIBA controle de motores de corrente contínua. Verifique se existe
MAIS algum circuito integrado que possa substituir quatro ou mais
transistores para acionamentos em ponte H.

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 D

B
G

E
S
carga NÃO! carga

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

+V

+V
carga
E
C
B
NÃO!
B

C
E
carga

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 flui normalmente, o diodo não conduz,
mas quando o fluxo de corrente é cortado, o indutor gera uma tensão inversa muito
alta que seria capaz de destruir o transistor se não fosse dissipada pelo diodo.
+V

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

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

Figura 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

NMOS PMOS

S G G D
B D S B

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

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
amplificadores operacionais ou em radiofrequência, neste último caso sendo
usada em frequências superiores a GHz.
Para o projeto de circuitos com transistores CMOS utilizamos os seguintes
símbolos para representar os transistores PMOS e NMOS: (Figura 66)
D D

G G

S S

D D

G G

S S
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 (IH).
São componentes construídos por um mínimo de três junções e de quatro
elementos semicondutores (PNPN) de forma a PERMITIR ou BLOQUEAR a
passagem da corrente elétrica.
Devido a características apropriadas para o chaveamento (LIGA e DESLIGA), e sua
característica biestável, aliados à possibilidade de uso em grandes níveis de tensão
e corrente, os tiristores são comumente utilizados em circuitos de chaveamento
para controle de potência, em fontes e equipamento de controle de motores e
aquecimento. Podemos encontrar tiristores em sistemas controlados de retificação
de corrente alternada, em sistemas de controle de iluminação (dimmer), inversores
de frequência e relés de estado sólido. Devido à sua simples e rápida ação biestável,
os tiristores também são empregados em aplicações de segurança.
Conforme a construção e a forma de disparo, os tiristores são classificados
conforme a Figura 67:
SCR TRIAC SUS ASBS
(Silicon Controlled Rectifier) (Triode AC Switch) (Silicon Unilateral Switch) (Assymmetrical Silicon Bilateral
A M1 A Switch) M1

G G

G G

K M2 K M2

PUT LASCAR SCS GTO


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

G2
G

G G G

K K K
K

SBS DIAC LAPUT LASCS


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

G
G2

G1

M2 A2 K
K

Figura 67 -  Tipos de tiristores


Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
68

MODOS DE DISPARO:

Os tiristores são controlados por uma ação específica que faz com que mudem
de ESTADO DE BLOQUEIO para ESTADO CONDUTIVO. 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ífico, 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 suficiente é 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
VOCÊ elétrico durante comutações, e velocidade muito mais
SABIA? elevada? Este componente, bastante utilizado em sistemas
de automação, utiliza tiristores como componente de
comutação da parte de potência.

SAIBA Pesquisando por relés de estado sólido e optoacopladores


MAIS baseados em tiristores.

2.3.1 SCR

SCR significa SILICON CONTROLLED RECTIFIER – Retificador Controlado de


Silício. Assim como a maioria dos tiristores, um SCR possui dois terminais nominados
ANODO e CATODO, que podem ser direta ou inversamente polarizados.
Para permitir a passagem de corrente, um SCR 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

ANODO CATODO

PORTA
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 definamos o
momento que ele deve passar a conduzir quando diretamente polarizado.
De forma genérica, podemos associar um SCR à ligação de dois transistores
bipolares, segundo a Figura 69:
ANODO
ANODO
PNP

PORTA NPN
PORTA

CATODO
CATODO

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


Fonte: Autor

Apresentamos agora um gráfico que representa a curva característica VxA de


um SCR, que demonstra a relação da tensão de polarização direta com a corrente.
Corrente direta
Característica
(A) de condução direta
Intensidade da corrente
de disparo
Ig2 > Ig1

Intensidade da corrente
Ig1>0

Ig= 0

de manutenção
(IH)

Tensão Inversa Tensão direta


VT Corrente de fuga VRO (V)

Corrente de fuga

Zona de ruptura inversa


(dano no componente) Corrente inversa

Figura 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 significa 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 fica abaixo de um nível mínimo.
O efeito biestável do DIAC em relação à tensão é similar a algumas lâmpadas
NEON, e é utilizado em circuitos geralmente com o intuito de implementar
mecanismos analógicos de disparo de baixo custo.
No próximo tópico há um exemplo de circuito de um DIMMER (para controle
de luminosidade em lâmpadas incandescentes) onde um DIAC é usado para
promover o disparo controlado de outro tiristor (TRIAC) a cada semiciclo da rede
de corrente alternada.

2.3.3 TRIAC

O nome TRIAC vem de “Triode for Alternating Current” e significa TRIODO para
CORRENTE ALTERNADA.
De forma geral, o TRIAC é um DIAC com terminal para disparo (GATE). Enquanto
em um DIAC o que determina o momento de disparo é a tensão entre os terminais,
em um TRIAC isso é determinado principalmente pela corrente do terminal GATE,
que chamaremos de corrente de gatilho.
O TRIAC é constituído de dois SCRs em uma configuração antiparalela (paralelo,
mas em sentidos opostos).
Uma aplicação interessante de um TRIAC é em circuitos detectores de zero
para acionamento de relés ou contactoras que comutam cargas elevadas em
corrente alternada.
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 fim 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 V+
F
220K (p/110V) V- t(ms)
R1 RV1= 470K (p/220V)
CARGA
RV1 V+
DIAC
C1 = C2 = 100nF / 400V
220V TRIAC R2 V- t(ms)
TRIAC = TIC226D
V+
N C1 C2
V- t(ms)
chave Efeito do triac
“ceifando” a curva
da corrente alternada

Figura 72 -  Circuito de um dimmer


Fonte: Autor

TRIACs e DIACs são tipicamente utilizados em circuitos de


FIQUE corrente alternada, em tensões de 110V ou superiores. Sempre
ALERTA 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 finitos e
definidos, 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 infinitas
representações possíveis. Um sinal ANALÓGICO pode representar uma informação
através de uma variação em uma grandeza. Em sistemas elétricos, geralmente
isso é representado 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 infinitas informações
dentro deste limite. (Figura 73)

INFINITOS VALORES

DC

V
,
POWER PK HOLD B/L DC / AC

AUTO POWER OFF

(mV)

+
-
CAT ll

20A mA COM VΩHz

- + 0C
termopar

Figura 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


SAIBA uma pequena tensão (geralmente em milésimos de volts)
MAIS que varia proporcionalmente à temperatura.

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


determinado intervalo. Um sinal analógico é a representação desta informação
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 fios chamado
de primário, e este campo elétrico, por sua vez, é transformado novamente em
energia elétrica no enrolamento secundário.
Da mesma forma, fios condutores de sinal que passam próximos a campos elétricos
acabam sofrendo interferências que podem ser prejudiciais à informação representada.

Uma das primeiras pessoas que transformou sinais elétricos


em ondas eletromagnéticas para uso em comunicações
VOCÊ de rádio foi o Padre Roberto Landell de Moura, um padre
SABIA? brasileiro de Porto Alegre que, na década de 1890, realizava
experiências de comunicação através de ondas de rádio.

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


relacionado ao envio de ondas eletromagnéticas, como equipamentos de
radiocomunicação, iluminação e aquecimento. Existem outros que geram ondas
eletromagnéticas como subproduto indesejável devido ao seu princípio de
funcionamento, como reatores de luminárias, transformadores, motores elétricos
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
VOCÊ canal de troca de dados entre vários sensores e atuadores,
SABIA? diminuindo o custo e facilitando a implantação de sistemas
de automação.

Portanto, ao utilizar SINAIS digitais e analógicos na automação, enfrentaremos


problemas relativos a:
• ruídos: interferência indesejada nos sinais elétricos,
• níveis de tensão e corrente limitados que precisam ser amplificados 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, amplificando níveis de
tensão, comparando sinais, somando ou subtraindo tais sinais elétricos, além de
gerar e filtrar sinais de frequência.

2.4.1 Amplificador operacional

O amplificador operacional, também conhecido como OPAMP ou AMPOP, é um


componente eletrônico com velocidade de resposta bastante elevada que pode ser
facilmente adaptado a diversas aplicações na eletrônica, geralmente relacionadas
ao condicionamento de sinais. Através de alguns poucos componentes externos, é
possível aplicar um amplificador operacional em um circuito com comportamento
de filtro, de amplificador, de comparador, de somador, de subtrator ou em outras
funções, variando conforme características do componente e, principalmente, em
função das características do circuito de realimentação.
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ífico. No caso dos amplificadores operacionais, a forma como a
realimentação é ligada determina a função do componente no circuito.
Abaixo, a Figura 75 representa um amplificador operacional e um circuito
integrado LM741 no encapsulamento DIP.
V+

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

Pesquise sobre os encapsulamentos possíveis para os


SAIBA amplificadores operacionais, observando quanto à
MAIS tecnologia de montagem e à quantidade de amplificadores
em um mesmo CI.

Muitos autores iniciam o conteúdo de amplificadores operacionais propondo o


modelo de um OPAMP IDEAL, tendo este componente as características que seguem:
1) Possui ganho de tensão infinito.
2) A impedância de entrada é infinita, 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 eficiência para qualquer frequência.
Porém, devido a fatores construtivos, os amplificadores operacionais
apresentam um comportamento diferente do ideal, havendo vários modelos no
mercado que podem ser selecionados tendo em vista a aplicação desejada.
Para a maioria das aplicações há um modelo de amplificador operacional
que se comporta próximo ao OPAMP ideal, sendo importante pesquisar sobre as
diferentes características de amplificadores operacionais existentes no mercado.

Pesquisando sobre características de diferentes modelos


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

Em uma primeira configuração, vamos aplicar um OPAMP genérico para AMPLIFICAR


um sinal de baixo nível de tensão para posterior uso em um sistema de controle.
AUTOMAÇÃO INDUSTRIAL
76

A configuração que segue é conhecida como AMPLIFICADOR INVERSOR, utilizada


como uma configuração bastante comum para amplificador de ganho constante.
Este circuito não é recomendado para amplificar sinais limitados em corrente
devido à baixa impedância do circuito causado, principalmente pelo resistor Rf.

VO
Vi
Ri
Vi VO
Rf

ganho = VO =
Rf
Vi Ri
Figura 76 -  Amplificador inversor. No gráfico em vermelho, o sinal de entrada (Vi),
e em azul o sinal de saída, já amplificado e invertido (Vo).
Fonte: Autor

Para sinais de entrada débeis (de baixíssima corrente) é recomendada a configuraçã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, figura de um amplificador não inversor. Observe a mudança na fórmula
para cálculo do ganho para esta configuração, que é dada por Av = 1 + (Rf / Ri).
Aplicação: Aumentar a amplitude de um sinal elétrico para um ganho definido.
Exemplo: Um termopar conectado a um sistema de controle.
Vi

VO
Vi
Ri
VO
Rf

Rf
ganho = 1+
Ri
Figura 77 -  Amplificador. No gráfico em vermelho, o sinal de entrada (Vi),
e em azul o sinal de saída, já amplificado (Vo).
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 eficiê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ífica. No momento, não nos aprofundaremos
neste assunto, deixando para explicar melhor no capítulo de sensores.
O importante é observar que em função do tipo e das dimensões da junção,
um termopar gera um sinal com tensão e corrente bastante baixas e que devem
ser amplificados para o aumento da robustez do sinal, pois caso contrário o sinal
poderia ser facilmente alterado por fatores externos indesejáveis, como ruído
eletromagnético, resistência de condutores etc.
2 Eletrônica Analógica
77

Para facilitar o entendimento sobre o uso de amplificadores operacionais na


automação, vamos estudar o equipamento abaixo, propondo algumas estratégias
de controle utilizando eletrônica analógica através de amplificadores operacionais.

aquecedor
sinal 0...48,8 mV

CONTROLE
220V relé

0V ou 24V, 120 mA

Figura 78 -  Tanque de fluido


Fonte: Autor

Um tanque de fluí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 amplificador operacional segundo o esquema que segue:

5V
VO
aquecedor Ri

220V relé
1K 5V
Rf

1M
OPAMP não inversor

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

Figura 79 -  Tanque de fluido 1


Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
78

Devida à configuração de ganho 1001, a tensão de 2,5 mV (limite para o controle


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

2.4.2 Amplificador operacional como comparador

Em um circuito comparador, o objetivo é realizar a comparação entre dois


sinais distintos, obtendo uma saída que indica se o primeiro sinal é maior ou
menor que o segundo.
No exemplo anterior havia um sinal que deveria ser comparado com o valor
da tensão limite de 2,5025V para obtermos a informação necessária relativa ao
controle do aquecedor.
Neste caso, dado que já temos o sinal a ser comparado, precisamos gerar um
sinal fixo o mais próximo possível desta tensão.
Usando um divisor de tensão, 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.

Vin5V
R1

1k2

Vout
2,5V

1k2
R2

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:
Vout = Vin . 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 amplificação com
esta referência. É importante lembrar que o divisor de tensão acima gera uma tensão
muito próxima, com uma variação inerente à precisão dos componentes utilizados.
Podemos montar o circuito que segue: (Figura 81)
amplificador Vin5V

5V 1K2

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

220V relé
1K 5V
Vi
Rf
VO = 5V quando Vi < 2,5V
1M 0V quando Vi > 2,5V
Figura 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 danificar componentes ou partes
do circuito devido ao excessivo LIGA e DESLIGA intermitente. Em outras palavras, a
saída do circuito comparador ficará muito instável quando as entradas do OPAMP
comparador estiverem com valores muito próximos.
Neste caso, podemos configurar o circuito comparador na forma de um circuito
“Schmitt trigger”, ou em português, um “disparador Schmitt”, adicionando um
comportamento que irá gerar estabilidade ao sistema.
Esquema de um disparador Schmitt junto ao gráfico que demonstra o
comportamento da saída em função do sinal de entrada. (Figura 82)
Vref
R3
Vc
R1 Vc ‘ Vi
Vsup:V +
(s)
Vc
V+
V0
V0
R2 Vi
V0 = 0 V0 = V +
quando sinal de quando sinal de
entrada ficar acima entrada ficar
Vinf: V - de Vc abaixo de Vc’.

Figura 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. À diferença entre duas saídas chamamos de HISTERESE.
Ela consiste em uma zona de transição sem efeitos, pois as variações ocorridas
neste intervalo não geram mudanças no estado da saída do comparador.
De forma mais específica, HISTERESE significa RETARDO, mas a utilização deste
termo na automação industrial é referente a uma área neutra, onde um estímulo
externo não causa efeito na saída.
Como R1, R2 e R3 são dimensionados?
Primeiro precisamos calcular a resistência RTOT, dada pelo cálculo:
RTOT = 1 / (1/R1 + 1/R2 + 1/R3)
Posteriormente, podemos calcular A e B, dados pela fórmula:
A = VREF . RTOT / R1
B = VSUP . RTOT / R3
Finalmente, obtemos os limites dos níveis de tensão desejados:
Vc = A + B
Vc’ = A – B

Você pode criar uma planilha eletrônica com as fórmulas para


SAIBA ajudar à calcular, utilizando dos valores de VSUP, R1, R2 e R3, o
MAIS valor para Vc e Vc’.

Embora a fórmula para calcular estes componentes não seja muito complexa,
trata-se de um sistema com várias soluções possíveis. Alguns softwares e
calculadoras foram criados e disponibilizados com o objetivo de auxiliar nestes
cálculos, permitindo encontrar valores muito próximos ao desejável utilizando
resistores comerciais simples.
Observe que o circuito proposto ainda é bastante inflexível, pois a tensão de
Vc é fixa, proporcionada pelo divisor de tensão criado pelos dois resistores R1 e
R2. Porém, se no lugar dos resistores ligarmos um POTENCIÔMETRO, ou seja, um
RESISTOR VARIÁVEL, teremos um circuito similar, porem 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 configuração de AMPLIFICADOR OPERACIONAL
COMO SOMADOR.
Segue, na Figura 83, o esquema de um circuito somador inversor.

Vin1 Vout
R1

Vin2
R2

Vinn Rf
Rn

Figura 83 -  Circuito somador inversor


Fonte: Autor

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

2.4.4 Amplificador operacional como subtrator

Também conhecido como amplificador de diferença por alguns autores, é


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

Um cabo blindado utiliza o princípio de “gaiola de Faraday”


VOCÊ para, através de sua malha, eliminar a interferência de um
SABIA? campo elétrico externo em seu núcleo.
AUTOMAÇÃO INDUSTRIAL
82

Em tecnologias mais recentes, altas velocidades e diminuições de custos


levaram a outras formas de lidar com estes ruídos eletromagnéticos em
condutores, 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.
Amplificadores operacionais são comumente utilizados na comparação destes
sinais, podendo atuar como “filtros” de ruído. (Figura 84)

V interf Sinal
Sinal do Sinais de
Amp. de Diferenças
amplificado
transdutor interferência
2k Ω
(sinal enviando) Vs
t 1k Ω
Vt -
t ve 2 A= α
ve 1 vs
+ t
1k Ω 2k Ω

Vs
2k Ω

Vt 1k Ω
Sinal recebido vs -
A =α
(transdutor + interf.) + vs
t t
Amp. Inversor

Figura 84 -  Amplificador operacional como substrator


Fonte: Autor

Segue, na Figura 85, uma configuração bastante comum para amplificador


subtrator:

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

Figura 85 -  Amplificador operacional como substrator 1


Fonte: Autor

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


Vout = ( Vin1 - Vin2) . R2 / R1
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, a transição entre os estados ocorre com


tempos definidos, e geralmente constantes, configurável através de uma malha
de componente 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
amplificadores operacionais, transistores ou portas lógicas.
Um dos componentes mais utilizados para a construção de circuitos com este
comportamento é o temporizador (timer) 555 (LM555, NE555, SE555).
O circuito integrado 555 pode ser configurado 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 amplificadores, transistores e portas
lógicas encontra-se em sua flexibilidade, seu baixo custo e sua confiabilidade.
+Vcc

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

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


Fonte: Autor

Observando o gráfico, da Figura 87, podemos perceber que a duração dos


pulsos t1 (em estado alto) e t2 (em estado baixo) não é a mesma, e pode ser
configurada pelos resistores R1, R2 e C1.
A definição dos valores de t1 e t2 é dado por:
AUTOMAÇÃO INDUSTRIAL
84

t1 = 0,7 . (R1 + R2 ) C1 e t2 = 0.7 . R2C1


Para calcular a frequência do sinal gerado pelo 555 usamos:

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

tempo (ms)

5V
tensão
média

tempo (ms)
Figura 88 -  Gráfico de PWM a 1kHz
Fonte: Autor

A taxa de trabalho (Duty Cycle) é definida proporcionalmente de 0% a 100%,


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

Com o diodo:
R1
DH =
R1+R2 DH = 0 (mín)
R2 DH = 1 (máx)
DL = DL DH
R1+R2
2 Eletrônica Analógica
85

O limite de saída de um CI 555 é de 10mA. Portanto, se for


FIQUE necessário amplifique este sinal conectando o pino 3 a um
ALERTA 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


SAIBA integrado 555. Pesquise também sobre aplicações deste
MAIS circuito integrado relacionadas a timers e frequência.

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)
+Vcc

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

Figura 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.

Pesquise sobre a configuração de um circuito biestável


SAIBA utilizando o CI 555. Descubra as diferenças de funcionamento
MAIS em relação aos circuitos osciladores já estudados.

2.6 Filtros

Filtros são limitadores que permitem a passagem de alguns elementos


desejáveis, retendo elementos indesejáveis. Quando usamos um FILTRO para
filtrar água, deixamos passar a água, procurando reter as impurezas.
AUTOMAÇÃO INDUSTRIAL
86

Na eletrônica, os FILTROS são basicamente aplicados aos sinais elétricos


representados pelas grandezas de tensão, corrente e frequência, permitindo que
sinais sejam bloqueados ou separados.

2.6.1 Filtro passivo

Um FILTRO PASSIVO é um tipo de filtro construído com resistores, capacitores e


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

DIODOS
RETIFICADORES
Corrente
V+
alternada
Corrente
contínua CAPACITOR

GND

V V V V
+ + + +

- - - -

Figura 90 -  Filtro Passivo


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 filtros 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.
PASSA ALTA: Somente deixa passar frequência acima de um valor.
2 Eletrônica Analógica
87

PASSA FAIXA: Somente deixa passar frequências em uma determinada faixa.


REJEITA FAIXA: Bloqueia a passagem de frequências específicas.
É importante observar que, nos filtros supracitados, o funcionamento real não
é igual ao funcionamento ideal, pois os filtros atenuam as frequências indesejadas,
mas não as eliminam por completo.
A resposta de um filtro geralmente é representada por um gráfico, conforme
a Figura 91:
frequência de corte

70,7%
sinal
intensidade

indesejado
do sinal

sinal desejado
frequência

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


Fonte: Autor

A eficiência do filtro pode variar devido a seus aspectos construtivos. Os filtros


passivos tendem a ser menos eficientes que os filtros ativos, mas seu custo e
simplicidade justifica a aplicação na maioria das situações.
Melhores respostas em filtros passivos também podem ser obtidas com a
realização de combinações entre mais de um filtro simples. Quando dois filtros são
combinados, obtemos uma curva mais íngreme após o valor de corte. Chamamos
a combinação destes dois filtros de filtro de segunda ordem. Aplicando um
terceiro filtro, a curva apresenta uma queda ainda mais acentuada e o chamamos
de filtro de terceira ordem. No entanto, a cada “camada” adicionada ao filtro há
uma perda considerável na intensidade do sinal para filtros passivos. Cabe a quem
projeta o circuito dimensionar o filtro mais adequado para a aplicação.
Vamos agora estudar a aplicação de um filtro utilizado para eliminar ruídos
de alta frequência em um sensor digital de velocidade. Embora haja mais de
uma configuração de circuito possível para um filtro passivo, nos ateremos a
configurações mais comuns para este primeiro nível de estudo.
Segue a implementação de um filtro PASSA BAIXA 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
Vout
Vin

C
1
Frequência de corte =
2. π . R . C
Figura 92 -  Filtro passa baixa
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
88

Portanto, para 200Hz, temos:


Fc = 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 filtros PASSA ALTA permite eliminar ruídos
abaixo de uma frequência específica. (Figura 93)
Vin Vout

Figura 93 -  Filtro passa alta


Fonte: Autor

Neste tipo de ligação, os sinais de baixa frequência (abaixo da frequência de


corte: fc) são atenuados.
A frequência de corte é definida por: Fc = 1 / (2 . π . R . C) .
Para situações em que é necessário filtrar sinais acima e abaixo de uma
determinada frequência, pode ser implementado um circuito de passa-faixa, que
atenua sinais acima e abaixo de um determinado nível de frequência. (Figura 94)

Vin C L Vout

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


Fonte: Autor
2 Eletrônica Analógica
89

Neste tipo de filtro não buscamos a frequência de corte, e, sim, a frequência


de ressonância, onde o sinal não será atenuado. Ela pode ser calculada segundo
a fórmula que segue :

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

L
R

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


Fonte: Autor

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

2.6.2 Filtro ativo

Seguimos agora com configurações mais utilizadas de amplificadores


operacionais para filtros de frequência.
Para os filtros que seguem, o ganho pode ser configurado pela fórmula:
Av = 1 + Rf / Rg
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

Rg Rf

V+

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

Figura 96 -  Filtro passa-baixa


Fonte: Autor

Rg Rf

C1 Amp- op (Vo)
V1 +

R1

Figura 97 -  Filtro passa-alta


Fonte: Autor

Através da ligação de dois filtros, sendo um passa alta e outro passa baixa, é
possível criar um filtro passa-banda. (Figura 98)
Rg Rf
Rg Rf

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

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

Figura 98 -  Filtro ativo passa-banda


Fonte: Autor

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

2.7 Fontes de alimentação

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


fornecimento de energia. No caso das fontes de alimentação elétricas 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, Fonte de um microcomputador Fonte chaveada 2A


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

Figura 99 -  Fonte de bancada Figura 100 -  Fonte de Figura 101 -  Fonte chaveada 2A
Fonte: Autor microcomputador Fonte: Autor
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 fixa. Outras possuem uma chave seletora onde o
usuário pode definir qual o nível de tensão de entrada (110V / 220V). Fontes mais
recentes podem apresentar um recurso de ajuste automático em relação à tensão
de entrada, funcionando dentro de uma faixa específica, por exemplo de 100V a
250V. Em ambos os casos, é importante observar a tensão de entrada antes de
conectar a fonte à rede elétrica.

FIQUE Alimentar uma fonte com tensão superior à indicada pode


causar superaquecimento, causando danos permanentes
ALERTA ao equipamento e aos circuitos por ela alimentados.

Algumas fontes podem ser construídas a fim de fornecer níveis de tensão


diferentes, geralmente utilizados para alimentar partes diferentes do circuito.
Por exemplo, em um microcomputador são comuns fontes de alimentação com
entrada 110V ou 220V C.A. e saídas de alimentação de 5V, -5V, 12V e -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 definir a tensão desejada na saída.
Fontes estabilizadas são as fontes que possuem a saída de tensão estabilizada
por um circuito de controle em malha fechada, impedindo que a tensão na saída
fique acima do valor limite. Em fontes não estabilizadas, a tensão da saída pode
variar conforme a carga, influenciada pelos filtros nela utilizados.
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)
PMPO
V+ RMS
t(ms)

Figura 102 -  Gráfico da tensão após retificação, sem aplicação de filtros


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 aja 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íficos, como tiristores e transistores.
3) Circuito de retificaçã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 retificaçã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


filtros passivos.
Como vantagem deste tipo de fonte temos o baixo ruído e a simplicidade do circuito.
Como desvantagens, o peso inerente aos transformadores, tamanho, custo
mais elevado e baixa eficiência devido ao aquecimento indesejado.
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 Na maioria das fontes lineares devemos observar a chave


ALERTA 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)

+9V
fonte
0V
simética
-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 amplificadores 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. Regulador
positivo

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

7812
Gnd

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

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

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


LED -12V
2 3 7912
7912

1 3
2
Gnd

Transformador
Saída -12V
Entrada

110 / 220v <--> 12+12V, 1A

Figura 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

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

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

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

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

1N4004

Figura 106 -  Fonte Chaveada


Fonte: Autor

SAIBA Pesquise sobre fontes simétricas utilizando os reguladores de


MAIS tensão 78XX e 79XX (7805, 7905, 7812, 7912 etc.).

2.7.3 Fonte chaveada

As fontes chaveadas são largamente utilizadas devido a seu tamanho reduzido,


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

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


Entrada
retificador filtro chaveador
V V V V

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

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


transformador retificador filtro regulador
V V V V

t t t t
12V CA 12V CC 10V CC
alta frequência filtrado regulado
12V CA
e retificada
alta frequência

Figura 107 -  Esquema de fonte simétrica


Fonte: Autor

Após a retificação, um transistor gera pulsos rápidos, em uma frequência


geralmente entre 50 e 200 mil ciclos por segundo, gerando uma onda quadrada
com tensão máxima próxima à tensão da rede elétrica de entrada. Até este
momento, não houve reduções ou aumentos nos níveis de tensão.
Esta saída “pulsada” passa, então, por um transformador para modificar a
amplitude (tensão) geralmente para níveis inferiores da tensão de entrada,
obtendo-se ainda uma corrente alternada em alta frequência, que precisa ser
novamente retificada e filtrada.
Devido à alta frequência, os capacitores usados como filtro desta segunda
parte do circuito podem ser bem menores do que em uma fonte convencional,
reduzindo muito o tamanho do circuito, mesmo para correntes bem mais elevadas.
Fontes chaveadas apresentam um menor aquecimento e melhor eficiência,
e devido ao reduzido tamanho dos componentes (transformador e capacitores),
possuem tamanho bastante reduzido. 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 Ao interligar eletricamente sistemas alimentados por fontes de


ALERTA 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


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

Recapitulando

Neste capítulo, abordamos alguns conceitos básicos da Eletrônica Analógica


para automação industrial, 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 retificadores,
zener, emisores de luz, que são os LEDs e fotodiodos, entre outros.
É importante salientar que os transistores e os tiristores são utilizados para
amplificar sinais, permitindo o acionamento de cargas maiores.
Vimos, ainda, que os amplificadores operacionais são componentes que,
de forma genérica, podem amplificar, comparar, somar, multiplicar ou subtrair
sinais analógicos. Eles podem ser utilizados para compor filtros ativos. Filtros
são circuitos responsáveis pela eliminação de sinais indesejáveis.
Os circuitos osciladores são circuitos que possuem uma saída que varia de um
estado para outro periodicamente, o que pode ocorrer devido a um estímulo externo.
As fontes de alimentação são dispositivos que convertem corrente alternada
em corrente contínua, geralmente reduzindo o nível de tensão da rede e
oferecendo tensão estabilizada.
Na automação industrial, estes componentes estudados podem ser utilizados
individualmente ou de forma combinada, condicionando e amplificando sinais
elétricos para a produção de um efeito desejado.
2 Eletrônica Analógica
97

Anotações:
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,
VOCÊ o morcego, que possui audição bastante apurada, é capaz de ouvir
SABIA? sons com frequência de até 160kHz.

Alguns seres vivos evoluíram com capacidades sensitivas, como visão, tato, olfato, audição.
Alguns répteis percebem o calor e alguns pássaros conseguem perceber cores que são invisíveis
para o ser humano. Grande parte dos animais podem perceber frequências sonoras que o ser
humano não percebe. A comparação anterior deixa claro que a diferença na percepção do ser
humano e dos outros seres vivos depende da capacidade e do alcance de seus sensores e do
processamento da informação coletada.
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ível

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.

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

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


Fonte: Autor

Poderia ser medido através do ângulo de reflexão ou de refração da luz no


líquido, obtendo-se, desta forma, a altura da lâmina d´água. (Figura 111)

Variação de
Nível

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

SENSOR ÓTICO

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 flutuador. (Figura 112)

Sensores captam o campo


magnético do imã do
Nível

flutuador,
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)

Sensores de força
medem o peso
Nível

do recipiente

Células de carga

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)

Fluído levemente
condutivo muda
Nível

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

+
+
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 CONTATO FECHADO

CIRCUITO DE CONTROLE

Figura 116 -  Chave de contato normalmente aberto com princípio de acionamento magnético
Fonte: Autor

Perceba, na figura 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


VOCÊ do usuário são sensores e podem ser de contato normalmente
SABIA? aberto (NA) ou normalmente fechado (NF), dependendo de sua
construção mecânica.

A exemplo de um botão ou chave de final de curso, alguns sensores podem


produzir o efeito (contato abrindo e fechando) através de uma ação mecânica
simples, sem a necessidade de amplificação, processamento interno ou filtragens
de sinais, não necessitando de alimentação para funcionar. Outros utilizam-se de
um filtro e circuitos eletrônicos em seu interior, precisando de alimentação para
seu funcionamento. Neste caso, deve ser observado o nível de tensão, a corrente
e a correta polarização do sensor para evitar danos internos.
Nem todos os sensores são baseados em contatos mecânicos, sendo que
alguns possuem seu acionamento 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.

Embora existam normas para a definição de cores para


FIQUE os condutores dos sensores industriais, muitos sensores
ALERTA 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)

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

SENSOR NPN

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

SENSOR PNP

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

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

SENSOR NPN

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

SENSOR PNP

Figura 119 -  Sensores NPN e PNP com resistor de definição de sinal para alta impedância
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
106

Na imagem acima foi instalado um resistor de 10k como PULL-UP (NPN) e PULL-
DOWN (PNP) para definir o nível de tensão do sinal de saída quando o sensor
não estiver em estado de detecção. Alguns sensores possuem estes resistores
já instalados em seu circuito. Verifique isso na documentação (“datasheet”). Em
alguns sistemas de controle padronizados, como CLPs e controladores dedicados,
existem opções, através de microchaves ou configurações por software, para
definir se o sensor conectado a uma entrada digital é PNP ou NPN. De qualquer
forma, para a maior parte das aplicações que seguem padrões industriais este
resistor é desnecessário.
Caso o objetivo seja ligar o sensor industrial a um sistema de controle de
tensão inferior a 24V (por exemplo, a um microcontrolador de 5V), verifique
a possibilidade de diminuir a tensão do sinal gerado através de um divisor de
tensão, ou ainda, de forma mais segura, utilizando optoacopladores.
Na 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 danificar o microcontrolador (provavelmente 5V
ou 3V). (Figura 120 e 121)

PNP 24V + GND GND 5V +

2K2 10K
uC
SENSOR

OPTOACOPLADOR

NPN 24V + GND GND 5V +

10K
uC
SENSOR 2K2

OPTOACOPLADOR

Figura 120 -  Sensores NPN e PNP


Fonte: Autor

Acoplamentos ópticos ou a relé são uma forma de oferecer


FIQUE segurança aos equipamentos na transmissão de sinais em
ALERTA linhas automatizadas muito abrangentes, que integram
sistemas com várias fontes de alimentação.
3 Sensores
107

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

SISTEMA A SISTEMA B

GND
SINAL 5V
ACOPLAMENTO A RELÉ
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 definidos, 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).

A rede AS-i é um padrão de rede industrial bastante


FIQUE versátil, pois permite que, em seu cabeamento, um
ALERTA ú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 fios
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ífica, conforme a grandeza medida, podendo
ser temperatura, pressão, vazão, luminosidade, distância, posição, velocidade,
força, umidade, aceleração etc.
Em sensores analógicos industriais, estas grandezas são comumente
traduzidas para variações de tensão ou corrente, podendo haver ainda sensores
cuja grandeza medida influencia na variação de frequência ou resistência.
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
fica nula) ou curto (corrente infinita), permitindo detecção da anomalia por
parte da malha de controle. (Figura 123)
SENSOR ANALÓGICO

PLC (circuito de controle)

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

mensurada
Grandeza

Grandeza

corrente (mA) Tensão (V)

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

mensurada
Grandeza

Grandeza

corrente (mA) Tensão (V)


Figura 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áfica no momento de interligar um sensor a um
dispositivo de controle.

Pesquise na internet sobre sensores de temperatura com


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

Observe que, além dos padrões de 0 a 10V, 0 a 20mA e 4 a 20mA, outros


padrões de variação de tensão e corrente também podem ser utilizados em
sistemas de controle específicos, embora não sejam muito empregados como
padrão industrial, como 0 a 5V, 0 a +/-5V, -10 a 10V, 0 a +/-10V.
Assim como os sensores industriais digitais, um sensor analógico pode ser
construído de forma a gerar um sinal complexo de dados, enviando-os de forma
digital através de uma rede de dados a um sistema de controle, podendo ser um
computador, sistema microcontrolado ou PLC.
ºC
MAXIM
TENSÃO

18B20
1 2 3
0 0 1 0 1 0 0
GND
DQ
VDD

TEMPO

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
afirmar 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


SAIBA sensores DS18B20 e LM35, descobrindo qual a vantagem e
MAIS desvantagem dos modelos citados em relação ao formato da
saída gerada pelo sensor.
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)

CALOR

PRINCÍPIO FÍSICO
LUZ
N

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

S
0
01
90 10
10 90

001mm

VELOCIDADE
80 20
20 80

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

FORÇA

Figura 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 deflexõ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 FINAIS 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 pressionamento 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

SENSOR ÓPTICO
REFLEXIVO
luz emitida
luz refletida

EMISSOR

RECEPTOR

Figura 127 -  Sensor óptico de reflexã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 refletida (objeto reflete a luz emitida no receptor do
sensor) ou, ainda, pela interrupção da reflexão causada por um objeto opaco
interrompendo a reflexão causada por um espelho refletor especial.
Alguns sensores ópticos podem mensurar a quantidade ou o ângulo da luz
refletida, podendo não só identificar a presença de um objeto, como determinar
a distância da superfície refletora.

Nem todos os sensores ópticos trabalham com luz visível,


VOCÊ sendo que grande parte utiliza comprimentos de onda
SABIA? não-visíveis (ultravioleta e infravermelho) por questões de
interferência externa.

FIQUE Alguns sensores ópticos emitem uma radiação laser muito forte,
ALERTA 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 óticos geram luz de forma pulsada, em alta
frequência, permitindo que o dispositivo emissor de luz gere um sinal mais forte
(com corrente maior por um curto período em cada pulso), e em uma frequência
que possa ser identificada posteriormente pelo circuito de leitura. Conjuntos
ópticos compostos de refletores e principalmente lentes especiais permitem
concentrar ou difundir o feixe gerado, permitindo definir focos diferentes para
diversos tipos de sensores, que podem ser utilizados para detectar objetos mais
distantes ou para detectar objetos mais próximos com melhor eficiência.
3 Sensores
113

Para o receptor, além do conjunto óptico, podem ser utilizados filtros em forma
de lentes que limitam as cores lidas pelo receptor, que é composto de um ou mais
componentes fotosensíveis (fotodiodo ou fototransistor).

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

Como principal vantagem, os sensores óticos possuem um custo relativamente


baixo e grande velocidade de detecção. Os sensores óticos não são indicados
para locais que oferecem condições inadequadas à propagação direta da luz,
com poeira e resíduos em suspensão que podem interferir no feixe de luz ou,
ainda, decantar sobre a superfície das lentes ou dos objetos detectados. Como
estratégia de filtragem a interferências externas, como outras fontes de luz, os
sensores ópticos geralmente modulam o sinal emitido em pulsos, podendo
distinguir entre o sinal original e uma possível interferência.
Através de ajustes no ganho, alguns sensores ópticos permitem a detecção de
objetos a distâncias bastante significativas, e através de diodos laser no lugar dos
tradicionais LEDs como fonte emissora de luz, podem ser utilizados para medir
com precisão a distância ou a presença de objetos.
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 fica apontado para uma superfície refletora. O objeto é
detectado através da interrupção do feixe de luz. (Figura 128)
Sensor PNP detectando refletor, gerando sinal V+
SENSOR ÓPTICO REFLEXIVO

REFLETOR
luz emitida
luz refletida
SINAL V+

Objeto interrompe feixe de luz interrompendo o sinal


SENSOR ÓPTICO REFLEXIVO luz difundida

REFLETOR
OBJETO
SEM SINAL

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

Quando os objetos são muito transparentes ou excessivamente reflexivos, eles


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

3.5.2 Sensor óptico por reflexão difusa

A exemplo do sensor de retrorreflexão, este tipo de sensor também usa o


princípio de reflexão de luz, mas desta vez ele utiliza o objeto a ser detectado
como superfície refletora. (Figura 129)
Luz emitida não encontra nenhuma superfície refletora próxima, e o
sensor não envia sinal.
SENSOR ÓPTICO REFLEXIVO

luz emitida
luz refletida
SEM SINAL

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

SINAL V+

Figura 129 -  Sensor óptico por reflexão difusa


Fonte: Autor
3 Sensores
115

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

3.5.3 Sensores ópticos por transmissão

Sensores onde o emissor e o receptor estão construídos em dispositivos


independentes, porém funcionando em conjunto. (Figura 130)
SENSOR ÓPTICO EMISSOR
por transmissão
luz emitida

SINAL RECEPTOR

SENSOR ÓPTICO EMISSOR


por transmissão
OBJETO

SEM SINAL 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 fibra óptica para “direcionar e conduzir” os sinais luminosos.

E E
R R
sensor óptico

fibra óptica
E E
R R
emissor receptor
terminais

Figura 131 -  Sistema de sensor óptico por transmissão usando fibra óptica
Fonte: Autor

Fibras ópticas necessitam de cuidados especiais. Se for


necessário seccionar a fibra óptica, o corte deve ser
FIQUE realizado através de ferramentas especiais e de forma
ALERTA 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 fibra, que poderiam gerar perdas e alterações nos
sinais lidos. Ferramentas especiais também devem ser utilizadas para cortar a
fibra, permitindo que o ponto de secção seja o mais perpendicular possível em
relação ao sentido da fibra. Apesar de possível, não são recomendadas emendas
em cabos de fibra óptica, a menos que se utilizem equipamentos especiais ou
conectores adequados nestas emendas.
Devido a características que podem variar conforme o fabricante, é
recomendado pesquisar sobre a distância máxima suportada para cada sensor,
considerando a fibra específica empregada.

Pesquise na internet sobre as diferenças entre fibras ópticas


SAIBA monomodo e multimodo, descobrindo suas aplicações na
MAIS automação industrial e em telecomunicações.

3.5.5 Sensor de barreira óptica de segurança

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

Figura 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 configurados para permitir zonas livres de detecção.
3 Sensores
117

Sensores de segurança e chaves de emergência


devem ser de característica NF e devem ser ligados em
FIQUE série. Desta forma, no caso de dano em sensores ou
ALERTA 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 reflexão do feixe de laser para definir
a distância do objeto detectado, e outros ainda medem o tempo (extremamente
pequeno) entre o pulso de laser emitido e o pulso de laser captado após a reflexão.
Sensores a laser combinados com espelhos controlados ainda são utilizados
como sensores de segurança, podendo realizar a varredura em um plano em
busca de mudanças que podem revelar a presença de uma pessoa ou objeto. Estes
sensores são conhecidos por SCANNERS A LASER DE SEGURANÇA, e geralmente
são uma solução bastante eficiente, porém com um elevado custo. (Figura 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
SAIBA sensores. Pesquise sobre AGV em sites de busca na internet,
MAIS procurando entender a função dos diversos sensores
estudados neste tipo de equipamento.
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, identificando o movimento e a violação do perímetro, fazendo com que
o contato do sensor (geralmente NF) mude de estado.

Sensores de presença do tipo infravermelho não detectam


movimentos, e sim o calor. Faça um teste: permaneça parado
SAIBA em frente a um sensor de alarme residencial com indicador
MAIS 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.

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

Relés fotoelétricos LDR


Figura 135 -  Relés fotoelétricos e um resistor dependente de luz
Fonte: Autor

3.5.9 Visão artificial

Câmeras fotográficas digitais aliadas a velozes sistemas de processamento e


algoritmos específicos permitem realizar a aquisição e a análise de uma imagem,
de modo que informações podem ser comparadas com um padrão, definindo 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 artificial”, e é realizado por câmeras que


capturam a imagem, comparando com um padrão pré-definido, acionando saídas
digitais em caso de falha. A falha detectada pode ser a falta de um componente
visualmente detectável, diferenças dimensionais, de cores ou posicionamento.

3.6 Sensor de ultrassom

Caracterizado por um “sonar”, tem sido largamente empregado na área


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

Os seres humanos conseguem perceber sons com


VOCÊ frequências entre 20Hz e 20kHz (variações por segundo).
Nos dispositivos de ultrassom, as frequências geralmente
SABIA? ficam na faixa de 33kHz a 40kHz, sendo imperceptíveis aos
ouvidos humanos.
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 refleti-las de volta à origem. Um microfone capta e amplifica o sinal sonoro
recebido. Devido à velocidade dos sistemas de processamento, é possível medir
o tempo (em microssegundos) entre o envio e a recepção do sinal sonoro, e isso
permite estimar a distância de um obstáculo ou objeto. (Figura 137)
emissor
(altofalante)

OBJETO
DETECTADO

receptor
(microfone)

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 reflexão sonora por parte do objeto,
que pode refletir mais ou menos ondas sonoras de volta ao sensor.

Alguns objetos podem absorver as ondas sonoras (como


FIQUE espumas e superfícies muito macias), não refletindo o suficiente
ALERTA para ser identificado por sensores ultrassônicos. Objetos de
dimensões reduzidas também podem não ser identificados.

Algumas superfícies podem ser “transparentes” ao som, não refletindo ou


refletindo parcialmente o sinal sonoro. Essa capacidade em reflexões sonoras
diferentes por parte dos materiais de diferentes densidades permite aos sensores
de ultrassom a coleta de informações no interior de alguns recipientes. (Figura 138)

Figura 138 -  Equipamento aplicado à análise por ultrassom, permitindo identificar fissuras internas no material através da
análise da propagação do som através do material
Fonte: Autor
3 Sensores
121

Sensores de ultrassom combinados com processamento de sinais digitais


podem compor equipamentos de análise por ultrassom capazes de identificar
fissuras internas em materiais sólidos, ou ainda visualizar materiais compostos com
densidades diferentes. Esta tecnologia já é usada há algum tempo na medicina,
onde a “ultrassonografia” permite visualizar os órgãos internos de pacientes.
Alguns sensores de ultrassom industriais permitem programar uma “faixa
livre”, na qual obstáculos detectados são ignorados, permitindo a sensores de
ultrassom detectar obstáculos em uma área mais restrita, ou através de paredes
relativamente transparentes ao som.

o uso de sensores de ultrassom depende de algumas


variáveis do ambientes, tais como temperatura, pressão
FIQUE atmosférica e umidade relativa do ar. Ambientes onde estas
ALERTA 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. Objeto metálico produz
Praticamente sem mudança no Uma grande mudança no
campo eletromagnético gerado. 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 lubrificante, poeira e outros resíduos. Sensores
indutivos são bastante imunes a isso, não sendo afetados por poeira, partículas
não-metálicas e fluídos lubrificante, sendo adequados para situações de detecção
onde os sensores ópticos não podem ser empregados.
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,
identificando a presença (ou não) de um dispositivo metálico. Sensores indutivos
também são aplicados em rodas dentadas para medir posicionamento e
velocidade, pois o sensor irá gerar pulsos toda vez que um dente de uma roda
dentada passar em frente a ele. (Figura 140)

roda dentada (metal)


saída digital

sensor
indutivo

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, onde 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, ou ainda em sistemas de assistência de frenagem (ABS),
onde um sistema computacional avalia constantemente a desaceleração da roda,
evitando seu bloqueio.

3.8 Sensores capacitivos

Nos sensores indutivos, a mudança da “indutância” da bobina de um circuito


gera uma alteração no circuito ressonante (FILTRO), que é UTILIZADO para gerar
a informação desejada. Já em sensores CAPACITIVOS, a mudança detectada é na
capacitância do circuito. Esta capacitância é determinada pela distância entre duas
superfícies condutivas, separadas pelo material isolante dielétrico. Dependendo
das dimensões do posicionamento e do material que constitui o dielétrico,
e também das variações de distância das camadas condutoras, há sensíveis
variações na “capacitância”, que podem ser aplicadas a circuitos de transformação
do sinal que, após amplificado e filtrado, gera o sinal desejado.
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, fluídos, óleo, água etc.).
O uso de sensores capacitivos é muito frequente como alternativa a
sensores indutivos quando o material a ser detectado não é metálico. Devido
a sua abrangência (detecta vários tipos de materiais), um sensor capacitivo
deve ser usado com cuidado, evitando seu uso em ambientes com muito
resíduo, como poeira, óleo ou aspersão de água, pois isso pode causar
depósitos sobre o sensor, fazendo com que a capacitância seja alterada a
ponto de causar falsas detecções.
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 ÁGUA

reservatório
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
fluído não-condutivo. Como a constante dielétrica do fluído tende a ser diferente
da constante dielétrica do ar, a capacitância do sensor de nível tende a mudar de
acordo com a proporção da imersão das hastes no fluído.
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 ”
ÍMÃ
(OBJETO DETECTADO)

CONTATO ABERTO CONTATO FECHADO

CIRCUITO DE CONTROLE

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)

sensor magnético
magnético

sensor magnético
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, 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
NNT

N
N
A
T

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 amplificado e
processado para gerar uma informação digital similar aos sensores magnéticos
de contato, com a vantagem de não haver partes móveis internas no sensor,
aumentando sua vida útil e diminuindo o tempo de resposta. Sensores HALL são
usados para posicionamento em pequenos dispositivos, como leitores de discos
de computadores, e posicionamento e velocidade de motores. Em aplicações
industriais, estes sensores vem sendo empregados em conjunto com cilindros
pneumáticos para a detecção de posicionamento do atuador.

3.10 Sensor de pressão

Todo tipo de pressão sobre um material tende a causar uma deformação/


deflexão. Em alguns materiais, esta deformação é temporária e, quando a pressão
é interrompida, o material volta ao seu estado original.
Alguns materiais, ao serem submetidos a pressão, têm suas propriedades
condutivas modificadas, geralmente com diminuição de sua resistência.
Os Piezorresistores são componentes que reagem desta forma, tendo sua
resistência inversamente proporcional à pressão a que são submetidos.

Muitos microfones utilizados em telefones têm, sem seu


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

Em sensores capacitivos, a pressão pode comprimir o material dielétrico (entre


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

bar

Sensor de pressão Sensor de pressão Piezoresistor


microcontrolado
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ífica 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


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

3.11 Sensores de aceleração

Conhecidos também como ACELERÔMETROS, estes sensores são capazes


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

VOCÊ Pesquise sobre o uso e a função de acelerômetros e


SABIA? giroscópios em aplicações aeroespaciais.
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. (Figuras 147, 148 e 149)

Wii

Figura 147 -  Circuitos inte- Figura 148 -  Sensor industrial Figura 149 -  Equipamentos que
grados acelerômetros Fonte: Autor utilizam acelerômetros
Fonte: Autor 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

Figura 150 -  Sensor strain-gage acoplado Modelo


Figura 151 - de
Modelo de Strain -gage
Figura 152 - acoplado
Strain-gage
Sensor strain - gage
à célula de carga posicionamento.
posicionamento a célula deAutor
Fonte: carga.
Fonte: Autor 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, miligramas por minuto (mg/min.), libras por segundo (lb/s).
A vazão geralmente é medida em elementos transportados por tubulações
em fluxos relativamente contínuos, e geralmente aplicada a líquidos ou gases,
embora também possa ser aplicada a sólidos, como grãos de matéria-prima de
polímeros, minérios triturados, pó, alimentos em grãos, derivados etc.

Os sensores de vazão são comuns em nosso dia a dia,


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

Os sensores de vazão são apresentados nas mais diversas configurações,


variando conforme o elemento a ser medido, precisão necessária, resolução,
pressão suportada, vazão mínima e máxima, formato de saída etc.

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 fluído, e sistemas externos
utilizam a informação gerada pelo giro das pás para obter a informação desejada.
Alguns sensores de vazão podem se basear na diferença de pressão existente
entre a medida que ocorre antes (a montante) de um ponto de estrangulamento
e após (a jusante) o ponto de estrangulamento. A diferença de pressão entre os
dois pontos pode ser usada para determinar a vazão com uma boa aproximação.
3 Sensores
129

Representação da tubulação com um ponto de estrangulamento, com pontos


de pressão diferencial. (Figura 154)
P2 P1
A1: Area do buraco

A2: 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 fluído. Este sensor é usado em aviões para o cálculo da velocidade
através da vazão do ar.

Pressão de Impacto Pressão estática


(velocidade)
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 flutuador
Caixa de vedação sela o tubo
De vidro com a união de metal
Máximo fluxo é obtido
Na parte superior do tubo
Tubo afunilado de vidro

Flutuador de medida

Mínimo fluxo é obtido na


Parte inferior do tubo
Limitador do flutuador

Conexão de entrada
União de entrada
Figura 156 -  Rotâmetro
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
130

Rotâmetros (Figura 156) são sensores de vazão aplicados a fluídos (líquidos


e gases) cujo princípio consiste em uma passagem cônica com um elemento
bloqueador. O elemento tende a se deslocar para baixo, bloqueando o orifício,
devido à força da gravidade, porém sofre a impulsão do elemento em sentido
contrário, buscando um ponto de equilíbrio onde a área de passagem é suficiente
para que a suspensão do flutuador causada pelo atrito e seu peso entrem em
equilíbrio. A altura do flutuador é o indicador do fluxo.
Sensores magnéticos podem medir a vazão através do campo magnético
causado pelo deslocamento de um fluí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 fluído na tubulação propaga as ondas sonoras de
forma levemente mais veloz ou mais lenta, conforme a velocidade e o sentido do
deslocamento. Esta informação, aliada a dados dimensionais da tubulação, pode
ser usada para estimar a vazão.
Obstáculos inseridos no interior da tubulação podem causar a criação de
vórtices, que oscilam em proporção a velocidade do fluído. Esta informação pode
ser usada para calcular a vazão. Sensores de esforço ou térmicos também podem
ser aplicados aos obstáculos, a fim de estimar o atrito com o elemento e definir
sua velocidade, usando esta informação para o cálculo da vazão.

SAIBA Pesquise sobre aplicações de sensores de vazão aplicados a


líquidos e gases.
MAIS

3.14 Sensores de temperatura

Sensores de temperatura são bastante aplicados na automação industrial e


podem utilizar mais de um princípio físico para a medição da mesma grandeza.
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
Coefficient), em português, coeficiente positivo de temperatura.
Alguns termistores podem ainda apresentar uma resistência inversamente
proporcional à temperatura; ou seja, a resistência diminui com o aumento da
temperatura. Estes são conhecidos por NTC (Negative Temperature Coefficient),
em português, coeficiente negativo de temperatura.
Sensores do tipo PTC e NTC geralmente não apresentam comportamento
linear e podem apresentar comportamentos indesejáveis se submetidos fora da
faixa de medição adequada.
Ao escolher um termistor, devemos observar esta faixa de medição e a
resistência do componente nos valores mínimos e máximos dessa faixa. Além
disso, é necessário interpretar a curva do sensor, conhecendo alguns pontos de
resistência em determinadas temperaturas. (Figura 157)

NTC PTC
Resistência (ohms)

Temperatura (oC)

Figura 157 -  Gráfico 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


VOCÊ energia térmica em energia elétrica. Este princípio foi
SABIA? descoberto por Thomas Johann Seebeck em 1821, e é
conhecido como efeito termoelétrico.

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

INFINITOS VALORES

DC

V
,
POWER PK HOLD B/L DC / AC

AUTO POWER OFF

(mV)

+
-
CAT ll

20A mA COM VΩHz

- + 0C
termopar

Figura 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ífica, não tolerando temperaturas acima ou abaixo de uma faixa específica,
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.
• TipoK (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
• TipoN (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 160a)

TERMOPARES: F.E.M. X Temperatura


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

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

Termperatura (ºC)
Figura 160 -  Gráfico 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


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

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)

A V
O

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
fluídos (líquidos ou gás), esta mudança gera a convecção, fazendo com que o
material mais denso ocupe um lugar mais abaixo no recipiente, dando lugar ao
material menos denso, que se desloca para a superfície. Líquidos e gases não são
bons condutores de calor, mas a convecção permite que haja uma homogenização
térmica adequada.
Portanto, em um sistema de aquecimento, é importante que o aquecedor
fique na parte inferior do recipiente, facilitando a convecção e fazendo com que
haja um aquecimento de todo o fluído de forma mais homogênea.
A posição de um sensor de temperatura neste sistema não é menos importante.
Se a temperatura for medida muito próximo do atuador de aquecimento /
resfriamento, a informação lida pode não refletir a temperatura média do
recipiente, gerando um controle impreciso, e se o sensor for posicionado muito
distante do atuador, poderá demorar muito tempo para que o sistema de controle
perceba as variações de temperatura, causando oscilações muito elevadas.
Em situações de grandes volumes, estratégias como misturadores ou vários
sensores interligados podem auxiliar na medição, permitindo leituras mais precisas.
Controladores especiais ainda podem auxiliar neste controle, pois integram
soluções matemáticas adaptativas, que interpretam as variáveis do ambiente
(tempo de resposta do sistema, erro etc) para gerar um controle mais preciso.

3.15 Sensores de posicionamento

Em muitos dispositivos automatizados, não basta ao sistema de controle


acionar um atuador. É importante saber se o efeito gerado pelo atuador
realmente ocorreu.
3 Sensores
137

Como exemplo, vamos estudar um braço robótico. (Figura 162 e 163)


led disco perfurado
infravermelho

encoder óptico eixo


fotodiodo

braço robótico aplicando a solda


Figura 163 -  Braço robótico Figura 164 -  Encoders ópticos
Fonte: Autor 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, quantificando-o de
forma razoavelmente precisa.
Encoders são dispositivos que transformam movimentos em sinais elétricos
que são enviados ao sistema de controle. Estes sinais são utilizados para compor
informações de velocidade e posição e para ações corretivas, permitindo ao
equipamento uma resposta correta e constante.

Alguns encoders podem gerar até 360000 pulsos por


VOCÊ revolução; ou seja um pulso é gerado a cada milésimo de
SABIA? grau de movimento angular do eixo do encoder.

3.15.1 Sensores de posição linear

Também conhecidos como transdutores de posição linear, são sensores


cada vez mais utilizados na automação devido a sua versatilidade, podendo
serem empregados em sistemas de controle de posicionamento ate em
sensores de nível.
Dentre os sensores de posição linear, podemos destacar a régua potenciométrica
e a régua óptica.
Na régua potenciométrica, com o nome já sugere, temos um “potenciômetro”,
ou seja, uma resistência variável em função da posição, comportando-se como um
sensor analógico; já na régua óptica o sistema de medição da posição é realizado
através de pulsos gerados pela passagem de um pequeno sensor óptico por uma
fita graduada translúcida, como em um encoder óptico.
AUTOMAÇÃO INDUSTRIAL
138

LVDTs são sistemas que utilizam 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 metálico. São geralmente utilizados como sensores de posição lineares
com saída analógica.
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
Tensão (V)
GND
5V
Sinal

Ângulo 270o

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


reflexivas 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


reflexivas 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

receptores

mascara fixa
emissores

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.

Em sistemas que possuem encoders incrementais, a


FIQUE cada inicialização do sistema ocorre uma etapa de
ALERTA “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)
Perdas

Forma de enregia Forma de enregia


de entrada de saída

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 eficiência, dentre outros fatores.
Nos ateremos aos transdutores que são utilizados como sensores na adequação
dos sinais de entrada em sinais elétricos, digitais ou analógicos.
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).
• transdutorespiezoelétricos: dispositivos que geram energia elétrica ao
serem deformados/deflexão, geralmente sendo aplicados a medição de
impacto ou pressão. Um microfone piezoelétrico segue este princípio. Em
processo inverso, um transdutor piezoelétrico também sofre deformação ao
ser submetido à corrente elétrica. Como exemplo, pequenos geradores de
som em relógios e calculadoras, que usam uma cápsula piezoelétrica.
• 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 fluí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

Corrente

Condutor

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 fio, obtemos uma variação de tensão proporcional à corrente, que
pode ser amplificada e utilizada em um sistema de controle. (Figura 173, 174, 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

1 6
2 5
3 4

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 fio.

FIQUE Sistemas de comunicação wireless podem interferir e sofrer


ALERTA 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 infinitas possibilidades dentro de uma faixa determinada, e são
representados pela variação de uma grandeza, como tensão ou corrente.
Estudamos que os sensores podem ser divididos quanto ao sinal gerado e
também por suas saídas, podendo ser de princípio analógico ou digital. Alguns
sensores digitais têm comportamento similar ao das chaves que abrem e fecham
conforme detecção. Outros sensores analógicos geram variação de corrente ou
tensão conforme a grandeza medida. Estas características são importantes ao
escolhermos ou utilizarmos um sensor, determinando sua forma de integração
ao sistema de controle. Quanto ao princípio físico, os sensores também podem
diferenciar-se uns dos outros, sendo alguns mais adequados em certas situações.
Em ambientes com muita poeira, por exemplos os sensores ópticos podem
“sofrer” devido à difusão da luz causada pelas partículas em suspensão no ar.
Em situações onde pode ocorrer desgaste mecânico, sensores eletromecânicos
de contato podem não ter uma durabilidade muito aceitável.
Estudamos também que alguns sensores com um mesmo princípio
físico podem diferenciar-se consideravelmente em suas características. Um
termopar, por exemplo, com a alteração da composição de seus elementos,
pode ser mais indicado para a medição de altas temperaturas do que outro.
É importante ressaltar que o conteúdo estudado é somente uma pequena
parte desta vasta área, e atualizar constantemente os estudos de tipos de
sensores e suas características é pré-requisito para uma atuação de sucesso
na área de Automação Industrial.
3 Sensores
147

Anotações:
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 Rampa
(digital) (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 infinitas
posições existentes entre o início e o fim dela. No caso da escada, a pessoa pode se encontrar
em apenas um de seus degraus, em uma posição definida. Assim, é correto dizer que a rampa
representa um sistema analógico, enquanto a escada representa um sistema digital.
Esse conceito pode ser ainda explicado 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 eficiente. Existem duas formas de
representação dos valores numéricos das quantidades: a analógica e a digital.
AUTOMAÇÃO INDUSTRIAL
150

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)
6
4

100 8
50
2

150 10
psi
bar
11

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


Fonte: Autor

Neste tipo de manômetro, a deflexão, movimentação angular do ponteiro, é


proporcional à pressão conectada ao equipamento. Assim, a posição angular do
ponteiro passa a representar a pressão. A posição do ponteiro e a pressão representada
têm em comum o fato de variarem em uma faixa contínua de valores. Por exemplo, a
pressão pode variar continuamente de 0 a 11 bar, e a posição do ponteiro pode ocupar
qualquer valor angular entre 0º e 270º, proporcional a esta pressão.
Existem infinitas variações de pressão entre 0 e 11 bar, e existem infinitas
posições entre 0º e 270º do ponteiro de representação, o que faz com que o
sistema tenha comportamento analógico.
O que caracteriza a informação representada de forma analógica é o fato de
haver infinitas posições para o ponteiro entre o valor mínimo e máximo, sendo
que ele se desloca por todos os possíveis valores dentro de um limite.

Representação digital:

Na representação digital (também chamada de discreta), as grandezas e


quantidades são representadas não por valores proporcionais, mas por símbolos
chamados dígitos.
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 define as características repassadas a seus decendentes.
Então, o que é “eletrônica digital”?
É a ciência eletrônica que trabalha com estes estados definidos de tensão,
onde sinais digitais (geralmente binários) são aplicados em circuitos elétricos.
Sistemas digitais utilizam um conjunto finito de estados. No sistema decimal,
utilizamos dez dígitos (de 0 a 9) para representar números. Combinar estes dígitos
permite a representação de informações mais complexas. (Figura 180)

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

Sistema decimal Sistema binário


10 digitos (0 a 9) 2 digitos (0 ou 1)

Figura 180 -  Sistemas numéricos


Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
152

Porém, o sistema decimal ainda apresenta um desafio para a Eletrônica.


Representar informações em dez estágios diferentes exige uma precisão grande
de sistemas eletrônicos e não permite que um sistema simples (como um contato,
por exemplo) represente uma informação.
Se um sinal de 0 a 5V fosse utilizado para representar números de 0 a 9, teríamos
5V / 10 dígitos = 0,5V por dígito. Neste caso, 0V poderia ser a representação do valor
zero, 0,5V seria a representação do valor um, 1V seria a tensão representante do
valor 2, e assim por diante. Porém, ainda nesta forma de representação hipotética,
com uma pequena variação de 5% sobre a tensão máxima de 5V, que equivale
a 0,25V, a tensão de 0,5V poderia subir para 0,75V, ou a tensão de 1V poderia
cair para 0,75V. Neste caso, com esta variação de 5% para cima ou para baixo,
teríamos uma indefinição no valor representado, pois não seria possível saber se
0,75V significam 1 ou 2. Infelizmente, variações até maiores que 5% ocorrem em
circuitos elétricos pelos mais diversos fatores.
Já o sistema binário é composto por dois dígitos (0 ou 1) e permite que as
informações sejam assim representadas. Neste caso, podemos assumir que 0V é 0,
e 5V é 1. Porém, com uma variação de até 10%, 0,5V continua a ser nível baixo e,
portanto, 0, e 4,5V continua a ser nível alto e, portanto, 1. A informação foi mantida.
Embora um dígito binário permita representar somente duas informações
distintas, a combinação de diversos dígitos binários (bits) pode representar
informações mais complexas.
Este sistema ainda permite que a representação da informação seja facilitada
em componentes eletrônicos simples. Uma chave pode estar com contato aberto
ou fechado (0 ou 1). Um LED pode estar ou não emitindo luz (1 ou 0). Um transistor
pode estar em estado de condução ou em estado de corte (1 ou 0). Um relé pode
estar comutado ou não (1 ou 0). Um par condutor pode ter tensão de 12V ou
-12V entre si (1 ou 0). Um pulso de luz pode ser curto ou longo (0 ou 1). Em outras
palavras, representar informações digitalmente é mais simples e eficiente.
No padrão TTL (transistor – transistor logic), muito utilizado em sistemas
digitais, utilizamos dois níveis de tensão distintos para representar da informação:
nível baixo (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.

Estamos acostumados a lidar com sistemas decimais


(utilizamos dígitos de zero a nove para contar, calcular,
FIQUE registrar), e dimensionar sistemas para representações
ALERTA 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 filósofo britânico


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

VOCÊ A álgebra de Boole (álgebra booleana) é o fundamento da


SABIA? Matemática Computacional, baseada em números binários.

Na eletrônica digital, estudamos como realizar as operações digitais aplicando


componentes (semicondutores) especiais, bem como ligações em série e paralelo, para
obter operações lógicas, utilizando principalmente, sistemas de representação binários.

4.1 Vantagens das técnicas digitais

Dentre os diversos fatores que nos levam a utilizar sistemas eletrônicos digitais
podemos citar 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.
AUTOMAÇÃO INDUSTRIAL
154

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 beneficiado 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 • A voz humana é um som, e como todo


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

estas oscilações analógicas geram


0 9
#

variações de frequência e amplitude em


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

• O som é representável em uma


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

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

• Estes valores são então codificados


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

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

chegando até o equipamento de


destino. Embora a informação seja
digital, caracterizada por bits (zeros ou 1
4
2
5
3
6
7 8 9

uns), uma onda de rádio é o meio físico


* 0 #

analógico por onde ela é transferida.

• No equipamento de destino, as ondas


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

produz oscilações que movimentam Equipamento converte o sinal


digital em ondas analógicas (som).
o alto-falante do equipamento
receptor. Embora a informação gerada
pelo conversor digital / analógico
(A/D) não seja exatamente igual à da
origem, o transporte dos dados foi
facilitado, evitando ou dificultando
alterações nas informações durante o
processo de transmissão.
Acima podemos observar a conversão sendo aplicada de duas formas: conversão
entre representações analógicas e digitais (analógica para digital: A/D, ou digital
para analógica: D/A) e conversão de sistema numérico (decimal para binário).
Um dado digital armazenado ou transferido pode ser verificado, e até corrigido,
permitindo que a informação digital seja enviada, copiada e armazenada sem
perdas, ou que estas perdas, ao menos, sejam identificadas.
Porém, ao transformarmos sinais analógicos em sinais digitais, ou sinais digitais
em analógicos, ocorrem perdas e alterações nas informações. Conversões de maior
resolução podem deixar estas perdas imperceptíveis, porém elas continuarão a existir.

Um CD, DVD ou BlueRay são discos ópticos onde o som,


VOCÊ as imagens e os dados são convertidos em bits (0 e 1),
SABIA? armazenados e lidos por meio de um feixe de luz (laser)
que percorre trilhas reflexivas, percebendo pontos e traços.
AUTOMAÇÃO INDUSTRIAL
156

Para realizar a conversão entre sistemas de codificação diferentes (decimal,


hexadecimal, binário...) são utilizados conversores de código, também conhecidos
como codificadores e decodificadores, que serão estudados mais tarde.

4.2 Circuitos combinacionais e sequenciais

Vamos dividir os circuitos digitais em duas categorias: circuitos combinacionais


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

4.3 Circuitos lógicos

Circuitos digitais geralmente operam com lógica binária, representados por


dígitos do sistema binário (0 e 1). Estes são representados eletricamente por
nível baixo e nível alto de tensão, com tensões de 0V para nível baixo, e não
ultrapassando 5V para nível alto, para o padrão TTL.
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 simplificar circuitos digitais, conseguindo
atingir o objetivo desejado com um número menor de componentes.

4.3.2 Tabela verdade

Tabela verdade é uma tabela que relaciona todas as combinações possíveis de


valores aplicados a variáveis de entrada de uma expressão aritmética, analisando
o valor resultante da expressão. Para facilitar, vamos imaginar que há um
circuito lógico passando por um operador incógnito (desconhecido) que vamos
representar por um ponto de interrogação: (?) (Figura 181)

A
? x
B
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, 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
AUTOMAÇÃO INDUSTRIAL
158

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 definida pela combinação
das entradas. São, portanto, circuitos combinacionais.
Cada porta lógica possui uma representação (símbolo) específica, uma
expressão e uma tabela verdade. Esses elementos são utilizados e combinados
para implementar circuitos dedicados para aplicações específicas.
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 Exemplos Comerciais
Verdade
OR (ou) X=A+B A B X 74HC32 (quad 2-input OR gates)
0 0 0 74HC4075 (triple 3-input OR gates)
A
X 0 1 1 CD4075 (triple 3-input OR gates)
B CD4072 (dual 4-input OR gates)
1 0 1
1 1 1
AND (e) X=A.B A B X 74HC08 (quad 2-input OR gates)
0 0 0 74HC11 (triple 3-input OR gates)
A
X 0 1 0 CD4082 (dual 4-input OR gates)
B 74HC21 (dual 4-input OR gates)
1 0 0
1 1 1
NOT (não) X=A A X 74HC04 (hex inverter)
A X 0 1 MC14049 (hex inverter)
1 0 CD4049 (hex inverter)

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


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

Portas NOR, NAND, XOR e XNOR são combinações da


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

Embora haja algumas similiaridades e padronizações, os


FIQUE circuitos integrados de um mesmo modelo podem variar
ALERTA em suas características dependendo do fabricante e versão.
Sempre use o “datasheet” (folha de dados) do componente
como principal referência.
AUTOMAÇÃO INDUSTRIAL
160

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 A
X X
B B

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

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

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

Fonte: Autor

A representação simplificada da porta NOT pode ser usada em todo o


esquema de seu circuito. Para tanto, utilizamos um pequeno círculo junto à
entrada ou à saída do operador em lugar do símbolo completo. Este círculo deve
ser representado no local onde a porta NOT estaria conectada. (Figura 182)

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

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

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 fisicamente maior, mais caro, que consome mais energia,
ou que é mais lento.
Para não correr este risco, precisamos estudar alguns teoremas, que serão
utilizados para a construção e simplificação de circuitos lógicos mais eficientes.
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
AUTOMAÇÃO INDUSTRIAL
162

b) 1 + 1 = 1 V ou V = V
Axioma 4:
a) 0 . 1 = 1 . 0 = 0 FeV=VeF=F
b) 0 + 1 = 1 + 0 = 1 F ou V = V ou F = V
Com base nesses axiomas foram desenvolvidos teoremas (também chamados
de leis ou postulados), os quais auxiliam na simplificação de funções lógicas ou na
expressão de sua equivalência. Esses teoremas são descritos a seguir.
• 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:
AUTOMAÇÃO INDUSTRIAL
164

Tabela 9: Verdade para as expressões equivalentes: a) XY e b) X + Y


a) b)
X Y XY XY X Y X Y X +Y
0 0 0 1 0 0 1 1 1
0 1 0 1 0 1 1 0 1
1 0 0 1 1 0 0 1 1
1 1 1 0 1 1 0 0 0

Fonte: 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 A A
Y = A+B Y = A+B Y = A+B
B B Y = A+B Y = A+B
B

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

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áfico utilizado para simplificar
expressões lógicas a partir da tabela verdade. Os exemplos a seguir ilustram os
mapas para 2, 3 e 4 variáveis:

Os diagramas conhecidos como Mapas de Karnaugh foram


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

a) Função de duas variáveis:


Tabela Verdade Expressão Mapa de Karnaugh

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

b) Função de três variáveis:


Tabela Expressão Mapa de Karnaugh
Verdade

A B C F
0 0 0 1
C c
0 0 1 1
0 1 0 1 Ab 1 1
0 1 1 0 F = A . B . C+ A . B . C AB 1 0
1 0 0 0 AB 1 0
1 0 1 0
Ab 0 0
1 1 0 1
1 1 1 0
AUTOMAÇÃO INDUSTRIAL
166

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 F=A.B.C.D+A.B.C.D+A.B.C.D+A.B.C.D
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0 Mapa de Karnaugh
1 0 0 0 0
1 0 0 1 0 C c
1 0 1 0 0
Ab 0 1 0 0
1 0 1 1 0
AB 0 1 0 0
1 1 0 0 0
1 1 0 1 1 AB 0 1 1 0
1 1 1 0 0 Ab 0 0 0 0
1 1 1 1 1

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 e uns, a expressão para a
soma dos produtos é obtida somando-se (OR) os quadrados que contenham 1s;

Agrupamentos
A expressão para a saída de uma função pode ser simplificada pela combinação
apropriada dos quadrados do Mapa de Karnaugh que contenham 1s. Esse processo
é o agrupamento. Podem ser formados grupos de 2, 4, 8, 16 ou 32 quadrados
adjacentes, de acordo com o número de combinações das variáveis de entrada.
A expressão simplificada é obtida a partir da análise do grupo, reescrevendo as
variáveis que se repetem ao longo de todos os quadrados. A seguir são apresentados
exemplos de agrupamentos com duplas (ou pares), quadras e octetos:
4 Sistemas digitais
167

a) Pares ou Duplas
AB AB AB AB
C 0 1 1 0
X = A.B.C + A.B.C = (B.C).(A+A)= B.C
C 0 0 0 0
Obs: Note que nesses dois termos, apenas A varia,
enquanto BC não se altera.
C C C C CD CD CD CD
AB 0 0 AB 1 0 AB 0 0 1 1
AB 1 1 AB 0 0 AB 0 0 0 0
AB 0 0 AB 0 0 AB 0 0 0 0
AB 0 0 AB 1 0 AB 1 0 0 1

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

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

CD CD CD CD CD CD CD CD
AB 0 0 0 0 AB 1 0 0 1
AB 0 1 1 0 AB 0 0 0 0
AB 0 1 1 0 AB 0 0 0 0
AB 0 0 0 0 AB 1 0 0 1
X = B.D X = B.D

c) Octetos
CD CD CD CD CD CD CD CD
AB 1 1 1 1 AB 1 1 0 0
AB 0 0 0 0 AB 1 1 0 0
AB 0 0 0 0 AB 1 1 0 0
AB 1 1 1 1 AB 1 1 0 0

X=B X=C

CD CD CD CD
AB 0 0 0 0
AB 1 1 1 1
AB 1 1 1 1
AB 0 0 0 0
X=B
d) Agrupamentos Mistos
CD CD CD CD CD CD CD CD
AB 0 0 0 1 AB 0 0 1 0
AB 0 1 1 0 AB 1 1 1 1
AB 0 1 1 0 AB 1 1 0 0
AB 0 0 1 0 AB 0 0 0 0
X = B.C + A.C.D + A.B.C.D X = A.B + B.C + A.C.D
AUTOMAÇÃO INDUSTRIAL
168

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 é definido pela
combinação dos estados de A e B, porém quando A for 0, e B for 1, o valor de X
será irrelevante, ou seja, para o circuito não importará.
O valor de Y, da mesma forma, assume valor irrelevante quando A e B estiverem
VOCÊ Os Mapas de Karnaugh podem ser utilizados para
valendo 1.SABIA? simplificar funções de até 6 variáveis?

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.
f
A-1 0 1 3 2
4 5 7 6
00 01 11 10 C 12 13 15 14 d
16 20 28 24 8 9 11 10
A=0 1 1 1 e
BC 17 21 29 25 f
16 17 19 18
DE 00 01 11 10 19 23 31 27 20 21 23 22
C 28 29 31 30 d
0 9 12 8 1 1
1 1 1 18 22 36 26 24 25 27 26
1 1
1 5 13 9
e
1 1
f b
3 7 15 11
48 40 51 50
7 6 14 10
52 53 55 54
1 1 C 60 61 63 62 d
a 56 57 59 58
e
f
32 33 35 34
36 37 39 38
44 45 47 46 d
C 40
41 43 42
e

Figura 184 -  Mapas de Karnaugh para 5 e para 6 variáveis


Fonte: Autor

SAIBA Pesquisando sobre programas de edição e simplificação de


expressões booleanas na internet.
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 circutio 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
I0

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

ENTRADAS DE SELEÇÃO
Figura 185 -  Diagrama de um multiplexador
Fonte: Autor

Pelo diagrama, observamos que um multiplexador atua como uma chave


digitalmente controlada de múltiplas posições, em que um código digital é
aplicado nas entradas de seleção, definindo qual das “n” entradas de dados terá
seu conteúdo transmitido para um único canal de saída. Multiplexadores são
construídos a partir de circuitos combinacionais, utilizando essencialmente
portas lógicas. Devido ao seu uso recorrente, existem modelos comerciais
de multiplexadores. Vejamos como estes circuitos podem também ser
implementados a partir de portas lógicas básicas.
AUTOMAÇÃO INDUSTRIAL
170

Para o projeto de um circuito multiplexador devemos levar em consideração


o número de códigos diferentes que as entradas de seleção podem fornecer.
Cada um desses códigos será o “endereço” de uma das entradas de dados, o qual
definirá qual dado será enviado para a saída. Assim, para um multiplexador com
“n” entradas de seleção, teremos 2n entradas de dados.
Para entender melhor como funciona o projeto de um circuito multiplexador,
vamos analisar o processo de construção de dois multiplexadores: um circuito
básico de 2 entradas (ou canais) de dados e um circuito para 4 entradas.
a) Multiplexador básico de 2 entradas (2:1)
Considere o circuito da figura a seguir, o qual apresenta um multiplexador
com duas entradas de dados (I0 e I1) e uma entrada de seleção (S). Utilizando
uma entrada de seleção, é possível obter dois códigos diferentes, ou seja, dois
endereços diferentes e, assim, utilizar duas entradas de dados.
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)

• Z = I0 S + I1 S
Io
1 Assim, quando S = 0, a porta 2 é
I1 habilitada, permitindo que o sinal de
2 I1 seja enviado para a saída, e a porta 1
S
é desabilitada, fazendo com que I0 não
Figura 186 -  Multiplexador de 2 canais
Fonte: Autor
interfira 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 (I0, I1, I2e I3) e duas entradas de
seleção (S0 e S1). A tabela verdade para essa operação e o circuito implementado
são apresentados na Figura 187.
a) b) 3 2 1 0

S0 S1 Saída
0 0 Z = I0
0 1 Z = I1
1 0 Z = I2
1 1 Z = I3

Figura 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


SAIBA paralelo para formar um multiplexador com um número
MAIS maior de entradas.

A) MUX de 8 entradas (8:1)


O circuito apresentado na figura a seguir é o multiplexador de oito entradas
74xx151, que tem como particularidades uma entrada de habilitação e o
fornecimento de duas saídas, normal e invertida. (Figura 188 e 189)
a) b)
Entradas Saídas
I0 I1 I2 I3 I4 I5 I6 I7
e s2 s1 s0 Z Z
H X X X H L S2 0

L L L L I0 I0 S10
74 x x 151
L L L H I1 I1 S0 0
MUX de 8 Entradas
E
L L H K I2 I2
L L H H I3 I3
L H L L I4 I4
L H L H I5 I5
H H L I6 I6
L H H H I7 I7

c)
0 1 2 3 4 5 6 7
9 4 3 2 1 15 14 13 12
S2
10
S1
11
S0
7
E

6 5

Figura 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


VOCÊ que o circuito funcione ou não. Essas entradas de controle
são chamadas de entradas de habilitação e podem ser o
SABIA? terminal de uma porta lógica ou de uma combinação de
portas lógicas.
AUTOMAÇÃO INDUSTRIAL
172

PORTAS HABILITADAS PORTAS DESABILITADAS

=A =A
X =A = X =0
1= B 0=B

=A =A
X =A = X =1
1 =B 0=B

=A =A
X =A = X =1
0 =B 1= B

=A =A
X=A = X =0
0 =B 1= B
Figura 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) b) I1a I1b I1c I1d I0a I0b I0c I0d

e s Za Zb Zc Zd
S
H X L L L L 74 x x 157

L L I0a I0b I0c I0d E


L H I1a I1b I1c I1d

Za Zb Zc Zd

c) I1a I0a I1b I0b I1c I0c I1d I0d E S

a b c d

Figura 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


SAIBA paralelo para formar um multiplexador com um número
MAIS maior de entradas.

4.4.2 Circuitos demultiplexadores

Um circuito demultiplexador (DEMUX) ou distribuidor de dados é o circuito


lógico que realiza a operação inversa àquela realizada pelos multiplexadores;
ou seja, recebe uma única entrada e a distribui para diversas saídas. A saída pela
qual o dado de entrada será transmitido é determinada através de um código de
seleção, conforme é possível observar na Figura 191:

ENTRADA
DE DADOS
Z0

Z1
I
Z2
Z3 • A entrada de dados é transmitida
ZN
apenas para uma das saídas, de
acordo com a entrada de código
de seleção.
S0 S1 S2

ENTRADAS DE SELEÇÃO
Figura 191 -  Diagrama de um demultiplexador
Fonte: Autor

Para o projeto de um demultiplexador, devemos lembrar que o número de


saídas será determinado pelo número de entradas de seleção. Assim, para
um demultiplexador com n entradas de seleção, ocorrem 2n saídas. Depois, é
necessário relacionar um código de seleção com cada saída.
Para enterder melhor como funciona o projeto de um circuito demultiplexador,
vamos analisar o processo de construção de dois 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 a seguir, onde temos um demultiplexador com
uma entrada de dados (I), uma entrada de seleção (S) e duas saídas (O0 e O1). O nível
lógico na entrada S determina para qual saída será transmitido o dado de entrada.
AUTOMAÇÃO INDUSTRIAL
174

O0

O1

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 O0 O1
0 1 0
1 0 1
Fonte: Autor

e a expressão para cada uma das saídas é dada por: O0 = I . S e O1 = 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) b)
S0 S1 O0 O1 O2 O3 O0 = I . S0 . S1
0 0 I 0 0 0 O1 = I . S0 . S1
0 1 0 I 0 0
1 0 0 0 I 0 O2 = I . S0 . S1
1 1 0 0 0 I O3 = I . S0 . S1

c)
O0

O1
I
O2

O3

S0 S1
Figura 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 finalidade de
formar demultiplexadores com um número maior de saídas.
a) DEMUX de oito saídas
A figura 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 decodificadores de 3
linhas para 8 linhas que serão estudados mais tarde. A diferença entre eles está
na entrada de dados I, que deve ser acrescentada aos demultiplexadores. Desta
forma, circuitos decodificadores que apresentam uma entrada de habilitação
podem ser utilizados como demultiplexadores. (Figura 194)

a) b)
O0 = I (S2 . S1 . S0 )
S2 S1 S0 O7 O6 O5 O4 O3 O2 O1 O0
O1 = I (S2 . S1 . S0 )
0 0 0 0 0 0 0 0 0 0 I
0 0 1 0 0 0 0 0 0 I 0
O2 = I (S2 . S1 . S0 )
0 1 0 0 0 0 0 0 I 0 0 O3 = I (S2 . S1 . S0 )
0 1 1 0 0 0 0 I 0 0 0 O4 = I (S2 . S1 . S0 )
1 0 0 0 0 0 I 0 0 0 0
O5 = I (S2 . S1 . S0 )
1 0 1 0 0 I 0 0 0 0 0
O6 = I (S2 . S1 . S0 )
1 1 0 0 I 0 0 0 0 0 0
1 1 1 I 0 0 0 0 0 0 0 O7 = I (S2 . S1 . S0 )

c) (b)
A2 A1 A0

00 01 02 03 04 05 06 07

Figura 194 -  Demultiplexador 1:8 - a) Tabela verdade - b) Expressões para as saídas - c) Diagrama lógico
Fonte: Autor
(C) (FIGURA RETIRADA DO DARASHEET DE COMPONENTES - REFAZER)
Na Figura 195 temos o diagrama do circuito integrado 74xx138, um
decodificador configurado para ser usado como um demultiplexador, com o
dado de entrada aplicado em uma das entradas de habilitação.
AUTOMAÇÃO INDUSTRIAL
176

I Vcc
123

E
A2
CÓDIGOS DECODIF/DEMUX
DE A1
74 XX 138
SELEÇÃO
A0

O0 O1 O2 O3 O4 O5 O6 O7

Figura 195 -  Circuito 74xx138, Decodificador/Demultiplexador configurado 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 decodificador hexadecimal que, assim
como o 74xx138, pode ser utilizado como demultiplexador. Para tanto, basta
conectar as duas entradas de strobe como a entrada de dados - figura (a) – ou,
ainda, reservar uma das entradas de strobe como entrada de dados e a outra
com sua função normal, conforme mostrado na figura (b). A entrada de strobe
funciona como uma entrada de bloqueio. Quando ambas as entradas estiverem
em 0, o circuito funcionará como decodificador/demultiplexador. (Figura 196)
a) b)
D 7 D S0 7 S0 D 7 D S0 7 S0
C 4 C S1
4 +
S1 C 4 C S1 4 S1
+ + +
B x B x + B x B x +
+ +
A A A A
x +
x + + x x +
+
+
+ +
1 1 + + 1 1 + +
+ + + +
I IG1 5 G1 S14 5 S14 I IG1 5 G1 S14 5 S14
G2 4 G2S15 4 S15 Strobe StrobeG2 4 G2S15 4 S15

(a) INPUTS (b) (b)


(a)
c) C B A
G2

D
G1
( 20 )

( 22 )
( 19 )

( 21 )

( 18 )

( 17 )

D D C C B B A A G
A

A
B

B
C

C
D A
A

D
B

B
C

C
D

D
G
( 16 )

( 15 )

( 14 )

( 13 )

( 12 )

( 11 )

( 10 )

(9)

(7)

(3)

(2)

(1)
(8)

(6)

(5)

(4)

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OUTPUTS

Figura 196 -  Circuito 74xx154 configurado como demultiplexador 1:16 - a) e b) Configuraçõ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) b)
ENtradas Saídas 7 100
Seleção Strobe Dado - 1C 4 101

b a 1g 2g 1 2 nO0 nO1 nO2 nO3 1C X 102


Strobe X 103
c c 2C
200
X X 1 X X 1 1 1 1 1
201
Dado 2C 5
0 0 0 1 0 0 1 1 1 202
5
A0 A1 203
0 1Ea Ea 0 1 0 1 0 1 Eb Eb 1
7 100
1 0 0 1 0 1 1 0 1 - 1C 4 101

1 1 0 1 0 1 1 1 0 1C X 102
Strobe 103
A2C B X
X X X 0 1 1 1 1 1 Seleção 1
200
201
Dado 2C 5
202
c) A0 A1 (b) 5 203
Ea Ea Eb Eb

O0a O1a O2a O3a O0b O1b O2b O3b A B


Seleção

(b)

O0a O1a O2a O3a O0b O1b O2b O3b


Figura 197 -  Decodificador/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íficos que permitem transportar frutas e vegetais para vários
locais da América do Sul. Em transportes longos, faz-se necessário um controle
mais rigoroso de temperatura, que pode variar de 2ºC a 10ºC conforme a
mercadoria transportada, e com variação máxima de 1ºC durante o transporte.
Após consultar um especialista, Rivaldo considera a compra de um sistema
automatizado para controle de temperatura, e após alguns orçamentos, se
depara com duas propostas com custos bem diferentes.
AUTOMAÇÃO INDUSTRIAL
178

Na primeira opção, e bem mais cara, o sistema permite realizar um controle de


temperatura entre -55ºC e 85ºC, com uma resolução de 10 bits. No segundo sistema,
o controle é realizado em temperaturas entre -15ºC e 55ºC, com resolução de 8 bits.
Após consulta a um especialista para saber qual sistema atende suas espectativas,
ainda por telefone, o consultor apresentou os seguintes dados: O sistema mais caro
trabalha em 10 bits, e pode ler até 210 = 1024 possibilidades. Isso, aplicado a uma faixa
de temperatura de -55ºC a 85ºC, permite detectar variações de aproximadamente
0,14ºC, atendendo a expectativa. O segundo sistema, de menor custo, permite
realizar um controle de -15ºC a 55ºC, detectando variações de aproximadamente
0,28 ºC, e também atende as expectativas. Apesar de ter resolução de 8 bits, este
último sistema permite um ajuste mais preciso para a faixa de temperatura esperada
para o interior das câmaras frias dos caminhões, proporcionando melhor controle
para esta aplicação, além de ter um menor custo.

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 Sinal Digital
0101101011
6
4

100 8
50
2

150 10
psi
bar
11

Conversos Conversos
A/D D/A

Sinal Digital Sinal Analógico


V
0101101011 t
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ífica e pode ser representado, dentre outras formas, por variações
de corrente ou de tensão (padrões mais utilizados na automação industrial).
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:
111
1 11 110
101
10 100
011
01 010
001
0 00 000

analógico 1 bit 2 bits 3 bits

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 22
= 4 estágios diferentes. Com conversão de 3 bits, são 23 = 8 estágios diferentes.
Um conversor A/D de 8 bits pode, então, fornecer 28 = 256 estágios.
Em termos práticos, a resolução de um conversor A/D é dada em bits. Em certos
sistemas microcontrolados ou microprocessados que estudaremos em breve,
o processo inverso também ocorre, convertendo uma combinação binária de
alguns bits em um sinal analógico. Quanto mais bits, maiores são as possibilidades
que podem ser obtidas.
Em termos práticos, se usarmos um sensor de temperatura analógico conectado
a um conversor A/D de 8 bits, poderemos dividir a temperatura detectada por
este sensor em até 256 (28) possíveis valores. Se este conversor A/D fosse de 10
bits, seriam 1024 (210) possibilidades.
Alguns sistemas que exigem conversões extremamente precisas utilizam
conversores A/D de 16 bits. Faça um cálculo e descubra a quantidade de valores
possíveis gerados por este tipo de conversor.
Da mesma forma, se pretendermos controlar a velocidade de um motor usando
um conversor D/A de 4 bits, poderemos obter até 24 = 16 velocidades diferentes.
AUTOMAÇÃO INDUSTRIAL
180

Sabemos que não é uma representação fiel de um sistema analógico; no


entanto, quanto maior é a resolução, mais aproximada é a representação.
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 configurações: como subcircuito de um circuito integrado com mais
funções (caso que segue), como circuito integrado simples ou, ainda, como parte
de um dispositivo que realiza a leitura de sinais analógicos.

500 kHz CLK DE


5.000V VREF (+) EDC
0.000V VREF ( - )

START
2 -1 DB7 MSB
ALE
2
-2
DB6
2 -3 DB5
AD0 A ADC0808
2 -4 DB4
AD1 B ADC0809
AD2 C 2 -5 DB3
5V SUPPLY 2 -6 DB2
Vcc 2 -7 DB1
GND 2 -8 DB0 LSB
In7 VIN 8
GROUND
0 -5V
ANALOG
INPUT RANGE
VIN1
In0

Figura 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 (In0 a In7) em
sinais de 8 bits (DB 0 a DB 7). Para definir que entrada analógica deve ser
convertida, os pinos A, B e C (AD0 a 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 In3.
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


VOCÊ programáveis, e também podem possuir uma ou mais
SABIA? entradas analógicas atuando em níveis de tensão de até 5V.

4.5.2 Conversor D/A

Da mesma forma que circuitos A/D, os circuitos D/A podem se apresentar


como circuitos integrados híbridos, agregando várias funções ou, ainda, partes
de um dispositivo ou equipamento.
Um circuito D/A deve converter um conjunto de sinais digitais em um valor analógico.
Isso pode ser obtido, de forma mais genérica, utilizando-se um circuito com
amplificador operacional, conforme a imagem que segue.
AUTOMAÇÃO INDUSTRIAL
182

2R R R R P 2R O 3R A B C D Vpo Vs (v)
(Va) (Vb) (vc) (Vd) (V)
2R 2R 2R 2R - 0 0 0 0 0,00 0,00
+ 0 0 0 1 0,20 0,40
Vs
Vd Vc Vb Va 0 0 1 0 0,40 0,80
0 0 1 1 0,60 1,20
Exemplo: 0 1 0 0 0,80 1,60
Se R = 10k, R2 = 20k 0 1 0 1 1,00 2,00
0 1 1 0 1,20 2,40
R2 (pode ser obrido por dois resistores R em série)
0 1 1 1 1,40 2,80
1 0 0 0 1,60 3,20
Se R = 10k, R3 = 30k 1 0 0 1 1,80 3,60
R3 (pode ser obtido por três resistores R em série) 1 0 1 0 2,00 4,00
1 0 1 1 2,20 4,40
1 1 0 0 2,40 4,80
Vd, Vc, Vb e Va são entradas digitais, Vs é uma 1 1 0 1 2,60 5,20
saída de comportamento próximo as analógico, 1 1 1 0 2,80 5,60
1 1 1 1 3,00 6,00
com resolução de 4 bits (16 possobilidades)
Figura 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 codificador o circuito combinacional que possibilita a


transformação de um código em outro código. Chamamos de decodificador o
circuito que realiza a operação inversa. Como exemplo, considere o diagrama de
uma calculadora conforme mostrado na Figura 202:
1234567890

CE % +/- -
1 2 3 +
codificador processador decodificador 1234567890
4 5 6 x
7 8 9 /
aritmético
00 0 . =
CE % +/- -
1 2 3 +
4 5 6 x
decimal binário decimal
7 8 9 /
00 0 . =

Figura 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 codificador e decodificador
se diferenciam em função do referencial (qual o código de entrada e qual o código
de saída), sendo comum o uso do termo decodificador para ambas as operações.
Muitas vezes utilizamos o termo conversores de código para evitar problemas
com a definição dos códigos.

4.6.1 Códigos numéricos e alfanuméricos

Quando representamos informações através de símbolos, chamamos o grupo


de símbolos de código e dizemos que a informação está sendo codificada. As
letras que compõem este texto são exemplos de códigos. Cada letra é um símbolo
que, junto a outros, tem um significado.
Nos sistemas digitais existe a necessidade de representar números,
quantidades, textos, imagens, vídeos e sons, dentre outras informações,
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


SAIBA 10 tipos de pessoas: As que conhecem números binários e as
MAIS que não conhecem números binários.
AUTOMAÇÃO INDUSTRIAL
184

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
VOCÊ caracteres de oito bits baseada no alfabeto inglês, onde os
SABIA? códigos representam caracteres? Exemplo: Na tabela ASCII,
a letra H maiúscula e representada pelo código 72, que em
binário é 01001000.

Dispositivos digitais de codificação/decodificação são usados para transformar


uma combinação específica (geralmente binária) em outra, com o intuito de
permitir a troca de informação e integração de sistemas diferentes.
O código numérico mais simples consiste na representação de um número
inteiro por uma palavra de código que é a sua representação em binário. Se
cada palavra tem um comprimento constante, o código denomina-se Código
Binário Natural (CBN). (Tabela 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 é compoto de 10 dígitos, quatro bits são necessários para a codificação
(24 bits = 16 possibilidades).
Existem diversos códigos BCD, o mais comum é BCD 8421. Os números indicam
os valores dos algarismos de acordo com sua posição (23, 22, 21, 20). Entre os vários
outros códigos temos BCD 7421, BCD 5211 e o BCD 2421. A conversão destes
códigos para o sistema decimal é análoga à conversão do BCD 8421. (Figura 203)
Ex.: (874)10
8 7 4 (874)10 = (100001110100)BCD
(874)10 = (1101100010)2
1000 0111 0100
Conversão do número 874 e um sistema BCD 8421
Figura 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)
AUTOMAÇÃO INDUSTRIAL
186

a
f g b

e c
d
Figura 204 -  Display de 7 segmentos
Fonte: Autor

Pesquise sobre a diferença entre os displays de 7 segmentos


SAIBA ANODO COMUM e CATODO COMUM. Observe diagramas
MAIS de ligação entre estes displays e os circuitos integrados
estudados neste tópico.

4.6.3 Circuitos decodificadores

Um decodificador é um circuito lógico que recebe um conjunto de


entradas, representando um número binário, e ativa apenas a saída
correspondente ao número recebido.
O demultiplexador 74xx138, por exemplo, pode ser usado como um
decodificador. Possui 3 entradas (A0, A1 e A2) e 8 saídas (O0 a O7). Com as 3 entradas,
há 8 combinações possíveis, e cada combinação faz referência a uma possível saída.

00

01
E3
02
E2
ENABLE
E1 03

SAÍDA
04

A0 05

ENTRADAS DE A2 06
SELEÇÃO
07
A1

Figura 205 -  Circuitos decodificadores


Fonte: Autor

Alguns decodificadores possuem uma ou mais entradas ENABLE (HABILITAÇÃO),


que são utilizadas para controlar a operação do circuito. O código de entrada
é aplicado em A2 A1 A0 sendo A2 o MSB (bit mais significativo). Analisando o
diagrama é possível observar que as saídas são ativas em nível baixo, isto é, o
código de entrada ativará a saída correspondente e essa passará a ter nível lógico
baixo; as demais saídas permanecem em alto. (Figura 206)
4 Sistemas digitais
187

Vcc

123

E
A2
CÓDIGOS
A1 DECODIF/DEMUX
DE
74 XX 138
SELEÇÃO
A0

O0 O1 O2 O3 O4 O5 O6 O7

E1 E2 E3 Saídas

0 0 1 Respondem ao código de entraga A2 A1 A0


1 X X Desabilitadas - todas em nível alto
X 1 X Desabilitadas - todas em nível alto
X X 0 Desabilitadas - todas em nível alto

Figura 206 -  Decodificador 74xx138, diagrama lógico e tabela verdade em relação às entradas de habilitação (enable)
Fonte: Autor

As entradas E1 , E2 e E3 são entradas de habilitação, separadas e combinadas


em uma porta AND. Para possibilitar que as portas NAND respondam ao
código de entrada A 2 A 1 A 0, a saída da porta AND deve estar em nível alto,
o que só ocorre quando E1 = E2 = 0 e 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 decodificador
permite que duas saídas digitais sejam suficientes para o controle deste dispositivo.
Saídas
Entradas

S0

E0 S1
S2
E1
S3

Circuito
Controlador Decodificador Motor de passo
amplificador

Figura 207 -  Esquema de ligação de um decodificador de 2 bits para controlar até 4


saídas, usadas em um motor de passo de 4 bobinas
Fonte: Autor

Observe que, sem o uso do decodificador, seriam necessárias 4 saídas digitais


para o controle do motor de passo. Portanto, uma das principais aplicações de
codificadores e decodificadores é para a otimização de entradas e saídas digitais
de sistemas de controle.
AUTOMAÇÃO INDUSTRIAL
188

4.6.4 Circuitos codificadores

Um codificador é um circuito que realiza a operação inversa do decodificador;


ou seja, o acionamento de uma das entradas gera um código de N bits na saída,
correspondente à entrada ativada.
A Figura 208 a seguir apresenta o diagrama geral de um codificador com M
entradas e N saídas.

I0 O0

Controlador
entradas
I1 O1

saídas
M
* *

N
* *
I M-1* *
O N-1
M entradas com apenas
Código de saída
uma entrada em nível
de N bits
ALTO de cada vez

Figura 208 -  Diagrama geral de um codificador


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 S5
S2 S6
S1 S7
S0
24V
comum

Chave Seletora
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 S5
S2 S6
Codificador

S1 S7
S0
24V
comum

Chave Seletora

Figura 210 -  CLP usando 3 entradas digitais para ler sinal de 8 diferentes combinações possíveis
Fonte: Autor
4 Sistemas digitais
189

Embora sejam bastante versáteis, circuitos integrados


FIQUE codificadores e decodificadores são meramente circuitos
combinacionais de sinal, e não são adequados para sinais
ALERTA de tensão ou corrente elevada. Se necessario, utilize
configurações com circuitos de proteção e amplificação.

Considere o codificador de 8 para 3 linhas mostrado na Figura 211, em que o


acionamento de uma das 8 entradas gera um código de 3 bits na saída. (Tabela 15)
A0
A1
A2 O0 (LSB)
A3
A4 O1
A5
A6 O2 (MSB)
A7

Figura 211 -  Codificador de 8 para 3 linhas


Fonte: Autor

Tabela 15: Verdade de um codificador com entradas negadas


A0 A1 A2 A3 A4 A5 A6 A7 O2 O1 O0

X 1 1 1 1 1 1 1 0 0 0
X 0 1 1 1 1 1 1 0 0 1
X 1 0 1 1 1 1 1 0 1 0
X 1 1 0 1 1 1 1 0 1 1
X 1 1 1 0 1 1 1 1 0 0
X 1 1 1 1 0 1 1 1 0 1
X 1 1 1 1 1 0 1 1 1 0
X 1 1 1 1 1 1 0 1 1 1
Fonte: Autor

Através do circuito, é fácil verificar que qualquer uma das entradas produz um
código binário na saída, correspondente a ela. Mas o que acontecerá se duas ou mais
entradas forem acionadas simultaneamente? Esta é uma desvantagem dos circuitos
codificadores simples. Uma versão modificada, denominada codificador de prioridade,
inclui uma lógica que garante que, quando duas ou mais entradas forem ativadas ao
mesmo tempo, o código na saída corresponderá à entrada de número mais alto.

4.7 Flip-flop (multivibrador biestável)

Flip-flop é um circuito bastante comum em sistemas digitais, e tem


comportamento de um multivibrador biestável. Chamamos de multivibrador, pois
o circuito possui basicamente dois estados possíveis, podendo fazer a transição
de um para outro estado, e é biestável porque a transição entre os estados ocorre
somente com impulsos externos.
AUTOMAÇÃO INDUSTRIAL
190

O circuito aciona ao receber um pulso em uma entrada (set), e desaciona ao


receber um pulso em outra entrada (reset). Isso faz com que tal configuração de
hardware funcione como uma memória de 1 bit. Em circuitos digitais, flip-flops
são implementados geralmente com esta finalidade.
Geralmente, flip-flops são implementados na forma de circuitos integrados e,
portanto, necessitam de alimentação geralmente não superior a 5V.
Um flip-flop possui dois estados de saída. A mudança destes estados de saída
é determinada por eventos externos. Alguns circuitos de flip-flop possuem uma
entrada para ativar e outra para desativar a saída. Outros circuitos usam a mesma
entrada para isso, sendo que um pulso aciona e outro pulso desaciona. Existem,
ainda, circuitos que dependem de um sinal de clock (chamados de síncronos),
onde um pulso determina os momentos das transições.

O primeiro flip-flop eletrônico foi inventado em 1919, por


William Eccles e F. W. Jordan. Ele foi inicialmente chamado
VOCÊ de circuito de disparo Eccles-Jordan, porém o nome
SABIA? flip-flop é devido ao som produzido em um alto-falante
conectado à saída do circuito.

4.7.1 Flip-flop RS (“reset-set”)

A lógica RESET-SET é a mais comum. Uma entrada S(set) é usada para ativar a
saída, e uma entrada R(reset) é utilizada para desativá-la.
O circuito para um flip-flop RS assíncrono (sem clock) pode ser implementado
utilizando-se portas NOR, como mostrado na Figura 212:
a) b)
S Q
1 R Q

2 Q S Q
R
Figura 212 -  Flip-flop 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)
Tabela 16: Verdade para o flip-flop RS implementado com portas NOR
Entradas saídas operações observações
R S Q Q
0 0 Qanterior Qanterior Conservação As saídas mantém seus estados anteriores.
0 1 1 0 Estabelecimento Saída Q fixa seu valor em 1, independente do
valor anterior.
1 0 0 1 Restauração Saída Q fixa seu valor em 0, independente do
valor anterior.
1 1 0 0 Proibido Combinação proibida para biestáveis RS.
Fonte: Autor
4 Sistemas digitais
191

Outro circuito possível para a construção de um flip-flop RS assíncrono pode


ser implementado utilizando-se portas NAND, como mostrado abaixo:
a) b)
S Q R Q

Q S Q
R

Figura 213 -  Flip-flop 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 flip-flop RS implementado com portas NAND
Entradas saídas operações observações
S R Q Q
0 0 0 0 Proibido Combinação proibida para biestáveis RS.
0 1 1 0 Estabelecimento Saída Q fixa seu valor em 1, independente do
valor anterior.
1 0 0 1 Restauração Saída Q fixa seu valor em 0, independente do
valor anterior.
1 1 Qanterior Q anterior Conservação As saídas mantém seus estados anteriores.

Fonte: Autor

4.7.2 Flip-flop RS síncrono

O flip-flop RS síncrono é assim chamado porque, além das entradas reset (R) e
set (S), possui uma terceira entrada chamada clock (CLK), através da qual um sinal
externo determina o instante em que as saídas serão atualizadas. O circuito para
esse flip-flop é apresentado na Figura 214:
a) b)
S
Q R Q
CLK CLK
Q S Q
R

Figura 214 -  Flip-flop 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.
AUTOMAÇÃO INDUSTRIAL
192

Entretanto, quando a entrada CLK está em nível lógico alto, temos o


funcionamento de um flip-flop RS conforme estudado anteriormente, com as
entradas R e S, juntamente com o estado anterior das saídas, definindo o estado
atual das saídas.
Ou seja, a atualização do estado das saídas é sincronizada 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 flip-flop RS síncrono
Entradas saídas operações observações
CLK R S Q Q
0 X X Qanterior Q anterior Inibição As saídas permanecem inalteradas.

1 0 0 Qanterior Q anterior Conservação As saídas mantém seus estados anteriores.

1 0 1 1 0 Estabelecimento Saída Q fixa seu valor em 1, independente do


valor anterior.
1 1 0 0 1 Restauração Saída Q fixa seu valor em 0, independente do
valor anterior.
1 1 1 0 0 Proibido Combinação proibida para biestáveis RS.
Fonte: 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)

J
(set) Q
CLK
Q
K
(reset)

Figura 215 -  Implementação do circuito de um flip-flop JK com portas lógicas


Fonte: Autor

O funcionamento do flip-flop JK assemelha-se ao do flip-flop RS, com as


entradas J e K operando como entradas set e reset, respectivamente. A exceção
do funcionamento do circuito está na condição proibida para o RS. No flip-flop JK,
quando as entradas estão em J = 1 e K = 1 e o pulso de clock muda de 0 para 1, as
saídas se complementam, isto é, passam de 0 e 1 para 1 e 0, ou vice-versa.
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 flip-flop RS síncrono
Entradas saídas observações
CLK J K Q Q
0 X X Qanterior Q anterior As saídas permanecem inalteradas.

1 0 0 Qanterior Q anterior As saídas mantém seus estados anteriores.

1 0 1 0 1 Saída Q fixa seu valor em 0, independente do


valor anterior.
1 1 0 1 0 Saída Q fixa seu valor em 1, independente do
valor anterior.
1 1 1 Q anterior Qanterior Oscilação
Fonte: Autor

4.7.4 Flip-flop JK mestre-escravo (master-slave)

O flip-flop JK mestre-escravo é uma implementação que visa eliminar a


oscilação no circuito anterior para a condição J = 1 e K = 1. O circuito consiste
em dois flip-flops RS síncronos conectados em cascata, com uma porta inversora
entre o clock do primeiro flip-flop (mestre) e o clock do segundo flip-flop (escravo),
além de uma segunda realimentação entre as saídas e às portas de entrada. Esse
circuito é apresentado na Figura 216.
Mestre Escravo

J x
Q
CLK
CLK

Q
K y

Figura 216 -  Implementação do circuito de um flip-flop 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 flip-
flop mestre está habilitado e as saídas intermediárias X e Y se complementam.
Entretanto o clock do flip-flop escravo está em nível lógico baixo, o que faz com
que esteja desabilitado. Portanto, as saídas não sofrem alteração e a realimentação
delas com a entrada do circuito não provoca mais alterações em X e Y.
AUTOMAÇÃO INDUSTRIAL
194

• Quando a entrada de clock do circuito está em nível lógico baixo (CLK = 0), o
flip-flop escravo está habilitado e as saídas Q sofrem alteração. Entretanto, como
o flip-flop mestre está desabilitado, a alteração nas entradas provocada pela
realimentação não tem efeito sobre as saídas X e Y.
Ou seja, na condição J = 1 e K = 1, as saídas X e Y alteram-se somente na subida
do pulso de clock, enquanto que as saídas Q e se alteram somente na descida do
pulso de clock. Abaixo, na Tabela 20, é apresentada a tabela verdade para um flip-
flop mestre escavo, e na Figura 217, seu símbolo lógico.
Tabela 20: Verdade para o flip-flop RS síncrono
Entradas saídas observações
CLK J K Q Q
0 X X Qanterior Q anterior As saídas permanecem inalteradas.

0 0 Qanterior Q anterior As saídas mantém seus estados anteriores.

0 1 0 1 Saída Q fixa seu valor em 0, independente do valor anterior.


1 0 1 0 Saída Q fixa seu valor em 1, independente do valor anterior.
1 1 Q anterior Qanterior As saídas se complementam
Fonte: Autor

J Q
CLK
K Q
Figura 217 -  Símbolo lógico de um flip-flop JK mestre-escravo
Fonte: Autor

VOCÊ Um flip-flop síncrono pode ser sensível à borda de descida


SABIA? ou à borda de subida.

Existem modelos de flip-flop cujas saídas respondem à combinação das


entradas quando ocorre a subida do pulso de clock (transição positiva), e outros
modelos (como o demonstrado anteriormente) são sensíveis à borda de descida
do pulso de clock (transição negativa).
A diferença entre os flip-flops pode ser observada na entrada de clock no
símbolo lógico do componente: (Figura 218)

J Q J Q
CLK CLK
K Q K Q

Transição Transição
negativa positiva
Figura 218 -  Flip-flop 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 flip-flop JK mestre-escravo


tem como efeito a determinação do valor lógico das saídas, independente da
combinação das entradas J e K e do pulso de clock. Na Figura 219 é apresentado
o circuito para esse flip-flop: (Tabela 21)
PR
a) b)
J x
Q J Q
CLK
CLK CLK
Q
K y K Q

CL

Figura 219 -  Flip-flop JK mestre-escavo com entradas Preset e Clear - a) implementação do circuito com
portas lógicas - b) símbolo lógico
Fonte: Autor

Tabela 21: Verdade para o flip-flop 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 fixa seu valor em 0, inde-
pendente das demais entradas.
0 1 X X X 1 0 Preset ativo: Saída Q fixa seu valor em 1, inde-
pedente das demais entradas.
1 1 0 0 Qanterior Q anterior As saídas mantém seus estados anteriores.

1 1 0 1 0 1 Saída Q fixa seu valor em 0, independente do


valor anterior.
1 1 1 0 1 0 Saída Q fixa seu valor em 1, independente do
valor anterior.
1 1 1 1 Q anterior Qanterior As saídas se complementam
Fonte: Autor

4.7.6 Flip-flop D

O flip-flop tipo D é uma variação do JK. Esse circuito possui uma única entrada
de dados e uma entrada de clock. Para a implementação de um flip-flop tipo D a
partir de um JK, basta acrescentar uma porta NOT à entrada K. Essa inversora será
conectada à entrada J do flip-flop, como mostrado na Figura 220 e Tabela 22.
AUTOMAÇÃO INDUSTRIAL
196

a) b)
D J Q D Q
CLK CLK
K Q Q

Figura 220 -  Flip-flop tipo D - a) implementação do circuito a partir de um flip-flop JK - b) símbolo lógico
Fonte: Autor

Tabela 22: Verdade para o flip-flop 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 flip-flop apenas


armazena o valor da entrada D. Por essa razão, o flip-flop tipo D é chamado de
latch (memória). É preciso lembrar que, comercialmente, estão disponíveis vários
modelos de flip-flops tipo D, podendo esses componentes apresentar, assim como
o flip-flop JK, entradas preset, clear e clock com transição positiva ou negativa.

4.7.7 Flip-flop Tipo T

O flip-flop tipo T é outra variação do JK. Assim como o modelo anterior, esse
circuito também possui uma única entrada de dados e uma entrada de clock.
Para a implementação de um flip-flop tipo T a partir de um JK, basta interligar as
entradas J e K, como mostrado na Figura 221.
a) b)
T J Q T Q
CLK CLK

K Q Q

Figura 221 -  Flip-flop tipo T - a) implementação do circuito a partir de um flip-flop 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)
5V
Diodo

Relé

Botão
14
1

13
2

1k5 Transistor
12
3

NPN
11
4

10
5
6

9
7

Figura 222 -  Circuito com Flip-Flop J-K aplicado à configuração de Toggle. CI utilizado: 74xx73
Fonte: Autor
4 Sistemas digitais
197

Analisando o circuito implementado, com base no funcionamento de um flip-


flop JK, podemos obter a seguinte tabela verdade. (Tabela 23)
Tabela 23: Verdade para o flip-flop tipo T
Entradas saídas
CLK T Q Q
0 Qanterior Q anterior

1 Q anterior Qanterior
Fonte: Autor

4.7.8 Modelos comerciais de flip-flop

Abaixo, na Tabela 24, é apresentada uma tabela com alguns exemplos de modelos
comerciais de flip-flop. É importante lembrar que, antes de utilizar um modelo
comercial, devemos sempre consultar o datasheet do componente para conhecer
quais os níveis lógicos de acionamento das entradas, bem como suas funções e
controles adicionais.
Tabela 24: Modelos comerciais de flip-flop
Modelo Descrição Resumida
74xx72 Flip-flip JK mestre-escravo com preset e clear
74xx73 Flip-flip JK com clear
74xx74 Flip-flip tipo D com preset e clear
74xx107 Flip-flip JK com clear
74xx109 Flip-flip JK com preset e clear
74xx111 Flip-flip JK mestre-escravo com preset e clear
74xx112 Flip-flip JK com preset e clear
74xx113 Flip-flip JK com preset
74xx114 Flip-flip JK com preset e clear
74xx171 Flip-flip tipo D com clear
74xx175 Flip-flip tipo D com clear
74xx273 Flip-flip tipo D com clear
74xx276 Flip-flip JK
74xx279 Flip-flip RS
74xx374 Flip-flip tipo D
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
198

Recapitulando

Neste capítulo vimos que enquanto na Eletrônica Analógica temos como


principal objetivo controlar grandezas elétricas como corrente e tensão, na
Eletrônica Digital o principal enfoque é a representação da informação e de
lógicas binárias em circuitos combinacionais e sequenciais.
A lógica utilizada em sistemas digitais é a lógica booleana, criada por George
Boole, onde utilizamos operadores E (AND), OU (OR) e NÃO (NOT) para construir
expressões. Operadores derivados (XOR, NOR, NAND, XNOR) também permitem
operações entre operadores. Os operandos são valores lógicos constituídos
de variáveis binárias ou constantes, podendo valer 0 (falso) ou 1 (verdadeiro).
Componentes eletrônicos que implementam comportamento destes
operadores da lógica booleana são chamados de portas lógicas, e combinados
podem gerar circuitos mais complexos, como codificadores, decodificadores,
multiplexadores, demultiplexadores, processadores e microcontroladores,
dentre outros. Todo circuito lógico pode ser representado em uma tabela que
relaciona todos os possíveis valores lógicos das entradas e saídas, sendo ela
chamada de “tabela verdade”.
Circuitos combinacionais são os que apresentam saídas definidas em função
das entradas independente da ordem com que as entradas mudam. Circuitos
sequenciais, por sua vez, dependem da ordem com que as entradas são acionadas
para definir sua saída. Circutos que realizam a conversão de sinais digitais em
sinais analógicos são conhecidos por conversores D/A, e os que realizam a
conversão de sinais analógicos em digitais são conhecidos por conversores A/D.
Na automação industrial, circuitos combinacionais podem ser utilizados para
realizar conversões, codificar e decodificar 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:
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.
AUTOMAÇÃO INDUSTRIAL
202

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 fluxo 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 inflexíveis.
Com o surgimento da Eletrônica Digital, manipular informação em nível
elétrico ficou mais fácil. Porém, foi com o surgimento dos processadores que
houve um grande salto. A partir deste momento, um circuito integrado poderia
ser usado para controlar o funcionamento de vários sistemas distintos. O
mesmo processador utilizado para automatizar uma máquina de fabricação
de robôs era utilizado para a automação de alguns eletrodomésticos (como
máquinas de lavar roupas), ou, ainda, em telefones públicos, em pequenos
computadores pessoais, em videogames e em sistemas automotivos. Um
exemplo clássico é o processador Z80, da Zilog, que equipava os painéis
de controle de grandes máquinas de fabricação, centrais telefônicas,
eletrodomésticos e até videogames.

SAIBA Pesquisando na internet sobre a aplicação dos


MAIS microprocessadores 8080 e Z80, e a diferença entre eles.

Mas, como um mesmo componente poderia ser tão versátil? Como


um mesmo processador poderia ser usado em equipamentos com
funcionalidades tão diferentes? O microprocessador, de forma geral, é um
componente eletrônico capaz de ler e gerar sinais elétricos de acordo com
uma lista de instruções conhecida como programa, e os equipamentos
automatizados são basicamente compostos de sensores e atuadores. Como
a automação destes equipamentos é definida pelas ações efetuadas nos
atuadores em função das informações coletadas pelos sensores, bastava
realizar a integração do microprocessador com estes sensores e atuadores e
programá-lo com o comportamento necessário.
Analisando assim até parece fácil. O problema é que, para criar um sistema de
automação, são necessárias algumas capacidades ao ser humano:
• Conhecer Eletrônica Analógica e Digital.
• Conhecer técnicas de programação. Criar programas eficientes 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, codificar sinais etc.
AUTOMAÇÃO INDUSTRIAL
204

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.
AUTOMAÇÃO INDUSTRIAL
206

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 modificaçõ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)

bits
32-
PIC32
dsPIC33
b its
16- dsPIC30
Funcionalidade

PIC24H
PIC24F
s
8-bit PIC18
PIC16
PIC12
PIC10

Performance

Figura 223 -  Gráfico 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.
AUTOMAÇÃO INDUSTRIAL
208

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:
AUTOMAÇÃO INDUSTRIAL
210

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 fisicamente em configuração
de 40 pinos. Pode ser encontrado em diversos encapsulamentos: (Figura 224)

QFP PLCC

PDIP

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)
5V (RUN)
PROG (13,4V)
CRISTAL RESET (OV)
5V
(MHz)
PORTC PORTE PORTA
E2
E1
E0
A5
A4
A3
A2
A1
A0
D1
D0
C3
C2
C1
C0
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1

PIC16F877
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
D2
D3
C4
C5
C6
C7
D4
D5
D6
D7

B0
B1
B2
B3
B4
B5
B6
B7

PORTC PORTB
PORTD 5V

Figura 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 é configurado como ENTRADA, ele pode ser conectado a
algum sensor para detectar sinais digitais através de variação da tensão de 0 e 5V;
quando é configurado como saída, o programa poderá acioná-lo, e com isso gerar
uma corrente baixa (max. 25 mA) com os níveis de tensão de 0V ou 5V.
AUTOMAÇÃO INDUSTRIAL
212

Enquanto na Automação Industrial a maior parte dos


FIQUE dispositivos sensores e atuadores atuam em padrões
ALERTA 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 é configurada como saída, o microcontrolador tenta manter
o nível lógico da saída, aplicando uma corrente de até 25mA no nível de tensão
desejado pelo programa.
4) Quando uma I/O é configurada como entrada, o microcontrolador deixa o
nível de tensão do pino “flutuar”, variando conforme estímulos externos. Neste caso,
é importante observar a necessidade de aplicação de resistores de “pull-ups” ou “pull-
downs” para definir um nível de tensão padrão, evitando ruído e falsas leituras.
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 confiante. (Figura 226)
5V (RUN)
PROG (13,4V)
5V RESET (OV)
CRISTAL(MHz)
PWM

CONT
AN7
AN6
AN5
AN4

AN3
AN2
AN1
ANO
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1

PIC16F877
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
GRAVADOR
TX (RS232)
RX (RS232)

5V
ICSP

Figura 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.

A letra F presente no nome do microcontrolador PIC


FIQUE identifica que o microcontrolador em questão utiliza a
ALERTA 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.
AUTOMAÇÃO INDUSTRIAL
214

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)

Programa executável
em linguagem de máquina
Compilador
*.HEX
Software programador
Programa fonte PIC
C++
Compter

PIC
*.C
Circuito programador
Microcontrolador Aplicação

*** ***

PC
Programador

Figura 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

QUIT MAN AL1 Black


AL2
novus N1100

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)
AUTOMAÇÃO INDUSTRIAL
216

Computador

Circuito de gravação TAIT clássico utiliza uma porta


paralela física, antigamente disponível em computadores
pessoais, mas que hoje é cada vez mais rara.

DB 25 FÊMEA PORTA
PARALELA FÍSICA
D1 Programador TAIT, criado por David Tait em 1996
>+17V 1N4001
IN U1 OUT +5V
7805 14
PL1 C1 C2 C3 C4
COM U3
10u 100n 100n 7 100n
U3d R5
PL2 7407 10k
1 9 8 R4 Q1
14 PNP
2 D0 4k7
15 IN U2 OUT +13V R6
3 D1 78L12 C6
1b 1k2
4 D2 COM 100n D4 R8 U3a
17 D2 R10
D3 1N4148 10k 7407
5 10k
18 D3 2 1 D0
6
19 1N4148 MCLR
U3c R2 MCLR
7 7407
20 10k GND 5V RB7 11 10 ACK
8 5 6 R1 PGD
21
Q2 PGC
9 4k7 PIC U3e
22 PNP 7407
10 ACK 13 12 VDD R9
23 R3 C5 R7 10k U3b
11 7407
24 U3f 10k 100n 10k
12 7407 RB6 4 3 D1
25
13

DB25F

Figura 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 fins didáticos, o BOOTLOADER, que será visto em seguida.
Portanto, vimos que, para programar um microcontrolador PIC, necessitamos
de um computador com um software de programação, um hardware (circuito)
programador, o próprio PIC e o programa a ser transferido.

5.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


SAIBA microcontroladores na internet. Verifique que alguns
MAIS circuitos oferecem a opção de depuração, enquanto outros
oferecem um circuito simplificado e de custo reduzido.

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 “prefiro lima”, o que você pensa?
Bom... se a pessoa que falou isso estiver na frente de uma banca de frutas?
E se a pessoa estiver na frente de uma agência de turismo, olhando pacotes
de viagens para o exterior? Ou, ainda, se estiver na frente de uma ferragem,
escolhendo ferramentas? Ou de uma loja de tintas, escolhendo a cor para
pintar uma parede?
Pois bem. O termo “lima” pode definir uma cor, uma ferramenta, uma fruta,
uma cidade, dentre outras coisas que pode significar. Os seres humanos
utilizam o contexto para captar o sentido da frase, observando onde a pessoa
está, sobre o que está falando etc.
AUTOMAÇÃO INDUSTRIAL
218

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 definidas, com uma interpretação que não remete à ambiguidade.
Se você executou o algoritmo todo, deve ter agora 6 valores anotados. E
o que estes valores significam?
O algoritmo tem o objetivo de calcular a menor quantidade de cédulas e
moedas para troco. O valor informado no início é o valor total do troco. Para o
troco, serão necessárias V1 cédulas de R$ 50,00, V2 cédulas de R$ 20,00, V3 cédulas
de R$ 10,00, V4 cédulas de R$ 5,00, V5 cédulas de R$ 2,00, e V6 moedas de R$ 1,00.
Talvez, na sua opinião, existam formas mais fáceis de realizar este cálculo,
mas o procedimento acima na forma de um programa foi feito para que o
resultado seja obtido seguindo-se passos mais simples.
Um computador ou circuito computacional geralmente executa estes
passos de forma bastante veloz, na maioria dos casos em menos de um
milhonésimo de segundo para cada tarefa. Se pudéssemos executar na
mesma velocidade que um computador, certamente o resultado seria obtido
em menos de um milésimo de segundo.
Outra questão a ser considerada é que um computador é um equipamento
projetado para ser estável e preciso, não cometendo erros que os seres
humanos podem cometer.
O algoritmo descrito acima é a representação textual (em uma linguagem
não computacional), mas com a possibilidade de ser traduzido para uma
linguagem de computador. Ele expressa os passos detalhados e não
ambíguos que devem ser efetuados para obter um resultado final.
Um algoritmo pode ser escrito de várias formas, podendo ser textual,
gráfico ou código especiais.
AUTOMAÇÃO INDUSTRIAL
220

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

SIM ligar
temperatura
ventilação
>45ºC?
NÃO
temperatura SIM ligar
<40ºC? aquecimento
NÃO
desligar
ventilação

desligar
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 fixa 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 significativas entre modelos de
microcontroladores de um mesmo fabricante.
Até é possível programar diretamente em linguagem de máquina, mas
isso requer um profundo conhecimento sobre as instruções (expressas
em binário) de cada processador. Para isso, o programador deve escrever
cada instrução diretamente em binário (ou hexadecimal, dependendo do
equipamento de programação). Isso é trabalhoso, demorado e exige muito
cuidado, pois erros podem demandar muito tempo para correções. Este
processo era comum na programação dos primeiros microcontroladores, até
que surgiram ferramentas computacionais que permitem o uso de técnicas
de programação mais eficientes e que otimizaram tempo e recursos.
AUTOMAÇÃO INDUSTRIAL
222

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)
00110100001010
01110101010101
00110010000000
VAR1 = VAR2 * 10; 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.
AUTOMAÇÃO INDUSTRIAL
224

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
SAIBA está em desenvolvimento, e é necessário integrar a
MAIS 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.

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)
AUTOMAÇÃO INDUSTRIAL
226

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
finalizado por .C, desta forma sendo diferenciado dos demais arquivos. Gerar um arquivo
com outro nome pode incorrer em erros na fase final de compilação. (Figura 232)

Figura 232 -  Tela “Salvar Como”, que aparece ao se iniciar um novo programa
Fonte: Autor
5 Microcontroladores
227

Observe o nome do arquivo (com extensão C) e a


FIQUE pasta onde ele será gravado. É nesta pasta que, após a
ALERTA compilação, será encontrado um arquivo com mesmo
nome, porém com extensão .HEX.

Para este exemplo, vamos criar o arquivo PROG1.C. Ao clicar em SALVAR, uma
área de edição é disponibilizada, permitindo escrever o programa.

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // funç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 234)
AUTOMAÇÃO INDUSTRIAL
228

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
AUTOMAÇÃO INDUSTRIAL
230

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 final dos blocos de instruções na linguagem C.
// ========== fim do programa ==============
Esta linha é de comentário, sem nenhum comando ou instrução. Comentários
não influenciam no tamanho do arquivo em linguagem de máquina (HEX) gerado
e são muito úteis para melhorar a manutenibilidade do programa, facilitando
modificações e entendimentos futuros sobre o programa através de anotações.
Em linguagem C, comentários podem ser gerados através do uso de duas barras
seguidas (o comentário, neste caso, irá até o final da linha), ou através dos símbolos
de /* e */. Neste caso, barra asterisco inicia o comentário, podendo se estender
por quantas linhas for necessário, sendo finalizado por asterisco barra.

5.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ífico para transferência, transfira o arquivo HEX
para o microcontrolador. Verifique a documentação adequada do sistema de
transferência, se necessário.
Vamos adotar o hardware abaixo (criado em um simulador de circuitos eletrônicos).

D1
R = 470 ohms LED-RED
RB0/INT 33
RB1 34
RB2 35
RB3/PGM 36
RB4 37
RB5 38
RB6/PGC 39
RB6/PGD 40

RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2 16
RC2/CCP1 17
RC3/SCK/SCL 18
23
24
25
26

19
20
21
22
27
28
29
30
RC4/SDI/SDA
RC5/SDO

RC7/RX/DT

RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
RC6/TX/CK

PROGRAM=PROG1.HEX.
RA2/AN2/VREF-/CVREF

RA5/AN4/SS/C2OUT
RA4/TOCKI/C1OUT
RA3/AN3/VREF+

MCLR/Vpp/THV

PIC 16F877A
OSC2/CLKOUT

RE1/AN6/WR
RE0/AN5/RD
OSC1/CLKIN

10 RE2/AN7/CS
RA0/AN0
RA1/AN1
13

14

9
8
2
3
4
5

1
6

Figura 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
SAIBA compilar e transferir novamente o programa para realizar
MAIS novos testes. Usando o HELP do compilador (tecla F1), tente
descobrir e utilizar outras funções embutidas do compilador.

4.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) // define valor de clock para delays

void main(void) // função principal


{
output_high(PIN_C1); // PINO C1 para nível alto
delay_ms(1000);
output_low(PIN_C1); // PINO C1 para nível baixo
retorno: // define um rótulo chamado “retorno”
output_high(PIN_C0); // PINO C0 para nível alto
delay_ms(1000); // atraso(delay) de 1000 ms
output_low(PIN_C0); // PINO C0 para nível baixo
delay_ms(1000); // atraso(delay) de 1000 ms
goto retorno; // volta para “retorno”
}

// ========================= fim do programa ==========================

No programa acima, observamos que são controlados dois pinos, o C0 e C1.


AUTOMAÇÃO INDUSTRIAL
232

C1 é ligado e desligado no início do programa. Posteriormente, um ponto do


programa “chamado de retorno” é criado. Chamamos este tipo de marcação de “rótulo”,
que define um local para onde, em algum dado momento, o programa será desviado.
Na sequência, o pino C0 é ligado e desligado e, posteriormente, surge a instrução
“goto retorno”, que desvia o fluxo de execução para o rótulo previamente definido.
(Figura 236)
3 RB4 37
RA1/AN1 Este LED ficará piscando
4
RA2/AN2/VREF-/CVREF RB5 38
5 RA3/AN3/VREF+ RB6/PGC 39
6 RA4/TOCKI/C1OUT RB6/PGD 40
7
D1
RA5/AN4/SS/C2OUT
R1
RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2 16 470
8 RE0/AN5/RD
LED - RED Este LED irá LIGAR e
RC2/CCP1 17
9 RE1/AN6/WR DESLIGAR uma vez início
RC3/SCK/SCL 18
10 RE2/AN7/CS 23
D2
RC4/SDI/SDA
R2
RC5/SDO 24
RC6/TX/CK 25 330
1 MCLR/Vpp/THV RC7/RX/DT 26
LED - BLUE
RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28

Figura 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 fluxo que determinam
para onde e o que o programa deve executar.
Uma estrutura muito usada para criar o laço de repetição infinita é o comando while.

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
output_high(PIN_C1); // PINO C1 para nível alto
delay_ms(1000);
output_low(PIN_C1); // PINO C1 para nível baixo
while(true) // estrutura de repetição incondicional
{
output_high(PIN_C0); // PINO C0 para nível alto
delay_ms(1000); // atraso(delay) de 1000 ms
output_low(PIN_C0); // PINO C0 para nível baixo
delay_ms(1000); // atraso(delay) de 1000 ms
}
}
// ==================== fim do programa =======================
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 significa “verdadeiro”, o laço não é interrompido, tornando-se um “laço
infinito”. O mesmo efeito pode ser obtido substituindo a linha while(true) por:
while(1)
ou
for(;true;)(este comando veremos adiante)

5.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 exemplificar, analise o trecho de descrição narrativa que segue:


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

Sabemos que não se trata de linguagem de programação, mas de um esboço


de ações relacionadas a uma condição, expresso em descrição narrativa. Porém,
observando o texto acima, duas interpretações são possíveis:
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”.
AUTOMAÇÃO INDUSTRIAL
234

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 fim:

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

Com a marcação de início e fim, temos agora uma interpretação facilitada usando
o conceito de subprograma: um pequeno trecho de instruções ligado a alguma
instrução ou condição, em forma de bloco e demarcado por um início e um fim.
O alinhamento com recuos (também chamado de indentação) permite
visualizar melhor esta hierarquia, tornando mais fácil identificar a conexão das
instruções e dos blocos.
Na linguagem C, o início e o final de um bloco é delimitado por sinais de
chaves, sendo o abrir chaves ({) o sinal de início, e o fechar chaves (}) o sinal de
fim. A indentação (alinhamento com recuos) é facultativa na linguagem C, porém
extremamente recomendada. Um programa mal-alinhado fica mais difícil de ser
interpretado e corrigido.
No trecho de programa C que estudamos antes, existe a demarcação de um
início e um fim, dada a função main.
Portanto, todo programa em C, após as necessárias diretivas de compilação
(dada pelas linhas com sustenido, como os #include, #use, #define...), deve ter ao
menos uma função principal, com seu início e fim demarcados.
#...
void main(void)
{
… // linhas da função principal
}
Note que, antes desta demarcação de início, não usamos ponto e vírgula, para
não quebrar a conexão da linha com o bloco de instruções nela contido.
No trecho estudado anteriormente
5 Microcontroladores
235

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
output_high(PIN_C1); // PINO C1 para nível alto
delay_ms(1000);
output_low(PIN_C1); // PINO C1 para nível baixo
while(true) // estrutura de repetição incondicional
{
output_high(PIN_C0); // PINO C0 para nível alto
delay_ms(1000); // atraso(delay) de 1000 ms
output_low(PIN_C0); // PINO C0 para nível baixo
delay_ms(1000); // atraso(delay) de 1000 ms
}
}

// ================== fim do programa ========================

Note que as chaves são usadas para delimitar o conteúdo dentro da


função principal (primeira e última chave), e um outro bloco delimitado mais
interno, que está dentro do “while (true)”. Nas linhas que antecedem o abrir
chaves não há ponto e vírgula, pois isso quebraria a conexão entre a linha e
o bloco de instruções.
Instruções internas aos blocos e caracterizadas por uma expressão ou
chamadas a funções devem ser finalizadas pelo sinal de ponto e vírgula. Caso
este seja esquecido, durante a compilação é natural ocorrer a mensagem de erro
“expect ;”, geralmente apontado no próximo caractere de programa existente
após o local onde o sinal deveria estar.
A indentação facilita identificar o bloco interno ao while (true), e ao void
main(void), indicando também que o while (true) está interno ao bloco do
void main (void). Lembre-se, no entanto, que a indentação (alinhamento)
não interfere na compilação do programa, e seu objetivo é facilitar a
interpretação por parte do programador.

Um programa bem organizado, alinhado e com


FIQUE comentários facilita modificações e testes, evitando perda
de tempo e facilitando o trabalho em equipes, onde mais
ALERTA de um programador deve trabalhar em um mesmo sistema
ou programa.
AUTOMAÇÃO INDUSTRIAL
236

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
modificadas no mesmo momento, economizando instruções e deixando o
programa mais rápido.
Na linguagem C padrão CCS, podemos usar as instruções para manipulação
das I/Os diretamente através de funções embutidas. Estas funções facilitam a vida
do programador. Caso elas não existissem, o procedimento de controle das saídas
digitais deveria levar em consideração a programação de registradores de direção
antes de cada acionamento, determinando se o pino que está sendo acessado
deve ter comportamento de entrada ou de saída.
As funções embutidas do compilador CCS para acionamento das saídas digitais são:
output_high(PIN_xx); -> Leva o nível de tensão do pino para nível alto
(normalmente 5V)
output_low(PIN_xx); -> Leva o nível de tensão do pino para nível baixo (0V)
output_float(PIN_xx); -> Deixa o pino flutuando, sem tentar manter nível de tensão
Nas instruções citadas acima, substitua a palavra PIN_xx pelo pino
correspondente, como, por exemplo:
output_high(PIN_C0);
output_low(PIN_A2);
output_float(PIN_E1);
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

14 OSC2/CLKOUT

13
6
10 RE2/AN7/CS
1

5
4
3
2
8
9
PIC 16F877A

RE1/AN6/WR
RE0/AN5/RD
MCLR/Vpp/THV

RA5/AN4/SS/C2OUT
RA4/TOCKI/C1OUT
RA3/AN3/VREF+
RA2/AN2/VREF-/CVREF
RA1/AN1
RA0/AN0

OSC1/CLKIN
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC3/SCK/SCL
RC4/SDI/SDA
RC7/RX/DT
RC6/TX/CK

RC2/CCP1
RD7/PSP7
RD6/PSP6
RD5/PSP5
RD4/PSP4
RD3/PSP3
RD2/PSP2
RD1/PSP1
RD0/PSP0

RB3/PGM
RC5/SDO

RB6/PGD
RB6/PGC

RB0/INT
RB5
RB4

RB2
RB1
30
29
28
27
22
21
20
19

26
25
24
23
18
17
16
15

40
39
38
37
36
35
34
33
R6

R5

R4

R3

R2

R1
330

330

330

330

330

330

LED_VERMELHO 1
LED_AMARELO 2

LED_VERMELHO 2

LED_VEDE1

LED_AMARELO 1
LED_VEDE 2

Figura 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 ficar sem uma indicação.
2) Nenhum semáforo pode ficar 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:
AUTOMAÇÃO INDUSTRIAL
238

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
output_c(0b00001001); // vermelho nos dois semáforos
delay_ms(10000); // 10 segundos
while(true) // define 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
}
}

// ======================== fim do programa ==========================

Observe o uso da função OUTPUT_C. Ela permite enviar uma informação


numérica (de um byte) para o PORTC. Os valores informados entre os
parênteses são constantes numéricas.
Quando a instrução output_c(0b00001010) for executada, os pinos C1 e C3
serão postos em nível alto (5V), enquanto C0, C2, C4, C5, C6 e C7 serão postos
em nível baixo (0V). Isso é mais eficiente do que usar instruções output_high()
e output_low() para definir o estado dos pinos, pois esta instrução causa uma
alteração (neste programa) em dois pinos, e seriam necessárias duas instruções
para fazer o papel da função output_c neste contexto.
O valor expresso, que inicia em 0b, está em binário. Se desejar expressar
o valor em decimal, basta não adicionar o prefixo 0b ao valor.
Por exemplo, output_c(10) equivale a output_c(0b00001010), pois
00001010 em binário equivale a 10 em decimal. Já, se desejar expressar o
valor em hexadecimal, adicione o prefixo 0x ao valor.
Exemplo: output_c(0x0A).
As formas de representação podem variar conforme a necessidade, porém
evite adicionar zeros a esquerda ao usar a representação decimal (sem o prefixo).
Alguns compiladores interpretam o valor na base octal, muito pouco utilizada,
porém ainda suportada por alguns fabricantes e pelo padrão C ANSI.
5 Microcontroladores
239

5.9.7 Comandos para leitura das saídas digitais

Entradas digitais geralmente são usadas em combinação com estruturas


condicionais ou de repetição, fazendo com que o programa execute percursos
diferentes em função da variação de estado das entradas, geralmente conectados
a sensores ou dispositivos de comunicação.
Para exemplificar o uso, vamos a uma aplicação onde um motor de passo é
controlado por um microcontrolador, gerando movimentos no sentido horário ou anti-
horário de acordo com duas entradas digitais conectadas a chaves tácteis (botões).
Microcontrolador conectado a um motor de passo unipolar e a duas
chaves tácteis. (Figura 238)
1N4007

12V
BoT1

BoT2

5V 5V +12V
TIP 122
1k
1N4007

12V

TIP 122
C0 1k
1N4007

C1 12V
C2
C3
D0
D1
TIP 122
10k 10k 1k
1N4007

12V

TIP 122
1k

Figura 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 definir o
sentido de rotação do motor (horário ou anti-horário).
AUTOMAÇÃO INDUSTRIAL
240

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
output_c(0); // põe todo o PORTC em nível baixo
while(true) // define um rótulo chamado “retorno”
{
if (input(PIN_D0)) // se BOT2, conectado a D0, for acionado
{ // início
output_high(PIN_C0); delay_ms(40); output_low(PIN_C0); // BOBINA 1
output_high(PIN_C1); delay_ms(40); output_low(PIN_C1); // BOBINA 2
output_high(PIN_C2); delay_ms(40); output_low(PIN_C2); // BOBINA 3
output_high(PIN_C3); delay_ms(40); output_low(PIN_C3); // BOBINA 4
} // fim
if (input(PIN_D1)) // se BOT1, conectado a D1, for acionado
{ // início...
output_high(PIN_C3); delay_ms(40); output_low(PIN_C3); // BOBINA 4
output_high(PIN_C2); delay_ms(40); output_low(PIN_C2); // BOBINA 3
output_high(PIN_C1); delay_ms(40); output_low(PIN_C1); // BOBINA 2
output_high(PIN_C0); delay_ms(40); output_low(PIN_C0); // BOBINA 1
} // fim
}
}

// ========================== fim do programa =========================

A estrutura condicional IF (que será estudada de forma mais aprofundada)


deve conter, entre os parênteses que a sucedem, uma condição que pode
ser verdadeiro ou falso. No caso, a função input(...) pode resultar nestes
sinais lógicos, podendo ser verdadeiro (caso a entrada em questão esteja
em nível alto) ou falso (caso esteja em nível baixo). Desta forma, podemos
usar a função embutida do compilador CCS chamada input para verificar o
estado lógico do pino em questão.
Como já estudado, as chaves que sucedem a linha do IF são usadas para
determinar o início e o final do bloco de instruções que será executado caso
o IF tenha uma condição verdadeira.
Da mesma forma que com os comandos de saída digital, existem
comandos de entrada digital que permitem ler um PORT inteiro, retornando
os 8 bits possíveis existentes em um PORT.
A instrução
CODIGO = input_d();
Lê todo o PORTD, armazenando o valor lido na variável CODIGO. Esta
variável deve ser previamente declarada, com o tipo INT ou superior.
Declaração de variáveis será estudado em seguida.
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


SAIBA ROM disponível em microcontroladores da Microchip
MAIS acessando o site www.microchip.com e pesquisando sobre
microcontroladores PIC.

É função do programador definir a quantidade de memória que será


usada por uma variável, bem como inicializar (dar um valor inicial) a este
espaço de memória.
Saber “DECLARAR” uma variável é importante para utilizar, de forma mais
adequada, a memória disponível. Dependendo do dado a ser armazenado,
pode ser alocada uma área maior ou menor de memória, variando também
conforme a forma de representação para o valor armazenado.
Outro fator importante é o ESCOPO da variável. Quando criamos variáveis
globais, estas ocupam a memória durante todo o tempo de execução do
programa, mantendo os dados armazenados enquanto o microcontrolador
estiver em modo execução. Já variáveis locais têm um tempo de vida mais
curto, liberando a memória quando a função (sub-rotina) onde esta variável
está declarada deixa de ser executada.
Em um sistema onde precisamos calcular, quantificar, acumular, contar, enfim,
processar dados serão necessárias variáveis, que consistem nas estruturas que
armazenarão a informação durante a execução do programa.
Vejamos a primeira versão do programa criado por Mônica no estudo de caso
acima citado, procurando identificar as variáveis existentes:
AUTOMAÇÃO INDUSTRIAL
242

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void) // função principal


{
int amostras = 0; // declara variável de 8 bits p/ inteiros
long contaparcial = 0; // declara variável de 16 bits p/ inteiros
long contatotal = 0; // declara variável de 16 bits p/ inteiros
while(true) // laço 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
} // fim
contaparcial = 0; // zera contador parcial
} // fim
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
} // fim
contatotal ++; // contador total é incrementado uma unidade
}
}

// ========================= fim 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 identifica o tipo de dado da variável. Este tipo de dado consiste em gerar
uma variável para armazenar números inteiros no tamanho padrão que, para
microcontroladores PIC da família 16 e 18, é de 8 bits. Portanto, “amostras” é uma
variável inteira de 8 bits, que consegue armazenar números inteiros entre 0 e
255 (valores limites para representação com 8 bits). Observe também o “= 0”, que
identifica que a variável será inicializada com zero.
long contaparcial = 0;
Nesta linha, é declarada uma variável chamada contaparcial. O tipo de dado
escolhido é long, identificando a variável com o dobro do tamanho alocado em
relação ao int, portanto de 16 bits, podendo comportar números inteiros positivos,
entre 0 e 65535, lembrando que a possibilidade de combinações com 16 bits é de
216, ou seja, 65536 combinações.
long contatotal = 0;
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:
AUTOMAÇÃO INDUSTRIAL
244

int32 contatotal = 0; ou long long contatotal = 0;


No CCS, o tipo de dado int32 (ou long long) permite declarar variáveis para
armazenamento de números inteiros de 32 bits. Como 232 = 4.294.967.296, o
limite para este tipo de dado dificilmente será alcançado. (Figura 239)

int iA, iB;


long IVAR;
00110100 int32 dAUX;
10010010 float fVLR;
10100101
10111101 iA
10101110 int = 8bits. Inteiros de 0 a 255 ou -128 e 127
iB
10101011
10101010
IVAR long = 16bits. Inteiros de 0 a 65535 ou -32768 a 32767
10101011 dAUX int32 = 32bits. Inteiros de 0 a 4.294.967.295 ou
10101001 fVLR -2.147.483.648 a 2.147.483.647
01010101 float = 32bits. Ponto flutuante (valores com virgula). Funciona
10111101
10101010
como notação cientícica. Possui grande abrangência, mas não
10101111 garante precisão.
10101010
10101010

Figura 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 definem 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/ Quantidade Menor Maior
Nome alocada em valor valor
alternativo bits suportado suportado
short 1 0 1
int1
boolean

int 8 0 255
int8
long 16 0 65.535
int16
long long 32 0 4.294.967.295
int32
Fonte: 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 prefixo na declaração das variáveis. Neste
caso, temos: (Tabela 29)
Tabela 29: Prefixo de declaração das variáveis
Tipo de dado/ Quantidade Menor Maior
Nome alocada em valor valor
alternativo bits suportado suportado
signed int 8 -128 127
signed int8
signed long 16 -32.768 32.767
signed int16
signed long long 32 -2.147.483.648 2.147.483.647
signed int32
Fonte: Autor

Em alguns casos, existe a necessidade de declarar variáveis que suportem


números reais. Devido a sua natureza discretizada e finita, os sistemas
computacionais não podem representar números com infinitas casas decimais,
e usamos estratégias para promover o armazenamento de forma mais eficiente,
buscando melhor equilíbrio entre o espaço de memória ocupada, a precisão da
informação representada e a faixa de representação.
Para representar números muito grandes, costumamos utilizar abreviações ou
notação científica.
Por exemplo, uma folha de papel geralmente tem espessura de um décimo
de milímetro, ou seja, 1,00 x 10-4 metros; já a distância entre a Lua e a Terra é de
aproximadamente 384.405 Km, ou seja, aproximadamente 3,84 x 108 metros. Observe
que as informações são muito diferentes. Comparar a espessura de uma folha de
papel com distâncias usadas no espaço aparenta um contraste muito grande para
ser representado numericamente usando a mesma unidade de medida. No entanto,
quando expressamos os valores em notação científica, é utilizada uma quantidade
relativamente pequena e muito próxima de dígitos.
Isso também ocorre quando usamos tipos de dados no formato de ponto flutuante.
Pontos flutuantes são tipos de dados compostos similares à “notação científica”, porém
com representação na base binária.
Ao programador, esta representação é totalmente transparente, mas, a exemplo
da notação científica, quando usamos uma variável do tipo “ponto flutuante”, podem
ocorrer imprecisões nos valores armazenados, pois parte menos significativa dos dados
é desprezada durante o armazenamento.
Para declarar variáveis deste tipo, usamos o seguinte tipo de dado:
Tipo de dado Quantidade alocada em bits
float 32
AUTOMAÇÃO INDUSTRIAL
246

Quanto aos limites de um float, são bastante amplos, podendo chegar a dezenas
de casas decimais. A precisão pode variar conforme os valores armazenados.
Quando um valor muito grande for representado, partes menos significativas são
eliminadas, causando pequenas alterações. Por exemplo, em uma variável do tipo
FLOAT é possível armazenar a espessura em metros de uma folha de papel, e a
distância em metros entre a Terra e a Lua; porém, caso uma seja somada à outra,
a informação menos significativa será perdida.
Além dos tipos de dados numéricos, podemos declarar variáveis para uso com
caracteres. Neste caso, o tipo de dados usado é CHAR e permite armazenar em até
8 bits os caracteres, codificados no sistema ASCII.
Tipo de dado Quantidade alocada em bits
char 8
Em certos casos, os tipos de dados podem ser suprimidos, não ao declararmos
uma variável, mas ao identificarmos funções (sub-rotinas).
Uma função pode receber dados entre os parênteses, e também retornar
dados ao ser chamada. Porém, se isso não ocorrer, utilizamos um tipo de dado
“vazio”, que não aloca nenhuma memória. Este tipo de dado é o VOID.
Tipo de dado Quantidade alocada em bits
void 0

5.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) // define valor de clock para delays

int total = 100; // declara variável global

void pisca(int qtde) // declara função chamada PISCA com 1 parâmetro


{ // inicio da função
while(qtde > 0) // enquanto qtde for > que 0 ...
{ // início
output_high(PIN_C0); delay_ms(total); // nível alto em C0 e tempo de total ms
output_low(PIN_C0); delay_ms(total); // nível baixo em C0 e tempo de total ms
qtde --; // decrementa qtde
} // fim do while
} // fim da função PISCA

void main(void) // função principal


{ // início da função principal
long aux = 0; // declara variável local, só visível em “main”
while(1) // laço infinito
{ // início do laço infinito
aux ++; // incrementa aux uma unidade
output_high(PIN_D0); delay_ms(100); // nível alto em D0, tempo de 100ms
output_low(PIN_D0); delay_ms(100); // nível baixo em D0, tempo 100ms
if (aux > 1000) // se aux for superior a 1000
{ // início
aux = 0; // aux é zerado
pisca(10); // dispara PISCA passando 10 para qtde
total ++; // aumenta variável global
} // fim do bloco condicional
} // fim do laço infinito
} // fim da função principal
// ========================= fim do programa ============================
AUTOMAÇÃO INDUSTRIAL
248

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)

U1
13 OSC1/CLKIN RB0/INT 33

14 RB1 34
OSC2/CLKOUT
RB2 35
2 RA0/AN0 RB3/PGM 36
3 RB4 37
RA1/AN1
4 RB5 38
RA2/AN2/VREF-/CVREF
5 RA3/AN3/VREF+ RB6/PGC 39
6 RA4/TOCKI/C1OUT RB6/PGD 40
7 RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2 16
8 RE0/AN5/RD
RC2/CCP1 17
9 RE1/AN6/WR 18
RC3/SCK/SCL
10 RE2/AN7/CS RC4/SDI/SDA 23
RC5/SDO 24
RC6/TX/CK 25
1 MCLR/Vpp/THV 26
RC7/RX/DT
BOT +
RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28
RD6/PSP6 29 BOT -
RD7/PSP7 30
PIC 16F877A
PROGRAM = 7 SEGMENTOS.cof

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 ficam
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) // define valor de clock para delays

void digito(int x) // declara função chamada DIGITO com 1 parâmetro


{ // inicio da função
/* abaixo, declaração de uma matriz de 10 posições (0 a 9), com máscaras
binárias que definem qual segmento do display deve ser ligado para cada nro */
int mascara[10]={0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,
0b01101101, 0b01111100, 0b00000111, 0b01111111, 0b01100111};
output_c(mascara[x]); // joga valor da matriz na posição x em PORTC
} // fim da função DIGITO

void main(void) // função principal


{ // início da função principal
signed int nro = 0; // declara variável local, só visível em “main”
while(1) // laço infinito
{ // início do laço infinito
if (input(PIN_D0)) // se D0 (BOT+) estiver em nível alto...
{ // início
nro ++; // incrementa nro
delay_ms(300); // delay de 300 ms
} // fim bloco condicional
if (input(PIN_D1)) // se D1 (BOT-) estiver em nível baixo...
{ // início
nro --; // incrementa nro
delay_ms(300); // delay de 300 ms
} // fim bloco condicional
if (nro < 0) nro = 9; // se nro for menor que 0, atribui 9 a nro
if (nro > 9) nro = 0; // se nro for maior que 9, atribui 0 a nro
digito(nro); // chama função digito, passando nro como parâmetro
} // fim do laço infinito
} // fim da função principal

// ========== fim do programa ==============

Neste programa, a variável mascara (máscara) é dada por um int (8 bits),


porém a indicação entre os colchetes identifica a quantidade de repetições em
memória desta variável. É como se houvesse 10 variáveis com o mesmo nome.
Isso é realizado pela linha:
int mascara[10];
AUTOMAÇÃO INDUSTRIAL
250

A inicialização também é realizada durante a declaração da variável, dando-lhe


um valor inicial. Isso é obtido usando o símbolo de atribuição, e com os valores de
inicialização expressos entre sinais de chaves, e separados por vírgula. Como são
10 posições na matriz “mascara” (máscara), são 10 valores de inicialização.
int mascara[10]={0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,

0b01101101, 0b01111100, 0b00000111, 0b01111111, 0b01100111};

Os valores foram expressos em binário, para facilitar a implementação. Cada


bit definirá o estado do dígito de 7 segmentos em sua ocorrência. Por exemplo, nas
ocorrências 0, 2, 3, 5, 7, 8 e 9, o bit menos significativo será ligado. Este bit será relacionado
a um dos segmentos comuns que compõem a representação destes números.
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


SAIBA bidimensionais e estruturas (structs) em linguagem C.
MAIS Pesquise sobre o uso de ponteiros em variáveis e matrizes,
suas vantagens e desvantagens.

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 definição da precedência (que define qual parte
da expressão será feita primeiro) até a forma com que os dados serão manipulados
em memória, consumindo mais ou menos bits.
Iniciaremos o estudo deste tópico estudando os operadores separados em
categorias, com alguns exemplos de uso. (Tabela 30)
5 Microcontroladores
251

Tabela 30: Operadores


Categoria Operador Ação Exemplos Obs.

= Atribuição int x = 5; A atribuição é simbolizada por um único sinal


de igual, e indica que tudo o que está a sua
(recebe) x = 20;
Atribuição e prioridade

direita será computado, resolvido e a solução


a = x + y / 2; obtida será armazenada na área de memória
(variável) indicada a sua esquerda. Recomen-
x=y=z=105;
damos ler este sinal como RECEBE. Portanto,
leia a linha var2 = 20 como var2 recebe 20.
() Prioridade x = 20 * (y Em uma expressão, os parênteses indicam
o que será executado prioritariamente. No
+ 1);
exemplo citado, caso não fossem utilizados, a
multiplicação ocorreria antes da soma.
+ Soma x = a + b; Retorna a soma de dois elementos.
- Sub- x = a – b; Subtração ou inversão de sinal.
tração ou x = -x;
Inversão
de sinal
* Multipli- x = a * b; Multiplicação. Assim como a divisão, tem
prioridade sobre a soma e a subtração.
cação

/ Divisão x = a / b; Divisão. Quando feita com valores inteiros, o


resultado também é um inteiro. Por exemplo,
20 dividido por 6 é 3 (valor inteiro). Não há
arredondamento. O valor é simplesmente
truncado para seu valor inteiro. Quando o
operador é utilizado com valores reais (float),
a divisão é real.
% Resto de x = a % b; Somente para valores inteiros, retorna o
Aritméticos

resto da divisão do primeiro termo pelo


divisão
segundo. Por exemplo, o resto da divisão
(somente de 20 por 6 é 2.
inteiros)
++ Incre- x ++; Operador que atua em um único oper-
ando. Ao ser escrito ao lado direito de uma
mento y = ++ x * 5;
variável, esta será incrementada ao final da
linha de instrução, aumentando seu valor
em uma unidade. Ao ser escrito ao lado
esquerdo de uma variável, esta terá seu
valor incrementado em uma unidade antes
de ser utilizada. Este operador se restringe
a tipos de dados inteiros, como short, int,
long e long long (int32).
-- Decre- x --; Operador que atua em um único operando,
similar ao ++, porém decrementando a var-
mento y = x -- / 9;
iável no lugar de incrementá-la. O uso antes
ou depois da variável a ser decrementada
(diminuida em uma unidade) identifica 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.
AUTOMAÇÃO INDUSTRIAL
252

Continuação Tabela 30: Operadores


Categoria Operador Ação Exemplos Obs.

> Maior que if (a > b) ...; Assim como outros operadores relacionais,
retorna verdadeiro (1) ou falso (0). Retorna
x = a > b;
(1) se o primeiro operando for maior que o
segundo, e (0) caso contrário.
>= Maior ou if (a >= b) ...; Retorna (1) se o primeiro operando for
maior ou igual ao segundo. Caso contrário,
igual a x = a >= b;
retorna (0).
< Menor if (a < b) ...; Retorna (1) se o primeiro operando for menor
Relacionais

que o segundo, e (0) caso contrário.


que x = a < b;
<= Menor ou if (a <= b) ...; Retorna (1) se o primeiro operando for
menor ou igual ao segundo. Caso contrário,
igual a x = a <= b;
retorna (0).
== Igual if (a == b) ...; Retorna (1) se o primeiro operando for igual
ao segundo, e (0) se for diferente.
x = a == b;
!= Diferente if (a != b) ...; Retorna (1) se o primeiro operando for difer-
ente que o segundo, e (0) se for igual.
x = a != b;
&& E (AND) if ((a > b) && Retorna verdadeiro (1) somente se o primeiro
operando for verdadeiro e o segundo oper-
(a > c)) ...;
ando também for verdadeiro.
x = (a && c);
|| OU (OR) if ((a > b) || (a Retorna verdadeiro (1) se pelo menos um dos
operandos for verdadeiro. Se ambos forem
Lógicos

> c)) ...;


falso (0), o valor retornado será falso (0).
x = (a || c);
! NÃO if Retorna o valor lógico invertido. O operador
NÃO inverte o valor lógico em um teste. Se o
(NOT) (!input(PIN_
operando for diferente de zero (verdadeiro),
D3))...; o operador retorna falso. Se for igual a zero
(falso), o operador retorna verdadeiro.
x = !a;
& AND (E) x = a & b; Operação binária E entre cada bit de dois
números binários. Se o bit n de ambos os
operandos estiver em 1, o bit n do resultado
também estará ligado. 01011010 & 10010110
= 00010010 Este operador pode ser útil
quando desejamos manipular bits de um
byte. Exemplo: para zerar somente os três
bits menos significativos de um byte, basta
aplicar: x = x & 0b11111000
Bit a Bit

| OR (OU) x = a | b; Operação binária OU entre os bits de dois


números binários. Se o bit n do primeiro valor,
ou do segundo valor, ou de ambos estiver
ligado, o bit n do resultado também estará
ligado. 01011010 | 10010110 = 11011110 Este
operador pode ser útil quando desejamos
manipular bits de um byte. Exemplo: para ati-
var somente os quatro bits mais significativos
de um byte, basta utilizar da seguinte forma:
x = x | 0b11110000
5 Microcontroladores
253

Continuação Tabela 30: Operadores


Categoria Operador Ação Exemplos Obs.

^ XOR (OU x = a ^ b; Operação binária OU EXCLUSIVO entre os


bits de dois números binários. Se o bit n
exclu-
do primeiro valor estiver ligado e o bit n
sivo) 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
significativos serão invertidos.
~ NOT x = ~a; Inverte o valor de todos os bits.~ 01100101
= 10011010 x = ~x equivale a x = x ^
Bit a Bit

(NÃO)
0b11111111.
>> RIGHT x = a >> 1; Desloca os bits para a direita, um determina-
SHIFT do número de casas. Útil para realiar rotações
x = a >> b;
(Deslo- binárias em PORTs conectados a dispositivos
camento que precisam ser acionados em sequência,
de bits como motores de passo. 11000101 >> 1 =
para 01100010 11000101 >> 2 = 00110001
direita)
<< LEFT x = a << 1; Desloca os bits para a esquerda, um deter-
SHIFT minado número de casas. Da mesma forma
x = a << 2;
(Deslo- que o RIGHT SHIFT, o LEFT SHIFT pode ser
camento útil para rotações binárias em acionamentos
de bits realizados sequencialmente, como mo-
para es- tores de passo. 11000101 << 1 = 10001010
querda) 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
eficiente, variando conforme otimizações de alguns compiladores.
O uso é realizado antecipando o operador para antes do sinal de atribuição
e suprimindo o primeiro operador, que deve ser o mesmo da variável de
destino. (Tabela 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
AUTOMAÇÃO INDUSTRIAL
254

Lembramos que os operadores supracitados são da linguagem C, e não do


microcontrolador. Operadores como multiplicação e divisão são implementados
através de repetições de somas e subtrações, gerando mais de uma instrução
em linguagem de máquina. Embora isso seja transparente ao programador, é
importante lembrar que realizar operações com tipos de dados maiores, como
long ou float, pode consumir muito mais instruções do que operações mais simples
com tipos de dados mais compactos. Portanto, evite desperdiçar memória e ciclos
de processamento gerando programas que sejam o mais eficientes possível.
Por exemplo, se for necessário armazenar a informação da altura de uma pessoa,
um programador pode optar por um tipo de dado FLOAT (32 bits), armazenando
a altura em metros, porém consumindo muitos ciclos de processamento nas
expressões que envolvem esta variável, ou pode optar por armazenar a altura em
centímetros, utilizando um INT (8 bits), e deixar o código muito mais eficiente.
Outro fator importante é observar a aplicação correta dos operadores. Um
operador que não existe (por exemplo, uso do símbolo <> para o diferente, 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
identificar 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
… // modificarem os valores de A e B :
X = A * B;

No trecho de programa acima, uma operação de multiplicação é efetuada


entre duas variáveis e o resultado armazenado em uma varíavel (chamada X)
do tipo INT. É importante lembrar que um INT define uma variável de 8 bits em
compiladores para microcontroladores com esta largura de processamento, e,
portanto, podem armazenar valores inteiros positivos entre 0 e 255. O resultado
da expressão de multiplicação pode gerar um valor superior a 255, e neste caso o
programador deve estar atento, pois, se esta situação ocorrer, haverá estouro na
capacidade da variável (conhecido pelo termo overflow), podendo ocorrer efeitos
indesejáveis, já que este tipo de situação não é previsto pelo compilador como um
erro. Se isso ocorrer, o valor que a variável X armazenará é a parte binária menos
significativa resultante. Por exemplo, digamos que o valor gerado pela expressão
de multiplicação seja 300. Em binário, 300 é representado por 100101100 (são
necessários 9 bits). Neste caso, a partir do oitavo bit mais significativo, os valores
serão truncados. A variável conterá então o valor 00101100 em seus 8 bits que,
traduzidos para decimal, resultam em 44, valor muito diferente dos 300 iniciais.
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
… // modificarem 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 (overflow). Porém, um detalhe característico da linguagem C (padrão ANSI) é
realizar cálculos da forma mais eficiente possível, usando áreas temporárias de memória
para as operações e instruções de cálculo diferentes e adequadas para cada realidade.
Se a operação envolver somente variáveis do tipo INT, a “máquina de cálculo”
escolhida para a operação durante a execução do programa também será
adequada para INTs, e o valor resultante em áreas temporárias de armazenamento
também será um INT, podendo ocorrer overflow nesta área temporária. Mesmo
que a variável de destino seja um tipo de dado maior, o valor que ela receberá
vem desta área de memória temporária, e portanto, o valor pode vir truncado.
AUTOMAÇÃO INDUSTRIAL
256

variáveis do
variável do tipo INT
tipo LONG 8bits
16bits X = A * B;

área temporária,
X= 01011010
de 8bits

Figura 241 -  Máquina de cálculo inadequada


Fonte: Autor

Para evitá-lo, podemos utilizar MODELADORES, que são formas de especificar


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, float...) e desta forma o cálculo seja feito usando áreas temporárias mais complexas,
capazes de manter o dado calculado até ser armazenado na variável de destino.
modelador faz com que a variável se
comporte como LONG durante a resolução
variáveis do
variável do tipo INT
tipo LONG
16bits X = (long)A * B; 8bits

área temporária,
X= 0101101001011010
de 16bits

Figura 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):
float 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 = (float)A / 2; o resultado seria outro, pois a variável A,


embora sendo um INT, se comportará como um float, fazendo com que o compilador
implemente uma estratégia de cálculo que considere valores com vírgula.
VLR = A / 2.0;
Esta é outra forma de resolver o problema acima, pois o valor 2.0 determina
uma constante do tipo FLOAT, devido ao ponto. Basta um dos operadores da
expressão ser de um tipo de dado FLOAT para que o compilador escolha um
mecanismo de cálculo adequado.

O uso de modeladores permite ao operador definir


FIQUE comportamentos distintos às variáveis durante a execução.
ALERTA 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


SAIBA na internet. Compare trechos de programas escritos em
MAIS ladder com programas escritos em linguagem C, e aponte
vantagens e desvantagens de cada linguagem.
AUTOMAÇÃO INDUSTRIAL
258

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 fluxo 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á definido


para nível alto (5V), após o programa ficará “parado” por um segundo (devido à
instrução delay_ms), e, em seguida, o pino C2 será definido para nível baixo (0V).
Se trocarmos a ordem das linhas, o efeito será diferente.
Para controlar o fluxo de execução do programa, o programador deve
definir o caminho por onde as instruções irão passar, determinando também
as regras que definem, durante a execução, se um programa deve seguir por
um ou por outro caminho.
Fluxogramas são usados para representar estes caminhos e os pontos de
bifurcação e convergência. Estes diagramas são utilizados para o estudo lógico dos
procedimentos que devem ser seguidos tanto por processos mais abrangentes
quanto em pequenos programas computacionais. (Figura 243)

inicio

obter
temperatura

SIM ligar
temperatura
ventilação
>45ºC?
NÃO
temperatura SIM ligar
<40ºC? aquecimento
NÃO
desligar
ventilação

desligar
aquecimento

Figura 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áfica, porém facilitam a interpretação e a visualização do fluxo
de execução. Para representar o fluxo de execução de forma textual, são necessárias
algumas regras e instruções de controle de fluxo, muito comuns em todas as linguagens.

5.9.15 GOTO (vá para...)

Sintaxe:
goto nomerotulo;
Onde nomerotulo é um nome único que identifica um rótulo, ou seja, um
ponto único do programa. Este nome (rótulo) deve ser identificado no programa
através do nome, seguido por DOIS PONTOS.
Na linguagem C, a instrução de desvio incondicional GOTO pode realizar
desvios incondicionais, fazendo com que o programa tenha sua sequência de
execução interrompida.
Segue um exemplo de um trecho de programa:

main()
{
volta: output_high(pin_C0);
delay_ms(1000);
output_low(pin_C0);
delay_ms(1000);
goto volta;
}

Embora abominado pelos seguidores mais fiéis da programação estruturada,


o goto permite realizar desvios fáceis em um programa escrito em linguagem
C. Associado a estruturas condicionais, permite também a criação de desvios
condicionais, como abaixo representado:
main()
{
int aux = 0;
volta: output_high(pin_C0);
delay_ms(1000);
output_low(pin_C0);
delay_ms(1000);
aux ++;
if (aux == 10) goto segue;
goto volta;
segue: output_high(PIN_C1);
delay_ms(100);
output_low(PIN_C1);
aux = 0;
goto volta;
}
AUTOMAÇÃO INDUSTRIAL
260

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, significa SE. ELSE, por sua vez, significa 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 fluxo de execução pulando da linha do IF para as
instruções contidas no bloco de instruções contidos após o ELSE.


if (input(PIN_A1) == 0)
output_high(PIN_C0);
X ++;

O teste acima está associado a uma única instrução e, portanto, as chaves


puderam ser suprimidas. Observe que a única instrução ligada à condição está
recuada (indentação), dada pela linha que põe o pino C0 em nível alto. A linha que
incrementa a variável X (X++) será executada independente do resultado do IF.

if (input(PIN_A1))
output_high(PIN_C0);
else
{
output_low(PIN_C0);
delay_ms(100);
var1 ++;
}

No teste anterior, as chaves do IF foram suprimidas devido ao uso de uma única


instrução. No ELSE, devido ao uso de mais de uma instrução, as chaves são necessárias.
AUTOMAÇÃO INDUSTRIAL
262

São comuns os erros de programação onde programadores pouco experientes


inserem PONTO E VÍRGULA separando a condição (IF) da ação a ser executada
(instruções). Neste caso, podem ocorrer erros de compilação (casos em que
um ELSE é utilizado), ou erros de execução (não há erro de compilação, mas o
programa não funciona adequadamente).

FIQUE Não adicione o sinal de ponto e vírgula após o fechar


parênteses da condição do IF. Isso trunca a instrução,
ALERTA quebrando a conexão entre ela e a condição que segue.

5.9.17 SWITCH / CASE (escolha)

Switch em inglês significa ESCOLHA. Assim como o if - else, o switch é utilizado


em estruturas de decisão.
Este recurso pode facilmente substituir uma “cadeia” de IF´s encadeados
(aninhados), o que resulta em um código mais limpo e de fácil entendimento. O
switch é próprio para testar uma única variável inteira em relação a diversos valores.
A forma geral (sintaxe) deste comando é:

switch (variável)
{
case constante_1: linhas de programa ...;
break;
case constante_2: linhas de programa ...;
break;
.
.
.
case constante_n: linhas de programa ...;
break;
default : linhas de programa ...;
}

A estrutura switch estabelecerá uma comparação entre uma variável


e as constantes que aparecem depois da palavra “case”. Após a utilização
do comando switch (variável), devemos utilizar delimitadores (chaves)
para melhor organizar o bloco de instruções que segue. Entre as chaves,
utilizamos o comando case (constante) para identificar o valor a ser
comparado com a variável. Caso a expressão constante seja igual ao valor
da variável anteriormente referenciada, será executada a operação descrita
após o sinal de dois pontos (:).
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
fluxo 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 finalizado.
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)

U1
13 OSC1/CLKIN RB0/INT 33
R1
14 RB1 34
OSC2/CLKOUT
RB2 35 330
2 RB3/PGM 36
3
RA0/AN0
RB4 37 R2
RA1/AN1
4 RB5 38
RA2/AN2/VREF-/CVREF
39
330
5 RA3/AN3/VREF+ RB6/PGC
6 RA4/TOCKI/C1OUT RB6/PGD 40
R3
7 RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI 15 330
RC1/T1OSI/CCP2 16
8 RE0/AN5/RD
9 RE1/AN6/WR
RC2/CCP1 17
R4
RC3/SCK/SCL 18
10 RE2/AN7/CS RC4/SDI/SDA 23 330
RC5/SDO 24
RC6/TX/CK 25 R5
1 MCLR/Vpp/THV 26
RC7/RX/DT
330
RD0/PSP0 19
RD1/PSP1 20 R6
RD2/PSP2 21
RD3/PSP3 22 330
RD4/PSP4 27
RD5/PSP5 28 R7
RD6/PSP6 29
RD7/PSP7 30 330
PIC 16F877A
PROGRAM = 7 SEGMENTOS.cof R8
330
BOTAO -
R10
10K

R9
BOTAO +
10K

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.
AUTOMAÇÃO INDUSTRIAL
264

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void main(void)
{
int menu = 0; // declara variável de 8 bits
short flag = 1; // declara variável de 1 bit
while(true) // laço infinito
{
if (input(PIN_D0) && flag) // se BOT + for pressionado ...
{
menu ++; // incrementa variável
flag = 0; // registra que já processou
}
if (input(PIN_D1) && flag) // se BOT - for pressionado ...
{
menu --; // decrementa variável
flag = 0; // registra que já processou
}
if (!input(PIN_D1) && !input(PIN_D0))
flag = 1; // caso nenhum botão pressionado, reseta flag
switch(menu) // ESCOLHA com base na variável MENU
{
case 0 : menu = 6; // caso = 0, atribui valor máximo (6)
break; // e interrompe o switch
case 1 : output_c(0b00000000); // caso = 1, zera todo portc
break; // e vai para final do switch
case 2 : output_c(0b10000001); // caso = 2, habilita + e - significativos
break; // e vai para final do switch
case 3 : output_c(0b11111111); // caso = 3, habilita todo PORTC
break; // e vai para final do switch
case 4 : output_c(0b11100111); // caso = 4, habilita 6 bits de PORTC
break; // e vai para final do switch
case 5 : output_c(0b01010101); // caso = 5, habilita bits impares
delay_ms(300); // e realiza parada de 300 ms
case 6 : output_c(0b10101010); // caso = 5 ou = 6, habilita bits pares
break; // e vai para final do switch
default: menu = 1; // caso seja qualquer outro valor, atribui 1
}
delay_ms(300); // tempo
output_c(0b00000000); // põe todo PORTC em nível baixo
delay_ms(300); // tempo
}
}

No exemplo acima, a estrutura condicional definida pelo SWITCH / CASE está


em destaque. Atente para o uso do CASE que define o ponto de entrada em
função do valor da variável, e para o uso do BREAK (não usado em todos os cases)
que desvia o fluxo de execução para o final (fechar chaves) do switch. O uso do
rótulo DEFAULT dentro do switch permite que o fluxo de execução seja desviado
para esta linha se nenhuma situação anterior tiver sido atendida.
5 Microcontroladores
265

5.9.18 WHILE – Estrutura de repetição

“WHILE” significa “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)
repetir {
incondicionalmente while (!input(PIN_D0));
x = 0;
while (x < 12)
ficar repetindo enquanto {
o valor de X for inferior a 12 output_high(PIN_E 0);
delay_ms(100);
output_low(PIN_E 0);
ficar repetindo enquanto delay_ms(100);
não houve nível alto em D0 x++;
}
}
}

Figura 245 -  Fluxo de execução em um programa com estruturas de repetição while


Fonte: Autor

Sua versatilidade é demonstrada pela figura anterior, onde o while é utilizado


de três diferentes formas. Na primeira (laço vermelho), o while (true) é usado para
definir um bloco de repetição que ficará sendo executado incondicionalmente.
A condição (true) é sempre verdadeira, fazendo com que o laço aja como um
“laço infinito”. Já o segundo while (laço em verde) é um laço vazio. Ele pode ser
assim chamado por não possuir nenhuma instrução após seu teste condicional.
É importante observar que, neste tipo de teste, o ponto e vírgula se faz presente
após a condição, indicando que, interno ao laço, nenhuma instrução será realizada.
Em outras palavras, somente o teste é realizado, ficando o programa dedicado
ao constante teste da expressão interna aos parênteses. Quando a condição não
for mais satisfeita, o while será interrompido, seguindo com a execução a partir
da próxima instrução após o ponto e vírgula. Este tipo de teste não é comum
em sistemas de processamento de dados, pois os dados não tendem a mudar
de estado sem a interferência do próprio programa, porém funcionam muito
bem em microcontroladores para testes de entradas digitais, pois elas podem
mudar de estado, refletindo o comportamento de um sensor ou outro elemento
conectado às entradas digitais.
AUTOMAÇÃO INDUSTRIAL
266

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 definido pela estrutura de repetição.
Vejamos um exemplo:

...
while(!input(PIN_D0)) //enquanto D0 não estiver em nível alto
{ //inicio da estrutura de repetição
output_high(PIN_C0); //põe C0 em 5V
delay_ms(100); //tempo
output_low(PIN_C0); //C0 em 0V
if (input(PIN_D1)) //se D1 for para nível alto...
{ //
x = 0; //zera x
break; //sai da estrutura de repetição, interrompe while
} //
if (input(PIN_D2)) //se D2 for acionado
continue; //volta ao início da estrutura de repetição
x ++; //aumenta X
output_high(PIN_C1); //põe C1 em 5V
delay_ms(100); //tempo
output_low(PIN_C1); //C1 em 0V
} //final da estrutura de repetição
...

O laço descrito anteriormente continuará a ser executado até que o pino D0


esteja em nível alto. Porém, se o pino D1 for posto em nível alto, o laço também
será interrompido, mas pela instrução BREAK. Neste caso, antes da interrupção é
atribuído um valor para a variável X antes de sair da execução do laço.
Caso o pino D2 esteja em nível alto, o programa continuará executando o
laço, porém não fará o incremento de X e nem mudará o estado do pino C1, pois
a instrução CONTINUE faz com que o laço seja reiniciado, fazendo com que a
execução do programa volte ao início do bloco de instruções, refazendo também
o teste de condição do laço.
5 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 final 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 significa PARA (preposição). É uma estrutura de repetição bastante prática


e voltada à realização de contagens ou de iterações de um laço, relacionadas a
uma variável de controle.

for ( expressão_inicial; condição_para_repetição; expressão_auxiliar)
{
linha ou bloco de instruções a repetir...
}

AUTOMAÇÃO INDUSTRIAL
268

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 final de cada interação, a variável será incrementada (X++). Desta forma,
o que está entre as chaves (bloco de instruções) do for será repetido 10 vezes.
O FOR permite realizar estruturas de repetição relacionadas às variáveis de controle
de forma mais compacta, facilitando o entendimento e a manutenção do programa.
5 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, dificultando também os testes.
Resolver o problema em partes facilita a abstração, permitindo com que o foco seja
mantido em uma parte do problema em cada etapa da implementação.
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)

13 OSC1/CLKIN RB0/INT 33 R1
14 RB1 34
OSC2/CLKOUT
RB2 35 330
2 RB3/PGM 36
3
RA0/AN0
RB4 37
R2
RA1/AN1
4
RA2/AN2/VREF-/CVREF RB5 38
330
5 RA3/AN3/VREF+ RB6/PGC 39
R4 6 RA4/TOCKI/C1OUT RB6/PGD 40 R3
7 RA5/AN4/SS/C2OUT
1K RC0/T1OSO/T1CKI 15 330
RC1/T1OSI/CCP2 16
8 RE0/AN5/RD
RC2/CCP1 17
9 RE1/AN6/WR 18
RC3/SCK/SCL
10 RE2/AN7/CS RC4/SDI/SDA 23
R5 RC5/SDO 24
RC6/TX/CK 25
1 MCLR/Vpp/THV
10K RC7/RX/DT 26

RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28
RD6/PSP6 29
RD7/PSP7 30
PIC 16F877A
PROGRAM = sonoro-hex

BOTAO 2
R10
10K

R9
BOTAO 1
10K

Figura 246 -  Chamadas a funções/sub-rotinas


Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
270

Observe a conexão de um SPEAKER (alto-falante) em série com um transistor.


Quando o transistor mudar seu estado de corte para condução, ou de condução
para corte, ocorrerão vibrações no SPEAKER, produzindo sons. Por se tratar de um
alto-falante convencional, não basta energizar sua bobina para produzir som: é
necessário vibrá-la (pulsar) para produzir sons em determinadas frequências.
Veja, no programa a seguir, o uso de uma sub-rotina criada com o nome BEEP,
que ativa / desativa o pino E2 para gerar vibrações no alto-falante. Observe como
ela é disparada de diversos pontos distintos a partir da função principal:

#include <16f877.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays

void beep(void) // criação de uma função chamada BEEP


{
int aux; // declarada variável global
output_high(PIN_C2); // habilitado C2 (LED)
for (aux = 0; aux < 100; aux ++) // repete 100 vezes ...
{
output_high(PIN_E2); delay_ms(1); // ativa E2 (speaker)
output_low(PIN_E2); delay_ms(1); // desativa E2 (speaker)
}
output_low(PIN_C2); // desabilitado C2 (LED)
}

void main(void)
{
int conta = 0; // declara variável de 8 bits
while(true) // laço infinito
{
if (input(PIN_D0)) // se BOT1 ...
{
beep(); // chama subrotina BEEP
conta = 0; // zera variável
}
if (input(PIN_D1)) // se BOT2 ...
beep(); // chama subrotina BEEP
conta ++; // incrementa variável
if (conta == 100) // se variável for igual a 100
{
beep(); // chama subrotina
conta = 0; // zera variável
}
else // senão
{
output_high(PIN_C0); // pisca C0 (LED)
delay_ms(100);
output_low(PIN_C0);
delay_ms(400);
}
}
}
5 Microcontroladores
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.
AUTOMAÇÃO INDUSTRIAL
272

LM016L
LCD2

VDD
VSS

VEE

RW

D0
D1
D2
D3
D4
D5
D6
D7
RS

11
13
10
12
14
7
1
2

5
3
4
6

8
9
U1

13 OSC1/CLKIN RB0/INT 33

24V
14 RB1 34
OSC2/CLKOUT
RB2 35

VDD
2 RA0/AN0 RB3/PGM 36

+ _
RB4 37
VDD

3 RA1/AN1
4 RB5 38
RA2/AN2/VREF-/CVREF
5 RA3/AN3/VREF+ RB6/PGC 39
6 RA4/TOCKI/C1OUT RB6/PGD 40
7 RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2 16

R3

VDD

RL1
8 RE0/AN5/RD

1K
RC2/CCP1 17
9 RE1/AN6/WR 18
RC3/SCK/SCL

470K
R1

5V
10 RE2/AN7/CS RC4/SDI/SDA 23
RC5/SDO 24
RC6/TX/CK 25

LED-BLUE
1 MCLR/Vpp/THV RC7/RX/DT 26

D1
RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22

BC542
RD4/PSP4 27

Q1
RD5/PSP5 28
RD6/PSP6 29
RD7/PSP7 30
PIC 16F877A
PROGRAM = sonoro-hex
MOTOR DA ESTEIRA
R2
10K
R6

R4

R5
10K

10K

10K

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) // define valor de clock para delays
#define use_portb_lcd true // define que será usado display no PORTB
#include <lcd.c> // inclui biblioteca de uso do LCD 16x2 da CCS

void gira(int qtde) // declara função chamada GIRA, que recebe um parâmetro (int)
{
output_high(pin_c0); // liga motor da esteira
while(qtde > 0)
{
printf(lcd_putc,”\fGirando: %u”, qtde); // escreve qtde no display
while(input(PIN_D7)); // aguarda sensor da polia enviar sinal 0
while(!input(PIN_D7)); // aguarda sensor da polia enviar sinal 1
qtde --; // diminui variável recebida como parâmetro
}
output_low(pin_c0); // desliga motor da esteira
}

void main(void)
{
lcd_init();
while(1)
{
printf(lcd_putc,”\fBOT1 = 3 giros\nBOT2 = 15 giros”);
if (input(PIN_D0)) gira(3); // se botão1 pressionado, chama GIRA com parâmetro = 3
if (input(PIN_D1)) gira(15); // se botão2 pressionado, chama GIRA com parâmetro = 15
delay_ms(100);
}
}

Neste exemplo, a passagem ocorre somente com um parâmetro, que é do tipo


INT, porém são permitidos os parâmetros que forem necessários, podendo também
ser de qualquer tipo de dado que julguemos adequado ao comportamento da
variável, bastando declará-los entre os parênteses da função, tomando o cuidado
de separá-los por vírgula.
Exemplos de trechos de programas

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.
AUTOMAÇÃO INDUSTRIAL
274

A chamada desta função pode ocorrer em qualquer outra função descrita após ela,
podendo ser passada como parâmetros, valores constantes ou valores de variáveis.
Exemplo de passagem de parâmetros usando constantes durante a chamada
da função:


MOTOR (10, 3000);

A função MOTOR será executada, sendo passadas como parâmetro duas


constantes. Observe que o valor enviado deve ser comportado pelos tipos de
dados declarados na função.
Outra forma de realizar a chamada de uma função passando informações é o
envio de dados contidos em variáveis:


MOTOR (X, POS);

Desta forma, o conteúdo de X será armazenado no primeiro parâmetro


(velocidade), e POS no segundo parâmetro (posicao). As variáveis X e POS devem
ser de tipos de dados compatíveis, podendo ser de tamanhos (em bits) iguais ou
inferiores aos tipos usados pelos parâmetros da função, sob risco de haver perda
ou alterações nos dados.
Neste caso, também é importante observar que os valores enviados para a
função MOTOR serão cópias dos conteúdos de X e POS, sendo que as alterações
sofridas pelos parâmetros internos à função não são refletidas nestas variáveis.

A informação passada à função durante a passagem de


FIQUE parâmetros por conteúdo é somente o conteúdo. Alterando
ALERTA 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.

Embora não seja muito comum em estudos iniciais


com linguagens de programação, o uso de ponteiros
FIQUE na linguagem C pode tornar os programas muito mais
ALERTA 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.
AUTOMAÇÃO INDUSTRIAL
276

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 fios no PORTB ou PORTD.
Utilizaremos a ligação via PORTB, usando o esquema que segue: (Figura 248)
5 Microcontroladores
277

5V

14
1
B7 D7
B6 D6
B5 D5 CONTRASTE
B4 D4
B3 0 ... 5V
B2 RW
B1 RS
B0 EN

Figura 248 -  Display alfanumérico


Fonte: Autor

Esta ligação utiliza um display de caracteres em modo “4 + 3 fios”. Observe que


são utilizadas sete ligações para enviar dados ao LCD, sendo que três são para
controle (EM, RS e RW) e quatro são para os dados (um nibble por vez).
Para que o DISPLAY aceite este modo de ligação, deve sofrer um processo de
inicialização, que implica no envio de alguns sinais em sequência e tempos pré-
determinados. Estas informações são fornecidas junto ao datasheet do display e
geralmente seguem o padrão consolidado definido pelo modelo HD44780 da Hitachi.
Para realizar a inicialização a partir do programa, podemos usar a função
lcd_init(), que está presente na biblioteca LCD.C. A chamada a esta função deve
ser realizada no início do programa, podendo ser antes do laço principal. Na
falta da rotina de inicialização, é normal obter um comportamento anormal do
LCD, geralmente dado pelo escurecimento da primeira linha, com exibição de
caracteres estranhos. Outras formas de inicialização podem se fazer necessárias
em modelos diferentes de LCD.
Ao enviar um dado ao LCD, utilizaremos a função lcd_putc(CHAR).
Observe que entre os parênteses desta função será colocado o texto
ou o caractere a ser enviado ao LCD. O CCS entende que, se o conteúdo
passado como parâmetro para esta função for uma sequência de caracteres
(chamada STRING, e delimitada por aspas duplas), o envio ocorre caractere
por caractere, até o final da string.
Portanto, se executarmos a função lcd_putc(‘x’); será enviado ao LCD o caractere
“x”. Se executarmos a função lcd_putc(“Ola ...”), será enviada a mensagem “Ola...”,
que está entre as aspas duplas. Se a instrução for lcd_putc(X), deve haver uma
variável chamada X do tipo CHAR. Esta será a variável a ser enviada. Observe a
diferença entre este caso e o primeiro citado, onde foram utilizadas aspas simples
para identificar o caractere ‘x’, diferenciando da variável X.
AUTOMAÇÃO INDUSTRIAL
278

Caracteres especiais do lcd_putc: Alguns caracteres podem ser enviados ao


LCD para promover controle de posição, apagar ou retroceder o cursor. O cursor
é um ponto que pode ou não estar habilitado, e que identifica onde será escrito o
próximo caractere. Estes caracteres especiais que podem ser enviados ao display
são interpretados pela função lcd_putc, que envia a correta sequência de dados e
controle com o objetivo de realizar um determinado efeito no periférico.
São caracteres especiais do LCD :
\f: limpeza do display. Esta opção reinicia o display, limpando-o e
posicionando o cursor na linha 1 coluna 1.
\b: retorno de um caractere. Esta opção faz com que o cursor retroceda uma posição.
\n: Nova linha. Posiciona o cursor na primeira coluna da segunda linha do LCD.
Veja alguns exemplos de uso: (Figura 249)

Oi Teste.
1 lcd_putc(”Oi”);
lcd_putc(”Teste.”);

lcd_putc(”\fLipando...”); Limpando . . .
2 segunda linha
lcd_putc(”\nsegunda linha”);

lcd_putc(”\fTestX”); Teste
3
lcd_putc(”\be”);

Figura 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 modificada, utilize o comando lcd_shift_right().
Para rolar o conteúdo do LCD um caractere para a esquerda, utilize o comando
lcd_send_byte(0,0x18), ou, caso esteja usando a biblioteca LCD.C modificada,
utilize o comando lcd_shift_left().
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>
contando - > 0 contando - > 2
#use delay (clock=20000000)
#define use_portb_lcd true
#include <lcd.c>
void main()
{ contando - > 1 contando - > 3
...
int CONTA = 0;
lcd_init();
while(true)
{
printf(lcd_putc,”\fcontando -> %u”, CONTA);
CONTA = CONTA + 1;
delay_ms(300);
}
}
Figura 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.
AUTOMAÇÃO INDUSTRIAL
280

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)

printf (lcd_putc, ”\fcontando - > %u”, CONTA);


função de saída variável

caractere especial especificador de formato


string (delimitada
por aspas duplas)

contando - > 2
efeito deste linha:

Figura 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 configurar a porta serial.
2 – STRING: É o trecho de caracteres delimitado por aspas duplas, que irá definir
como será a sequência de caracteres que será gerada. É importante observar
a delimitação realizada pelas duas ASPAS DUPLAS. Dentro delas podem ser
inseridos caracteres de texto, caracteres especiais e especificadores de formato.
Na string podem ser usados:
a) texto. Sequências de caracteres que serão enviadas. Qualquer espaço ou
caractere que não esteja identificando um caractere especial ou especificador de
formato será tido como texto. É importante observar que, para exibir uma barra
invertida (\), usamos duas barras internas a string, e para exibir o sinal de percentual
(%), usamos dois sinais em sequência, sem espaço entre eles. Isso se deve ao fato
destes sinais iniciarem uma especificação de formato ou um caractere especial.
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) especificadores 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 especificador de formato que será inserido
o valor da primeira variável, no segundo especificador, o local onde será inserido o valor
contido na segunda variável, e assim por diante. O nome especificador de formato se dá
pelo fato de o símbolo definir o formato, ou seja, a forma como o valor será exibido, com
mais ou menos dígitos, no formato decimal ou hexadecimal etc.
Como cada especificador de formato está relacionado a uma variável
(identificada após a string, dentro dos parênteses do PRINTF), é importante utilizar
um especificador compatível com o tipo de dado da variável correspondente.
Observe a seguinte na Tabela 32:
Tabela 32: Especificadores de formato
Tipo de variável Especificador de formato e exemplos de uso
short ou %u -> valor decimal (ex: 30)
int %x -> valor em hexadecimal (ex: 1D)
%3u -> valor decimal alinhado com três dígitos (ex: _30)
%03u -> valor decimal alinhado três digitos c/ zero (ex: 030)
signed int %i -> valor decimal com sinal. (ex: -2)
%02i -> decimal com sinal, duas casas e zeros a esq. (ex: -02)
long %lu -> valor decimal (ex: 1000);
int32 %05lu -> valor decimal cinco casas c/ zeros a esquerda. (ex:
01000)
signed long %li -> valor decimal c/ sinal (ex: -500)
signed int32 %4li -> valor decimal c/ sinal alinhado a esquerda (ex: -_500)
float %f -> valor real. Ex: (23.313451)
%2.3f -> valor real c/ duas casas inteiras, três decimais. Ex:
(23.313)
char %c -> caractere. Ex: (A)
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
282

Mais especificadores de formato e respectivas funcionalidades podem ser


obtidos no manual do compilador utilizado.
3 – VARIÁVEIS: Deve ser utilizada uma variável para cada especificador de
formato da STRING. As variáveis indicarão qual o valor que será impresso no lugar
de cada especificador de formato encontrado.
Seguem alguns exemplos de printf e seus efeitos gráficos em displays LCD
devidamente inicializados. Observe que, entre a STRING, trechos de texto
foram escritos em AZUL, caracteres especiais em VERDE e especificadores de
formato em VERMELHO. (Figura 252)

TESTE
12345 printf (lcd_putc,“\fTESTE\n12345”);

RELOGIO 03:23
printf (lcd_putc,“\fRELOGIO %02u: %02u”, HORA, MINUTO);

CONT. TOTAL: 13145 printf (lcd_putc,“\fCont.Total: %5lu\nCont.Parc.:


CONT. PARC.: 32 %5lu”, CONT_TOT, CONT_PARC);

Obs: as variáveis HORA e MINUTO são do tipo INT, enquanto que TOTAL e PARCIAL são LONG ou INT32

Figura 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 configurar 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 eficiente): Nenhum (NONE)
BITS DE PARADA (tamanho da pausa entre cada dado): 1
CONTROLE DE FLUXO (controle sobre dados enviados e recebidos): Nenhum (NONE)
Com esta configuração, o PC estará apto a realizar a troca de dados com o
microcontrolador. Porém, temos ainda que preparar o microcontrolador, tanto no que
diz respeito ao hardware quanto no referente ao software.
Hardware: Usando o PIC16F877A, utilizaremos a UART física para realizar a
conexão, onde os pinos C6 e C7 assumirão comportamento de TX (transmissão)
e RX (recepção) dos dados em um padrão TTL (transistor – transistor logic), com
níveis de tensão baixo (0V) ou alto (5V). O padrão de comunicação RS232 exige, no
entanto, níveis de tensão negativos (-5V, 0V, +5V, ou -12V, 0V, +12V, dependendo
da versão e do equipamento). Para gerar estes níveis de tensão amplificados e
negativos, sugerimos o uso de um TRANCEIVER RS232, como o MAX232, ST232,
ICL232, ADM232 ou HIN232. (Figura 254)
CABO
5V SERIAL
1µ F 1µ F DB9 DB9 DB9 DB9
PIC16F877A

MACHO FÊMEA FÊMEA MACHO


1 F
MAX232C

µ 2 2
1µ F 3 3

5 5
C6 TX
1µ F
C7 RX

Figura 254 -  Esquema de ligação de um MAX232 a um microcontrolador e uma porta serial padrão DB9
Fonte: Autor
AUTOMAÇÃO INDUSTRIAL
284

Esquema de ligação de um MAX232 a um microcontrolador e uma porta serial


padrão DB9. Observe que o sinal de TX de um periférico deve chegar ao RX do
outro, por isso o cabo é cruzado (2-3, 3-2).
Uma vez conectado, vamos a um programa que utilize a porta serial em um
microcontrolador. Como primeiro exemplo, faremos um programa que escreve a
mensagem “Ola mundo!” no terminal serial.
Note a presença das linhas em destaque, que configuram e enviam dados à saída serial.

#include <16f877A.h> // inclui arquivo de cabeçalho


#use delay (clock=20000000) // define valor de clock para delays
#use rs232 (baud=19200, bits=8, parity=n, xmit=pin_c6, rcv=pin_c7) // conf rs232

void main(void)
{
printf(“\n\rOla mundo!”); // envia dados pela serial. /n=nova linha, /r=retorno col 1
while(true)
{
// laço infinito.
}
}

O programa anterior envia uma mensagem pela porta serial, iniciando


por dois caracteres especiais, que posicionam o cursor no início de uma
nova linha no terminal antes de enviar a mensagem “Ola mundo!”.
Note o uso do PRINTF, sem nenhuma função de saída. No compilador da
CCS, a saída padrão para o printf é a porta serial, que deve estar devidamente
configurada, como na terceira linha do programa, através da diretiva #use rs232.
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) // define valor de clock para delays
#use rs232 (baud=19200, bits=8, parity=n, xmit=pin_C6, rcv=pin_C7) // conf rs232

void main(void)
{
int PORTD, PORTD_ANT = 0;
char AUX;
while(true)
{
PORTD = input_d(); // busca valor do PORTD
if (PORTD != PORTD_ANT) // detecta se houve mudança no PORTD
{
if (input(PIN_D0)) putchar(‘A’); // se D0, envia letra A via rs232
if (input(PIN_D1)) putchar(‘B’); // se D1, envia letra B via rs232
PORTD_ANT = PORTD; // registra mudança
}
if (kbhit()) // se houver dados para receber no buffer de entrada rs232
{
AUX = getch(); // le dado (byte)
switch(AUX)
{
case ‘A’ : output_high(PIN_C0); // caso seja um caractere A, poe C0 em 5V
break;
case ‘B’ : output_low(PIN_C0); // caso seja um caractere B, poe C0 em 0V
break;
}
}
} // fim do laço infinito.
} // fim do programa principal

Caso este programa seja executado com um único microcontrolador conectado


a um terminal, o efeito esperado será a exibição de caracteres A e B quando os
pinos D0 e D1 mudarem de estado (borda de subida do sinal, com mudança do
nível baixo para nível alto).
Caso este programa seja executado em dois microcontroladores, interligados
pela porta serial, quando D0 mudar de nível baixo para nível alto o pino C0 do
outro microcontrolador mudará para nível alto, e quando D1 mudar de nível baixo
para alto o pino C0 do outro microcontrolador mudará para nível baixo.

5.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.
AUTOMAÇÃO INDUSTRIAL
286

Algumas configurações avançadas permitem, ainda, que alguns pinos sejam


usados como referência positiva e negativa, fazendo com que uma leitura seja
feita em uma faixa de tensão mais restrita, como de 1 a 3 Volts.

Pesquisando na folha de dados do componente sobre


SAIBA mudanças nas referências de tensão para a conversão AD no
MAIS microcontrolador PIC16F877A.

É importante observar que, quando utilizamos um pino como entrada


analógica, seu recurso de entrada/saída digital é desativado, porém a mudança
(transição) das funções do pino pode ser executada em tempo de execução
através de instruções no programa. (Figura 255)

1 40
0 a 5 Volts AN0 PIN_A0 2 39
0 a 5 Volts AN1 PIN_A1 3 38
0 a 5 Volts AN2 PIN_A2 4 37
0 a 5 Volts AN3 PIN_A3 5 36
6 35
0 a 5 Volts AN4 PIN_A5 7 34
0 a 5 Volts AN5 PIN_E0 8 33
0 a 5 Volts AN6 PIN_E1 9 32
0 a 5 Volts AN7 PIN_E2 10 31
11 30
12 29
13 28
Figura 255 -  Pinos do PIC16F877A que podem ser configurados 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)

POTENCIÔMETRO

A0
5V

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 (210=1024 possibilidades), onde a menor
tensão equivale a 0, e a maior tensão (5V para uma simples conversão sem
alterar referências) equivale a 1023, variando linearmente. Portanto, se um
circuito estiver convertendo temperatura em uma tensão de, digamos,
2,5V, o microcontrolador converterá esta informação em um número muito
próximo a 512.
Desta forma, o programador deve criar expressões que traduzam
equações de conversão do valor lido, dado por um número inteiro de 10
bits, na informação desejada.
AUTOMAÇÃO INDUSTRIAL
288

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)

5V 1 40
LM = ANO 2 39
35dz 3 38
4 37
5 36
6 35
7 34
8 33
9 32
10 31
11 30
12 29
13 28
Figura 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:


VAN0 = TºC * 0,01V
Como LM35DZ é indicado para temperaturas até 150ºC, podemos esperar
uma tensão máxima (em AN0) de 150 * 0,01 = 1,5V.
O microcontrolador lerá a tensão (que pode variar entre 0 e 1,5V através
do sensor, embora o microcontrolador suporte até 5V) e a converterá em
uma informação interna de 10 bits, um número inteiro. Este número inteiro
deve ser novamente convertido para temperatura, e pode ser dada pela
fórmula construída abaixo:
VAN = TºC * 0,01V
VAN = 5V * (AD / 1023)
Resolvendo o sistema, temos:
TºC * 0,01V = 5V * (AD/1023)
TºC = (5V/0,01V) * (AD/1023)
TºC = 500 * (AD/1023)
Embora ainda seja possível simplificar mais a equação, vamos mantê-
la assim com o intuito de trabalhar com números inteiros, atividade que o
microcontrolador realiza com mais eficiência e consumindo menos memória.
Uma vez estabelecida a relação entre o valor lido pelo conversor AD e
a grandeza mensurada, podemos construir o programa. Observe o uso de
algumas linhas (no compilador CCS) para configurar o canal de entrada e a
resolução de conversão.
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 // define que a conversão AD será de 10 bits
#use delay (clock=20000000)
#define 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); //Configuraçã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
float TEMP; // declara variável de ponto flutuante
lcd_init(); // inicializa LCD
while(1)
{
LIDO = AD(0); // lê AD canal 0. Usa a função acima descrita

// implementando função TºC = 500 * (AD/1023)


TEMP = 500 * (float)LIDO / 1023;

printf(lcd_putc,”\fAD -> %lu”, LIDO); // escreve valor lido no LCD


printf(lcd_putc,”\nTEMP: %f C”, TEMP); // escreve valor calculado de TEMP
delay_ms(100); // para evitar que o LCD fique piscando
}
}
//------------------------

O programa anterior realiza a leitura do canal analógico AN0, mas a função


descrita AD(canal) permite que o canal possa ser modificado, bastando utilizar
entre os parênteses o número, entre 0 e 7. A leitura de mais de um canal pode ser
realizada em um mesmo programa.
Segue, na Figura 258, outro exemplo de ligação do microcontrolador a um LDR
ligado em um divisor de tensão.
AUTOMAÇÃO INDUSTRIAL
290

5V

LDR
1 40
2 39
AN1 3 38
4 37
5 36
6 35
1K2 7 34
8 33
9 32
10 31
11 30
12 29
13 28

Figura 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, filtrando-a
com circuitos geralmente compostos por resistores e capacitores, e gerando, com
estes pulsos filtrados, 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 filtro RC adequado, para a tensão necessária.
É comum também utilizar a saída pulsante diretamente no dispositivo de
amplificação (transistor ou circuito integrado de potência) para gerar a mesma
saída pulsante em níveis de tensão e corrente mais elevados. Desta forma, é
possível controlar a intensidade de luminosidade, a temperatura, a velocidade e o
torque de motores, o som etc.
E quais são as características de uma saída PWM?
Podemos citar três características: o nível de tensão, o tempo de ciclo e a
taxa (tamanho do pulso). Quanto ao nível de tensão, ficará restrito ao nível
de trabalho do microcontrolador. No caso do PIC16F877, que funciona a 5V,
o nível dos pulsos também será de 5V, respeitando-se os limites de corrente
da saída digital, de alguns miliampéres. Caso haja interesse em aumentar
este valor, ou de aumentar a corrente, será necessária a amplificação com
transistores ou outro circuito integrado. (Figura 259)

fonte
diodo

motor
capacitor

pic

transistor
npn
resistor

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.


AUTOMAÇÃO INDUSTRIAL
292

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 definir
if (input(PIN_D5)) TAXA = 750; // a taxa (tempo do pulso em nível alto) da
if (input(PIN_D6)) TAXA = 1023; // saída PWM1, e SET_PWM2_DUTY, que realiza a
set_pwm1_duty(TAXA); // mesma operação no canal pwm 2 (pino c1)
set_pwm2_duty(512); //
delay_ms(100);
}
}

Observação importante: O exemplo anterior terá efeito sobre os pinos do PWM


físico, ou seja, pinos C2 (PWM1) e C1 (PWM2). Em outros casos, e para outros pinos,
será necessário gerar um PWM via software. Isso quer dizer que seu programa deve
ficar ligando e desligando o pino em questão. Veja como seria no exemplo abaixo:

#include <16f877.h> // porque vamos usar um PIC16F877 ou PIC16F877A


#use delay (clock=20000000) // Importante que o valor do CLOCK esteja correto
void main()
{
long TEMPO_PULSO = 0; // variável que determina tamanho do pulso ligado
while(1) // laço infinito
{
output_c(0x01010101);
delay_us(TEMPO_PULSO);
output_c(0x10101010);
delay_us(1024 – TEMPO_PULSO);
if (input(PIN_D0)) TEMPO_PULSO = 0; // Se A1 acionado, tamanho do pulso é zero
if (input(PIN_D1)) TEMPO_PULSO = 200; // Se A2 acionado, tamanho do pulso é 200
if (input(PIN_D2)) TEMPO_PULSO = 400; // Se A2 acionado, tamanho do pulso é 400
if (input(PIN_D3)) TEMPO_PULSO = 800; // Se A2 acionado, tamanho do pulso é 800
if (input(PIN_D4)) TEMPO_PULSO = 1023; // Se A2 acionado, tamanho do pulso é 1023
}
}
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 fim
através de símbolos, no caso, chaves. Vimos que os programas são executados
instrução a instrução, e que o desvio na execução do programa pode ser pré-
definido através das estruturas de controle de fluxo, como o while, do/while,
for, if e switch. As sub-rotinas de um programa escrito em linguagem C são
conhecidas como funções, e uma função pode, ou não, receber parâmetros e
retornar dados.
Vimos também que a representação de dados em memória requer a
declaração de variáveis, e que durante esta etapa o programador deve
determinar o tipo de dado adequado para que a variável consiga comportar a
informação da forma mais eficiente possível.
Por último, vimos aplicações onde o microcontrolador é utilizado para
a leitura de sinais analógicos, a comunicação e a geração de sinais pulsantes
através da técnica de PWM.
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. Amplificador Operacional. E-book. Disponível em: <http://www2.eletronica.


org/apostilas-e-ebooks/componentes/AOP.pdf >. Acesso em 26 jan. 2012.

ESCOLA PROFISSIONAL DE ALVITO. Curso Técnico de Gestão de Equipamentos Informáticos.


O que é um amplificador operacional ? Electrónica Fundamental (AMPOPs- Módulo 7) ano lectivo
2006/2007. Disponível em: <http://miniportal.weebly.com/uploads/2/7/6/2/2762008/o_que_eh_
um_amplificador_operacional.pdf>. Acesso em 26 jan. 2012.

FIALHO, Arivelto Bustamante. Instrumentação Industrial: conceitos, aplicações e análises. 7.ed. São
Paulo, Érica, 2010.

GRUITER, Arthur François de. Amplificadores operacionais: fundamentos e aplicações. São Paulo:
McGraw-Hill, 1988
IDOETA, I. V. Elementos de eletrônica digital. São Paulo: Érica, 1990.

LOURENÇO, Antonio Carlos de et al. Circuitos digitais. 9. ed. São Paulo: Érica, 2009.

MALVINO, A. P. Eletrônica digital: princípios e aplicações. São Paulo: McGraw-Hill, 1988.

MARKUS, Otávio. Ensino modular: sistemas analógicos. Circuitos com diodos e transistores. São
Paulo: Érica, 2000.

MARQUES, Angelo Eduardo B; CHOUERI JÚNIOR, Salomão; CRUZ, Eduardo Cesar Alves. Dispositivos
semicondutores: diodos e transistores. 12. ed. São Paulo: Érica, 2008.

MEHL, Ewaldo L. M. Do Transistor ao microprocessador. Disponível em: <http://www.lsi.usp.


br/~bariatto/fatec/ds2/historia_transistor.pdf>. Acesso em 26 jan.2012.

MELO, Mairton. Eletronica digital. São Paulo: Makron Books, 1993.

PERTENCE JÚNIOR, Antonio. Amplificadores operacionais e filtros ativos: teoria, projetos,


aplicações e laboratório. São Paulo: McGraw-Hill, 1988.

TAUB, H. Circuitos digitais e microprocessadores. São Paulo: McGraw-Hill, 1984.

_______; SCHILLING, D. Eletrônica digital. São Paulo: McGraw-Hill, 1982.

THOMAZINI, Daniel. Sensores industriais: fundamentos e aplicações. 6.ed. rev. e atual. São
Paulo: Érica, 2009.

TOCCI, R. L. Sistemas digitais: princípios e aplicações. 5.ed. Rio de Janeiro: Prentice-Hall do


Brasil, 1994.

UYEMURA, J. P. Sistemas digitais. São Paulo: Pioneira, 2002.


VASCONCELOS, Laércio. Fontes de alimentação, reguladores, potência. Disponível em: <http://
blogs.forumpcs.com.br/laercio_vasconcelos/2005/05/16/fontes-de-alimentacao-reguladores-
potencia/>. Acesso em 26 jan. 2012.

WIKILIVROS. Eletrônica digital/Sistemas analógicos e digitais. Livro Eletrônico Digital. Disponível


em: <http://pt.wikibooks.org/wiki/Eletr%C3%B4nica_Digital/Sistemas_anal%C3%B3gicos_e_
digitdig>. Acesso em 26 jan. 2012.
Minicurrículo do Autor

Daniel Corteletti
Graduação em Ciência da Computação pela Universidade de Caxias do Sul - UCS. Graduação
no programa especial de formação pedagógica para formadores de educação profissional pela
Universidade do Sul de Santa Catarina - UNISUL. Instrutor de educação profissional de nível
técnico do Centro Tecnológico de Mecatrônica SENAI desde 2000 nas áreas de microcomputação,
sistemas embarcados, robótica industrial e automação industrial, atuando também em serviços
de pesquisa e desenvolvimento no núcleo de serviços técnicos e tecnológicos desta instituição.
Índice

A
Acionamentos 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
Amplificador 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 codificadores 184, 189, 190
Circuitos decodificadores 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 retificador 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 fluxo 219, 234, 260, 261, 296
Estruturas de decisão 265
Extensômetros 126, 142
F
Filtro ativo 88, 89
Filtro passivo 85, 86
Flip-flop d 197
Flip-flop jk 193, 194, 195, 196, 197, 198
Flip-flop jk mestre-escravo 194, 196
Flip-flop rs 191, 192, 193, 194, 195
Flip-flop 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 retrorreflexão 5, 11, 112
Simplificaçã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 artificial 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

Claiton Oliveira da Costa


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áfica e Gramatical

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áfico
ISBN 978-85-7519-531-4

9 788575 195314

Vous aimerez peut-être aussi