Processamento de Sinais: Série Automação E Mecatrônica Industrial
Processamento de Sinais: Série Automação E Mecatrônica Industrial
Processamento de Sinais: Série Automação E Mecatrônica Industrial
PROCESSAMENTO
DE SINAIS
SÉRIE AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
PROCESSAMENTO
DE SINAIS
CONFEDERAÇÃO NACIONAL DA INDÚSTRIA – CNI
Conselho Nacional
PROCESSAMENTO
DE SINAIS
© 2015. SENAI – Departamento Nacional
FICHA CATALOGRÁFICA
S491
ISBN 978-85-7519-850-6
CDU 621.38
SENAI Sede
Serviço Nacional de Setor Bancário Norte . Quadra 1 . Bloco C . Edifício Roberto
Aprendizagem Industrial Simonsen . 70040-903 . Brasília – DF . Tel.: (0xx61)3317-9190
Departamento Nacional http://www.senai.br
Lista de ilustrações
Figura 1 - Circuito...............................................................................................................................................................22
Figura 2 - Raio - Tensão...................................................................................................................................................22
Figura 3 - Corrente contínua.........................................................................................................................................23
Figura 4 - Corrente alternada........................................................................................................................................24
Figura 5 - Símbolo do diodo.........................................................................................................................................24
Figura 6 - LED (diodo emissor de luz)........................................................................................................................24
Figura 7 - Diodo retificador...........................................................................................................................................25
Figura 8 - Diodo em série na alimentação de um circuito eletrônico............................................................25
Figura 9 - Diodo de proteção contra transientes de tensão..............................................................................26
Figura 10 - Interior de um diodo, a junção PN (anodo e catodo)....................................................................27
Figura 11 - Diodo inversamente polarizado............................................................................................................28
Figura 12 - Diodo diretamente polarizado..............................................................................................................28
Figura 13 - Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de fluxo
de elétrons............................................................................................................................................................................28
Figura 14 - Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de
repulsão na junção, interrompendo o fluxo de elétrons.....................................................................................28
Figura 15 - Símbolo do diodo retificador, segundo norma IEEE 315..............................................................29
Figura 16 - Conversor de corrente alternada para corrente contínua, com retificador de onda
completa...............................................................................................................................................................................30
Figura 17 - Ponte retificadora e seus diodos convertendo corrente contínua em corrente
alternada...............................................................................................................................................................................30
Figura 18 - Símbolo de diodo zener, segundo norma IEEE315, e diodo zener...........................................32
Figura 19 - Circuito...........................................................................................................................................................32
Figura 20 - Diodo 1N746 ...............................................................................................................................................33
Figura 21 - Símbolo de LED e um LED ......................................................................................................................35
Figura 22 - Imagem interna de um diodo ...............................................................................................................35
Figura 23 - Sinaleiros LEDs usados em quadros de comando elétricos e em sistemas de automação
industrial................................................................................................................................................................................36
Figura 24 - Máquina utilizando os sinaleiros de LED............................................................................................36
Figura 25 - LEDs junto a resistores em um circuito série....................................................................................36
Figura 26 - Dígito de 7 segmentos, composto por 7 leds para mostar o número, mais um para o
ponto .....................................................................................................................................................................................37
Figura 27 - Fotodiodo .....................................................................................................................................................39
Figura 28 - Cortina ótica de segurança com LED ..................................................................................................39
Figura 29 - Multímetro....................................................................................................................................................40
Figura 30 - Diodo diretamente polarizado..............................................................................................................40
Figura 31 - Diodo inversamente polarizado............................................................................................................40
Figura 32 - Optoacopladores........................................................................................................................................41
Figura 33 - Circuito divisor de tensão .......................................................................................................................42
Figura 34 - Optoacoplador ...........................................................................................................................................42
Figura 35 - Diagrama de um sistema automatizado............................................................................................43
Figura 36 - Circuito integrado.......................................................................................................................................44
Figura 37 - Transmissores NPN e PNP........................................................................................................................45
Figura 38 - Símbolo de um transistor bipolar NPN e diagrama da junção NPN.........................................46
Figura 39 - Transistor NPN polarizado. Carga representa um circuito ou componente que está
sendo energizado..............................................................................................................................................................46
Figura 40 - Símbolo de um transistor bipolar PNP e diagrama da junção PNP..........................................47
Figura 41 - Transistor NPN polarizado. Carga representa um circuito ou componente que está
sendo energizado..............................................................................................................................................................47
Figura 42 - Circuito de acionamento de relé utilizando transistor NPN........................................................48
Figura 43 - Circuito de acionamento de relé utilizando transistor PNP........................................................50
Figura 44 - Encapsulamento: principais encapsulamentos de transistores e suas potências...............51
Figura 45 - Datasheet do transistor pesquisado....................................................................................................53
Figura 46 - Detalhe do multímetro, marcado para teste de diodo.................................................................53
Figura 47 - Teste transistor NPN...................................................................................................................................54
Figura 48 - Teste transistor PNP....................................................................................................................................54
Figura 49 - Transistor Darlington.................................................................................................................................55
Figura 50 - Símbolo de JFET e representação da estrutura construtiva........................................................56
Figura 51 - Estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P
tipo enriquecimento e seus respectivos símbolos.................................................................................................57
Figura 52 - Estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P
tipo depleção e seus respectivos símbolos..............................................................................................................58
Figura 53 - Motor de corrente contínua convencional .......................................................................................58
Figura 54 - Motor de corrente contínua convencional 1....................................................................................59
Figura 55 - Motor DC........................................................................................................................................................59
Figura 56 - Ponte H para controle da rotação de um motor utilizando transistores MOS......................60
Figura 57 - Detalhamento..............................................................................................................................................60
Figura 58 - Terminal de controle de um transistor ...............................................................................................61
Figura 59 - Terminal de controle de um transistor 1............................................................................................61
Figura 60 - Conexão da carga a um transistor NPN usado como chave.......................................................62
Figura 61 - Circuito CMOS ou MOS.............................................................................................................................62
Figura 62 - Símbolos CMOS ..........................................................................................................................................63
Figura 63 - Tipos de tiristores .......................................................................................................................................64
Figura 64 - Símbolo do SCR...........................................................................................................................................65
Figura 65 - Analogia entre um SCR e um circuito com dois transistores......................................................65
Figura 66 - Representação da Curva V x A de um SCR.........................................................................................66
Figura 67 - Símbolo de DIAC.........................................................................................................................................66
Figura 68 - Circuito de um dimmer.............................................................................................................................67
Figura 69 - Voltímetro para milivolts conectado a um sensor de temperatura tipo termopar.............68
Figura 70 - Da direita para esquerda: a)sensor de pressão que envia sinal analógico por meio de
variação de corrente (4 a 20 mA); b) sensor tubular indutivo analógico, que envia sinal de 0 a 10V
conforme proximidade; c) sensores analógicos por ultrasom, que envia sinal de 0 a 10V.....................69
Figura 71 - Amplificador operacional. CI LM741....................................................................................................71
Figura 72 - Amplificador inversor ...............................................................................................................................72
Figura 73 - Amplificador.................................................................................................................................................72
Figura 74 - Tanque de fluido.........................................................................................................................................73
Figura 75 - Tanque de fluido 1......................................................................................................................................73
Figura 76 - Divisor de tensão........................................................................................................................................74
Figura 77 - Circuito...........................................................................................................................................................75
Figura 78 - Circuito 1........................................................................................................................................................75
Figura 79 - Circuito somador inversor.......................................................................................................................77
Figura 80 - Amplificador operacional como subtrator........................................................................................78
Figura 81 - Amplificador operacional como subtrator 1.....................................................................................78
Figura 82 - Representação do sinal de entrada (Vin) e saída (Vo) de um oscilador astável...................79
Figura 83 - Circuito integrado 555 e gráfico de saída..........................................................................................79
Figura 84 - Gráfico de PWM a 1kHz.............................................................................................................................80
Figura 85 - cálculo para obtenção da taxa de trabalho menor que 50%......................................................80
Figura 86 - Oscilador monoestável.............................................................................................................................81
Figura 87 - Filtro com capacitor, aplicado e fontes para diminuição do “ripple”........................................82
Figura 88 - Gráfico da Intensidade de sinal x Frequência...................................................................................83
Figura 89 - Filtro passa baixa.........................................................................................................................................83
Figura 90 - Filtro passa alta............................................................................................................................................84
Figura 91 - Filtro passa-faixa, usando capacitor, indutor e resistor.................................................................84
Figura 92 - Filtro rejeita-faixa, também conhecido como rejeita-banda......................................................84
Figura 93 - Filtro passa-baixa .......................................................................................................................................85
Figura 94 - Filtro passa-alta ...........................................................................................................................................85
Figura 95 - Filtro ativo passa-banda...........................................................................................................................86
Figura 96 - Fonte de bancada.......................................................................................................................................86
Figura 97 - Fonte de
microcomputador..............................................................................................................................................................86
Figura 98 - Fonte chaveada 2A.....................................................................................................................................86
Figura 99 - Gráfico da tensão após retificação, sem aplicação de filtros.......................................................87
Figura 100 - Transformador utilizado em uma fonte linear...............................................................................88
Figura 101 - Fonte simétrica..........................................................................................................................................88
Figura 102 - Esquema de fonte simétrica.................................................................................................................89
Figura 103 - Esquema de fonte simétrica.................................................................................................................89
Figura 104 - Fases de uma fonte chaveada..............................................................................................................90
Figura 105 - Reservatórios d’água...............................................................................................................................93
Figura 106 - Reservatórios d’água com sensor potenciométrico....................................................................94
Figura 107 - Reservatórios d’água com sensor de ultrassom............................................................................94
Figura 108 - Reservatórios d’água medido através do ângulo e refração....................................................94
Figura 109 - Reservatórios d’água sensor de nível................................................................................................95
Figura 110 - Reservatórios d’água de célula de carga.........................................................................................95
Figura 111 - Reservatórios d’água com terminais condutivos.........................................................................95
Figura 112 - Sensor de nível digital e um sensor de nível analógico.............................................................96
Figura 113 - Chave de contato normalmente aberto com princípio de acionamento magnético.....97
Figura 114 - Botão de emergência com contato normalmente fechado.....................................................97
Figura 115 - Sensor NPN e PNP, forma de ligação e tipo de sinal de retorno..............................................98
Figura 116 - Sensores NPN e PNP com resistor de definição de sinal para alta impedância.................99
Figura 117 - Sensores NPN e PNP............................................................................................................................. 100
Figura 118 - Dispositivos de acoplamento eletromecânicos a relé............................................................. 100
Figura 119 - Sistema de sinaleiro e botoeiras cuja alimentação e comunicação é realizada por um
único cabo de dois fios condutores, usando comunicação digital serial em rede padrão AS-I......... 101
Figura 120 - Sensor analógico................................................................................................................................... 102
Figura 121 - Sensor eletrônico de temperatura.................................................................................................. 103
Figura 122 - Princípio físico........................................................................................................................................ 103
Figura 123 - Chaves mecânicas ................................................................................................................................ 104
Figura 124 - Sensor óptico de reflexão, e suas partes emissora/receptora .............................................. 105
Figura 125 - Sensor óptico por retrorreflexão com espelho refletor especial, usado como
barreira óptica para a deteção de objetos ........................................................................................................... 107
Figura 126 - Sensor óptico por reflexão difusa .................................................................................................. 107
Figura 127 - Sensores ópticos por transmissão .................................................................................................. 108
Figura 128 - Sistema de sensor óptico por transmissão usando fibra óptica .......................................... 108
Figura 129 - Cortina de luz ......................................................................................................................................... 109
Figura 130 - Sensor de barreira óptica .................................................................................................................. 110
Figura 131 - Sensor infravermelho........................................................................................................................... 111
Figura 132 - Relés fotoelétricos e um resistor dependente de luz............................................................... 112
Figura 133 - Sensor de visão...................................................................................................................................... 112
Figura 134 - Sensor com ultrasom........................................................................................................................... 113
Figura 135 - Equipamento aplicado à análise por ultrassom, permitindo identificar fissuras internas
no material através da análise da propagação do som através do material.............................................. 113
Figura 136 - Sensores indutivos................................................................................................................................ 114
Figura 137 - Aplicação de sensores indutivos................................................................................................... 115
Figura 138 - Sensores capacitivos............................................................................................................................ 116
Figura 139 - Sensores magnéticos........................................................................................................................... 116
Figura 140 - Cilindro pneumático com êmbolo magnético........................................................................... 117
Figura 141 - Circuito integrado sensor de efeito HALL A1101, da Allegro MicroSystems Inc........... 117
Figura 142 - Sensor de pressão microcontrolado, de seu componente interno (sensor de pressão) e
do piezorresistor utilizado nesta última como elemento detector de pressão........................................ 118
Figura 143 - Sensor de pressão do tipo pressostato de membrana............................................................ 118
Figura 144 - Circuitos integrados acelerômetros................................................................................................ 119
Figura 145 - Sensor industrial.................................................................................................................................... 119
Figura 146 - Equipamentos que utilizam acelerômetros................................................................................. 119
Figura 147 - Sensor strain-gage acoplado à célula de carga.......................................................................... 120
Figura 148 - Modelo de posicionamento.............................................................................................................. 120
Figura 149 - Strain-gage.............................................................................................................................................. 120
Figura 150 - Sensores de turbinas............................................................................................................................ 120
Figura 151 - Tubulação com ponto de estrangulamento................................................................................ 121
Figura 152 - Representação de um sensor tipo pitot........................................................................................ 121
Figura 153 - Rotâmetro................................................................................................................................................ 122
Figura 154 - Gráfico da curva de sensores NTC e PTC genéricos.................................................................. 123
Figura 155 - Voltímetro................................................................................................................................................ 124
Figura 156 - Sonda com termopar........................................................................................................................... 126
Figura 157 - Gráfico das curvas de termopares, entre temperatura e tensão gerada em milivolts.126
Figura 158 - Imagem térmica de um motor elétrico em funcionamento................................................. 127
Figura 159 - Sensor infravermelho para a medição de temperaturas........................................................ 127
Figura 160 - Braço robótico........................................................................................................................................ 128
Figura 161 - Encoders ópticos usados em suas articulações e seu princípio de funcionamento..... 128
Figura 162 - Sensor de posição linear..................................................................................................................... 129
Figura 163 - Encoders analógico potenciométrico............................................................................................ 130
Figura 164 - Encoders absolutos óptico................................................................................................................ 130
Figura 165 - Encoders incrementais ou relativos óptico.................................................................................. 131
Figura 166 - Encoders incrementais........................................................................................................................ 131
Figura 167 - Diagrama de funcionamento de um transdutor........................................................................ 133
Figura 168 - Transdutor de corrente, usado para medir a corrente através do campo elétrico gerado
pelo condutor................................................................................................................................................................... 135
Figura 169 - Esquema de um transdutor industrial de corrente................................................................ 135
Figura 170 - Transdutores de posição tipo LVDT................................................................................................ 135
Figura 171 - Transdutores de pressão..................................................................................................................... 136
Figura 172 - Transdutor de força – célula de carga............................................................................................ 136
Figura 173 - Conversor de 4 a 20mA para sinal de radiofrequência............................................................ 136
Figura 174 - Comparação analógica e digital...................................................................................................... 139
Figura 175 - Manômetro analógico (ponteiro).................................................................................................... 140
Figura 176 - Manômetro digital................................................................................................................................ 140
Figura 177 - Sistemas numéricos.............................................................................................................................. 141
Figura 178 - Exemplo tabela verdade..................................................................................................................... 147
Figura 179 - Portas Lógicas......................................................................................................................................... 150
Figura 180 - Operadores da álgebra booleana.................................................................................................... 151
Figura 181 - Mapas de Karnaugh para 5 e para 6 variáveis............................................................................. 159
Figura 182 - Diagrama de um multiplexador....................................................................................................... 160
Figura 183 - Multiplexador de 2 canais ................................................................................................................. 161
Figura 184 - Multiplexador de quatro entradas a) Tabela verdade b) Circuito implementado......... 161
Figura 185 - Multiplexador de 8 entradas - a) Tabela verdade b) Símbolo lógico c)
Diagrama lógico............................................................................................................................................................... 162
Figura 186 - Portas lógicas utilizadas como circuitos de habilitação.......................................................... 163
Figura 187 - Multiplexador quádruplo de 2 entradas 74xx157 a)Tabela verdade b) Símbolo lógico
c) Diagrama lógico.......................................................................................................................................................... 163
Figura 188 - Diagrama de um demultiplexador ................................................................................................ 164
Figura 189 - Demultiplexador de 2 canais............................................................................................................ 165
Figura 190 - Projeto de um demultiplexador 1:4 a) Tabela verdade b) Expressões para as saídas c)
Circuito implementado................................................................................................................................................. 165
Figura 191 - Demultiplexador 1:8 a) Tabela verdade b) Expressões para as saídas c) Diagrama
lógico................................................................................................................................................................................... 166
Figura 192 - Circuito 74xx138, Decodificador/Demultiplexador configurado como demultiplexador
com a entrada de
habilitação funcionando como entrada de dados.............................................................................................. 167
Figura 193 - Circuito 74xx154 configurado como demultiplexador 1:16 a) e b) Configurações para
funcionamento como demultiplexador 1:16 c) Diagrama lógico................................................................ 167
Figura 194 - Decodificador/Demultiplexador 74xx155: a) Tabela verdade; b) Diagrama de conexões;
c) Diagrama lógico.......................................................................................................................................................... 168
Figura 195 - Conversores DA e AD........................................................................................................................... 169
Figura 196 - Conversão de um sinal analógico para digital............................................................................ 170
Figura 197 - Conversor AD muito utilizado, o ADC0808.................................................................................. 172
Figura 198 - Conversor D/A de 4 bits...................................................................................................................... 173
Figura 199 - Diagrama esquemático de uma calculadora.............................................................................. 174
Figura 200 - Código BCD (Binary Coded Decimal)............................................................................................. 176
Figura 201 - Display de 7 segmentos...................................................................................................................... 176
Figura 202 - Circuitos decodificadores................................................................................................................... 177
Figura 203 - Decodificador 74xx138, diagrama lógico e tabela verdade em relação às entradas de
habilitação (enable)........................................................................................................................................................ 177
Figura 204 - Esquema de ligação de um decodificador de 2 bits para controlar até 4
saídas, usadas em um motor de passo de 4 bobinas......................................................................................... 178
Figura 205 - Diagrama geral de um codificador................................................................................................. 178
Figura 206 - Painel de equipamento com chave seletora de 8 posições................................................... 179
Figura 207 - CP usando 3 entradas digitais para ler sinal de 8 diferentes combinações possíveis.. 179
Figura 208 - Codificador de 8 para 3 linhas.......................................................................................................... 180
Figura 209 - Flip-flop RS a) implementação do circuito com portas NOR b) símbolo lógico............. 181
Figura 210 - Flip-flop RS a) implementação do circuito com portas NAND b) símbolo lógico......... 182
Figura 211 - Flip-flop RS síncrono a) implementação do circuito com portas lógicas b) símbolo
lógico................................................................................................................................................................................... 182
Figura 212 - Implementação do circuito de um flip-flop JK com portas lógicas.................................... 183
Figura 213 - Implementação do circuito de um flip-flop JK mestre-escravo........................................... 184
Figura 214 - Símbolo lógico de um flip-flop JK mestre-escravo................................................................... 185
Figura 215 - Flip-flop sensível à borda................................................................................................................... 185
Figura 216 - Flip-flop JK mestre-escavo com entradas Preset e Clear a) implementação do circuito
com portas lógicas b) símbolo lógico..................................................................................................................... 186
Figura 217 - Flip-flop tipo D a) implementação do circuito a partir de um flip-flop JK b) símbolo
lógico................................................................................................................................................................................... 186
Figura 218 - Flip-flop tipo T a) implementação do circuito a partir de um flip-flop JK b) símbolo
lógico................................................................................................................................................................................... 187
Figura 219 - Circuito com Flip-Flop J-K aplicado à configuração de Toggle. CI utilizado: 74xx73.... 187
Figura 220 - Gráfico de Aplicações de microcontroladores PIC por família.............................................. 196
Figura 221 - Encapsulamentos do microcontrolador PIC16F877A.............................................................. 198
Figura 222 - Microcontrolador PIC16F877A I/P e seus principais pinos de alimentação, conexão e
I/O......................................................................................................................................................................................... 199
Figura 223 - Microcontrolador PIC16f877A e alguns dos terminais de funções especiais.................. 201
Figura 224 - Diagrama que demonstra o caminho percorrido por um programa, desde sua criação
até a gravação no microcontrolador de destino, e seu uso no equipamento.......................................... 202
Figura 225 - Controlador multifunção.................................................................................................................... 203
Figura 226 - DB25 femea porta paralela física..................................................................................................... 204
Figura 227 - Fluxograma.............................................................................................................................................. 208
Figura 228 - Janela de novo aquivo......................................................................................................................... 213
Figura 229 - Tela “Salvar Como”, que aparece ao se iniciar um novo programa...................................... 213
Figura 230 - Demonstrando a opção para compilação (pode ser obtida pela tecla de atalho F9).. 215
Figura 231 - Demonstrando a compilação em processo................................................................................. 215
Figura 232 - Hardware criado em um simulador de circuitos eletrônicos................................................. 217
Figura 233 - Esquema Elétrico................................................................................................................................... 219
Figura 234 - Comandos para acionamento das saídas digitais..................................................................... 224
Figura 235 - Controle de motor de passo unipolar............................................................................................ 226
Figura 236 - Comandos para leitura das saídas digitais 1............................................................................... 231
Figura 237 - Tipos de dados complexos................................................................................................................. 236
Figura 238 - Máquina de cálculo inadequada..................................................................................................... 244
Figura 239 - Máquina de cálculo inadequada 1.................................................................................................. 244
Figura 240 - Fluxograma.............................................................................................................................................. 246
Figura 241 - Hardware.................................................................................................................................................. 251
Figura 242 - Fluxo de execução em um programa com estruturas de repetição while....................... 253
Figura 243 - Chamadas a funções/sub-rotinas.................................................................................................... 257
Figura 244 - Esquema de ligação de um microcontrolador PIC16F877A.................................................. 260
Figura 245 - Display alfanumérico........................................................................................................................... 265
Figura 246 - LCD............................................................................................................................................................. 266
Figura 247 - Uso com o LCD....................................................................................................................................... 267
Figura 248 - Uso com o LCD 1.................................................................................................................................... 268
Figura 249 - Uso com o LCD 2.................................................................................................................................... 270
Figura 250 - Comunicação serial.............................................................................................................................. 270
Figura 251 - Esquema de ligação de um MAX232 a um microcontrolador e uma porta serial padrão
DB9....................................................................................................................................................................................... 271
Figura 252 - Pinos do PIC16F877A que podem ser configurados para conversão
analógica/digital.............................................................................................................................................................. 273
Figura 253 - Potenciômetro de 10K conectado a um microcontrolador. Para facilitar entendimento,
demais ligações de alimentação e clock do microcontrolador foram suprimidas.................................. 274
Figura 254 - Sensor de temperatura LM35DZ, de característica linear,
conectado diretamente ao canal AN0 de um microcontrolador................................................................... 275
Figura 255 - Ligação de um LDR em um microcontrolador usando o canal AN1................................... 277
Figura 256 - Ligação de um transistor a um motor............................................................................................ 278
Tabela 1: Diodos retificadores e suas principais características........................................................................31
Tabela 2: Principais modelos e valores comerciais.................................................................................................33
Tabela 3: Principais modelos de transistores NPN e PNP disponíveis.............................................................52
Tabela 4: Circuito A e B.................................................................................................................................................. 147
Tabela 5: Circuito A e B.................................................................................................................................................. 148
Tabela 6: Verdade para as expressões equivalentes: a) XY e b) X + Y ....................................................... 153
Tabela 7: Verdade para as expressões complementares a) XY e b) XY ........................................................ 154
Tabela 8: Função de duas variáveis.......................................................................................................................... 155
Tabela 9: Função de três variáveis............................................................................................................................ 155
Tabela 10: Função de quatro variáveis .................................................................................................................... 156
Tabela 11: Verdade considerando condições irrelevantes.............................................................................. 158
Tabela 12: Tabela verdade para o circuito.............................................................................................................. 165
Tabela 13: Código binário natural de 4 bits.......................................................................................................... 175
Tabela 14: Verdade de um codificador com entradas negadas...................................................................... 180
Tabela 15: Verdade para o flip-flop RS implementado com portas NOR.................................................... 181
Tabela 16: Verdade para o flip-flop RS implementado com portas NAND................................................. 182
Tabela 17: Verdade para o flip-flop síncrono......................................................................................................... 183
Tabela 18: Verdade para o flip-flop JK ..................................................................................................................... 184
Tabela 19: Verdade para o flip-flop RS Mestre-Escravo..................................................................................... 185
Tabela 20: Verdade para o flip-flop JK mestre-escravo com preset e clear ............................................... 186
Tabela 21: Verdade para o flip-flop tipo D ............................................................................................................. 187
Tabela 22: Verdade para o flip-flop tipo T .............................................................................................................. 188
Tabela 23: Modelos comerciais de flip-flop .......................................................................................................... 188
Tabela 24: Programa escrito em assembly, e a representação de instruções em linguagem binária.
Código binário tem caráter ilustrativo, podendo haver variações................................................................ 209
Tabela 25: Comando executado em linguagem C, e a produção (em código executável) gerada pela
instrução............................................................................................................................................................................. 210
Tabela 26: Tipos de dados para armazenar valores............................................................................................ 232
Tabela 27: Prefixo de declaração das variáveis..................................................................................................... 232
Tabela 28: Operadores................................................................................................................................................... 239
Tabela 29: Operadores avançados............................................................................................................................ 242
1 INTRODUÇÃO..................................................................................................................................................................19
2 ELETRÔNICA ANALÓGICA..........................................................................................................................................21
2.1 Diodos .............................................................................................................................................................24
2.1.1 Diodo retificador / diodo de sinal .......................................................................................30
2.1.2 Diodo zener..................................................................................................................................32
2.1.3 Diodo emissor de luz................................................................................................................35
2.1.4 Fotodiodo.....................................................................................................................................39
2.1.5 Varicap...........................................................................................................................................40
2.1.6 Diodo schottky............................................................................................................................41
2.1.7 Diodo túnel..................................................................................................................................41
2.1.8 Como testar um diodo.............................................................................................................41
2.1.9 Optoacopladores.......................................................................................................................42
2.2 Acionamentos a transistor........................................................................................................................44
2.2.1 Características e aplicações....................................................................................................46
2.2.2 Transistor bipolar ......................................................................................................................47
2.2.3 Transistor darlington.................................................................................................................58
2.2.4 Transistores de efeito de campo...........................................................................................58
2.2.5 Transistores CMOS.....................................................................................................................65
2.3 Tiristores..........................................................................................................................................................66
2.3.1 SCR..................................................................................................................................................68
2.3.2 DIAC................................................................................................................................................70
2.3.3 TRIAC...............................................................................................................................................70
2.4 Condicionamento de sinal........................................................................................................................71
2.4.1 Amplificador operacional ......................................................................................................74
2.4.2 Amplificador operacional como comparador.................................................................78
2.4.3 Amplificador operacional como somador........................................................................81
2.4.4 Amplificador operacional como subtrator.......................................................................81
2.5 Osciladores ....................................................................................................................................................83
2.5.1 Oscilador astável........................................................................................................................83
2.5.2 Oscilador monoestável............................................................................................................85
2.6 Filtros................................................................................................................................................................86
2.6.1 Filtro passivo................................................................................................................................86
2.6.2 Filtro ativo.....................................................................................................................................89
2.7 Fontes de alimentação...............................................................................................................................90
2.7.1 Fonte linear..................................................................................................................................92
2.7.2 Fonte simétrica...........................................................................................................................93
2.7.3 Fonte chaveada..........................................................................................................................94
3 SENSORES.........................................................................................................................................................................99
3.1 Sensores digitais........................................................................................................................................ 103
3.2 Sensores analógicos................................................................................................................................. 107
3.3 Princípio físico............................................................................................................................................ 110
3.4 Sensores eletromecânicos..................................................................................................................... 111
3.5 Sensores ópticos....................................................................................................................................... 111
3.5.1 Sensor óptico por retrorreflexão....................................................................................... 114
3.5.2 Sensor óptico por reflexão difusa..................................................................................... 114
3.5.3 Sensores ópticos por transmissão.................................................................................... 115
3.5.4 Sensores ópticos através de cabos de fibra óptica..................................................... 115
3.5.5 Sensor de barreira óptica de segurança......................................................................... 116
3.5.6 Sensores a laser....................................................................................................................... 117
3.5.7 Sensor infravermelho............................................................................................................ 118
3.5.8 Relés fotoelétricos.................................................................................................................. 118
3.5.9 Visão artificial............................................................................................................................ 119
3.6 Sensor de ultrassom................................................................................................................................. 119
3.7 Sensores indutivos................................................................................................................................... 121
3.8 Sensores capacitivos................................................................................................................................ 122
3.9 Sensores magnéticos............................................................................................................................... 124
3.10 Sensor de pressão.................................................................................................................................. 125
3.11 Sensores de aceleração........................................................................................................................ 126
3.12 Extensômetros e células de carga................................................................................................... 127
3.13 Sensores de vazão.................................................................................................................................. 128
3.14 Sensores de temperatura.................................................................................................................... 130
3.14.1 Tipos de termopares............................................................................................................ 132
3.14.2 Sensor infravemelho aplicado à medição de temperatura................................... 135
3.14.3 Termodinâmica aplicada à leitura de temperatura.................................................. 135
3.15 Sensores de posicionamento............................................................................................................. 136
3.15.1 Sensores de posição linear................................................................................................ 137
3.15.2 Encoders absolutos.............................................................................................................. 138
3.15.3 Encoders incrementais ou relativos............................................................................... 139
3.16 Transdutores / Conversores................................................................................................................ 142
3.16.1 Transdutores passivos......................................................................................................... 143
3.16.2 Transdutores ativos.............................................................................................................. 143
3.16.3 Transdutores industriais..................................................................................................... 144
3.16.4 Conversores de sinal............................................................................................................ 145
5 MICROCONTROLADORES........................................................................................................................................ 201
5.1 Sistemas embarcados na automação industrial............................................................................ 201
5.1.1 Microprocessadores na Automação Industrial............................................................. 202
5.2 Microcontrolador...................................................................................................................................... 204
5.3 Microcontrolador MICROCHIP PIC...................................................................................................... 206
5.3.1 Recursos de um microcontrolador PIC............................................................................ 208
5.4 Arquivos executáveis para microcontrolador................................................................................. 213
5.5 Transferindo o programa........................................................................................................................ 214
5.5.1 BOOTLOADER – Técnica para autoprogramação......................................................... 216
5.6 Algoritmos................................................................................................................................................... 217
5.7 Fluxograma................................................................................................................................................. 220
5.8 Compilador................................................................................................................................................. 221
5.8.1 Erros de compilação............................................................................................................... 224
5.9 Linguagem C.............................................................................................................................................. 224
5.9.1 Criação de um programa..................................................................................................... 225
5.9.2 Como compilar........................................................................................................................ 227
5.9.3 Transferindo o programa HEX............................................................................................ 230
5.9.4 Laço infinito.............................................................................................................................. 231
5.9.5 Cuidados com pontuação e alinhamento...................................................................... 233
5.9.6 Comandos para acionamento das saídas digitais....................................................... 236
5.9.7 Comandos para leitura das Entradas digitais............................................................... 239
5.9.8 Tipos de dados......................................................................................................................... 241
5.9.9 Nome das variáveis................................................................................................................ 246
5.9.10 Local da declaração de variáveis..................................................................................... 246
5.9.11 Tipos de dados complexos................................................................................................ 248
5.9.12 Operadores............................................................................................................................. 250
5.9.13 Paradigmas de programação........................................................................................... 257
5.9.14 Estruturas de controle de fluxo....................................................................................... 258
5.9.15 GOTO (vá para...)................................................................................................................... 259
5.9.16 IF (condição se...)................................................................................................................... 260
5.9.17 SWITCH / CASE (escolha).................................................................................................... 262
5.9.18 WHILE – Estrutura de repetição....................................................................................... 265
5.9.19 DO – WHILE (faça/enquanto)........................................................................................... 267
5.9.20 FOR (para)................................................................................................................................ 267
5.9.21 Chamadas a funções / sub-rotinas................................................................................. 269
5.9.22 Passagem de parâmetros.................................................................................................. 271
5.9.23 Passagem de parâmetros por referência..................................................................... 275
5.9.24 Retorno de dados................................................................................................................. 276
5.9.25 Uso de display alfanumérico............................................................................................ 276
5.9.26 PRINTF...................................................................................................................................... 279
5.9.27 Comunicação serial.............................................................................................................. 282
5.9.28 ADC – Conversão analógica/digital............................................................................... 285
5.9.29 PWM.......................................................................................................................................... 290
REFERÊNCIAS.................................................................................................................................................................... 295
ÍNDICE.................................................................................................................................................................................. 299
INTRODUÇÃO
Eletricidade é o fenômeno físico que tem origem na movimentação dos elétrons. Estudar
eletricidade significa estudar as grandezas relacionadas a esta movimentação, como corrente,
tensão e resistência elétrica.
Eletrônica, por sua vez, é a ciência que estuda a forma de controlar a energia elétrica, ou
seja, de que forma podemos condicionar a movimentação dos elétrons em um circuito para
obter o efeito desejado.
Por várias décadas, o homem tem usado a energia elétrica com o objetivo de transformá-
la em outras formas de energia, a fim de produzir um efeito específico, como, por exemplo,
produzir luz, movimentar um motor elétrico, aquecer ou resfriar algo, gerar vibração e
transformações físicas e químicas. A energia elétrica deve ser controlada para que sua
transformação seja possível.
Controlar esta energia é o objetivo da ciência conhecida como eletrônica.
Na Eletrônica Analógica estudamos as formas mais abrangentes de controle da
energia elétrica. Dedicamo-nos ao estudo de comportamentos de campos elétricos,
materiais condutores e semicondutores e sua aplicação no controle do fluxo de elétrons,
para obter o resultado esperado da forma mais eficiente possível. Embora o conceito de
Eletrônica Analógica seja bastante abrangente, neste material vamos utilizar uma visão
mais voltada ao seu uso na Mecatrônica, estudando os principais componentes utilizados
em circuitos eletrônicos básicos presentes na área. Tais componentes são utilizados em
máquinas e equipamentos para realizar o controle dos elétrons e obter o efeito desejado,
geralmente relacionado à transformação da energia elétrica em outros tipos de energia
(térmica, cinética, magnética etc.). Além dos já estudados resistores e capacitores, existem
indutores, transformadores, relés, e ainda diversos componentes semicondutores, como
diodos, transistores e circuitos integrados, entre outros.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
22
Durante este curso, vamos procurar estudar os principais componentes utilizados em circuitos eletrônicos
(FIGURA 1) relacionados à área de Mecatrônica. Para isso precisamos rever os conceitos já estudados sobre
eletricidade. Sendo assim, vamos fazer uma breve recapitulação desses conteúdos.
Chave
Transistor
Capacitor
Capacitor
Relés
Circuitos integrados
Resistores
Chave táctil
Conectores
Diodos emissores de luz (LED)
Figura 1 - Circuito
Fonte: SENAI-RS
VOCÊ Em condições normais de temperatura e pressão, uma tensão de 1.000V pode romper
a rigidez dielétrica de 1 mm de ar, criando uma “faísca” entre dois pontos. Chamamos
SABIA? essa faísca de “arco elétrico” ou “arco voltáico”.
Resistência Elétrica
Grandeza representada pela letra R, tem como unidade de medida o ohm (Ω). É a capacidade dos
materiais em se opor à passagem de corrente elétrica. Quanto maior a resistência, mais difícil para as cargas
se deslocarem pelo corpo. Além de oferecerem diferentes resistências entre si, alguns materiais ainda variam
a resistência quando submetidos a variações de temperatura e pressão. A adição de alguns elementos em
uma solução ou na composição de um determinado material também pode alterar significativamente sua
capacidade condutiva. Graças a esta diversidade de comportamentos que os materiais apresentam ao serem
submetidos a uma tensão elétrica, a eletrônica evoluiu.
Corrente Elétrica
Grandeza representada pela letra I, tem como unidade de medida o Ampère (A). Ela define o movimento
ordenado de cargas elétricas em uma determinada direção em um determinado período de tempo. Quanto
mais elétrons se deslocarem de um ponto a outro e período de tempo, maior a corrente. Segundo a lei de
Ohm, existe uma relação diretamente proporcional entre corrente e tensão, e inversamente proporcional
entre corrente e resistência, que é dada pela fórmula: I = U / R. Quanto maior a tensão, maior a corrente, e
quanto maior a resistência por onde a eletricidade passa, menor a corrente.
Uma das grandes variantes que determina a fatalidade de um choque elétrico não é dada
FIQUE pela TENSÃO, mas pela CORRENTE. Como a corrente é determinada pela resistência do cor-
po em um choque elétrico, uma pessoa desprotegida, sem luvas isolantes e usando ferra-
ALERTA mentas inadequadas, pode ser submetida a uma corrente muito mais elevada do que um
trabalhador usando EPIs adequados em uma linha de alta-tensão energizada.
Corrente Contínua
Refere-se a uma corrente que tem sempre o mesmo sentido. Nos acumuladores de energia (como
baterias e capacitores) temos dois polos que sempre possuem a mesma polaridade (+ e -) e oferecem
uma diferença de potencial específica. Se ligarmos esta fonte de energia em uma carga, teremos a energia
sempre fluindo em uma mesma direção.
A seguir, veja a Imagem de uma bateria e de um gráfico mostrando que a corrente se mantém constante
durante o tempo (FIGURA 3).
+
Carga
Tempo
-
Figura 3 - Corrente contínua
Fonte: SENAI-RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
24
Corrente Alternada
Como o nome já diz, neste tipo de corrente o sentido da carga varia, alternando várias vezes por segundo.
Esta quantidade de variações (frequência) é medida em ciclos por segundo, usando-se a unidade de medida
Hz (Hertz). No Brasil, a rede elétrica é disponibilizada em 60Hz (proveniente de sistemas de geração e
transmissão), enquanto em alguns outros países, como o Paraguai, a rede elétrica é 50Hz (FIGURA 4).
Corrente mude de
sentido periodicamente
elétrica (A)
Corrente
F +/-
Carga
Tempo N
O Paraguai vende ao Brasil a energia elétrica excedente gerada por sua parte da hi-
VOCÊ droelétrica de Itaipú, onde a corrente alternada de 50Hz proveniente das turbinas
SABIA? geradoras paraguaias é convertida para corrente contínua, e posteriormente volta a
ser transformada em corrente alternada de 60Hz.
Em um sistema de corrente alternada monofásico (maioria das tomadas elétricas residenciais) sempre
há ao menos um condutor que possui tensão positiva e negativa (oscilando várias vezes por segundo), e
um sistema condutor de referência, chamado de NEUTRO. Em alguns casos, deve haver ainda um terminal
de equipotencialização, que conhecemos como “terra”.
2.1 DIODOS
Os diodos são componentes geralmente usados com o intuito de definir a movimentação dos elétrons
em um circuito. Em alguns casos também são usados com o objetivo de transformar energia elétrica em
ondas eletromagnéticas. São produzidos por meio de semicondutores, materiais que reagem de forma
diferente e controlada à passagem da corrente elétrica (FIGURA 5 e FIGURA 6).
(A) (K)
Em alguns circuitos são usados para fazer que a corrente ter um sentido único, funcionando
como uma “válvula unidirecional”, deixando os elétrons passarem somente em um sentido. Neste
caso, imagine a válvula de enchimento do pneu de um automóvel, também conhecida como válvula
Schrader. Quando em perfeito funcionamento, ela permite que o ar entre no pneu, mas não permite
que saia, senão o pneu perderia pressão. Da mesma forma, o diodo pode ser utilizado para criar um
caminho de “mão única” aos elétrons, impedindo que voltem pelo circuito. Isso pode ser observado
em circuitos retificadores, que são circuitos utilizados para converter a corrente alternada em corrente
contínua (FIGURA 7).
- +
+ -
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
Outra aplicação bastante comum de diodos é em circuitos para proteger contra transientes de tensão
(também conhecidos como picos de tensão ou surtos de tensão). Estes transientes ocorrem quando uma
corrente elétrica é bruscamente interrompida, causando grande elevação de tensão (em um curto espaço de
tempo). Diodos supressores de tensão são ligados em um circuito comumente conhecido pelos termos de
“freewheeling” ou, ainda, “roda-livre”, eliminando ou minimizando os efeitos deste “pico” de tensão (FIGURA 9).
V+
DIODO
RELÉ
Figura 9 - Diodo de proteção contra transientes de tensão
Fonte: SENAI-RS
TRANSISTOR
RESISTOR
Na imagem acima, quando o transistor (que será estudado em breve) é comutado para estado
de condução, a corrente elétrica passa por ele, energizando a bobina do relé. Quando o transistor é
GND
desligado o fluxo de elétrons é bruscamente interrompido. A bobina do relé, devido a suas características
construtivas, possui uma acentuada propriedade de indutância, que faz o componente tentar manter o
fluxo eletromagnético, elevando a tensão várias vezes. Isso pode danificar componentes se não houver
uma região de “escape” para esta energia. A função do diodo nesse circuito é fazer com que estes elétrons
fiquem circulando pelo componente, dissipando a energia de forma graduada e controlada, sem haver o
surto de tensão no transistor, protegendo-o e aumentando sua vida útil.
Outra aplicação dos diodos é no controle de tensão, pois, devido a características relativas aos materiais e à
forma da construção, diodos podem ser utilizados para realizar uma queda controlada de tensão, e são úteis em
circuitos reguladores por apresentarem um comportamento bastante estável e previsível. Veremos mais sobre
isso ao falar sobre diferença de potencial de junção e sobre efeito zener.
Alguns tipos de diodos são construídos de forma a gerarem luz em suas junções, algumas vezes de
forma bastante intensa, como nos diodos laser, e em outros casos em luz visível ou invisível, com excelente
eficiência. Esse é o caso dos diodos emissores de luz, também conhecidos por LEDs.
Em uma televisão ou monitor de vídeo de tecnologia LED a luz tem origem em uma
VOCÊ grande matriz de LEDs, dispostos em linhas e colunas, que iluminam o fundo de acor-
SABIA? do com a imagem. Uma tela de cristal líquido posicionada entre o espectador e os
LEDs determina, por meio de milhões de pequenos pontos, por onde a luz deve passar,
compondo, assim, a imagem que vemos.
Existem ainda aplicações relacionadas à velocidade de alguns tipos de diodos especiais, que faz com que o
componente seja ideal para os ciclos bastante rápidos, típico de circuitos utilizados em telecomunicações, como
nos aplicados em radiofrequência.
Podemos afirmar que os diodos são componentes constituídos de semicondutores bastante utilizados
em circuitos eletrônicos, e que podem auxiliar no controle de tensão, no sentido da corrente, na proteção
de circuitos, e até mesmo na geração e detecção de luz.
2 ELETRÔNICA ANALÓGICA
27
ANODO CATODO
+ -
P N
+ -
Material semicondutor, como o nome já sugere, é um material que possui propriedades de condutividade
intermediárias, não sendo nem condutor e nem isolante. Um material semicondutor é composto de
estruturas cristalinas com adição de elementos específicos e devido a composições diferentes, pode
apresentar reações diferentes. O processo de adição de elementos para criar estes compostos envolvendo
material semicondutor é chamado de dopagem. Genericamente, os semicondutores podem ser divididos
em tipo P e tipo N. Um diodo é justamente a junção de um condutor de tipo P e outro de tipo N, conhecida
como junção PN. Devido a variações realizadas no processo de dopagem, a junção pode apresentar
variações de comportamento.
VOCÊ O nome diodo vem da junção de ”DI” (que significa duplo) com ELETRODO.
SABIA?
Portanto, um diodo possui suas características definidas pelo tipo dos semicondutores usados na
junção PN e a forma com que são propositadamente contaminados com outros elementos no processo de
dopagem. O nome junção PN se deve ao fato de a junção ser feita usando dois materiais, sendo um com
lacunas elétricas (P - positivo) e outro com elétrons que sobram (N - negativo).
Explicando melhor, nos semicondutores tipo P e tipo N existem desequilíbrios relativos à quantidade
de elétrons em suas ligações químicas. No caso do semicondutor tipo N existem elétrons sobrando, e no
do semicondutor tipo P existem elétrons faltando. Nestas “vagas” para elétrons nas ligações químicas do
semicondutor P chamamos de lacunas.
Quando submetemos o terminal de tipo P de um diodo (anodo) a uma tensão positiva, e ou terminal tipo
N (catodo) a uma tensão negativa, temos a chamada polarização direta. Como cargas iguais se repelem e
cargas opostas se atraem, a junção faz com que os elétrons fluam no circuito, havendo corrente elétrica.
Já quando submetemos o terminal de tipo P de um diodo (anodo) a uma tensão negativa, e o terminal
do tipo N (catodo) a uma tensão positiva, temos a polarização reversa e, nesse caso, as cargas iguais criam
uma área de repulsão na junção, o que faz com que o material se comporte como isolante, em decorrência,
não há corrente significativa no circuito.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
28
+
+
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
-
-
+
+
-
-
CAT ll
CAT ll
Nas figuras acima observa-se um diodo diretamente polarizado em um circuito alimentado por uma
bateria. Nesse caso, as cargas positivas (lacunas) no material P são repelidas para próximo do material N
da junção, e os elétrons do material N também são repelidos pela tensão negativa proveniente da bateria
para contra o material P. Com as lacunas e elétrons sendo repelidos uma de encontro a outra, os elétrons
preenchem as lacunas, havendo passagem de corrente elétrica (FIGURA 13).
ANODO CATODO
+ + + + + + + +++- --- - - - - - - - -
-
+
++P+ -N -
+ + -- -
Figura 13 - Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de fluxo de elétrons
Fonte: SENAI - RS
Neste caso, devido às características da junção, uma pequena queda de tensão é observada, podendo
variar conforme as características do semicondutor. Em diodos convencionais de silício, a queda de tensão
é de aproximadamente 0,7V, e em diodos de germânio é de 0,3V. Chamamos esta queda de tensão de
diferença de potencial de junção.
Quando o diodo é inversamente polarizado, os elétrons do polo negativo da bateria atraem as lacunas da
junção, e o circuito proveniente do polo positivo da bateria atrai os elétrons da junção, criando uma zona de
afastamento entre as cargas elétricas positivas e negativas (elétrons e lacunas). Isso faz com que a corrente
elétrica encontre dificuldades em passar pela junção, assumindo um comportamento isolante (FIGURA 14).
ANODO CATODO
- - - - - - - -+
+
+
P
++
-- + + + + + + + + +
N-
-- +
Figura 14 - Cargas iguais se repelindo, e as cargas opostas se atraindo, criando uma área de repulsão na junção,
interrompendo o fluxo de elétrons
Fonte: SENAI - RS
2 ELETRÔNICA ANALÓGICA
29
Embora um diodo convencional se comporte como um material não condutor quando inversamente
polarizado, propriedades da junção podem permitir uma pequena passagem de corrente elétrica.
Dependendo da forma com que a junção foi construída, esta corrente pode ser proposital (caso do diodo
zener, por exemplo) ou pode ser indesejada (corrente de fuga em um diodo retificador).
Algumas características podem variar de diodo para diodo, mudando também seu comportamento
e sua aplicação. Conforme essa relação de aplicação e comportamento, podemos enumerar os diodos
conforme a lista a seguir:
a) diodo retificador ou diodo de sinal;
b) diodo zener;
c) diodo emissor de luz (led);
d) fotodiodo;
e) varicap;
f ) diodo schottky;
g) diodo túnel.
Vamos discorrer um pouco sobre os diodos mais utilizados e suas principais aplicações.
É o diodo com o objetivo de permitir a passagem da corrente elétrica somente em um sentido (FIGURA 15).
(A) (K)
Os diodos retificadores são comumente empregados em circuitos que convertem a Corrente Alternada
em Corrente Contínua. Dado o fato de ter como principal funcionalidade impedir que haja corrente em um
dos sentidos do circuito, o diodo retificador pode ser utilizado sozinho ou combinado a outros diodos em
circuitos conhecidos como “pontes retificadoras”, para limitar o “vai e volta” de elétrons existentes na rede
de corrente alternada. Nestes circuitos, a corrente alternada (hora positiva, hora negativa) é transformada
em corrente contínua (pulsos somente positivos), conforme Figura 16.
DIODOS
~ ~ RETIFICADORES
Corrente - + +
alternada Corrente
~
~ FILTRO contínua
-
Figura 16 - Conversor de corrente alternada para corrente contínua, com retificador de onda completa
Fonte: SENAI - RS
Na Figura 16, notamos a presença de quatro diodos retificadores ligados em uma espécie de losângulo,
sendo que dois vértices possuem um anodo e um catodo cada, e dois vértices possuem somente anodo ou
somente catodo. Nos vértices que possuem anodo e catodo, é ligada a entrada de CA (Corrente Alternada),
lembrando que em CA existe a variação da tensão de positiva para negativa várias vezes por segundo.
Quando a tensão for positiva, ela escolhe a passagem pelo diodo cujo anodo esteja conectado, e quando
for negativa, a corrente passará pelo diodo cujo catodo esteja conectado. Dessa forma, nos vértices que
possuem os dois anodos, haverá sempre tensão positiva, e nos vértices com catodos, haverá sempre tensão
negativa (FIGURA 17).
V DIODOS
+ ~ ~ RETIFICADORES V
Corrente - +
+
corrente
+
sentido
- alternada Corrente
~
~ contínua -
-
V DIODOS
+ ~ ~ RETIFICADORES V
Corrente - +
corrente
+ +
sentido
- alternada Corrente
~
~ contínua -
-
Figura 17 - Ponte retificadora e seus diodos convertendo corrente contínua em corrente alternada
Fonte: SENAI - RS
Devemos observar que, na saída deste tipo de circuito retificador, a tensão na saída tem sempre o mesmo
sentido, porém ainda está “pulsando” em ondas que refletem a variação de tensão da entrada CA. Para
evitar estes pulsos e estabilizar a tensão, utilizamos outros tipos de circuito como filtros e estabilizadores de
tensão. Devido a características estáveis em relação à queda de tensão de alguns diodos, muitos circuitos
para estabilizar a tensão são construídos com diodos especiais, conhecidos como diodos zener.
Alguns diodos possuem uma resposta mais rápida e menor custo, porém trabalham com correntes
menores. Estes diodos são aplicados em circuitos de baixa potência e geralmente em condicionamento de
sinal elétrico proveniente de sensores. Neste caso, chamamos de diodo de sinal, embora seu comportamento
seja similar ao dos diodos retificadores.
2 ELETRÔNICA ANALÓGICA
31
DIFERENCIAL
ENCAPSU- NOME(CÓDIGO) TENSÃO CORRENTE CORRENTE
DE POTENCIAL
LAMENTO DO DIODO REVERSA (V) DIRETA DE PICO
DE JUNÇÃO
Fonte: SENAI - RS
VOCÊ o diodo zener tem esse nome devido a Clarence Zener, que descobriu esta propriedade elétrica
SABIA?
Quando um diodo zener é reversamente polarizado até uma tensão específica (Vz), a corrente é
praticamente nula, mas ao atingir esta tensão o diodo passa a permitir passagem de corrente (FIGURA 19).
+
+
+ + +
+ + +
0.00
R1 R1 +6.54
R1
+0.88
Volts 100 Volts 100 Volts 100
- - -
Figura 19 - Circuito
Fonte: SENAI - RS
No circuito representado na Figura 19, estão ligados em série um diodo zener reversamente
polarizado, e uma carga representada pelo resistor de 100 Ω. Este circuito foi conectado a dois
voltímetros: um mede a queda de tensão sobre o diodo, e outro sobre a carga, além de um
amperímetro que mede a corrente do circuito em mA (miliampères).
O diodo escolhido é de tensão zener (Vz) com valor 5.1V.
Com a resistência do circuito constante, e a tensão de alimentação variando de 6V para 12V, observa-se
uma grande mudança na corrente do circuito, porém uma pequena mudança na queda de tensão realizada
pelo diodo zener.
Abaixo da tensão Vz do diodo (5.1V), o diodo não permite a passagem de corrente.
Simplificando: um diodo de tensão Vz 5.1V, quando polarizado inversamente, só permite que haja
corrente no circuito se a tensão aplicada for igual ou superior a 5.1V.
Devido a essa característica, o diodo zener acaba tendo sua principal aplicação em circuitos de
controle de tensão, também conhecidos como estabilizadores de tensão.
2 ELETRÔNICA ANALÓGICA
33
É muito comum circuitos que precisam garantir uma tensão específica utilizarem este tipo de diodo para
criar um referencial de tensão estável (FIGURA 20).
v+
Ressistor
limitador de
corrente
3,3V
(1N746)
diodo zener
Vz = 3,3V
0V 0V
Na Figura 20 observamos o diodo 1N746 (com Vz 3,3V) sendo utilizado para estabilizar uma saída de
tensão em 3,3V para uso em um circuito.
Existem vários tipos de diodo zener disponíveis comercialmente e na maioria dos casos são categorizados
em relação à corrente e à tensão Vz. Segue na Tabela 2 os principais modelos e valores comerciais.
(Continua)
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
34
(Conclusão)
1N966 16 0,4 1N5259 39 0,5 1N5342 6,8 5W
1N967 18 0,4 1N5260 43 0,5 1N5343 7,5 5W
1N968 20 0,4 1N5261 47 0,5 1N5344 8,2 5W
1N969 22 0,4 1N5262 51 0,5 1N5345 8,7 5W
1N970 24 0,4 1N5263 56 0,5 1N5346 9,1 5W
1N971 27 0,4 1N5265 62 0,5 1N5347 10 5W
1N972 30 0,4 1N5266 68 0,5 1N5348 11 5W
1N973 33 0,4 1N5267 75 0,5 1N5349 12 5W
1N974 36 0,4 1N5268 82 0,5 1N5350 13 5W
1N975 39 0,4 1N5270 91 0,5 1N5351 14 5W
1N976 43 0,4 1N5271 100 0,5 1N5352 15 5W
1N977 47 0,4 1N4728 3,3 1W 1N5353 16 5W
1N978 51 0,4 1N4729 3,6 1W 1N5354 17 5W
1N979 56 0,4 1N4730 3,9 1W 1N5355 18 5W
1N980 62 0,4 1N4731 4,3 1W 1N5356 19 5W
1N981 68 0,4 1N4732 4,7 1W 1N5357 20 5W
1N982 75 0,4 1N4733 5,1 1W 1N5358 22 5W
1N983 82 0,4 1N4734 5,6 1W 1N5359 24 5W
1N984 91 0,4 1N4735 6,2 1W 1N5361 27 5W
1N985 100 0,4 1N4736 6,8 1W 1N5362 28 5W
1N986 110 0,4 1N4737 7,5 1W 1N5363 30 5W
1N987 120 0,4 1N4738 8,2 1W 1N5364 33 5W
1N988 130 0,4 1N4739 9,1 1W 1N5365 36 5W
1N989 150 0,4 1N4740 10 1W 1N5366 39 5W
1N990 160 0,4 1N4742 12 1W 1N5367 43 5W
1N991 180 0,4 1N4743 13 1W 1N5368 47 5W
1N992 200 0,4 1N4744 15 1W 1N5369 51 5W
1N5221 2,4 0,5 1N4745 16 1W 1N5370 56 5W
1N5222 2,5 0,5 1N4746 18 1W 1N5371 60 5W
1N5223 2,7 0,5 1N4747 20 1W 1N5372 62 5W
1N5224 2,8 0,5 1N4748 22 1W 1N5373 68 5W
1N5225 3,0 0,5 1N4749 24 1W 1N5374 75 5W
1N5226 3,3 0,5 1N4750 27 1W
Fonte: SENAI-RS
É um dos tipos mais conhecidos de diodo, embora seja costumeiramente conhecido pelo termo LED,
que significa Light Emitting Diode – diodo emissor de luz. Dependendo do tipo de dopagem e do material
utilizado na junção, é possível obter luz de diferentes cores (FIGURA 21).
2 ELETRÔNICA ANALÓGICA
35
Por muito tempo, os LEDs foram utilizados como indicadores luminosos em painéis de operação e
equipamentos eletrônicos, como, por exemplo, para indicar se um aparelho de TV estava ou não ligado
em uma tomada. O domínio de técnicas e processos de fabricação e a globalização e o acesso a jazidas de
materiais semicondutores têm baixado significativamente o custo destes diodos, e modelos cada vez mais
poderosos têm sido utilizados, sendo hoje empregados também em iluminação predial e automotiva.
A junção de um diodo sempre tende a emitir algum tipo de energia, resultando em leve queda de
tensão no circuito. Na maioria dos diodos retificadores e zener já estudados, esta energia é transformada
em calor. No caso dos LEDs, a liberação de energia se dá pela emissão de ondas eletromagnéticas (luz) em
cores definidas pela junção e a dopagem do semicondutor.
Geralmente, os LEDs operam com tensões entre 1,5V e 3,5V, sendo que este valor pode variar
conforme a cor da luz emitida. LEDs infravermelhos (luz invisível) funcionam geralmente com menos
de 1,5V; os vermelhos, 1,6V; os amarelos, com 1,7V; os verdes 2V, e os azuis, brancos, violeta, rosa, ultra-
violeta e similares, mais de 3V.
É importante observar a corrente do circuito onde o LED está ligado, que deve ser limitada ao indicado
pelo fabricante do componente. Geralmente, em um LED convencional de 5 mm essa corrente não
ultrapassa os 30 mA (FIGURA 22).
Matrizes de LEDs orgânicos miniaturizados já são utilizadas também para construir telas
VOCÊ mais finas e menos caras, e, ao contrário dos displays de cristal líquido, os displays OLED
SABIA? (Organic LED) não precisam de luz de fundo, pois cada ponto emite sua própria luz.
Emissão de Luz
Diodo
Plastico transparente
Terminais
Figura 22 - Imagem interna de um diodo
Fonte: SENAI - RS
SAIBA Muitos dispositivos eletrônicos utilizam LEDs como sinalizadores visuais, porém só recen-
temente os LEDs começaram a ser aplicados em iluminação. Pesquise sobre as vantagens e
MAIS desvantagens da iluminação a LED residencial e automotiva.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
36
Na automação industrial, LEDs são utilizados para sinalizar avisos luminosos em painéis de
máquinas, como em sinaleiros, indicadores de funcionamento e displays de dígitos numéricos (FIGURA
23 e FIGURA 24).
Figura 23 - Sinaleiros LEDs usados em quadros de comando elétricos e em sistemas de automação industrial
Fonte: SENAI - RS
Como na maior parte dos atuadores industriais, um sinaleiro LED é alimentado com tensão de 24V, o que faz
necessário um circuito para a limitação de corrente em um circuito com LEDs. Dentro de um simples indicador
lumioso LED de 24V, tão comum em quadros de comando e painéis de máquinas automatizadas, encontraremos
então um ou mais LEDs junto a resistores em um circuito série, conforme a Figura 25.
24V C. C.
+ Resistor
24V
-
LED
O valor da resistência deve ser dimensionado levando-se em consideração a queda de tensão dos LEDs
do circuito e a corrente desejada.
2 ELETRÔNICA ANALÓGICA
37
Neste caso, temos um LED de 1,7V, recomendado para corrente de 30mA. Como a alimentação é de 24V,
vamos dimensionar um resistor que realize a queda de tensão de 22,3V (a diferença entre 24V e 1,7V) em uma
corrente de 0,030A (30mA).
Usando a lei de Ohm, temos:
I = V / R => 0,030A = 22,3V / R => R = 22,3V / 0,030A => R = 743,34 ohms
Com o valor comercial de resistor mais próximo (para cima) de 820 Ohms, teremos o LED funcionando a pouco
mais de 27mA, sem grandes variações na luminosidade gerada.
É importante lembrar que um LED é, antes de tudo, um diodo, e, portanto, deve ser corretamente
polarizado para obter o resultado esperado.
Em alguns tipos de mostradores para exibir informações numéricas, diodos emissores de luz (LEDs) são
agrupados em 7 ou mais segmentos de reta. Os LEDs são confeccionados e encapsulados com o intuito de
gerar visualmente a representação de um pequeno traço que, combinado com outros, pode representar
números de zero a nove.
Chamamos estes tipos de mostradores de “displays de 7 segmentos” (FIGURA 26).
Figura 26 - Dígito de 7 segmentos, composto por 7 leds para mostar o número, mais um para o ponto
Fonte: SENAI - RS
SAIBA Pesquisando sobre a diferença entre displays LED de 7 segmentos dos tipos anodo comum
MAIS e catodo comum, e sobre o custo médio de um dígito numérico com 10 a 20 mm de altura.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
38
CASOS E RELATOS
2.1.4 FOTODIODO
Neste caso, o componente é utilizado como sensor para detectar luz. Um fotodiodo pode gerar uma
pequena corrente elétrica (efeito fotoelétrico) e, se reversamente polarizado, apresenta resistência maior
ou menor, dependendo da frequência e da intensidade da luz que brilha sobre a junção.
2 ELETRÔNICA ANALÓGICA
39
É bastante comum sua aplicação em circuitos receptores de controle remoto ou em sensores ópticos
(FIGURA 27).
simbologia
Led emitindo
pulsos de luz
infravermelha
Sensor
fotodiodo
Figura 27 - Fotodiodo
Fonte: SENAI - RS
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.
Visto que um diodo convencional apresenta alta resistência ao ser inversamente polarizado, e baixa
resistência ao ser diretamente polarizado, podemos usar um multímetro analógico em escala de resistência
para testá-lo. Multímetros digitais, no entanto, podem oferecer um problema para este tipo de teste devido
às características de tensão aplicadas à carga para o teste.
Na Figura 29, observamos que no multímetro deve haver a indicação para teste de diodo.
DC
+
-
CAT ll
Figura 29 - Multímetro
Fonte: SENAI - RS
Com uma ponteira do multímetro em cada terminal do diodo, teste-o diretamente polarizado e,
depois, inversamente polarizado, observando os valores lidos pelo instrumento de medição. Geralmente,
em multímetros digitais, o valor exibido corresponde à queda de tensão realizada pelo diodo (FIGURA
30 e FIGURA 31).
DC
DC DC
DC
AA AA
POWER
POWER PKPK
HOLD
HOLD BB
/ L/ L DCDC
/ AC
/ AC POWER
POWERPKPK
HOLD
HOLD B /BL/ L DCDC
/ AC
/ AC
AUTO
AUTOPOWER
POWEROFF
OFF AUTO POWER
AUTO OFF
POWER OFF
++ ++
-- --
CAT
CATll ll CAT ll ll
CAT
20A
20A mA
mA COM
COM VΩHz
VΩHz 20A
20A mAmA COM
COM VΩHz
VΩHz
Se o diodo conduzir quando diretamente polarizado e não conduzir quando inversamente polarizado,
então provavelmente ele estará funcionando corretamente.
Se o diodo conduzir em ambas as direções, concluímos que está em curto e, consequentemente, inutilizável.
Se o diodo não conduzir em nenhuma das direções, concluímos que está aberto e, portanto, danificado.
Dica: faça o teste em diodos emissores de luz (LEDs), de preferência da cor vermelha, que apresentam
uma menor tensão de trabalho. Observe o que ocorre com o LED durante os testes.
2.1.6 OPTOACOPLADORES
Encapsulamento
Fotoacoplador Fotoacoplador para montagem
de 4 terminais de 6 terminas em superfície - 6 terminais
6 5 4
1 3
Símbolos
2 4
1 2 3
Figura 32 - Optoacopladores
Fonte: SENAI - RS
24V
24V + (GND) 5V
ligação entre (GND) 5V +
as fontes
4K7
uC
1k2
SENSOR
Já no caso do divisor de tensão, o custo é menor, porém a fonte de alimentação do sensor deverá ter a mesma
referência da fonte que alimenta o microcontrolador. usar um optoacoplador, dimensionando um resistor em
série com o LED interno do componente para atingir a corrente ideal ao ser polarizado com 24 V (FIGURA 34).
24V
24V + (GND) 5V
(GND) 5V +
10K
1K2 uC
SENSOR
Figura 34 - Optoacoplador
Fonte: SENAI - RS
No caso do optoacoplador, podemos usar fontes distintas, uma para o sensor e outra para o
microcontrolador, sem precisar interligá-las.
Outra vantagem do uso de optoacoplador é que a isolação elétrica impede que ruídos eletromagnéticos
de tensão elevada danifiquem o microcontrolador, aumentando a robustez do sistema.
Portanto, usamos optoacopladores com o intuito de conectar sistemas com diferentes níveis de tensão
e fontes de alimentação e, também, com o objetivo de proteger o sistema de problemas gerados por ruídos
eletromagnéticos.
Processamento
Sensores
Equipamento
Controlador
+
ambiente Atuadores
Entre o sinal capturado pelos sensores e o controle dos atuadores existe a necessidade de circuitos
físicos (hardware) ou lógicos (software) que definirão como o equipamento deve funcionar.
Para a construção do controlador de um sistema automatizado existem diversas estratégias, que vão
desde estratégias mais simples, como dispositivos eletromecânicos (lógica de relés), até mais complexas,
como sistemas computacionais com vários processadores interligados.
Em casos que envolvem circuitos de controle mais complexos, os dispositivos eletrônicos compostos
basicamente de semicondutores trabalham utilizando limites de tensão e corrente que os impedem de
acionar diretamente um atuador. Por exemplo, um microcontrolador tem saídas digitais limitadas a poucas
dezenas de miliampères, geralmente, com níveis de tensão que não ultrapassam 5 volts. Isso se deve
ao fato de, internamente, o microcontrolador ser composto de uma quantidade enorme de transistores
com alguns nanômetros (bilionésimos de metro), em que complexas e numerosas redes de circuitos são
construídas em pastilhas minúsculas.
Com a redução do tamanho dos transistores, houve a redução de custos, aumento de velocidade,
redução do tamanho do hardware final e redução significativa no consumo de energia. O problema é que
esses semicondutores, como no caso do microcontrolador, ficam impedidos de controlar diretamente
cargas utilizadas em sistemas automatizados, como motores elétricos ou até mesmo a simples bobina de
um relé convencional.
A Figura 36 mostra o interior de um circuito integrado, em que a nanotecnologia permitiu a
integração de milhares de transistores em uma única pastilha de alguns milímetros.
Portanto, devido a suas características construtivas, um circuito integrado não permite acionamentos
diretos de dispositivos por meio de correntes e tensões significativas. Uma tensão elevada (acima de 5 V)
poderia romper a isolação minúscula entre as trilhas; e correntes elevadas poderiam facilmente romper os
minúsculos filamentos e ligações internas do C.I.
Na mecatrônica, costumamos utilizar circuitos elétricos combinados com circuitos pneumáticos
(eletropneumática), porém, para realizar o acionamento de uma eletroválvula pneumática industrial,
faz-se necessário um sinal geralmente com tensão de 24V e mínimo de 0,2A. A princípio, estes valores
podem parecer baixos, mas são valores considerados elevados para grande parte dos circuitos integrados,
incluindo-se os já citados microcontroladores. Devido principalmente a esse motivo, faz-se necessária a
utilização de uma interface que permita que um circuito integrado acione um circuito eletropneumático.
Os transistores, além de constituírem a essência dos circuitos integrados, também são utilizados
externamente a eles em versões maiores com o intuito de amplificar os sinais elétricos, aumentando a
tensão e a corrente para uso no controle de atuadores.
Outra aplicação bastante comum de transistores é no controle de tensão e corrente em fontes de
alimentação. Em sistemas digitais, geralmente utilizamos o transistor como uma “chave eletrônica”, fazendo
com que tenha dois comportamentos distintos: conduzir ou não conduzir elétrons. Porém, o transistor é
bastante versátil e pode ser usado também com o objetivo de controlar a corrente, permitindo que mais ou
menos elétrons passem pelo condutor por meio do controle realizado por um sinal elétrico.
Considerando uma fonte de alimentação estabilizada, por exemplo, com saída de 24 V, se a tensão limite for
ultrapassada, os componentes ligados a esta fonte podem queimar devido à sobretensão. Por outro lado, se a
tensão ficar muito abaixo da desejada podemos ter variações indesejadas no funcionamento do circuito que
será alimentado. Em casos como estes, as fontes possuem estratégias de regulação de tensão, fazendo com
que ela se adapte ao circuito alimentado dentro de faixas predeterminadas e mantendo a tensão desejada na
saída, não importando se a corrente aumenta ou diminui em um determinado espaço de tempo.
Como já citado anteriormente, as duas principais aplicações de transistores são seu uso como chave (ligando
e desligando um circuito) ou como estratégia de controle de corrente (dosando a passagem da corrente elétrica
em um circuito).
No uso como chave eletrônica, o transistor oferece uma resposta muito rápida e de baixo custo se
comparado à estratégias eletromecânicas como relés; além isso, o acionamento da carga pode ser feito com
um sinal mínimo de corrente e tensão.
Quando é usado como controle de corrente, o transistor substituiu as antigas válvulas termoiônicas por
ter um consumo de energia muito menor, assim como tamanho e custo bastante reduzidos.
Assim como os diodos, os transistores também são construídos com base em junções de
semicondutores. A principal diferença está no fato de haver mais de uma junção.
Anteriormente afirmamos que a eletrônica é a ciência que estuda a forma de controlar a energia elétrica.
Neste caso, o transistor é, sem sombra de dúvidas, um dos principais instrumentos de controle utilizados.
2 ELETRÔNICA ANALÓGICA
45
Os transistores bipolares de junção, também conhecidos pelo acrônimo TBJ, ou BJT (inglês), podem
variar bastante conforme suas características construtivas, mas de forma geral são compostos por duas
junções formadas pela intercalação de material semicondutor do tipo P e do tipo N, adquirindo, assim,
duas polaridades, podendo ser NPN ou PNP (FIGURA 37).
N P N P N P
Coletor
Emissor
Emissor
Base
Base
Coletor
Figura 37 - Transmissores NPN e PNP
Fonte: SENAI - RS
Nos transistores, as camadas de semicondutor com diferentes dopagens são denominadas de emissor,
base e coletor.
O emissor é uma camada fortemente dopada e, como o nome sugere, sua função é emitir as cargas elétricas.
A base é uma fina camada com uma dopagem média; através dela polarizamos o transistor, permitindo
que as cargas elétricas fluam. Entendemos por cargas elétricas as cargas positivas (lacunas) ou negativas
(elétrons), dependendo do tipo do transistor (NPN ou PNP).
O coletor é uma camada levemente dopada e tem a função de coletar as cargas elétricas.
VOCÊ O transistor foi inventado em 1947 pelos pesquisadores da Bell Telephones, nos EUA,
SABIA? para substituir as válvulas eletrônicas nas aplicações de telefonia.
Podemos dividir os transistores bipolares em duas categorias, de acordo com o arranjo entre seus tipos
de material semicondutor: NPN (FIGURA 38) e PNP.
coletor
N P N
base
NPN
emissor
coletor
base
emissor
Inicialmente, podemos imaginar o transistor NPN como um diodo, em que a base faz papel de
anodo e o emissor faz o papel de catodo.
Chamamos de polarização direta de um transistor NPN quando temos uma corrente entre a base
e o emissor, causada pela tensão entre estes dois terminais (VBE), o que permite a passagem de uma
corrente maior entre o coletor e o emissor.
Em resumo, para ligar um transistor NPN como uma “chave eletrônica”, aplicamos tensão positiva
na base e negativa no emissor. Para “desligar”, devemos remover esta tensão positiva da base para
interromper a corrente entre a base e o emissor (FIGURA 39).
NPN
carga
coletor corrente
maior
base
corrente
menor emissor
Figura 39 - Transistor NPN polarizado. Carga representa um circuito ou componente que está sendo energizado
Fonte: SENAI - RS
Observe que a convenção do sentido de corrente é do polo positivo para o negativo e ocorre no sentido
inverso do movimento de elétrons (FIGURA 40).
emissor
P N P
base
PNP
emissor
coletor
base
coletor
Em um transistor PNP, três cristais semicondutores diferentemente dopados criam duas junções
elétricas dispostas em camadas. A camada do meio é do tipo N (-), composta de material semicondutor
com elétrons disponíveis (cargas negativas).
Inicialmente, podemos imaginar o transistor PNP como um diodo, em que o emissor faz o papel
de anodo e a base faz o papel de catodo.
Um transistor PNP está polarizado quando temos uma corrente entre o emissor e a base que,
por sua vez, é causada pela tensão entre estes dois terminais (V EB), permitindo a passagem de uma
corrente maior entre o emissor e o coletor.
2 ELETRÔNICA ANALÓGICA
47
A corrente entre emissor e coletor é muitas vezes maior do que a corrente entre emissor e base.
Em um transistor, esta propriedade é denominada “GANHO” e é representada por hfe ou β (beta).
Se um transistor oferece um ganho de 100, significa que ele pode permitir uma corrente 100 vezes
maior entre o emissor e o coletor do que entre o emissor e a base.
Resumindo, em um transistor PNP, para “ligar a chave eletrônica”, aplicamos uma tensão negativa
na base. Para “desligar”, basta retirar essa tensão negativa da base. A carga deve ser ligada no coletor
e a tensão de alimentação positiva no emissor (FIGURA 41).
PNP
corrente emissor
menor
corrente
base maior
coletor
carga
Figura 41 - Transistor NPN polarizado. Carga representa um circuito ou componente que está sendo energizado
Fonte: SENAI - RS
Embora possamos controlar a corrente que passa por um transistor por meio da variação da corrente
em sua base, nosso objetivo agora é utilizar o transistor como uma chave eletrônica, na qual iremos utilizar
transistores em dois estados possíveis: saturado (como uma chave fechada, operando na corrente máxima
para o circuito) ou em corte (como uma chave aberta).
De forma simplificada, podemos pensar que bastaria, apenas, um transistor e o componente a ser
acionado conectados em uma fonte de alimentação. Porém, serão necessários alguns outros elementos
para limitar a corrente na base do transistor (resistor de base) e também para estabilizar o nível de tensão
da base (resistor de pull-up ou pull-down).
Para os circuitos que seguem, vamos supor que o sinal proveniente de um circuito de controle tem as
seguintes características :
a) fornece tensão de 0V ou de 5V (sinal digital);
b) a corrente máxima para o sinal fornecido pelo circuito é de 0,02A (20mA). No caso de corrente acima deste
valor, haverá danos permanentes no circuito de controle.
No circuito da Figura 42, o objetivo é ligar ou desligar um relé com bobina de 5 V. Ao ligá-lo, a corrente
do circuito da bobina ultrapassa 70 mA, várias vezes maior do que o limite de corrente do circuito de
controle informado, que é de 20mA.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
48
atuador atuador
(desligado) (ligado)
5V + 0.00
RL1 5V + +70.2
Amps
RL1
Amps
5V D1 5V
D1
C C
R2 B TRANSISTOR SINAL 5V + R2 B TRANSISTOR
0V + 0.00 +3.28
Amps
1K2 NPN (MAX 0,02A) Amps
1K2 NPN
E E
R3 R3
20K 20K
Então um transistor NPN será usado para amplificar a corrente de 20mA para uma corrente
superior, necessária para que a bobina do relé funcione.
O sinal de 5V proveniente do circuito de controle é utilizado para polarizar o transistor, sendo
conectado a sua base após passar pelo resistor R2 para limitar a corrente a níveis seguros e não
danificar o circuito de controle.
Sem o resistor R2, a corrente seria ainda mais elevada, pois seria como termos um diodo em série entre
o sinal do circuito de controle e a referência (GND). Por isso, o resistor R2 é muito importante e deve ser
corretamente dimensionado.
Sabendo que o transistor do circuito oferece um ganho de 100 vezes ( β =100), vamos dimensionar o
circuito para que a base do transistor seja polarizada com uma corrente próxima a 4 mA, obtendo uma
corrente entre coletor e emissor máxima de 400 mA, mais do que suficiente para o acionamento proposto.
O transistor então é conectado de forma a interligar o terminal do relé ao GND.
Como o R2 foi calculado? Inicialmente, temos que lembrar que a corrente usada para polarizar
o transistor NPN percorre o caminho entre base e emissor. Assim como na junção de um diodo,
esperamos que haja uma queda de tensão na junção do transistor. Estimamos esta queda em 0,7V
para transistores de silício, porém cada transistor pode apresentar características diferentes neste
aspecto. Em caso de dúvida, pesquise pela folha de dados (ou datasheet) do componente.
Como o sinal que chega à base é de 5 V, sobram 5 V – 0,7 V = 4,3 V para o restante do circuito.
Sendo que esse transistor suporta até 500 mA, e sabendo que uma corrente de 400 mA é mais do
que suficiente para acionar a carga, para o ganho de 100 vezes, vamos polarizar o transistor com
uma corrente de aproximadamente 4mA (4mA * 100 = 400mA). Conhecendo a queda de tensão
desejada (4,3V), resta calcular o valor da resistência a ser aplicada no circuito.
Usando a fórmula I = V / R, temos:
4 mA = 4,3V / R
0,004 A . R = 4,3V
R = 4,3V / 0,004 A
R = 1075 Ohms.
2 ELETRÔNICA ANALÓGICA
49
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
Observe que a diferença está no transistor utilizado (PNP), na forma em que o circuito é interligado
(a carga fica entre o coletor e o GND) e, principalmente, no sinal utilizado para polarizar o transistor
(0V para ativar o relé, e 5V para desativar).
O resistor R2, como anteriormente descrito, continua com o objetivo de limitar a corrente da
base e segue as mesmas regras de cálculo antes citadas, variando somente em relação ao sentido
da corrente.
O resistor R3 agora apresenta o comportamento de pull-up, mantendo o sinal da base em nível
alto de tensão (5V) para evitar acionamentos indevidos causados por ruídos.
O diodo D1 continua reversamente polarizado, atuando como supressor de picos de tensão por
uma fração de segundos, quando o transistor passa do estado de condução para o estado de corte,
interrompendo o circuito.
2 ELETRÔNICA ANALÓGICA
51
ENCAPSULAMENTO DE TRANSISTORES
Embora os transistores em geral tenham um funcionamento bastante similar, possuindo junções PNP
ou NPN, variações de corrente, tensão, potência e montagem em circuitos, exigem encapsulamentos
diferentes (FIGURA 44).
TO92/TO237
TO 1 T05/T018 TO 7 2
TO39/TO205 2
E-Line 2 2
1 3
1 3 1 3
1 2 3 4 1 2 3
TO 3 / TO 2 0 4 S OT 1 0 3 T0250
4 T0218/T0220 T02205
1 2 3 1 3 SOT93/TAB
1 4º
2 4 (TAB) 3
3
(CASA) 2
TO 3 ( 4 P I N ) 12345
1 2 3
4 3 4
123
SOTB2 TO247/5
TO246 4 3
T03P/T0247 4 (TAB) ( TAB)
4
( TAB) ( TAB)
1 2 3 1 2 3 1 2 34 5
1 2
1 2 3 1 2 3
1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
A Tabela 3 deve ser utilizada como uma referência rápida e superficial. Consulte a documentação (folha
de dados, ou “datasheet”) do componente para informações atualizadas.
Para testar os transistores bipolares precisamos identificar os pinos e o tipo do transistor. Embora haja
certa padronização em relação ao encapsulamento, essa identificação dos pinos relativos ao emissor, à
base e ao coletor é importante. Em caso de dúvida, pesquise na internet pelo datasheet.
Provavelmente, a maior parte das páginas encontradas remeterão às folhas de dados (datasheet) de
diversos fabricantes do componente. Embora para o mesmo código o componente possa não apresentar
variações significativas, pode haver variações de um para outro fabricante.
Por hora, vamos nos ater no fato de o transistor a ser testado ser PNP ou NPN, e quais são os pinos de
emissor, base e coletor (FIGURA 45).
NPN
Depois, para verificar o transistor bipolar, podemos usar um multímetro digital na posição de teste de
diodo (FIGURA 46).
Ω
mV mA
A
V
V
µA
OFF
C C
A A A
C C
A A A
Caso alguma medição que deva resultar em infinito demonstre algum valor, há indícios de que esse
transistor se encontra em curto. Para o valor de tensão de junção, é esperado um valor próximo a 700 mV
(0,7V) para transistores de silício e a 300 mV (0,3V) para transistores de germânio.
FIQUE Caso um transistor esteja em curto, a provável causa é dada ao excesso de corrente
ALERTA coletor - emissor ou base – emissor. Se o transistor apresentar junções abertas, a pro-
vável causa será dada a uma tensão reversa acima do limite suportado.
2 ELETRÔNICA ANALÓGICA
55
Quando nos referimos ao transistor darlington, estamos falando em um agrupamento de dois transistores
bipolares em um mesmo encapsulamento, com intuito de aumentar o ganho do circuito, conforme a Figura 49.
(NPN) C (PNP) E
Q2
B Q1
Q1 B
Q2
E C
É 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).
Nos transistores bipolares anteriormente estudados, o fator que controla a passagem da corrente é
dado pela própria corrente elétrica entre a base e o emissor e é chamado de transistor bipolar devido às
características de suas junções sobrepostas (FET - Field Effect Transistor).
Porém, outra forma de transistor que não utiliza corrente para polarização, e sim tensão, vem sendo
largamente empregada em circuitos de acionamento, pois atuam com cargas mais elevadas tanto em
corrente como em tensão, sem haver a necessidade de uma corrente, mesmo que pequena, diminuindo o
consumo de energia e aumentando a eficiência do circuito.
Os transistores de efeito de campo, também conhecidos como transistores unipolares, utilizam um
campo elétrico proporcionado por um sinal de tensão, sem necessidade de correntes significativas para seu
controle. São assim chamados, porque a corrente elétrica é determinada por um único tipo de portador,
podendo ser ELÉTRONS (N-Channel) ou LACUNAS (P-Channel).
No lugar da base presente nos transistores bipolares, nos transistores de efeito de campo usamos a
porta (ou gate) como elemento de controle. Como vantagens podemos citar a impedância de entrada
elevada (sendo bastante sensível nos elementos de controle) e baixas perdas relativas a fugas.
Basicamente, existem dois tipos distintos de transistores de efeito de campo, o JFET – Junction Field
Effect Transistor (transistor de efeito de campo de junção) e o MOSFET - Metal Oxide Semiconductor Field
Effect Transistor (Transistor de efeito de campo de óxido de metal). Este último ainda é dividido em outras
duas subcategorias, conhecidas como MOSFET tipo crescimento ou intensificação e MOSFET tipo depleção.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
56
Segue o símbolo e a representação da junção de um transistor tipo JFET. Nos transistores JFET existem
duas regiões constituídas de um mesmo tipo de semicondutor (ou tipo N ou tipo P) eletricamente
interligadas, chamadas de porta (gate). A região de material semicondutor de tipo inverso entre as duas
regiões de gate é chamada de canal e em seus extremos são conectados dois terminais: o dreno (drain) e a
fonte (source), conforme Figura 50.
dreno(D) dreno(D)
canal N
canal P
porta(G) porta(G)
fonte(S) fonte(S)
D D
N P
G P P G N N
S S
Figura 50 - Símbolo de JFET e representação da estrutura construtiva
Fonte: SENAI - RS
Em um JFET canal N, o elemento de controle são os elétrons. Neste caso, drain (ou dreno) é o terminal
que drenará os elétrons, gate (ou porta) controlará o fluxo de elétrons, e source (fonte) fornece os elétrons.
Alguns autores associam o comportamento dos JFET a resistores controláveis, pois, por meio da tensão
aplicada ao gate, podemos abrir um canal maior ou menor para a passagem da corrente elétrica, simulando
o efeito de um resistor variável.
Em um JFET canal P, os elementos controlados são as lacunas. Neste caso, DRAIN drena as lacunas, source
fornece lacunas e gate controla a passagem de lacunas.
VOCÊ Pesquise sobre o uso de transistores JFET em amplificadores, fontes de corrente, cir-
SABIA? cuitos recortadores (ou chopper) e chaves analógicas.
O JFET é empregado em aplicações de pequenos sinais, não sendo o transistor de efeito de campo mais
indicado para acionamentos de dispositivos. Para estas aplicações, é recomendado o uso dos MOSFETs.
MOS – Metal-Óxido-Semicondutor
Os transistores MOS podem ser divididos de acordo com o tipo de portador de carga predominante
(elétrons ou lacunas) ou pelo modo de funcionamento (crescimento ou depleção) dado por sua construção
física. Assim, temos:
a) transistor MOS canal N (ou NMOS) tipo crescimento ou enriquecimento;
A Figura 51 mostra a estrutura construtiva de um transistor MOS canal N de um transistor MOS canal P
tipo enriquecimento e seus respectivos símbolos.
Dreno Dreno
N+ P+
(drain) (drain)
Substrato Porta Substrato Porta
P N
(body) (gate) (body) (gate)
N+ Fonte P+ Fonte
(source) (source)
D D
SUB SUB
G G
S S
CANAL N CANAL P
Observamos que na estrutura deste tipo de transistor surge um quarto terminal, chamado de substrato
ou bulk. Esse terminal é conectado no bloco de semicondutor (silício ou germânio) a partir do qual são
construídas as demais estruturas que dão origem aos terminais do transistor. Em geral, para as estruturas
MOS o terminal do substrato é conectado ao terminal de fonte e, por essa razão, em muitas montagens ele
é ignorado.
O funcionamento de um transistor NMOS tipo enriquecimento pode ser resumido como segue: aplicando-
se uma tensão entre o dreno e a fonte (VDS), a condução de corrente entre esses terminais dependerá da tensão
aplicada na porta (VGS). Se a tensão aplicada ao terminal de porta for positiva e grande o suficiente, atrairá
cargas negativas para a superfície do semicondutor tipo P (substrato) abaixo dele. Aumentando ainda mais
a tensão aplicada na porta, haverá uma camada de elétrons formando um canal ligando os semicondutores
tipo N do dreno e da fonte, possibilitando a condução de corrente entre esses terminais.
Analogamente, nos transistores PMOS deve ser aplicada uma tensão negativa no terminal de porta, a qual
atrairá cargas positivas para a superfície do semicondutor tipo N, induzindo a formação de uma camada de
lacunas (canal) entre o dreno e a fonte, que permitirá a condução de corrente entre eles.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
58
Os transistores MOS tipo depleção diferenciam-se construtivamente dos anteriores pelo fato de já
possuírem uma camada de mesmo tipo de material que o dreno e a fonte, embora com uma dopagem mais
fraca (menor número de portadores) que a região dos terminais.
A Figura 52 mostra a estrutura construtiva de um transistor MOS canal N e um transistor MOS canal P tipo
depleção e seus respectivos símbolos.
N+ Dreno P+ Dreno
(drain) (drain)
Substrato P Porta Substrato Porta
(body) N (body) N P
(gate) (gate)
N+ Fonte P+ Fonte
(source) (source)
D D
SUB SUB
G G
S S
CANAL N CANAL P
Os transistores MOS tipo depleção foram muito importantes para os primeiros circuitos integrados. Esse
transistor é pouco usado nas tecnologias atuais, cujos circuitos se baseiam quase exclusivamente em transistores
MOS tipo enriquecimento. Ele é bastante similar ao JFET, podendo ser empregado nos mesmos circuitos.
Uma aplicação de circuito que utiliza transistores MOS na eletrônica é a chamada ponte H. Este circuito
é utilizado em situações em que, além de controlar os acionamentos, desejamos controlar a tensão de
uma determinada saída de potência de forma rápida. Este tipo de circuito é utilizado essencialmente em
equipamentos que produzem diferentes efeitos, dependendo da forma de polarização.
Por exemplo, um motor de corrente contínua convencional pode girar no sentido horário ou anti-
horário, dependendo da forma como é conectado à fonte de alimentação (FIGURA 53).
horário anti-horário _
+
+
_
Por meio de um circuito com quatro chaves podemos definir o sentido de rotação do motor (FIGURA 54).
Chave 2 Chave 1
Chave 2 Chave1
Chave 4 Chave 3
Chave 4 Chave 3
+ +
_ _
Chave 2 Chave 1
Chave 4 Chave 3
+
_
Porém, desejamos realizar o controle eletrônico das chaves. Uma alternativa é usar relés. Segue um esquema
de ligação válido de um motor DC usando relés NA/NF (FIGURA 55).
na
bobina
nf
C
+
_
na
bobina
nf
Figura 55 - Motor DC
Fonte: SENAI - RS
+V
Q1 Q3
D1 D3
Q2 M Q4
Controle
D2 D4
Figura 57 - Detalhamento
Fonte: SENAI - RS
É importante lembrar que a construção de uma ponte H pode ser realizada utilizando qualquer tipo de
transistores (MOS, bipolares ou JFET), bem como relés.
SAIBA Pesquise pelo termo HALF BRIDGE e sua aplicação no controle de motores de corrente
contínua. Verifique se existe algum circuito integrado que possa substituir quatro ou
MAIS mais transistores para acionamentos em ponte H.
2 ELETRÔNICA ANALÓGICA
61
C D
B
G
E
S
carga NÃO! carga
d) é preciso ainda lembrar que, entre o emissor e a base, o transistor se comporta como um diodo
e, portanto, não é boa ideia acionar os transistores bipolares ligando sua base diretamente à tensão de
alimentação ou ao terra. Isto equivale a um curto-circuito. Para evitar o problema, um simples resistor em
série com a base evitará esse curto, além de limitar a corrente de base (FIGURA 59);
+V
+V
carga
E
C
B
NÃO!
B
carga E
e) Sempre devemos colocar um diodo em paralelo com uma carga indutiva, como mostra a Figura
60. Quando a corrente flui normalmente, o diodo não conduz, mas quando o fluxo de corrente é
cortado, o indutor gera uma tensão inversa muito alta que seria capaz de destruir o transistor se não
fosse dissipada pelo diodo.
+V
Carga indutiva
Diodo ( indutor, relé,
transformador etc.)
Chave eletrônica
(transistor bipolar,
MOSFET, SCR etc.)
A grande maioria dos MOSFETs fabricados atualmente encontram-se na forma de circuito integrado. O
tipo de circuito integrado construído tem ambos os dispositivos PMOS e NMOS embutidos em um mesmo
substrato, como mostrado na Figura 61. Esses circuitos são chamados de CMOS ou MOS complementar
(Complementary Metal-Oxide Semiconductor).
NMOS PMOS
S G G D
B D S B
p+ n+ n+ p+ p+ n+
n-well
P= substrate
As principais vantagens apresentadas pela tecnologia CMOS são o baixo consumo de potência, alta
imunidade a ruído, alto nível de integração, simplicidade de projeto e operação confiável em ampla
faixa de valores de tensão e também para altas frequências. Por essas razões, esses dispositivos são
largamente utilizados para a implementação de circuitos digitais, como portas lógicas.
2 ELETRÔNICA ANALÓGICA
63
Além de suas aplicações na Eletrônica Digital, a tecnologia CMOS também é utilizada em aplicações
analógicas, em especial para a construção de amplificadores operacionais ou em radiofrequência, neste
último caso sendo usada em frequências superiores a GHz.
Para o projeto de circuitos com transistores CMOS utilizamos os seguintes símbolos para representar os
transistores PMOS e NMOS (FIGURA 62).
D D
G G
S S
D D
G G
S S
CMOS canal P CMOS canal N
2.3 TIRISTORES
A característica mais relevante destes semicondutores é atuar como uma chave biestável e de ação
rápida, sendo construídos por meio de quatro ou mais camadas P e N.
O efeito biestável se dá pelo fato de haver uma condição definida para mudar do estado de
bloqueio para o estado condutivo, e vice-versa. De forma geral, um tiristor pode ser colocado em
modo condutivo por um terminal de disparo (gate), ou por meio de uma tensão limite atingida. Uma
vez no estado condutivo, o componente assim se mantém enquanto houver uma corrente principal
fluindo pelo componente superior a um limite mínimo pré-determinado (IH).
São componentes construídos por um mínimo de três junções e de quatro elementos semicondutores
(PNPN) de forma a permitir ou bloquear a passagem da corrente elétrica.
Devido a características apropriadas para o chaveamento (liga e desliga), e sua característica biestável,
aliados à possibilidade de uso em grandes níveis de tensão e corrente, os tiristores são comumente utilizados
em circuitos de chaveamento para controle de potência, em fontes e equipamento de controle de motores e
aquecimento. Podemos encontrar tiristores em sistemas controlados de retificação de corrente alternada, em
sistemas de controle de iluminação (dimmer), inversores de frequência e relés de estado sólido. Devido à sua
simples e rápida ação biestável, os tiristores também são empregados em aplicações de segurança.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
64
Conforme a construção e a forma de disparo, os tiristores são classificados como mostra a Figura 63.
SCR TRIAC SUS ASBS
(Silicon Controlled Rectifier) (Triode AC Switch) (Silicon Unilateral Switch) (Assymmetrical Silicon Bilateral
A M1 A Switch) M1
G G
G G
K M2 K M2
G2
G
G G G
K K K
K
G
G2
G1
M2 A2 K
K
MODOS DE DISPARO
Os tiristores são controlados por uma ação específica que faz com que mudem de estado de bloqueio
para estado condutivo. Essa ação é chamada de disparo e pode ser realizada por processos diferentes,
explicados a seguir:
a) injeção de corrente de gate - usado nos SCR, SCS e TRIAC, é o processo mais conhecido de disparo, que
ocorre após a aplicação de uma pequena corrente no terminal de GATE, iniciando o processo de reação em
cadeia (efeito avalanche);
b) tensão entre anodo e catodo - neste caso, o efeito avalanche é determinado pelo aumento da tensão
entre anodo e catodo acima de um limite específico, sem a necessidade de um terceiro terminal. Este
procedimento é usado para o tiristor do tipo DIAC;
c) taxa de subida da tensão anodo e catodo - quando o disparo é realizado por uma rápida variação na
tensão entre anodo e catodo;
d) temperatura - alguns tipos de tiristores são bastante sensíveis à temperatura. Com a elevação da temperatura,
há um aumento na corrente de fuga das junções. Quando o nível de corrente suficiente é atingido, ocorre a
mudança de estado (disparo);
2 ELETRÔNICA ANALÓGICA
65
2.3.1 SCR
SCR significa Silicon Controlled Rectifier – Retificador Controlado de Silício. Assim como a maioria dos
tiristores, um SCR possui dois terminais nominados anodo e catodo, que podem ser direta ou inversamente
polarizados.
Para permitir a passagem de corrente, um SCR (FIGURA 64) deve estar diretamente polarizado, e receber
um pulso por meio de seu pino gate, que alguns autores acabam associando ao termo “gatilho” devido à
característica do disparo, embora a tradução literal seja “comporta”.
ANODO CATODO
PORTA
Figura 64 - Símbolo do SCR
Fonte: SENAI - RS
Símbolo de um SCR. A semelhança com um diodo não é mero acaso. Alguns consideram o SCR um
tipo de diodo, já que possui anodo e catodo. O SCR tem o comportamento de um diodo com controle,
permitindo que definamos o momento que ele deve passar a conduzir quando diretamente polarizado.
De forma genérica, podemos associar um SCR à ligação de dois transistores bipolares, como na Figura 65.
ANODO
ANODO
PNP
PORTA NPN
PORTA
CATODO
CATODO
Apresentamos agora um gráfico que representa a curva característica VxA de um SCR, que demonstra a
relação da tensão de polarização direta com a corrente.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
66
Tomando por análise o valor da corrente quando diretamente polarizado, observe, na Figura 66, que, após
a corrente de disparo ser atingida, a tensão necessária para manter o estado condutivo cai repentinamente.
Corrente direta
Característica
(A) de condução direta
Intensidade da corrente
de disparo
Ig1>0
Ig= 0
de manutenção
(IH)
Corrente de fuga
IAC
O nome DIAC (FIGURA 67) vem de “Diode for Alternating Current” e significa diodo para corrente alternada.
ANODO 1 ANODO 2
Em relação a outros tiristores, é importante observar que os terminais não são nominados anodo e
catodo, mas anodo1 e anodo2, ou, ainda, M1 e M2, variando conforme o fabricante e a literatura.
O DIAC também tem seu funcionamento determinado pelo conjunto de três junções, com materiais P
e N dispostos em camadas. A diferença está em caminhos alternativos e em materiais semicondutores que
permitem a passagem de corrente elétrica em ambas as formas de polarização. Geralmente, um DIAC passa a
conduzir quando uma tensão mínima é atingida (normalmente de 20V a 30V) e entra em estado de bloqueio
quando a corrente fica abaixo de um nível mínimo.
O efeito biestável do DIAC em relação à tensão é similar a algumas lâmpadas NEON, e é utilizado em
circuitos geralmente com o intuito de implementar mecanismos analógicos de disparo de baixo custo.
No próximo tópico há um exemplo de circuito de um DIMMER (para controle de luminosidade em
lâmpadas incandescentes) onde um DIAC é usado para promover o disparo controlado de outro tiristor
(TRIAC) a cada semiciclo da rede de corrente alternada.
2 ELETRÔNICA ANALÓGICA
67
2.3.3 TRIAC
O nome TRIAC vem de “Triode for Alternating Current” e significa triodo para corrente alternada.
De forma geral, o TRIAC é um DIAC com terminal para disparo (gate). Enquanto em um DIAC o que
determina o momento de disparo é a tensão entre os terminais, em um TRIAC isso é determinado
principalmente pela corrente do terminal gate, que chamaremos de corrente de gatilho.
O TRIAC é constituído de dois SCRs em uma configuração antiparalela (paralelo, mas em
sentidos opostos).
Uma aplicação interessante de um TRIAC é em circuitos detectores de zero para acionamento de
relés ou contactoras que comutam cargas elevadas em corrente alternada.
Quando um relé ou contactora convencional é utilizado para acionar uma carga, pode haver erosão e
carbonização nos contatos devido à excessiva corrente de partida do circuito acionado no momento que
o contato do relé é fechado. Com corrente alternada, isso pode ser minimizado se o contato do relé for
acionado ou desativado no momento em que a tensão estiver cruzando o nível zero, pois sem tensão não
há corrente e, consequentemente, não haverá dano.
O TRIAC é aplicado quase exclusivamente em circuitos de corrente alternada, sendo o principal
componente de sistemas de controle de potência em equipamentos AC, largamente utilizado em aplicações
de iluminação, temperatura e controle de velocidade de motores.
Segue o circuito de um DIMMER, que pode ser aplicado nestes tipos de controle, em que a onda senoidal
proveniente da rede elétrica AC é controlada pelo TRIAC, sendo que o disparo do TRIAC é realizado por um
circuito que utiliza um DIAC a fim de realizar um disparo controlado em determinado momento da onda
senoidal AC, ajustado por um potenciômetro.
O DIMMER (FIGURA 68) pode ser utilizado em sistemas de aquecimento (chuveiros, aquecedores e sistemas
que utilizam resistências elétricas), lâmpadas elétricas incandescentes e motores elétricos (eletrodomésticos,
furadeira, parafusadeira etc.)
R1= R2 = 10K V+
F
220K (p/110V) V- t(ms)
R1 RV1= 470K (p/220V)
CARGA
RV1 V+
DIAC
C1 = C2 = 100nF / 400V
220V TRIAC R2 V- t(ms)
TRIAC = TIC226D
V+
N C1 C2
V- t(ms)
chave Efeito do triac
“ceifando” a curva
da corrente alternada
FIQUE TRIACs e DIACs são tipicamente utilizados em circuitos de corrente alternada, em tensões
de 110V ou superiores. Sempre observe as práticas de segurança para implementar circui-
ALERTA tos deste tipo, utilizando EPIs e procedimentos adequados.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
68
Na eletrônica, um sinal é uma informação enviada ou recebida por um meio físico. Os sinais podem ser
digitais ou analógicos.
Em um sinal digital, a informação é representada por estados finitos e definidos, geralmente é
representada por meio de contrastes binários, como 0 e 1, ligado e desligado, tensão positiva ou negativa,
com corrente ou sem corrente, pulso breve ou pulso longo, entre outros.
Em sinais analógicos, a limitação é dada pelos valores máximo e mínimo de uma informação, porém,
pode variar dentro desta faixa, na qual existem infinitas representações possíveis. Um sinal analógico pode
representar uma informação através de uma variação em uma grandeza. Em sistemas elétricos, geralmente,
isso é representado pelas variações de tensão, de corrente ou de frequência.
Um exemplo de sinal analógico é o gerado por um sensor de temperatura do tipo termopar. O sistema
é analógico do ponto de vista da representação da informação porque, apesar de haver um limite máximo
e mínimo de temperaturas suportadas, podem ser representadas todas as possíveis e infinitas informações
dentro deste limite (FIGURA 69).
INFINITOS VALORES
DC
V
,
POWER PK HOLD B/L DC / AC
(mV)
+
-
CAT ll
- + 0C
termopar
Figura 69 - Voltímetro para milivolts conectado a um sensor de temperatura tipo termopar
Fonte: SENAI - RS
SAIBA Os termopares são agrupamentos de dois metais que geram uma pequena tensão
MAIS (geralmente em milésimos de volts) que varia proporcionalmente à temperatura.
a) b) c)
Figura 70 - a) sensores analógicos por ultrasom, que envia sinal de 0 a 10V ; b) sensor tubular indutivo analógico, que envia sinal de 0 a 10V conforme proximidade; c)
sensor de pressão que envia sinal analógico por meio de variação de corrente (4 a 20 mA)
Fonte: SENAI - RS
Cabe salientar que eletricidade é somente um dos tipos de energia que utilizamos. Existem outras
formas, como ondas eletromagnéticas, energia térmica, energia cinética, entre outros. A energia pode ser
transformada de uma forma para outra. É o que ocorre, por exemplo, em um transformador, onde a energia
elétrica gera um campo elétrico por meio do enrolamento de fios chamado de primário, e este campo
elétrico, por sua vez, é transformado novamente em energia elétrica no enrolamento secundário.
Da mesma forma, fios condutores de sinal que passam próximos a campos elétricos acabam sofrendo
interferências que podem ser prejudiciais à informação representada.
Uma das primeiras pessoas que transformou sinais elétricos em ondas eletromagné-
ticas para uso em comunicações de rádio foi o Padre Roberto Landell de Moura, um
VOCÊ padre brasileiro de Porto Alegre que, na década de 1890, realizava experiências de
SABIA? comunicação por meio de ondas de rádio.
Portanto, independente da forma de propagação do sinal analógico, existem inúmeros fatores que
interferem de forma indesejável na produção e transmissão da informação. Costumamos chamar esta
interferência de ruído.
Atualmente, a quantidade de informações geradas e transferidas entre os dispositivos é enorme, exigindo
maior velocidade de troca de informaçõese utilização de um mesmo condutor elétrico para transferir várias
informações simultaneamente.
VOCÊ Algumas redes industriais, como a AS-i, permite utilizar um único par de fios para dis-
ponibilizar alimentação e um canal de troca de dados entre vários sensores e atuado-
SABIA? res, diminuindo o custo e facilitando a implantação de sistemas de automação.
+ 1 8
Vo - 2 7 V+
+ 3 6 VO
V- 4 5
V- LM741
Figura 71 - Amplificador operacional. CI LM741
Fonte: SENAI - RS
Muitos autores iniciam o conteúdo de amplificadores operacionais propondo o modelo de um OPAMP ideal,
tendo esse componente as características a seguir:
a) possui ganho de tensão infinito;
b) a impedância de entrada é infinita, não havendo corrente;
c) saída com impedância zero, sem promover perda alguma no sinal gerado;
d) não há retardo algum no tempo de resposta;
e) apresenta a mesma eficiência para qualquer frequência.
Porém, devido a fatores construtivos, os amplificadores operacionais apresentam um comportamento
diferente do ideal, havendo vários modelos no mercado que podem ser selecionados tendo em vista a
aplicação desejada.
Para a maioria das aplicações há um modelo de amplificador operacional que se comporta próximo ao
OPAMP ideal, sendo importante pesquisar sobre as diferentes características de amplificadores operacionais
existentes no mercado.
Em uma primeira configuração, vamos aplicar um OPAMP genérico para amplificar um sinal de baixo nível de
tensão para posterior uso em um sistema de controle.
A configuração que segue é conhecida como Amplificador Inversor, utilizada como uma configuração
bastante comum para amplificador de ganho constante.
O nome amplificador é devido ao fato de o amplificador operacional inverter a tensão de saída em relação
a de entrada.
Este circuito não é recomendado para amplificar sinais limitados em corrente devido à baixa impedância
do circuito causado, principalmente pelo resistor Rf.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
72
Veja, na Figura 72 que, no gráfico em vermelho, o sinal de entrada (Vi), e em azul, o sinal de saída já
amplificado e invertido (Vo):
VO
Vi
Ri
Vi VO
Rf
ganho = VO =
Rf
Vi Ri
Figura 72 - Amplificador inversor
Fonte: SENAI - RS
Para sinais de entrada fracos (de baixíssima corrente) é recomendada a configuração de Amplificador
Operacional não inversor, a qual não inverte o sinal, variando conforme a qualidade e o modelo do componente.
A Figura 73 mostra um amplificador não inversor, cujo gráfico em vermelho indica o sinal de entrada (Vi) e
em azul, o sinal de saída já amplificado (Vo). Observe a mudança na fórmula para cálculo do ganho para essa
configuração, que é dada por Av = 1 + (Rf / Ri).
Aplicação: aumentar a amplitude de um sinal elétrico para um ganho definido.
Exemplo: um termopar conectado a um sistema de controle.
Vi
VO
Vi
Ri
VO
Rf
Rf
ganho = 1+
Ri
Figura 73 - Amplificador.
Fonte: SENAI - RS
Para facilitar o entendimento sobre o uso de amplificadores operacionais na automação, vamos estudar o
equipamento abaixo, propondo algumas estratégias de controle utilizando eletrônica analógica por meio de
amplificadores operacionais.
Um tanque de fluído (FIGURA 74), em uma indústria de alimentos, deve ser mantido a uma temperatura
relativamente estável, próxima a 60ºC. Para a leitura da temperatura é utilizado um termopar tipo K que
pode gerar até 48,838 mV quando submetido à temperatura de 1200°C, em uma corrente praticamente
nula, de alguns microampèr ou nanoampèr. Após calcular a relação entre tensão e temperatura, levando
em consideração a curva do sensor utilizado, é informado que aos 60ºC é obtida uma tensão de 2,5 mV
(0,0025 V).
aquecedor
sinal 0...48,8 mV
CONTROLE
220V relé
0V ou 24V, 120 mA
Como desejamos manter a temperatura do sistema acima deste limite, um circuito de controle é
implementado de forma a acionar o relé que ativa o aquecimento sempre que a temperatura for inferior a
60ºC, ou seja, sempre que a tensão gerada pelo termopar for inferior a 2,5 mV.
Sendo a tensão muito baixa para aplicar diretamente em um circuito de controle, agravado pelo fato de
a corrente disponibilizada por este sinal ser extremamente baixa, vamos usar um amplificador operacional
segundo o esquema a seguir (FIGURA 75).
5V
VO
aquecedor Ri
220V relé
1K 5V
Rf
1M
OPAMP não inversor
Devida à configuração de ganho 1001, a tensão de 2,5 mV (limite para o controle do aquecedor) será
amplificada pelo OPAMP, gerando uma tensão 1001 vezes maior.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
74
Após passar pelo OPAMP, o sinal é amplificado 1001 vezes. Desta forma, o sinal de alguns milivolts passa
a ser bem maior, facilitando o uso da informação por ele representada no restante do circuito de controle.
Embora nosso circuito tenha amplificado o sinal de alguns milivolts para uma tensão mais significativa,
ainda há um problema: como fazer com que um sinal deste circuito acione o aquecedor se e, somente se, este
sinal for inferior a 2,5025 V?
Para provar a versatilidade dos amplificadores operacionais, no próximo tópico estudaremos como
utilizar outro OPAMP neste circuito como um circuito de comparação, obtendo uma saída que indique
se o sinal ultrapassou ou não o limite definido.
Em um circuito comparador, o objetivo é realizar a comparação entre dois sinais distintos, obtendo uma
saída que indica se o primeiro sinal é maior ou menor que o segundo.
No exemplo anterior havia um sinal que deveria ser comparado com o valor da tensão limite de 2,5025V
para obtermos a informação necessária relativa ao controle do aquecedor.
Neste caso, dado que já temos o sinal a ser comparado, precisamos gerar um sinal fixo o mais próximo
possível desta tensão.
Usando um divisor de tensão (FIGURA 76), podemos obter, por meio da mesma fonte de alimentação
do circuito, uma tensão próxima a 2,5 V. O divisor de tensão pode ser obtido pela ligação em série de dois
resistores entre a alimentação de 5 V e a referência (GND). Recomendamos resistores de precisão (1%) para
obter melhor resultado.
Vin 5V C.C.
R1
1k2
Vout
2,5V
1k2
R2
Neste tipo de circuito, Vout pode ser determinado pela fórmula a seguir:
Vout = Vin . R2
(R1 + R2)
2 ELETRÔNICA ANALÓGICA
75
Tendo a referência de 2,5 V, bastante aproximada do valor desejado para a aplicação, precisamos agora
comparar o sinal proveniente do circuito de amplificação com esta referência. É importante lembrar que
o divisor de tensão acima gera uma tensão muito próxima, com uma variação inerente à precisão dos
componentes utilizados.
Podemos montar o circuito da Figura 77.
amplificador Vin5V
5V 1K2
R1
5V
aquecedor Ri 2,5V
VO
1K2
R2
220V relé
1K 5V
Vi
Rf
VO = 5V quando Vi < 2,5V
1M 0V quando Vi > 2,5V
Figura 77 - Circuito
Fonte: SENAI - RS
Embora este sistema seja útil, na prática poderá haver alguns problemas. Observe que a saída terá tensão
próxima a 0V quando a tensão da entrada inversora do OPAMP usado como comparador estiver acima de
2,5V, e esta mesma saída será próxima a 5V quando a entrada for inferior a 2,5V. Mas, e quando o sinal estiver
exatamente em 2,5V? Neste caso, devido ao alto ganho do componente e à instabilidade típica dos sinais
elétricos em circuitos reais, podemos esperar pequenas oscilações em frequências aleatórias, que farão com
que a saída oscile, variando bruscamente entre 0V e 5V, podendo danificar componentes ou partes do circuito
devido ao excessivo liga e desliga intermitente. Em outras palavras, a saída do circuito comparador ficará
muito instável quando as entradas do OPAMP comparador estiverem com valores muito próximos.
Neste caso, podemos configurar o circuito comparador na forma de um circuito Schmitt trigger, ou
em português, um “disparador Schmitt”, adicionando um comportamento que irá gerar estabilidade ao
sistema.
Esquema de um disparador Schmitt junto ao gráfico que demonstra o comportamento da saída em
função do sinal de entrada (FIGURA 78).
Vref
R3
Vc
R1 Vc ‘ Vi
Vsup:V +
(s)
Vc
V+
V0
V0
R2 Vi
V0 = 0 V0 = V +
quando sinal de quando sinal de
entrada ficar acima entrada ficar
Vinf: V - de Vc abaixo de Vc’.
Figura 78 - Circuito 1
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
76
No circuito acima há uma faixa de deslocamento gerada pela realimentação. Quando a saída estiver em
nível baixo, a realimentação realizada pelo circuito limitado por R3 baixa o nível de tensão Vc gerado pelo
divisor de tensão na entrada não inversora para o nível Vc’. Quando Vi for inferior a Vc’, Vo é elevado para
o nível alto de tensão, realimentando o circuito e elevando a tensão da entrada não-inversora novamente
para Vc. Portanto, com este circuito acabam sendo criadas duas tensões de referência diferentes para o
comparador, uma para quando ele está com a saída em nível alto de tensão e outra para quando ele está
em nível baixo de tensão. A diferença entre duas saídas chamamos de histerese. Ela consiste em uma zona
de transição sem efeitos, pois as variações ocorridas neste intervalo não geram mudanças no estado da
saída do comparador.
De forma mais específica, histerese significa retardo, mas a utilização desse termo na automação
industrial e na mecatrônica é referente a uma área neutra, em que um estímulo externo não causa efeito
na saída.
Como R1, R2 e R3 são dimensionados?
Primeiro precisamos calcular a resistência RTOT, dada pelo cálculo:
RTOT = 1 / (1/R1 + 1/R2 + 1/R3)
Posteriormente, podemos calcular A e B, dados pela fórmula:
A = VREF . RTOT / R1
B = VSUP . RTOT / R3
Finalmente, obtemos os limites dos níveis de tensão desejados:
Vc = A + B
Vc’ = A – B
SAIBA Você pode criar uma planilha eletrônica com as fórmulas para ajudar à calcular, utilizan-
MAIS do dos valores de VSUP, R1, R2 e R3, o valor para Vc e Vc’.
Embora a fórmula para calcular estes componentes não seja muito complexa, trata-se de um sistema
com várias soluções possíveis. Alguns softwares e calculadoras foram criados e disponibilizados com o
objetivo de auxiliar nestes cálculos, permitindo encontrar valores muito próximos ao desejável utilizando
resistores comerciais simples.
Observe que o circuito proposto ainda é bastante inflexível, pois a tensão de Vc é fixa, proporcionada
pelo divisor de tensão criado pelos dois resistores R1 e R2. Porém, se no lugar dos resistores ligarmos um
potenciômetro, ou seja, um resistor variável, teremos um circuito similar, porém com a tensão de referência
do comparador variando conforme a posição do cursor do potenciômetro.
2 ELETRÔNICA ANALÓGICA
77
Vin1 Vout
R1
Vin2
R2
Vinn Rf
Rn
Também conhecido como amplificador de diferença por alguns autores, é caracterizado pela disposição
do circuito em que se obtém a diferença entre os sinais multiplicado por um ganho que pode ser configurado.
Uma aplicação bastante interessante é na eliminação de ruídos em cabos de comunicação. Em sistemas
mais tradicionais de envio de informação, cabos blindados são utilizados para evitar que seu núcleo seja
submetido a ruídos eletromagnéticos e o sinal seja alterado. Estes cabos são relativamente caros, mas
impedem que a informação seja degradada ou alterada.
VOCÊ Um cabo blindado utiliza o princípio de “Gaiola de Faraday” para, por meio de sua ma-
SABIA? lha, eliminar a interferência de um campo elétrico externo em seu núcleo.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
78
Transdutor
Vs
Vt V interf Vs t
Sinal filtrado
e amplificado
t t t
Sinal do Sinais de Sinal recebido
transdutor interferências (transdutor + interferências)
(sinal enviado)
Figura 80 - Amplificador operacional como subtrator
Fonte: SENAI - RS
Na Figura 81 podemos ver uma configuração bastante comum para amplificador subtrator.
R3
Vin1
R4
Vout
Vin2
R1
R2
R1 = R3
R2 = R4
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.
No caso de osciladores astáveis, o tempo de transição entre os estados é configurável por meio de uma
malha de componentes externos (FIGURA 82).
Vin
Vo
+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
f = (R1 1,44
+ 2R2) C1
No circuito apresentado anteriormente, a presença opcional do diodo permite que a carga do capacitor
C1 ocorra apenas por R1 e que a descarga ocorra somente por R2. Dessa forma, t1 = 0,7 . R1 . C1 e t2 = 0.7 . R2C1.
O capacitor de 10nF conectado entre os pinos 1 e 5 é sugestão do fabricante.
Com o diodo, a relação entre t1 e t2 fica respectivamente vinculada a R1 e R2, facilitando a implementação
de circuitos que utilizam resistências variáveis para mudar a largura e o tempo do pulso. O uso de variações
na largura do pulso sem alterações na frequência é bastante útil no uso de PWM.
PWM: Pulse Wide Modulation, ou modulação por largura de pulso, consiste na geração de pulsos
(geralmente onda quadrada) com frequência fixa e largura variável, como ilustrado na Figura 84.
5V
tensão
tempo (ms)
5V
tensão
média
tempo (ms)
Figura 84 - Gráfico de PWM a 1kHz
Fonte: SENAI - RS
A taxa de trabalho (Duty Cycle) é definida proporcionalmente de 0% a 100%, dependendo do tempo em que
a saída permanece em nível alto em cada ciclo. Em circuitos simples usando o circuito integrado 555 sem o diodo,
como a duração do pulso (sinal em nível alto) é maior que a duração do sinal em nível baixo, a taxa de trabalho
sempre é igual ou superior a 50%. Para a obtenção de uma taxa menor que 50%, um diodo deve ser conectado
(como no exemplo anterior) em paralelo com R2, fazendo com que a duração do pulso dependa apenas de R1 e
C1. Desse modo, temos o que é representado na Figura 85.
Sem o diodo:
R1 +R2
DH =
R1 + 2R2
DH = 0.5 (mín)
R2 DH = 1 (máx)
DL =
R1+2R2
Com o diodo:
R1
DH =
R1+R2 DH = 0 (mín)
R2 DH = 1 (máx)
DL = DL DH
R1+R2
Figura 85 - Cálculo para obtenção da taxa de trabalho menor que 50%
Fonte: SENAI - RS
2 ELETRÔNICA ANALÓGICA
81
FIQUE O limite de saída de um CI 555 é de 10mA. Portanto, se for necessário amplifique este
ALERTA sinal conectando o pino 3 a um resistor em série com a base de um transistor, dimen-
sione o resistor para uma corrente não superior a 10mA usando a fórmula R = V / I.
SAIBA Consultando a folha de dados (datasheet) do circuito integrado 555. Pesquise também
MAIS sobre aplicações deste circuito integrado relacionadas a timers e frequência.
Trata-se de um oscilador em que a transição para um estado se dá por um evento externo (disparo) e
o retorno para o estado de origem ocorre pela passagem de um tempo determinado pelo capacitor C1 e
resistor R1 (FIGURA 86).
+Vcc
R1 4 8
Saída Disparo
Disparo 7 3 (V2)
6
C1 Saída + Vcc
(V3) 0V
2 5 10n t t t
1
2.6 FILTROS
Filtros são limitadores que permitem a passagem de alguns elementos desejáveis, retendo elementos
indesejáveis. Quando usamos um filtro para filtrar água, deixamos passar a água, procurando reter as
impurezas.
Na eletrônica, os filtros são basicamente aplicados aos sinais elétricos representados pelas grandezas de
tensão, corrente e frequência, permitindo que sinais sejam bloqueados ou separados.
Um Filtro passivo é um tipo de filtro construído com resistores, capacitores e indutores e, geralmente, são
elementos de baixo custo e com resultados satisfatórios.
Filtros passivos são aplicados em sistemas de áudio para separar os sinais de alta frequência (mais
agudos) dos de baixa frequência (mais graves). Filtros também são usados em linhas de alimentação, na
rede de corrente alternada, para evitar que ruídos elétricos interfiram no funcionamento dos equipamentos.
Um exemplo de filtro passivo é o utilizado em uma fonte de alimentação com transformador, onde
a corrente alternada é reduzida a um nível de tensão menor, e posteriormente retificada, porém ainda
com um ripple (ondulação). Esse ripple precisa ser filtrado, para que o resíduo da frequência de entrada
desapareça. É aplicado, então, um filtro capacitivo, reduzindo a ondulação significativamente (FIGURA 87).
DIODOS
RETIFICADORES
Corrente
V+
alternada
Corrente
contínua CAPACITOR
GND
V V V V
+ + + +
t t t t
- - - -
Nos sistemas de comunicação, com correntes e tensões menores, filtros passivos podem ser uma
solução simples e de baixo custo para eliminar sinais indesejados.
Como a maioria dos filtros são aplicados no domínio da frequência, nos ateremos aos seguintes tipos:
a) passa baixa - somente deixa passar frequências abaixo de um valor.
b) passa alta - somente deixa passar frequência acima de um valor.
c) passa faixa- somente deixa passar frequências em uma determinada faixa.
d) rejeita faixa - bloqueia a passagem de frequências específicas.
É importante observar que, nos filtros supracitados, o funcionamento real não é igual ao funcionamento
ideal, pois os filtros atenuam as frequências indesejadas, mas não as eliminam por completo.
2 ELETRÔNICA ANALÓGICA
83
70,7%
intensidade
sinal
indesejado
do sinal
sinal desejado
frequência
A eficiência do filtro pode variar devido a seus aspectos construtivos. Os filtros passivos tendem a
ser menos eficientes que os filtros ativos, mas seu custo e simplicidade justifica a aplicação na maioria
das situações.
Melhores respostas em filtros passivos também podem ser obtidas com a realização de combinações
entre mais de um filtro simples. Quando dois filtros são combinados, obtemos uma curva mais íngreme
após o valor de corte. Chamamos a combinação destes dois filtros de filtro de segunda ordem. Aplicando
um terceiro filtro, a curva apresenta uma queda ainda mais acentuada e o chamamos de filtro de terceira
ordem. No entanto, a cada “camada” adicionada ao filtro há uma perda considerável na intensidade do sinal
para filtros passivos. Cabe a quem projeta o circuito dimensionar o filtro mais adequado para a aplicação.
Vamos, agora, estudar a aplicação de um filtro utilizado para eliminar ruídos de alta frequência em um
sensor digital de velocidade. Embora haja mais de uma configuração de circuito possível para um filtro
passivo, nos ateremos a configurações mais comuns para este primeiro nível de estudo.
Segue a implementação de um filtro Passa Baixa (FIGURA 89) de primeira ordem, utilizado para eliminar
ruídos de alta frequência em um sinal de um sensor que conta pulsos gerados pela polia de um motor. A
frequência máxima destes pulsos é de 200 Hz, e este circuito foi dimensionado para eliminar sinais com
frequências superiores a esta.
R
1
Vout
Frequência de corte =
Vin
C 2. π . R . C
200 = 1 / (2 . 3,1416 . R . C)
R . C = 1 / (2 . 3,1416 . 200)
R . C = 0,000796
Então, para obter a frequência de corte de 200 Hz, o resistor é dado por 0,000796 / C.
Por exemplo, com um capacitor de 33uF, temos um resistor de 0,000796 / 0,000033F = 24,12 W. Usando
valor comercial de 22 W, a frequência de corte pode ser recalculada para o valor pouco superior a 219 Hz. Acima
desta frequência, os sinais serão atenuados, e quanto maior a frequência do sinal, mais ele será atenuado.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
84
Em situações de sinais de alta velocidade, em frequências mais elevadas, podemos ter problemas devido a
ruídos gerados principalmente pela rede de corrente alternada (no Brasil, 60Hz), que pode causar alterações nas
informações enviadas.
Nestas situações, a aplicação de filtros Passa Alta permite eliminar ruídos abaixo de uma frequência
específica (FIGURA 90).
Vin Vout
Neste tipo de ligação, os sinais de baixa frequência (abaixo da frequência de corte: fc) são atenuados. A
frequência de corte é definida pela fórmula a seguir.
Fc = 1 / (2 . π . R . C)
Para situações em que é necessário filtrar sinais acima e abaixo de uma determinada frequência, pode
ser implementado um circuito de passa-faixa, que atenua sinais acima e abaixo de um determinado nível
de frequência (FIGURA 91).
Vin C L Vout
Neste tipo de filtro não buscamos a frequência de corte, e, sim, a frequência de ressonância, onde o sinal
não será atenuado. Ela pode ser calculada segundo a fórmula a seguir.
1
fR =
2 . π . LC
Onde L é o valor do indutor, em henry.
Em um filtro rejeita-faixa, o objetivo é atenuar o sinal justamente em uma frequência específica, deixando
passar sinais acima e abaixo da faixa definida (FIGURA 92).
Vin C Vout
L
R
Devemos observar que os filtros passivos acabam por atenuar o sinal, não só do sinal que desejamos
filtrar, mas também do sinal que deve passar, necessitando de uma etapa de amplificação em casos de
sinais mais fracos. Outro fator importante é a condição de atenuação para frequências próximas à zona de
corte, que ainda permite uma significativa passagem de sinais em casos de filtros de primeira ordem.
É sugere, portanto, a implementação destes filtros somente em situações menos críticas, com o intuito
de melhorar o sinal e reduzir interferências.
Em situações mais críticas, em filtros aplicados a sinais de baixa corrente e tensão, é recomendado o uso
de amplificadores operacionais para a construção dos filtros, a que chamamos de filtros ativos.
Seguimos agora com configurações mais utilizadas de amplificadores operacionais para filtros de frequência.
Para os filtros que seguem, o ganho pode ser configurado pela fórmula:
Ganho = 1 + Rf / Rg
No caso do filtro passa baixa, serão atenuados sinais acima da frequência de corte (FIGURA 93).
Rg Rf
V+
R1 Amp- op Saída
+ (Vo)
V1 C1
V-
No caso do filtro passa alta, serão atenuados sinais abaixo da frequência de corte (FIGURA 94).
Rg Rf
C1 Amp- op (Vo)
V1 +
R1
Por meio da ligação de dois filtros, sendo um passa alta e outro passa baixa, é possível criar um filtro
passa-banda (FIGURA 95).
Rg Rf
Rg Rf
R2 Amp- op (Vo)
C1 Amp- op +
V1 +
C2
R1
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.
**********
**********
*** ***
*** ***
Quase todos os equipamentos eletrônicos que utilizamos, e que são conectados a uma tomada
convencional possuem fontes de alimentação. Nos eletrodomésticos e dispositivos eletrônicos de uso
residencial, a fonte é responsável por transformar a corrente alternada da tomada em corrente contínua,
reduzindo também o nível de tensão de entrada, que geralmente é 110V ou 220V, para tensões mais
baixas, como 3V, 5V, 12V, 24V, variando conforme características e aplicações dos circuitos alimentados.
2 ELETRÔNICA ANALÓGICA
87
Algumas fontes de alimentação são construídas de forma a funcionar com um nível de tensão de entrada
fixa. Outras possuem uma chave seletora em que o usuário pode definir qual o nível de tensão de entrada
(110V / 220V). Fontes mais recentes podem apresentar um recurso de ajuste automático em relação à
tensão de entrada, funcionando dentro de uma faixa específica, por exemplo de 100V a 250V. Em ambos os
casos, é importante observar a tensão de entrada antes de conectar a fonte à rede elétrica.
FIQUE Alimentar uma fonte com tensão superior à indicada pode causar superaquecimento,
ALERTA causando danos permanentes ao equipamento e aos circuitos por ela alimentados.
Algumas fontes podem ser construídas a fim de fornecer níveis de tensão diferentes, geralmente
utilizados para alimentar partes diferentes do circuito. Por exemplo, em um microcomputador são comuns
fontes de alimentação com entrada 110V ou 220V C.A. e saídas de alimentação de 5V, -5V, 12V e -12V C.C.,
podendo ainda haver outros níveis de tensão, dependendo do equipamento.
Em certas aplicações existe ainda a necessidade de um ajuste manual da tensão de saída. Neste caso,
utilizamos fontes ajustáveis em que, por meio de uma chave seletora ou potenciômetro, podemos definir
a tensão desejada na saída.
Fontes estabilizadas são as fontes que possuem a saída de tensão estabilizada por um circuito de
controle em malha fechada, impedindo que a tensão na saída fique acima do valor limite. Em fontes não
estabilizadas, a tensão da saída pode variar conforme a carga, influenciada pelos filtros nela utilizados.
Fontes não estabilizadas, quando não submetidas a carga, tendem a uma tensão de saída próxima ao
valor de pico (PMPO). Quando uma carga é submetida obtemos a tensão média (RMS), geralmente sendo
esta a tensão para a qual a fonte foi dimensionada (FIGURA 99).
PMPO
V+ RMS
t(ms)
Figura 99 - Gráfico da tensão após retificação, sem aplicação de filtros
Fonte: SENAI - RS
O circuito estabilizador evita que a tensão de saída varie conforme a carga, mantendo sempre o mesmo
nível de tensão na saída. Para alguns tipos de circuitos, este recurso é muito importante, pois o efeito da
tensão variando conforme a carga pode fazer com que o circuito alimentado atue de forma indesejada.
Uma fonte de alimentação é composta das seguintes partes:
a) circuito de proteção de entrada, interruptor e seletor de tensão - caracterizado por fusíveis, chaves
de alimentação e circuitos de seleção de tensão para sistemas não automáticos. Algumas fontes utilizam
circuitos para proteção contra sobrecorrente (fusíveis) e contra sobretensão (varistores);
b) circuito de transformação - responsável pela diminuição ou elevação da tensão. Em algumas fontes, é
constituído de um transformador, e em outros utiliza semicondutores específicos, como tiristores e transistores;
c) circuito de retificação - responsável por transformar a corrente alternada em corrente contínua por
meio de circuitos com semicondutores (diodos), como já estudado anteriormente;
d) filtros - responsáveis por eliminar ou atenuar as oscilações no nível de tensão após a retificação;
e) regulador de tensão - responsável por estabilizar o nível de tensão de saída.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
88
Em algumas fontes, podem ainda existir circuitos de proteção de sobrecorrente na saída, evitando que o
circuito seja alimentado se a corrente máxima for excedida.
FIQUE Na maioria das fontes lineares devemos observar a chave seletora de tensão de en-
ALERTA trada. Uso da fonte em tensão inadequada pode causar danos permanentes.
Caracterizada por uma fonte que possui saída de tensão positiva e negativa de características similares
(FIGURA 101).
+9V
fonte
0V
simética
-9V
Este tipo de fonte geralmente é aplicado em circuitos que precisam de níveis de tensão positivas e
negativas, como amplificadores operacionais e alguns tipos de sensores de temperatura.
2 ELETRÔNICA ANALÓGICA
89
A seguir, na Figura 102, é apresentado o esquema de uma fonte simétrica, que utiliza reguladores de
tensão 7812 e 7912.
Regulador
positivo
7812
SELETOR DE
TENSÃO
Ponte retificadora
1 3
CHAVE T 12V (4 diodos) 1 3 2
220V
Saída 12V
Entrada
7812
Gnd
ON/OFF
center ~ 100nF + 2
+ 220uF 0,25W +12V
120V
tape
- + 50V 16V 470 ohms
LED 0V Regulador
~ 100nF + + 220uF 0,25W
negativo
1 3
2
Gnd
Transformador
Saída -12V
Entrada
110 / 220v <--> 12+12V, 1A
Utilizando alguns reguladores ajustáveis, como o LM317 / LM337, podemos criar uma fonte simétrica
com saída de tensão ajustável por potenciômetros. Este tipo de fonte ajustável pode ser bastante útil em
experimentos, e é uma sugestão de montagem de uma fonte de bancada bastante versátil (FIGURA 103).
1N4004
LM317
3 2 1N4004
I O
A + VE
123 100n 220R OUT
1
1N4004 X 4
2k
+ 10uF 1k
2200uF
+ 35V
VAC 1k5 LED
(CT)
OV
+ 1k5
VAC LED
2200uF + 10uF
35V
2k 1k
220R
1 - VE
2 A OUT
3
I O
1N4004
100n LM337
1N4004
SAIBA Pesquise sobre fontes simétricas utilizando os reguladores de tensão 78XX e 79XX
MAIS (7805, 7905, 7812, 7912 etc.).
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
90
As fontes chaveadas são largamente utilizadas devido a seu tamanho reduzido, menor custo de
fabricação e melhor eficiência se comparadas às antigas e tradicionais fontes com transformadores.
Uma fonte chaveada completa também utiliza um transformador para elevar ou reduzir a tensão, porém
com menor tamanho. Como isso é possível?
Um transformador é um equipamento eletromecânico que apresenta uma resposta de eficiência relativa
à frequência da corrente alternada aplicada, porém a maior parte dos pequenos transformadores só obtêm
um rendimento satisfatório se operarem em frequências elevadas, próximas dos 200kHz, bem superiores à
frequência de 60Hz da rede de corrente alternada convencional.
O circuito de retificação, em fontes chaveadas, realiza a conversão da corrente alternada para corrente
contínua antes da elevação ou da redução da tensão. Isso não é muito difícil neste tipo de circuito, pois os
semicondutores (diodos) utilizados suportam bem níveis de tensão da rede C.A (FIGURA 104).
Saída do Saída do Saída do
Entrada
retificador filtro chaveador
V V V V
t t t t
110V CA 110V CA Onda quadrada
retificada retificada pulsante com alta
110V CA e filtrada tensão e alta
frequência
t t t t
12V CA 12V CC 10V CC
alta frequência filtrado regulado
12V CA
e retificada
Figura 104 - Fases de uma fonte chaveada
alta frequência
Fonte: SENAI - RS
Após a retificação, um transistor gera pulsos rápidos, em uma frequência geralmente entre 50 e 200 mil
ciclos por segundo, gerando uma onda quadrada com tensão máxima próxima à tensão da rede elétrica de
entrada. Até este momento, não houve reduções ou aumentos nos níveis de tensão.
Esta saída “pulsada” passa, então, por um transformador para modificar a amplitude (tensão) geralmente
para níveis inferiores da tensão de entrada, obtendo-se, ainda, uma corrente alternada em alta frequência,
que precisa ser novamente retificada e filtrada.
Devido à alta frequência, os capacitores usados como filtro desta segunda parte do circuito podem ser
bem menores do que em uma fonte convencional, reduzindo muito o tamanho do circuito, mesmo para
correntes bem mais elevadas.
Fontes chaveadas apresentam um menor aquecimento e melhor eficiência e, devido ao reduzido
tamanho dos componentes (transformador e capacitores), possuem tamanho bastante reduzido. Esse tipo
de fonte é o mais empregado em equipamentos modernos e já vem sendo largamente empregada em
produtos de automação industrial e mecatrônica.
2 ELETRÔNICA ANALÓGICA
91
Como desvantagem deste tipo de fonte, temos a geração de ruído, que em fontes menos completas pode
ser propagado pela rede de corrente alternada ou, ainda, pode ser propagado na forma de rádiofrequência,
gerando interferência em sistemas de telecomunicações.
FIQUE Ao interligar eletricamente sistemas alimentados por fontes de alimentação distintas, reali-
ALERTA ze primeiro sua equipotencialização, interligando circuitos de terra e de referência.
Sugestão para experimento: usando um multímetro e duas fontes de alimentação distintas, meça a
tensão de saída de cada fonte, e posteriormente meça a tensão entre a referência de ambas as fontes.
Tome cuidado para não tocar na fonte de alimentação e seus terminais sem o uso de EPI adequado, ou
com a rede energizada.
RECAPITULANDO
Neste capítulo, abordamos alguns conceitos básicos da Eletrônica Analógica para automação industrial
e mecatrônica, com um enfoque nos principais componentes semicondutores e componentes básicos no
tratamento de sinais analógicos. Vimos que os diodos são componentes baseados em semicondutores,
em que uma junção de dois tipos de material semicondutor interfere na passagem de corrente elétrica
de forma diferente, dependendo de seu sentido. Vimos, também, que eles podem ser apresentados na
forma de diodos retificadores, zener, emisores de luz, que são os LEDs e fotodiodos, entre outros.
É importante salientar que os transistores e os tiristores são utilizados para amplificar sinais, permitindo
o acionamento de cargas maiores.
Vimos, ainda, que os amplificadores operacionais são componentes que, de forma genérica, podem
amplificar, comparar, somar, multiplicar ou subtrair sinais analógicos. Eles podem ser utilizados para
compor filtros ativos. Filtros são circuitos responsáveis pela eliminação de sinais indesejáveis.
Os circuitos osciladores são circuitos que possuem uma saída que varia de um estado para outro
periodicamente, o que pode ocorrer devido a um estímulo externo.
As fontes de alimentação são dispositivos que convertem corrente alternada em corrente contínua,
geralmente reduzindo o nível de tensão da rede e oferecendo tensão estabilizada.
Na automação industrial e mecatrônica, esses componentes estudados podem ser utilizados
individualmente ou de forma combinada, condicionando e amplificando sinais elétricos para a produção
de um efeito desejado.
SENSORES
Enquanto o ouvido humano não pode perceber sons acima dos 20kHz,
VOCÊ o morcego, que possui audição bastante apurada, é capaz de ouvir
SABIA? sons com frequência de até 160kHz.
Alguns seres vivos evoluíram com capacidades sensitivas, como visão, tato, olfato, audição.
Alguns répteis percebem o calor e alguns pássaros conseguem perceber cores que são invisíveis
para o ser humano. Grande parte dos animais podem perceber frequências sonoras que o ser
humano não percebe. A comparação anterior deixa claro que a diferença na percepção do ser
humano e dos outros seres vivos depende da capacidade e do alcance de seus sensores e do
processamento da informação coletada.
Existem diferentes tipos de sensores que funcionam por meio de alguns princípios físicos,
gerando informações importantes para os sistemas de controle automatizados.
Para entender mais sobre sensores de forma bastante prática, vamos imaginar um
reservatório de água (FIGURA 105).
Variação de resistência
Nível
Com um sensor de ultrassom posicionado na parte superior do reservatório é possível medir o nível do
reservatório pelo tempo em que uma onda sonora de alta frequência demora para bater na superfície da
água e retornar ao sensor. Graças à velocidade da onda sonora e do tempo que demorou para retornar ao
sensor, é possível medir a distância em que a água encontra-se da parte superior (FIGURA 107).
Variação de tempo
entre emitir e receber
o reflexo sonoro
Nível
Poderia ser medido através do ângulo de reflexão ou de refração da luz no líquido, obtendo-se, desta
forma, a altura da lâmina d´água (FIGURA 108).
Variação de
Nível
destino de um feixe
de laser (luz) devido
a refração ar - água
SENSOR ÓTICO
Poderia ainda ser utilizado um sensor de nível, tipo magnético, que pode acionar chaves sensíveis a
campos magnéticos através de um ímã conectado em um dispositivo flutuador (FIGURA 109).
flutuador,
revelando o nível
Um sensor tipo célula de carga poderia também medir a deformação dos pontos de fixação do
tanque, informando o peso e estimando o volume e o nível de água (FIGURA 110).
Sensores de força
medem o peso
Nível
do recipiente
Células de carga
Terminais condutivos poderiam ser mergulhados em alturas diferentes, informando o nível de água
através da medição de sua condutividade (FIGURA 111).
Fluído levemente
condutivo muda
Nível
resistência entre
os terminais
Como você viu, são inúmeras as estratégias de medição e os sensores que podem ser utilizados para a
medição do nível de um tanque.
A escolha do sensor para realizar uma determinada medição deve levar em consideração alguns fatores: o
tipo de grandeza a ser medida, o local da medição e algumas informações sobre o sensor, tais como: robustez,
tempo de resposta, tipo de informação gerada, sensibilidade, resolução, precisão e custo, dentre outros.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
96
Para escolher o melhor sensor a ser utilizado em uma medição, veremos neste capítulo algumas
características relevantes.
Um sensor é definido através do tipo da informação gerada, podendo ser um sensor digital ou analógico.
Quando um sensor é utilizado para a detecção de um estado específico, gerando uma informação contida
em um número finito e limitado de possibilidades, o chamamos de sensor digital.
Exemplo: Um sensor utilizado para detectar a presença ou a ausência de determinado produto, para
detectar se uma determinada temperatura foi ou não atingida, para detectar se há ou não luz suficiente em
um local, detectar se há ou não pressão suficiente em uma tubulação.
Note que a resposta destes sensores pode ser interpretada simplesmente como verdadeiro ou falso.
Nestes casos, são sensores digitais com sinal binário, ou seja, podem representar dois estados distintos,
representando os valores lógicos verdadeiro ou falso.
Os sensores analógicos são capazes de quantificar uma determinada grandeza medida, gerando uma
informação que pode variar em infinitas possibilidades em um intervalo específico.
Exemplo: Detectar a variação de corrente de um circuito, detectar a proximidade de um objeto, detectar
o valor de pressão. No caso de um sensor de temperatura analógico, além de saber se uma temperatura foi
ou não atingida, é possível quantificar a temperatura atual.
Para efeito de comparação, um sensor digital utilizado para a medição de nível em um recipiente com água
gera seu sinal através da variação da tensão, ou seja, tensão em nível alto ou em nível baixo. Desta forma, é
possível saber se o sensor foi ou não atingido pelo líquido. Já um sensor analógico gera um sinal proporcional
ao nível de água, variando gradualmente entre os níveis de tensão baixo e alto (FIGURA 112).
Sensor digital Sensor analógico
+
+
Nível mínimo Nível de água (mm)
Sensores digitais ou binários podem gerar sinais de ligado ou desligado, informando se um evento está
ou não ocorrendo. De forma geral, os sensores digitais são de construção mais simples, sendo de aplicação
mais adequada e direta em circuitos lógicos digitais. Os sensores analógicos, no entanto, são geralmente mais
complexos, pois geram uma informação que varia conforme a grandeza que está sendo medida, exigindo
um processamento mais complexo nos circuitos de controle, porém, são geralmente mais sensíveis às
interferências externas.
3 SENSORES
97
Após detectar a grandeza monitorada, o sensor deve enviar esta informação ao circuito de controle
em que está conectado. No caso dos sensores digitais convencionais, podemos dividir o tipo de saída em
sensores de contato normalmente aberto, sensores de contato normalmente fechado, sensores NPN (sinal
negativo) e sensores PNP (sinal positivo).
Nos sensores de contato normalmente aberto existem ao menos dois terminais que atuam como uma
chave que fecha somente quando o evento a ser detectado estiver ocorrendo. Veja a Figura 113:
SENSOR MAGNÉTICO
“ REED SWITCH ”
CIRCUITO DE CONTROLE
Figura 113 - Chave de contato normalmente aberto com princípio de acionamento magnético
Fonte: SENAI - RS
Perceba, na figura anterior, que o sensor (reed switch) funciona como uma chave normalmente aberta,
e seu contato é fechado quando o objeto a ser detectado for gerador de um campo magnético. Uma vez
aproximado, este campo gera a atração dos contatos, fechando o circuito.
Nos sensores de contato normalmente fechado, o princípio é similar, com a diferença que o contato
permanece fechado até que ocorra o evento a ser detectado. Como exemplo podemos citar uma chave de
emergência, que geralmente é caracterizada por um contato normalmente fechado (FIGURA 114).
VOCÊ Botões ou chaves de contato utilizados para detectar a vontade do usuário são sensores e po-
dem ser de contato normalmente aberto (NA) ou normalmente fechado (NF), dependendo de
SABIA? sua construção mecânica.
A exemplo de um botão ou chave de final de curso, alguns sensores podem produzir o efeito (contato
abrindo e fechando) por meio de uma ação mecânica simples, sem a necessidade de amplificação,
processamento interno ou filtragens de sinais, não necessitando de alimentação para funcionar. Outros
utilizam-se de um filtro e circuitos eletrônicos em seu interior, precisando de alimentação para seu
funcionamento. Neste caso, deve ser observado o nível de tensão, a corrente e a correta polarização do
sensor para evitar danos internos.
Nem todos os sensores são baseados em contatos mecânicos, sendo que alguns possuem seu
acionamento por meio de semicondutores, geralmente transistores bipolares. A exemplo dos transistores
bipolar e junção (negativa/positiva), os sensores com saídas deste tipo possuem propriedades diferentes,
podendo ter comportamento NPN (sinal negativo) ou PNP (sinal positivo).
Em ambos os casos, estes sensores são alimentados com tensão por dois terminais. Para evitar danos
nos sensores, é preciso garantir que o nível de tensão esteja adequado, dentro de uma faixa mínima e
máxima de tensão.
Os sensores industriais geralmente são alimentados por uma fonte 24V de corrente contínua, com o
terminal positivo por um condutor com capa isolante da cor marrom, e com terminal negativo (0V ou GND)
por um condutor com capa isolante de cor azul. No caso de sensores de contato, devem ainda existir mais
dois terminais, geralmente de cores preta e branca, ligados em série com o dispositivo de contato NA ou
NF. Já em sensores PNP ou NPN o sinal é fornecido por um terminal que possui geralmente a cor preta.
FIQUE Embora existam normas para a definição de cores para os condutores dos sensores in-
dustriais, muitos sensores podem não segui-las, sendo interessante observar a docu-
ALERTA mentação do componente antes de energizá-lo para evitar danos permanentes nele.
Em sensores PNP, quando ocorre a detecção, o sensor fornece, pelo terminal de retorno, uma tensão em
nível alto (geralmente 24V), e quando a detecção é interrompida, o sensor geralmente entra no estado de
“alta impedância”, funcionando como uma chave aberta.
Em sensores NPN, quando ocorre a detecção, o sensor fornece uma tensão em nível baixo (GND), e
quando a detecção é interrompida, o sensor entra em estado de “alta impedância” (FIGURA 115).
3 SENSORES
99
carga carga
sem detecção
sinal -
sinal alta impedância com detecção
SENSOR NPN
carga carga
sem detecção
sinal +
sinal alta impedância com detecção
SENSOR PNP
Figura 115 - Sensor NPN e PNP, forma de ligação e tipo de sinal de retorno
Fonte: SENAI - RS
Observe que, quando o sensor não está no modo detecção, o fio de retorno (preto) entra em modo
de alta impedância, dificultando o fluxo da corrente. Alta impedância, neste caso, significa um sinal não
definido, comportando-se como uma chave aberta, sem corrente significativa. Observe que, quando não
estiver em modo detecção, o fio do sensor não pode ser usado como alimentação para um determinado
circuito, pois não há um sinal definido neste estado. Somente quando o sensor passa a detectar algo este
condutor passa a ter uma tensão positiva (para sensores PNP) ou negativa (para sensores NPN).
Caso haja a necessidade de definir o nível de tensão de um sensor, use um resistor de PULL-UP
para elevar a tensão (para sensores NPN) ou PULL-DOWN para reduzi-la (FIGURA 116).
carga carga
R1 R1
sem detecção
sinal + sinal -
com detecção
SENSOR NPN
carga carga
R1 R1
sem detecção
sinal - sinal +
com detecção
SENSOR PNP
Figura 116 - Sensores NPN e PNP com resistor de definição de sinal para alta impedância
Fonte: SENAI - RS
Na imagem acima foi instalado um resistor de 10.000 Ω como PULL-UP (NPN) e PULL-DOWN (PNP)
para definir o nível de tensão do sinal de saída quando o sensor não estiver em estado de detecção.
Alguns sensores possuem estes resistores já instalados em seu circuito. Verifique isso na documentação
(datasheet). Em alguns sistemas de controle padronizados, como CPs e controladores dedicados, existem
opções, através de microchaves ou configurações por software, para definir se o sensor conectado a uma
entrada digital é PNP ou NPN. De qualquer forma, para a maior parte das aplicações que seguem padrões
industriais este resistor é desnecessário.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
100
Caso o objetivo seja ligar o sensor industrial a um sistema de controle de tensão inferior a 24V (por
exemplo, a um microcontrolador de 5V), verifique a possibilidade de diminuir a tensão do sinal gerado
através de um divisor de tensão, ou ainda, de forma mais segura, utilizando optoacopladores.
Na Figura117, o esquema de ligação de sensores PNP ou NPN em um microcontrolador utilizando-
se optoacopladores. Note que a fonte de alimentação do microcontrolador é independente da fonte de
alimentação do sensor. Se no lugar do acoplamento fosse utilizada uma ligação física, haveria a necessidade
de equalizar as fontes (interligar os sinais de GND) e reduzir o sinal de tensão do sensor para um nível
aceitável, para não danificar o microcontrolador (provavelmente 5V ou 3V) (FIGURA 117 e FIGURA 118).
2K2 10K
uC
SENSOR
OPTOACOPLADOR
10K
uC
SENSOR 2K2
OPTOACOPLADOR
FIQUE Acoplamentos ópticos ou a relé são uma forma de oferecer segurança aos equipa-
mentos na transmissão de sinais em linhas automatizadas muito abrangentes, que
ALERTA integram sistemas com várias fontes de alimentação.
RELÉ
BOBINA
24V
SINAL (RETORNO)
SINAL
V + (24V)
SISTEMA A SISTEMA B
GND
SINAL 5V
ACOPLAMENTO A RELÉ
Figura 118 - Dispositivos de acoplamento eletromecânicos a relé
Fonte: SENAI - RS
Além de saídas digitais por níveis de tensão definidos, contato NA, NF, NPN ou PNP, alguns sensores
digitais podem produzir informações mais complexas pelas saídas de dados. Isso ocorre em sensores
industriais preparados para se interligar a um sistema de controle por uma rede de dados digitais.
3 SENSORES
101
Neste caso, o sensor envia os sinais a um dispositivo de controle (geralmente um CP) por meio de uma rede,
podendo compartilhar o meio físico de comunicação, ou enviando a informação por radiofrequência (wireless).
FIQUE A rede AS-i é um padrão de rede industrial bastante versátil, pois permite que, em
ALERTA seu cabeamento, um único fio contendo um par metálico transporte sinal de comu-
nicação e alimentação 24V entre os diversos sensores e atuadores do sistema.
Sensores deste tipo ainda não são muito comuns devido ao custo e à complexidade de uso (FIGURA 119).
Figura 119 - Sistema de sinaleiro e botoeiras cuja alimentação e comunicação é realizada por um único cabo de dois fios condutores, usando comunicação digital
serial em rede padrão AS-I
Fonte: SENAI - RS
Sensores analógicos são caracterizados por gerar uma informação que varia uniformemente em uma
faixa específica, conforme a grandeza medida, podendo ser temperatura, pressão, vazão, luminosidade,
distância, posição, velocidade, força, umidade, aceleração etc.
Em sensores analógicos industriais, estas grandezas são comumente traduzidas para variações de
tensão ou corrente, podendo haver ainda sensores cuja grandeza medida influencia na variação de
frequência ou resistência.
Como padrão mais comum para sensores industriais analógicos, temos os seguintes tipos de saída:
a) tensão: 0 a 10 V - embora outros níveis de tensão também possam ser utilizados, sensores analógicos
com saída de tensão de 0 a 10 V são bastante fáceis de serem implementados e conectados a sistemas de
controle que utilizam CP;
b) corrente: 0 mA a 20 mA - nesse tipo de sensor, a grandeza medida é convertida em uma variação de
corrente de 0 a 20 miliampèr. Devido à condição de baixa impedância utilizada neste tipo de circuito, o
sinal apresenta uma boa intensidade em relação a sinais analógicos de tensão. Como desvantagem, existe
a possibilidade de um sinal de 0 (zero) mA lido ser um rompimento no condutor e não um sinal gerado
pelo sensor;
c) corrente: 4mA a 20mA - esse tipo de transmissão de dados é bastante comum em aplicações
industriais com sensores analógicos e apresenta vantagens quanto à boa intensidade do sinal, além
da possibilidade de detecção de rompimento (quando a corrente fica nula) ou curto (corrente infinita),
permitindo detecção da anomalia por parte da malha de controle (FIGURA 120).
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
102
SENSOR ANALÓGICO
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
É importante ressaltar que um sensor analógico pode gerar uma resposta não linear em relação à
grandeza mensurada. Uma vez que este sensor converte a grandeza medida, por exemplo a temperatura,
em uma variação de tensão ou de corrente de forma linear, o processamento é facilitado, pois os cálculos
para conversão são realizados por uma equação linear.
No entanto, muitos sensores apresentam curvas que são exponenciais, logarítmicas, e em alguns casos
curvas mais complexas, que precisam de um processamento matemático mais complexo para que a malha
de controle converta ou interprete o sinal adequadamente.
Portanto, é importante conhecer a curva do sensor analógico e saber interpretar e resolver polinômios
de forma gráfica no momento de interligar um sensor a um dispositivo de controle.
Observe que, além dos padrões de 0 a 10V, 0 a 20mA e 4 a 20mA, outros padrões de variação de tensão
e corrente também podem ser utilizados em sistemas de controle específicos, embora não sejam muito
empregados como padrão industrial, como 0 a 5V, 0 a +/-5V, -10 a 10V, 0 a +/-10V.
Assim como os sensores industriais digitais, um sensor analógico pode ser construído de forma a
gerar um sinal complexo de dados, enviando-os de forma digital por uma rede de dados a um sistema de
controle, podendo ser um computador, sistema microcontrolado ou PLC.
A Figura 121 de um sensor eletrônico de temperatura, que internamente converte a temperatura –
analógica – em uma informação digital binária e a envia serialmente através de uma única saída pulsada. Este
tipo de sensor depende do processamento da informação recebida pelo sistema de controle, mas podemos
afirmar que seu tipo de informação analisado é analógico, mas a saída de dados tem formato digital.
3 SENSORES
103
ºC
MAXIM
TENSÃO
18B20
1 2 3
0 0 1 0 1 0 0
GND
DQ
VDD
TEMPO
SAIBA Pesquise sobre as folhas de dados (datasheets) dos sensores DS18B20 e LM35, desco-
brindo qual a vantagem e desvantagem dos modelos citados em relação ao formato da
MAIS saída gerada pelo sensor.
Todo sensor utiliza-se de um princípio físico para realizar a detecção (FIGURA 122).
CALOR
PRINCÍPIO FÍSICO
LUZ
N
L SAÍDA DE SINAL
SOM POSIÇÃO
0
S
0
01
90 10
10 90
001mm
VELOCIDADE
80 20
20 80
PRINCÍPIOS MECÂNICOS
30 70
70 1 0 9 30
2 8
3 7
4 5 6
40 60
60 50
40
50
FORÇA
Um mesmo princípio físico pode ser utilizado para medir grandezas diferentes. Por exemplo, a temperatura
de um forno pode ser medida por um sensor que utiliza o princípio físico de calor, como um termopar (que
estudaremos em breve), ou pode ser medida pelo princípio físico da luz, por um sensor ótico que mede a radiação
infravermelha gerada pelo forno, ou ainda por um sensor que mede a deformação física (princípio mecânico) de
um metal dilatado pela temperatura do forno.
Embora não possamos citar aqui todos os sensores e seus respectivos princípios físicos, abordaremos
os mais importantes, que são:
a) eletro-mecânico - quando um componente mecânico aciona um contato elétrico. Os sensores que
funcionam a partir deste princípio são simples, baratos e muito utilizados, mas possuem limitações quanto
à durabilidade, devido ao desgaste, e quanto à força necessária para o acionamento, além de precisarem
do contato físico para ocorrer;
b) ópticos - utilizam-se de luz visível ou invisível (infravermelho ou ultravioleta);
c) acústico - quando um som ou vibração pode gerar um acionamento elétrico. Os sensores que
funcionam a partir deste princípio utilizam o som ou as vibrações no ar para obter a informação desejada.
Estes sensores são mais utilizados do que você imagina, principalmente na área automotiva;
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
104
Os sensores eletromecânicos (FIGURA 123) são também conhecidos como chaves fim de curso, são
chaves de contato acionáveis através de um pino ou alavanca, que são aplicadas em áreas de movimento
do equipamento com o intuito de, em um determinado momento ou evento, haver o acionamento desta
alavanca ou pino, realizando a comutação do contato.
Apresentam baixo custo, porém exigem que uma força física seja aplicada para que haja a comutação do contato
mecânico, além de necessitar do contato físico com uma superfície a ser detectada. Outro aspecto negativo é a
presença de partes móveis, permitindo a entrada de impurezas nos mecanismos internos de comutação.
Como ponto forte, é um sensor de baixo custo e simples aplicação.
3 SENSORES
105
São sensores cujo princípio físico é a radiação eletromagnética próxima à faixa da luz visível. São
constituídos de uma fonte emissora e uma receptora, que podem estar montadas em um único
encapsulamento (FIGURA 124).
SENSOR ÓPTICO
REFLEXIVO
luz emitida
luz refletida
EMISSOR
RECEPTOR
A luz pode ser emitida pelo próprio sensor e percebida através de um circuito receptor, geralmente
composto de fototransistores ou fotodiodos. Quando usado como sensor de presença, o sensor óptico
pode revelar a presença de um objeto pela detecção da luz refletida (objeto reflete a luz emitida no receptor
do sensor) ou, ainda, pela interrupção da reflexão causada por um objeto opaco interrompendo a reflexão
causada por um espelho refletor especial.
Alguns sensores ópticos podem mensurar a quantidade ou o ângulo da luz refletida, podendo não só
identificar a presença de um objeto, como determinar a distância da superfície refletora.
VOCÊ Nem todos os sensores ópticos trabalham com luz visível, sendo que grande
parte utiliza comprimentos de onda não-visíveis (ultravioleta e infravermelho) por
SABIA? questões de interferência externa.
FIQUE Alguns sensores ópticos emitem uma radiação laser muito forte, e não é recomendável olhar
ALERTA diretamente para a fonte emissora de luz, pois feixes de laser podem causar danos ao olho.
Quanto ao emissor, os sensores ópticos geralmente empregam diodos emissores de luz (LEDs) ou, em
alguns casos, diodos laser para facilitar a focalização do alvo a ser detectado. Como a luz está presente em
quase todos os ambientes, são necessárias algumas estratégias que diferenciem o sinal luminoso gerado
dos sinais que podem interferir na leitura.
Na maioria dos casos, os sensores ópticos geram luz de forma pulsada, em alta frequência, permitindo
que o dispositivo emissor de luz gere um sinal mais forte (com corrente maior por um curto período em cada
pulso), e em uma frequência que possa ser identificada posteriormente pelo circuito de leitura. Conjuntos
ópticos compostos de refletores e principalmente lentes especiais permitem concentrar ou difundir o feixe
gerado, permitindo definir focos diferentes para diversos tipos de sensores, que podem ser utilizados para
detectar objetos mais distantes ou para detectar objetos mais próximos com melhor eficiência.
Para o receptor, além do conjunto óptico, podem ser utilizados filtros em forma de lentes que limitam as cores
lidas pelo receptor, que é composto de um ou mais componentes fotosensíveis (fotodiodo ou fototransistor).
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
106
CASOS E RELATOS
Sensor óptico reflexivo caseiro.
Em uma escola do SENAI no Norte do país, a bibliotecária solicitou aos alunos que criassem um sistema
automatizado e de baixo custo para realizar a contagem dos usuários da biblioteca.
Após estudar os diodos emissores de luz e os fotodiodos, Jaime, um aluno do curso de Automação
Industrial e Mecatrônica, teve a ideia de construir e instalar um sensor óptico de barreira na única porta
de acesso da sala da Biblioteca.
Com o apoio da escola e de outros colegas, Jaime implementou o sensor, usando como emissor um
LED infravermelho fixado em um dos marcos da porta, e um fotodiodo fixado no marco oposto, de forma
a gerar um feixe de luz invisível que é interrompido durante a passagem de uma pessoa pela porta.
Após amplificar o sinal do fotodiodo e polarizar corretamente o LED emissor, o sistema construído por
Jaime passou a enviar um sinal de 24V para um contador eletromecânico sempre que o feixe de luz da porta
da biblioteca fosse interrompido.
Porém, após alguns dias de testes, ocorreu um problema bastante curioso. Durante as manhãs, quando
a luz do sol proveniente de uma das janelas incidia sobre a porta, a contagem não ocorria. A luz do sol
interferia no receptor, gerando uma falsa leitura do sinal, impedindo de detectar a interrupção do feixe de
luz gerado pelo LED emissor. Para resolver o problema, Jaime implementou, com o auxílio de um colega
mais experiente, um circuito multivibrador que passou a pulsar o LED emissor, permitindo ao circuito de
recepção diferenciar a luz solar da luz emitida pelo LED.
Como principal vantagem, os sensores ópticos possuem um custo relativamente baixo e grande
velocidade de detecção. Os sensores ópticos não são indicados para locais que oferecem condições
inadequadas à propagação direta da luz, com poeira e resíduos em suspensão que podem interferir no
feixe de luz ou, ainda, decantar sobre a superfície das lentes ou dos objetos detectados. Como estratégia
de filtragem a interferências externas, como outras fontes de luz, os sensores ópticos geralmente modulam
o sinal emitido em pulsos, podendo distinguir entre o sinal original e uma possível interferência.
Com ajustes no ganho, alguns sensores ópticos permitem a detecção de objetos a distâncias bastante
significativas, e através de diodos laser no lugar dos tradicionais LEDs como fonte emissora de luz, podem
ser utilizados para medir com precisão a distância ou a presença de objetos.
3 SENSORES
107
Sensores que funcionam a partir deste princípio possuem um emissor e um receptor do sinal luminoso.
Estes sensores estão montados no mesmo dispositivo, sendo que o emissor fica apontado para uma
superfície refletora. O objeto é detectado através da interrupção do feixe de luz (FIGURA 125).
Sensor PNP detectando refletor, gerando sinal V+
SENSOR ÓPTICO REFLEXIVO
REFLETOR
luz emitida
luz refletida
SINAL V+
REFLETOR
OBJETO
SEM SINAL
Figura 125 - Sensor óptico por retrorreflexão com espelho refletor especial, usado como
barreira óptica para a deteção de objetos
Fonte: SENAI - RS
Quando os objetos são muito transparentes ou excessivamente reflexivos, eles podem não ser
detectados por este sensor. Para evitar que objetos reflexivos sejam confundidos com o refletor do sensor,
alguns sensores utilizam lentes e refletores polarizadas. Estas lentes são combinadas aos refletores e evitam
confundi-lo com objetos de superfícies reflexivas. Este tipo de sensor é mais caro, porém evita a realização
de leituras inválidas.
A exemplo do sensor de retrorreflexão, este tipo de sensor também usa o princípio de reflexão de luz,
mas desta vez ele utiliza o objeto a ser detectado como superfície refletora (FIGURA 126).
Luz emitida não encontra nenhuma superfície refletora próxima, e o
sensor não envia sinal.
SENSOR ÓPTICO REFLEXIVO
luz emitida
luz refletida
SEM SINAL
Luz refletida pelo objeto é detectada pelo receptor e sensor envia sinal.
SENSOR ÓPTICO REFLEXIVO luz difundida
OBJETO
SINAL V+
Sensores reflexivos por difusão são mais práticos e geralmente mais baratos, pois não necessitam da instalação
de refletores especiais. Sua aplicação exige que o objeto detectado não seja opaco ou transparente, havendo um
mínimo de capacidade reflexiva, e que o local para onde o sensor é direcionado quando não houver peça a ser
detectada não tenha um fundo reflexivo o suficiente para confundir o sensor.
SINAL RECEPTOR
Em alguns equipamentos, não é viável instalar um sensor devido a limitações físicas geralmente relacionadas
ao tamanho. Nestes casos, os sensores ópticos podem ser conectados a cabos de fibra óptica para “direcionar e
conduzir” os sinais luminosos (FIGURA 128.
E E
R R
sensor óptico
fibra óptica
E E
R R
emissor receptor
terminais
Figura 128 - Sistema de sensor óptico por transmissão usando fibra óptica
Fonte: SENAI - RS
Fibras ópticas são condutores de luz que permitem enviar um sinal luminoso com o mínimo de perdas.
São imunes a ruídos elétricos, pois conduzem sinais de luz no lugar de sinais elétricos, porém devem ser
observadas as condições ideais para sua instalação. Apesar de possível, não são recomendadas emendas
em cabos de fibra óptica, a menos que se utilizem equipamentos especiais ou conectores adequados
nestas emendas.
Devido a características que podem variar conforme o fabricante, é recomendado pesquisar sobre a
distância máxima suportada para cada sensor, considerando a fibra específica empregada.
SAIBA Pesquise na internet sobre as diferenças entre fibras ópticas monomodo e multimodo,
MAIS descobrindo suas aplicações na automação industrial e em telecomunicações.
Como sugerido pelo nome, esse sensor (FIGURA 129) é utilizado para identificar a violação de uma
zona de segurança, impedindo que algo ou alguém invada uma determinada área controlada durante a
execução de um processo que oferece perigo ou risco.
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.
São caracterizados pela precisão, sendo apresentados em custos mais elevados do que os sensores que utilizam
LEDs convencionais como emissores de luz. O uso de diodos laser na produção do feixe luminoso permite um
melhor controle sobre a luz, emitindo um feixe extremamente concentrado e que é pouco difuso. Podem ser
empregados em sensores ópticos com formato analógico para saída da informação, onde circuitos receptores
e microprocessadores internos operando em altas velocidades permitem leituras de distância satisfatoriamente
precisas. Dentre os diversos métodos, existem sensores que utilizam o ângulo de reflexão do feixe de laser para
definir a distância do objeto detectado, e outros ainda medem o tempo (extremamente pequeno) entre o pulso de
laser emitido e o pulso de laser captado após a reflexão.
Sensores a laser combinados com espelhos controlados ainda são utilizados como sensores de segurança,
podendo realizar a varredura em um plano em busca de mudanças que podem revelar a presença de uma
pessoa ou objeto. Estes sensores são conhecidos por scanners a laser de segurança, e geralmente são uma
solução bastante eficiente, porém com um elevado custo (FIGURA 130).
Devido à abrangência da solução aliada a um tamanho reduzido, scanners a laser são empregados em
equipamentos móveis, por exemplo AGVs (Veículos Guiados Automaticamente) para detectar obstáculos
que possam impedir a movimentação automática do veículo.
SAIBA AGVs são veículos guiados automaticamente que se deslocam através de sinais e informa-
ções coletados por sensores. Pesquise sobre AGV em sites de busca na internet, procurando
MAIS entender a função dos diversos sensores estudados neste tipo de equipamento.
3 SENSORES
111
Comumente utilizados para a detecção de movimento e presença humana em sistemas de alarme, seu
princípio de funcionamento é embasado na detecção de luz infravermelha ou na variação da quantidade
deste tipo de luz. Pirossensores são os elementos receptores deste tipo de sensor (FIGURA 131).
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.
Também conhecidos pelo termo “fotocélulas”, são dispositivos de acionamento que reagem à luz,
acionando um contato sempre que a luminosidade estiver abaixo de um nível mínimo.
Grande parte dos relés fotoelétricos utilizam resistores dependentes de luz (ou, em inglês, Light
Dependent Resistor - LDR) como dispositivos detectores de luminosidade. Como o próprio nome sugere,
um LDR possui uma resistência variável que diminui proporcionalmente à luz incidente.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
112
Câmeras fotográficas digitais aliadas a velozes sistemas de processamento e algoritmos específicos permitem
realizar a aquisição e a análise de uma imagem, de modo que informações podem ser comparadas com uma
imagem padrão, definindo se um produto está ou não adequado às características esperadas. (FIGURA 133)
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.
Caracterizado por um “sonar”, tem sido largamente empregado na área automotiva como sensor de
proximidade para estacionamento ou em alarmes como sensores volumétricos. Na indústria, sensores de
ultrassom são empregados para medir distâncias de objetos grandes, níveis de reservatórios, presença de
obstáculos, além da vazão de fluídos.
Seu funcionamento tem princípio acústico, onde um dispositivo gera um som de alta frequência (não
percebido pelo ouvido humano).
VOCÊ Os seres humanos conseguem perceber sons com frequências entre 20Hz e 20kHz
(variações por segundo). Nos dispositivos de ultrassom, as frequências geralmente
SABIA? ficam na faixa de 33kHz a 40kHz, sendo imperceptíveis aos ouvidos humanos.
3 SENSORES
113
Em sensores de ultrasom convencionais, o sinal sonoro emitido é então propagado pelo meio. No caso do
ar, esta propagação ocorre na velocidade de 330 a 350 metros por segundo, dependendo da temperatura,
umidade e pressão atmosférica. As ondas sonoras são propagadas até encontrar um obstáculo capaz de
refleti-las de volta à origem. Um microfone capta e amplifica o sinal sonoro recebido. Devido à velocidade
dos sistemas de processamento, é possível medir o tempo (em microssegundos) entre o envio e a recepção
do sinal sonoro, e isso permite estimar a distância de um obstáculo ou objeto (FIGURA 134).
emissor
(altofalante)
OBJETO
DETECTADO
receptor
(microfone)
Sons também podem ser propagados em outros meios físicos, como líquidos e sólidos, havendo uma
diferente faixa de propagação, geralmente associada à densidade do material.
Sensores de ultrassom empregados em medidas de distâncias e suas variáveis geralmente produzem
uma informação do tipo analógica, e podem apresentar uma variação devido às variantes atmosféricas
que podem fazer com que o som se propague com uma velocidade diferente. Outro fator que deve ser
observado no uso destes sensores é a capacidade de reflexão sonora por parte do objeto, que pode refletir
mais ou menos ondas sonoras de volta ao sensor.
FIQUE Alguns objetos podem absorver as ondas sonoras (como espumas e superfícies muito ma-
ALERTA cias), não refletindo o suficiente para ser identificado por sensores ultrassônicos. Objetos de
dimensões reduzidas também podem não ser identificados.
Algumas superfícies podem ser “transparentes” ao som, não refletindo ou refletindo parcialmente o sinal
sonoro. Essa capacidade em reflexões sonoras diferentes por parte dos materiais de diferentes densidades
permite aos sensores de ultrassom a coleta de informações no interior de alguns recipientes (FIGURA 135).
Figura 135 - Equipamento aplicado à análise por ultrassom, permitindo identificar fissuras internas no material através da análise da propagação do som através do
material
Fonte: SENAI - RS
Sensores de ultrassom combinados com processamento de sinais digitais podem compor equipamentos
de análise por ultrassom capazes de identificar fissuras internas em materiais sólidos, ou ainda visualizar
materiais compostos com densidades diferentes. Esta tecnologia já é usada há algum tempo na medicina,
onde a “ultrassonografia” permite visualizar os órgãos internos de pacientes.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
114
Alguns sensores de ultrassom industriais permitem programar uma “faixa livre”, na qual obstáculos
detectados são ignorados, permitindo a sensores de ultrassom detectar obstáculos em uma área mais
restrita, ou através de paredes relativamente transparentes ao som.
Ao se aproximar um material metálico de uma bobina submetida a uma alta frequência, a amplitude
do sinal da bobina sofre alterações devido a mudanças em sua “indutância”.
Sensores indutivos seguem este princípio, gerando um campo eletromagnético de alta frequência
e medindo a amplitude da tensão no circuito oscilador. Um circuito comparador no interior de
sensores indutivos permite identificar estas alterações de amplitude no circuito oscilador, percebendo
a presença de um material metálico (FIGURA 136).
Sensor sem objeto próximo. Objeto não metálico. Objeto metálico produz
Praticamente sem mudança no Uma grande mudança no
campo eletromagnético gerado. campo eletromagnético.
Figura 136 - Sensores indutivos
Fonte: SENAI - RS
Como podemos observar, estes sensores são ideais para detectar materiais metálicos, e são
largamente utilizados em aplicações industriais por oferecerem robustez e imunidade a outras
interferências, como poeira e partículas não-metálicas.
Em alguns ambientes industriais, é comum que, após algum período de uso, sensores estejam cobertos
por lubrificante, poeira e outros resíduos. Sensores indutivos são bastante imunes a isso, não sendo
afetados por poeira, partículas não-metálicas e fluídos lubrificante, sendo adequados para situações de
detecção onde os sensores ópticos não podem ser empregados.
Alguns sensores indutivos geram sinais analógicos, retornando a proximidade ou volume do material
metálico, porém na maioria das aplicações industriais, sensores indutivos são aplicados como sensores
digitais de presença, identificando a presença (ou não) de um dispositivo metálico. Sensores indutivos
também são aplicados em rodas dentadas para medir posicionamento e velocidade, pois o sensor irá
gerar pulsos toda vez que um dente de uma roda dentada passar em frente a ele (FIGURA 137).
3 SENSORES
115
sensor
indutivo
referência
Embora o uso de outros tipos de sensores também resultasse na informação desejada, por questões de
custo, robustez e, principalmente, imunidade a interferências externas, os sensores indutivos são largamente
empregados.Um exemplo bastante comum é usado na área automotiva: no sistema de injeção eletrônica,
uma roda dentada em conjunto com um sensor indutivo gera pulsos para que o sistema de controle saiba
a posição do “eixo do motor”, do motor, e sua velocidade de rotação. Em outro exemplo, temos o sistema de
assistência de frenagem (ABS), em que um sistema computacional avalia constantemente a desaceleração
da roda, evitando seu bloqueio.
Nos sensores indutivos, a mudança da “indutância” da bobina de um circuito gera uma alteração no
circuito ressonante (filtro), que é utilizado para gerar a informação desejada. Já em sensores capacitivos,
a mudança detectada é na capacitância do circuito. Esta capacitância é determinada pela distância entre
duas superfícies condutivas, separadas pelo material isolante dielétrico. Dependendo das dimensões do
posicionamento e do material que constitui o dielétrico, e também das variações de distância das camadas
condutoras, há sensíveis variações na “capacitância”, que podem ser aplicadas a circuitos de transformação
do sinal que, após amplificado e filtrado, gera o sinal desejado.
Sensores capacitivos industriais são equipamentos que possuem um capacitor montado em sua
face de detecção e utilizado em um circuito interno bastante sensível a variações de capacitância deste
capacitor. Quando um material ingressa na região deste capacitor, sua capacitância é afetada e a alteração
causa uma mudança de comportamento no funcionamento do circuito, permitindo a detecção.
Uma vantagem dos sensores de presença capacitivos é a possibilidade de detectar vários tipos de
material, sejam eles ferromagnéticos ou não. Um sensor capacitivo pode detectar materiais condutores
(metais em geral) e também não-condutores (plástico, borracha, compostos orgânicos naturais como
madeira, papel, fluídos, óleo, água etc.).
O uso de sensores capacitivos é muito frequente como alternativa a sensores indutivos quando
o material a ser detectado não é metálico. Devido a sua abrangência (detecta vários tipos de
materiais), um sensor capacitivo deve ser usado com cuidado, evitando seu uso em ambientes com
muito resíduo, como poeira, óleo ou aspersão de água, pois isso pode causar depósitos sobre o
sensor, fazendo com que a capacitância seja alterada a ponto de causar falsas detecções.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
116
Sensores capacitivos podem também ser empregados em tanques para a medição de nível, sem
a necessidade de perfurações, uma vez que a capacitância pode ser medida através das paredes de
um recipiente, desde que não sejam muito espessos, sem a necessidade de perfurações e do contato
direto do sensor com o fluído (FIGURA 138).
sensor capacitivo
reservatório
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.
São sensores que reagem a um campo magnético. Seu principal representante é o “reed switch”,
constituído por uma chave magnética de contato normalmente aberto que reage à aproximação de um
ímã ou campo magnético (FIGURA 139).
SENSOR MAGNÉTICO
“ REED SWITCH ”
ÍMÃ
(OBJETO DETECTADO)
CIRCUITO DE CONTROLE
sensor magnético
magnético
sensor magnético
magnético
cilindro pneumático com êmbolo magnético
Apesar de oferecer uma solução de baixo custo e sem contato mecânico com o objeto detectado, o
sensor magnético com reed switch possui limitações quanto ao tamanho e à vida útil se comparado a
sensores magnéticos construídos a partir de semicondutores, como sensores HALL (FIGURA 141).
A
NNT
N
N
A
T
Figura 141 - Circuito integrado sensor de efeito HALL A1101, da Allegro MicroSystems Inc.
Fonte: SENAI - RS
Sensores HALL (em homenagem a E.H. Hall) são sensíveis a campos magnéticos, gerando um sinal de
tensão proporcional a eles e que pode ser amplificado e processado para gerar uma informação digital
similar aos sensores magnéticos de contato, com a vantagem de não haver partes móveis internas no
sensor, aumentando sua vida útil e diminuindo o tempo de resposta. Sensores HALL são usados para
posicionamento em pequenos dispositivos, como leitores de discos de computadores, e posicionamento
e velocidade de motores. Em aplicações industriais, estes sensores vem sendo empregados em conjunto
com cilindros pneumáticos para a detecção de posicionamento do atuador.
Todo tipo de pressão sobre um material tende a causar uma deformação/deflexão. Em alguns materiais,
esta deformação é temporária e, quando a pressão é interrompida, o material volta ao seu estado original.
Alguns materiais, ao serem submetidos a pressão, têm suas propriedades condutivas modificadas,
geralmente com diminuição de sua resistência.
Os Piezorresistores são componentes que reagem desta forma, tendo sua resistência inversamente
proporcional à pressão a que são submetidos.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
118
VOCÊ Muitos microfones utilizados em telefones têm, sem seu interior, piezorresistores,
onde as variações da pressão do ar causadas pelas ondas sonoras são traduzidas em
SABIA? variações de resistência elétrica
Em sensores capacitivos, a pressão pode comprimir o material dielétrico (entre as camadas condutoras
do capacitor), causando uma mudança na capacitância.
Alguns materiais podem ainda gerar um campo elétrico durante a variação da pressão, gerando energia
elétrica.
Tensão, corrente, capacitância e resistividade são, portanto, grandezas que podem variar conforme a
pressão em determinados componentes. Estes componentes são então combinados e montados de forma
a mensurar a pressão através da variação controlada destas grandezas.
Piezorresistores podem ser aplicados em encapsulamentos que aplicam a deformação através da
pressão positiva ou negativa para criar sensores de pressão mais complexos, com saídas digitais ou
analógicas (FIGURA 142).
bar
VOCÊ Um pressostato pode ser utilizado para medir o nível de líquidos, através da medição
da variação de pressão em um sistema fechado conectado ao fundo do recipiente?
SABIA? Esta técnica é utilizada em máquinas de lavar roupas.
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.
Computadores pessoais, telefones celulares e controles de videogame aplicam estes sensores para
detectar movimentos realizados pelo usuário, detectando a direção do movimento, e também a direção
do vetor força da gravidade, atualizando imagens para a orientação mais adequada.
Em automóveis, estes sensores de aceleração são utilizados para detectar uma desaceleração brusca
causada por uma colisão, disparando sistemas de segurança passiva, tais como air-bags.
Na indústria, os sensores de aceleração podem ser aplicados para detectar movimentos bruscos ou
vibrações, podendo servir de mecanismo de detecção de problemas em equipamentos críticos (FIGURA
144, FIGURA 145 e FIGURA 146).
Wii
Figura 144 - Circuitos inte- Figura 145 - Sensor industrial Figura 146 - Equipamentos que
grados acelerômetros Fonte: SENAI - RS utilizam acelerômetros
Fonte: SENAI - RS Fonte: SENAI - RS
Também conhecidos pelo termo strain-gage, os extensômetros (FIGURA 147, FIGURA 148 e FIGURA 149)
são resistores aderidos à superfície de um material que pode sofrer deformação por tração. Quando um material
sofre tração, há um ligeiro estreitamento da superfície condutora, alterando também sua resistência. Esta variação
de resistência pode ser aplicada a um circuito comparador, gerando um sinal proporcional à deformação sofrida.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
120
Terminal
para a Solda
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.
São sensores capazes de medir a quantidade de um determinado elemento que passa por um determinado
ponto, por um determinado período de tempo. Podemos medir a vazão em unidades de volume por tempo
(volumétricos), como litros por segundo (L/s), metros cúbicos por hora (m³/h), galões por minutos (GPM) ou, ainda,
em unidades de massa por tempo (mássicos), como kilogramas por hora (kg/h), toneladas por minuto (ton/min),
miligramas por minuto (mg/min.), libras por segundo (lb/s).
A vazão geralmente é medida em elementos transportados por tubulações em fluxos relativamente
contínuos, e geralmente aplicada a líquidos ou gases, embora também possa ser aplicada a sólidos, como
grãos de matéria-prima de polímeros, minérios triturados, pó, alimentos em grãos, derivados etc.
Os sensores de vazão são comuns em nosso dia a dia, embora em muitas situações
VOCÊ passem desapercebidos. Hidrômetros são usados para medir o consumo de água nas
SABIA? residências. Sensores de vazão por turbina também são aplicados em bombas de
postos de combustíveis.
Os sensores de vazão são apresentados nas mais diversas configurações, variando conforme o elemento a
ser medido, precisão necessária, resolução, pressão suportada, vazão mínima e máxima, formato de saída etc.
A seguir, a Figura 150 mostra sensores de turbina, frequentemente utilizados na medição de vazão
para líquidos.
0,000
Em caso de produtos sólidos que podem ser transportados em esteiras, a medida aproximada da vazão
pode ser feita pelo peso da esteira ou de medições de altura do material transportado pela esteira. Este valor
pode ser processado para gerar uma aproximação em relação à quantidade de material transportado.
Para líquido ou gás, destacam-se os sensores de vazão por turbinas onde pás inseridas na tubulação
giram durante a passagem do fluído, e sistemas externos utilizam a informação gerada pelo giro das pás
para obter a informação desejada.
Alguns sensores de vazão podem se basear na diferença de pressão existente entre a medida que ocorre
antes (a montante) de um ponto de estrangulamento e após (a jusante) o ponto de estrangulamento.
A diferença de pressão entre os dois pontos pode ser usada para determinar a vazão com uma boa
aproximação.
Representação da tubulação com um ponto de estrangulamento, com pontos de pressão
diferencial (FIGURA 151).
P2 P1
A1: Area do buraco
O sensor do tipo tubo pitot permite a detecção da diferença entre a pressão estática e a dinâmica,
podendo ser usado para estimar com bastante precisão a vazão de um fluído. Este sensor é usado em
aviões para o cálculo da velocidade através da vazão do ar.
A Figura 152 é de um tubo pitot. Observe que a diferença entre as pressões estáticas e de impacto será
proporcional à vazão.
Rotâmetros (FIGURA 153) são sensores de vazão aplicados a fluídos (líquidos e gases) cujo princípio
consiste em uma passagem cônica com um elemento bloqueador. O elemento tende a se deslocar para
baixo, bloqueando o orifício, devido à força da gravidade, porém sofre a impulsão do elemento em sentido
contrário, buscando um ponto de equilíbrio onde a área de passagem é suficiente para que a suspensão do
flutuador causada pelo atrito e seu peso entrem em equilíbrio. A altura do flutuador é o indicador do fluxo.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
122
União de saída
Conexão de saída
Limitador do flutuador
Caixa de vedação sela o tubo
De vidro com a união de metal
Máximo fluxo é obtido
Na parte superior do tubo
Tubo afunilado de vidro
Flutuador de medida
Conexão de entrada
União de entrada
Sensores magnéticos podem medir a vazão por meio do campo magnético causado pelo deslocamento
de um fluído levemente condutor.
Sensores de ultrassom podem ser usados para medir a vazão por meio da diferença de tempo entre a geração e
a captação de sinais sonoros propagados pela tubulação. A velocidade do fluído na tubulação propaga as ondas
sonoras de forma levemente mais veloz ou mais lenta, conforme a velocidade e o sentido do deslocamento. Esta
informação, aliada a dados dimensionais da tubulação, pode ser usada para estimar a vazão.
Obstáculos inseridos no interior da tubulação podem causar a criação de vórtices, que oscilam em
proporção a velocidade do fluído. Esta informação pode ser usada para calcular a vazão. Sensores de
esforço ou térmicos também podem ser aplicados aos obstáculos, a fim de estimar o atrito com o elemento
e definir sua velocidade, usando esta informação para o cálculo da vazão.
Sensores de temperatura são bastante aplicados na automação industrial e podem utilizar mais de um
princípio físico para a medição da mesma grandeza.
3 SENSORES
123
O calor é uma forma de energia, e a versatilidade e a diversidade em suas transmissão fazem com que
seja uma das mais usadas. O calor pode ser transferido por condução, por convecção ou por irradiação.
Esta forma de energia pode realizar transformações em materiais, mudando a condutividade elétrica de
alguns elementos, causando dilatações e deformações físicas e gerando ondas eletromagnéticas.
Os elementos condutivos tendem a apresentar uma resistência variável em relação à temperatura.
Em componentes eletrônicos, como resistores, esta propriedade geralmente é indesejável, fazendo
com que circuitos de compensação sejam implementados para casos onde há necessidade de precisão
e estabilidade.
Porém, como sensor térmico, esta propriedade dos resistores é desejável e elementos resistivos mais
sensíveis à temperatura são utilizados para compor termistores. Alguns termistores apresentam uma
resposta onde a resistência é diretamente proporcional à temperatura; ou seja, quanto mais calor, maior a
resistência. Estes elementos são conhecidos como PTC (Positive Temperature Coefficient), em português,
coeficiente positivo de temperatura.
Alguns termistores podem ainda apresentar uma resistência inversamente proporcional à temperatura;
ou seja, a resistência diminui com o aumento da temperatura. Estes são conhecidos por NTC (Negative
Temperature Coefficient), em português, coeficiente negativo de temperatura.
Sensores do tipo PTC e NTC geralmente não apresentam comportamento linear e podem apresentar
comportamentos indesejáveis se submetidos fora da faixa de medição adequada.
Ao escolher um termistor, devemos observar esta faixa de medição e a resistência do componente nos
valores mínimos e máximos dessa faixa. Além disso, é necessário interpretar a curva do sensor, conhecendo
alguns pontos de resistência em determinadas temperaturas (FIGURA 154).
NTC PTC
Resistência (ohms)
Temperatura (oC)
Alguns sensores podem apresentar comportamento mais linear em certas faixas de temperatura.
Devido a sua simplicidade, termistores geralmente são sensores baratos (custam alguns centavos) e são
aplicados a circuitos de controle mais complexos para compensar sua não- linearidade.
A junção de dois metais diferentes pode transformar energia térmica em energia elé-
VOCÊ trica. Este princípio foi descoberto por Thomas Johann Seebeck em 1821, e é conhe-
SABIA? cido como efeito termoelétrico.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
124
Através do princípio termoelétrico, os termopares realizam medições de temperatura gerando uma pequena
tensão proporcional ao calor ao qual uma junção de dois metais diferentes é submetida (FIGURA 155).
INFINITOS VALORES
DC
V
,
POWER PK HOLD B/L DC / AC
(mV)
+
-
CAT ll
- + 0C
termopar
Todo termopar é constituído de um par metálico, envolvendo um elemento positivo (gera lacunas),
e um elemento negativo (fornece elétrons); ou seja, quando estes metais são submetidos a uma variação
da temperatura, uma corrente passa a circular entre eles. Os termopares também são indicados a faixas de
temperatura específica, não tolerando temperaturas acima ou abaixo de uma faixa específica, podendo
ocorrer danos permanentes se utilizados fora dessa faixa de temperatura.
Os termopares são formados com junção de diferentes metais, apresentando respostas diferentes e
principalmente faixas de leitura bem particulares. Na automação industrial, são conhecidos por letras. A
seguir, veja os tipos:
a) tipo K (Cromel / Alumel) - é um termopar bastante utilizado, com baixo custo e cobrindo temperaturas
entre -200 e 1200°C, com sensibilidade de aproximadamente 41µV/°C;
Termoelemento positivo (KP): Ni 90% Cr 10% (Cromel)
Termoelemento negativo (KN): Ni 95% Mn 2% Si 1% Al 2% (Alumel)
Faixa de utilização: -270°C a 1200°C
f.e.m. (tensão em função da temperatura) produzida: -6,458 mV a 48,838 mV
b) tipo E (Cromel / Constantan) - tem sensibilidade elevada (68 µV/°C) e é muito empregado em
temperaturas negativas;
Termoelemento positivo (EP): Ni 90% Cr 10% (Cromel)
Termoelemento negativo (EN): Cu 55% Ni 45% (Constantan)
Faixa de utilização: -270°C a 1000°C
f.e.m. produzida: -9,835 mV a 76,373 mV
3 SENSORES
125
Em relação a seu comportamento, alguns tipos apresentam uma curva muito linear em certas faixas
de temperatura, facilitando seu uso. Este é um dos grandes motivos de seu largo uso em processos de
automação industrial (FIGURA 157).
45
Tipo E J
N
40
Tipo J
35
Tipo T
30
25
T
20
R
15 S
B
10
5
0
-5
-10
-200 0 200 400 600 800 1000 1200 1400 1600
Termperatura (ºC)
Figura 157 - Gráfico das curvas de termopares, entre temperatura e tensão gerada em milivolts
Fonte: SENAI - RS
3 SENSORES
127
Uma das formas de transmissão térmica ocorre por meio da irradiação, quando o objeto que libera
calor também irradia luz infravermelha. Conhecendo as características do objeto, é possível realizar a
medição da temperatura com uma boa precisão através da medição de radiação infravermelha emitida
por ele (FIGURA 158).
Sensores infravermelhos são aplicados em medições de temperaturas elevadas, onde não é possível inserir
uma sonda ou não é desejável um contato físico entre o sensor e a fonte emissora de calor (FIGURA 159).
A V
O
Alguns sensores infravermelhos apresentam curvas de saída similar a alguns tipos de termopares, para
facilitar sua implantação em sistemas padronizados.
Devido às suas características construtivas, esses equipamentos não são aconselhados para medição
de superfícies reflexivas.
Termodinâmica é o ramo da Física que estuda causas e efeitos gerados pela mudança na temperatura,
pressão e volume, compreendendo também o comportamento dinâmico (movimento) da energia térmica,
que é largamente utilizada, tanto de forma desejável quanto indesejável.
Em essência, a Termodinâmica estuda o movimento da energia e como a energia cria movimento. Na
automação industrial, controlar a temperatura exige conhecimentos amplos na área, por isso vamos abordar
alguns pontos importantes em relação ao comportamento de sistemas onde o calor é um fator crítico.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
128
Motores e reduções são responsáveis pelo movimento das articulações nos robôs elétricos, muito
utilizados na indústria devido a sua precisão e repetibilidade. Mas, como o sistema de controle deste robô
pode realizar movimentos tão precisos, mesmo havendo diferentes condições de uso? Suas articulações
contam com sensores que conseguem captar o movimento realizado, quantificando-o de forma
razoavelmente precisa.
Encoders são dispositivos que transformam movimentos em sinais elétricos que são enviados ao sistema
de controle. Estes sinais são utilizados para compor informações de velocidade e posição e para ações
corretivas, permitindo ao equipamento uma resposta correta e constante.
VOCÊ Alguns encoders podem gerar até 360000 pulsos por revolução; ou seja um pulso é
SABIA? gerado a cada milésimo de grau de movimento angular do eixo do encoder.
Também conhecidos como transdutores de posição linear, são sensores cada vez mais utilizados
na automação devido a sua versatilidade, podendo serem empregados em sistemas de controle de
posicionamento até em sensores de nível.
Dentre os sensores de posição linear, podemos destacar a régua potenciométrica e a régua óptica.
Na régua potenciométrica, com o nome já sugere, temos um “potenciômetro”, ou seja, uma resistência
variável em função da posição, comportando-se como um sensor analógico; já na régua óptica o sistema
de medição da posição é realizado através de pulsos gerados pela passagem de um pequeno sensor óptico
por uma fita graduada translúcida, como em um encoder óptico.
LVDT : Linear Variable Differential Transformer - Transformador Diferencial Linear Variável. Constitui um sistema
que utiliza transformadores acoplados por meio de um núcleo metálico móvel, variando sua saída de tensão em
função da posição deste núcleo. Seu uso geralmente é dado como sensor de posição linear resultando como
saída um sinal analógico definido pela variação de tensão elétrica.
A tecnologia de magneto-restrição aplicada a sensores de posicionamento lineares permite a construção
de sensores de alta resolução, robustos e sem contato físico no elemento sensor (FIGURA 162).
Também conhecidos como transdutores de posição angular, Encoders são dispositivos sensores com
capacidade de gerar pulsos elétricos proporcionais ao movimento angular detectado.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
130
Geralmente conectados a eixos de motores ou redutores, os encoders permitem a leitura, por parte do
sistema de controle, da posição angular do eixo.
Encoders que permitem uma leitura instantânea da posição do eixo, tendo como resposta um
sinal proporcional a posição, são chamados de encoders absolutos.
Um potenciômetro convencional é um exemplo clássico de um encoder analógico potenciométrico,
pois traduz o movimento angular em uma variação de resistência, que pode também ser convertido
para variação de tensão (FIGURA 163).
5V
Tensão (V)
GND
5V
Sinal
Ângulo 270o
Embora o potenciômetro seja utilizado como um sensor de posição em painéis de interface com
usuários, ele pode ser aplicado a sistemas mecânicos, como braços robóticos de pouca precisão, boias
potenciométricas e pêndulos, dentre outros sensores.
Para aplicações que exigem maior precisão, encoders absolutos ópticos ou magnéticos permitem uma
leitura mais precisa, traduzindo a posição em uma sequência binária. Para facilitar o entendimento, segue
a imagem de um encoder óptico absoluto de uma volta com resolução de 3 bits (FIGURA 164).
1
0
1
É importante ressaltar que, por se tratar de um encoder absoluto, não importa o momento da
leitura; sempre será retornada a informação relativa à posição do sistema.
Existem encoders absolutos construídos para monitoramento de uma única volta (360º), conhecidos
como monovolta; já os encoders multivoltas podem suportar mais de uma revolução sobre seu eixo e
conseguem medir a quantidade de revoluções, além da posição angular.
3 SENSORES
131
Similares aos encoders absolutos, os encoders incrementais também geram informações elétricas
baseadas em um movimento.
Enquanto em um encoder absoluto é possível obter a informação referente à posição angular
de seu eixo, no encoder incremental só é possível obter a informação de que um movimento foi
realizado, sem informação da posição exata do eixo (FIGURA 165).
101010101
receptores
Sensor B
mascara fixa
emissores
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.
Transdutores são dispositivos que transformam uma forma de energia em outra, geralmente com o
objetivo de gerar um sinal elétrico proporcional que possa ser utilizado em um sistema de controle, ou de
transformar este sinal de controle em outra forma de energia.
Como sensores, os transdutores podem converter grandezas físicas em sinais elétricos. São exemplos
os microfones, termistores, acelerômetros, potenciômetros, resistores dependentes de luminosidade etc.
Como atuadores, os transdutores convertem sinais elétricos em outros tipos de energia. Exemplo:
motores, alto-falantes, pastilhas térmicas etc (FIGURA 167).
3 SENSORES
133
Perdas
Transdutor
Figura 167 - Diagrama de funcionamento de um transdutor
Fonte: SENAI - RS
Segundo este conceito, muitos dos sensores antes estudados caracterizam-se como transdutores; outros
utilizam transdutores em seu princípio de funcionamento.
b) extensômetros - também de princípio resistivo, strain gages são componentes sensíveis à deformação,
com a resistência variando proporcionalmente à tensão mecânica (tração) sofrida pelo componente;
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
134
c) termistores - também já estudados, são resistências que variam de forma diretamente proporcional
ou inversamente proporcional à temperatura;
d) fotoresistores - resistores sensíveis a luz, também conhecidos como LDRs, muito utilizados em
detectores de luminosidade, como fotômetros, sensores crepusculares automotivos e células fotoelétricas;
e) capacitivos - usam o princípio da alteração do material dielétrico ou da distância das placas condutoras
variando conforme a grandeza medida. Como exemplo, citamos sondas de nível, transdutores de pressão
e microfones condensadores;
a) termopares - princípio de geração de uma tensão elétrica em função da temperatura: efeito Seebeck.
Em processo inverso, pastilhas térmicas permitem a geração de calor ou a absorção de calor a partir de uma
corrente elétrica (efeito Peltier);
Figura 168 - Transdutor de corrente, usado para medir a corrente através do campo elétrico gerado pelo condutor
Fonte: SENAI - RS
A Figura 169 é o esquema de um transdutor de corrente, que pode ser construído com uma argola de
ferrite, um condutor isolado e um resistor de valor elevado (aprox. 100k).
Corrente
Condutor
Nas extremidades do resistor, devidamente conectada a bobina de fio, obtemos uma variação de
tensão proporcional à corrente, que pode ser amplificada e utilizada em um sistema de controle (FIGURA
170, Figura 171 e FIGURA 172).
Alguns sistemas estão preparados para um determinado nível de sinal, porém os sensores geram um
sinal diferente. É o caso dos termopares, que geram tensão em milivolts e, para serem conectados a CPs,
precisam ser adequados para variações de corrente de 4 a 20 mA, ou de tensão de 0 a 10V.
Conversores podem ser usados para converter sinais analógicos ou de dados entre os diferentes padrões
industriais (FIGURA 173).
1 2 3
4 5 6
1
2 6
3 4 5
Alguns dispositivos conversores permitem também converter sinais elétricos em sinais de rádio, e vice-
versa, permitindo instalações remotas sem fio.
RECAPITULANDO
Neste capítulo estudamos os sensores, que são dispositivos utilizados para adquirir informações,
enviando-as ao sistema de controle. Os sensores também podem enviar sinais digitais que apresentam
um número limitado de estados possíveis, e geralmente são representados por dois estados: ligado (1)
ou desligado (0). Existem também os sensores analógicos, que enviam sinais que apresentam infinitas
possibilidades dentro de uma faixa determinada, e são representados pela variação de uma grandeza,
como tensão ou corrente.
Estudamos que os sensores podem ser divididos quanto ao sinal gerado e também por suas saídas,
podendo ser de princípio analógico ou digital. Alguns sensores digitais têm comportamento similar ao
das chaves que abrem e fecham conforme detecção. Outros sensores analógicos geram variação de
corrente ou tensão conforme a grandeza medida. Estas características são importantes ao escolhermos
ou utilizarmos um sensor, determinando sua forma de integração ao sistema de controle. Quanto ao
princípio físico, os sensores também podem diferenciar-se uns dos outros, sendo alguns mais adequados
em certas situações. Em ambientes com muita poeira, por exemplos os sensores ópticos podem “sofrer”
devido à difusão da luz causada pelas partículas em suspensão no ar. Em situações onde pode ocorrer
desgaste mecânico, sensores eletromecânicos de contato podem não ter uma durabilidade muito
aceitável.
Estudamos também que alguns sensores com um mesmo princípio físico podem diferenciar-
se consideravelmente em suas características. Um termopar, por exemplo, com a alteração da
composição de seus elementos, pode ser mais indicado para a medição de altas temperaturas do
que outro. É importante ressaltar que o conteúdo estudado é somente uma pequena parte desta
vasta área, e atualizar constantemente os estudos de tipos de sensores e suas características é pré-
requisito para uma atuação de sucesso na área de Automação Industrial e mecatrônica.
SISTEMAS DIGITAIS
Degraus Rampa
(digital) (analógico)
Figura 174 - Comparação analógica e digital
Fonte: SENAI - RS
Ao analisar a rampa, observamos que uma pessoa pode ocupar cada uma das infinitas
posições existentes entre o início e o fim dela. No caso da escada, a pessoa pode se encontrar
em apenas um de seus degraus, em uma posição definida. Assim, é correto dizer que a rampa
representa um sistema analógico, enquanto a escada representa um sistema digital.
Esse conceito pode ser ainda explicado por meio de representações numéricas.
Constantemente trabalhamos com grandezas e quantidades, as quais são medidas,
monitoradas, gravadas, manipuladas aritmeticamente e utilizadas na maioria dos sistemas
físicos. Ao utilizarmos certas quantidades, é de suma importância o conhecimento de como
realizar a representação de seus valores de maneira precisa e eficiente. Existem duas formas de
representação dos valores numéricos das quantidades: a analógica e a digital.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
140
Representação analógica
De maneira analógica, uma grandeza é representada por outra proporcional à primeira. Para tanto,
utilizamos quantidades que variam continuamente dentro de uma faixa de valores.
Um exemplo de sistema que utiliza a representação analógica é o manômetro de ponteiro (FIGURA 175).
6
4
100 8
50
2
150 10
psi
bar
11
Neste tipo de manômetro, a deflexão, movimentação angular do ponteiro, é proporcional à pressão conectada
ao equipamento. Assim, a posição angular do ponteiro passa a representar a pressão. A posição do ponteiro e a
pressão representada têm em comum o fato de variarem em uma faixa contínua de valores. Por exemplo, a pressão
pode variar continuamente de 0 a 11 bar, e a posição do ponteiro pode ocupar qualquer valor angular entre 0º e
270º, proporcional a esta pressão.
Existem infinitas variações de pressão entre 0 e 11 bar, e existem infinitas posições entre 0º e 270º do
ponteiro de representação, o que faz com que o sistema tenha comportamento analógico.
O que caracteriza a informação representada de forma analógica é o fato de haver infinitas posições
para o ponteiro entre o valor mínimo e máximo, sendo que ele se desloca por todos os possíveis valores
dentro de um limite.
Representação digital
Na representação digital (também chamada de discreta), as grandezas e quantidades são representadas
não por valores proporcionais, mas por símbolos chamados dígitos (FIGURA 176).
Sabemos que a pressão de um sistema não passa de um valor para outro instantaneamente, havendo um
tempo necessário para isso (mesmo que pequeno) para que a variação ocorra. Se a pressão de um sistema
dada em um momento está em 2 bar e sobe para 3 bar, isso não ocorre repentinamente, pois, mesmo que
dure alguns milisegundos, a pressão irá subir gradualmente até atingir o novo valor.
Porém, em um sistema digital, a pressão é medida em “estágios”, sendo admitido que uma grandeza
mensurável varie de estado sem haver representação dos valores intermediários durante esta variação. Por
exemplo, no manômetro digital acima apresentado podemos ter indicação da pressão de 2,05 bar, e de 2,06
bar, porém não podemos ter a indicação de uma pressão entre estes dois valores, pois o sistema está limitado
a representações de dois dígitos após a vírgula.
Então, por que usar sistemas digitais?
Uma grande vantagem da representação digital é que, devido à sua natureza discreta, as leituras não
apresentam problemas de ambiguidade, em contraposição ao sistema analógico, em que as leituras deixam
margem à interpretação do observador.
Outra vantagem é o fato de pequenas alterações não representarem, em muitos casos, variações no
valor lido, permitindo uma maior estabilidade na informação coletada.
Você sabia que um dos mais antigos sistemas digitais existentes é o código genético dos seres vivos? O
DNA é uma cadeia limitada de combinações de alguns aminoácidos e define as características repassadas
a seus decendentes.
Então, o que é “eletrônica digital”?
É a ciência eletrônica que trabalha com estes estados definidos de tensão, onde sinais digitais (geralmente
binários) são aplicados em circuitos elétricos.
Sistemas digitais utilizam um conjunto finito de estados. No sistema decimal, utilizamos dez dígitos
(de 0 a 9) para representar números. Combinar estes dígitos permite a representação de informações mais
complexas (FIGURA 177).
4 5 6
3 7 dígitos
8
2 9
1
0 01
Porém, o sistema decimal ainda apresenta um desafio para a Eletrônica. Representar informações em
dez estágios diferentes exige uma precisão grande de sistemas eletrônicos e não permite que um sistema
simples (como um contato, por exemplo) represente uma informação.
Se um sinal de 0 a 5V fosse utilizado para representar números de 0 a 9, teríamos 5V / 10 dígitos = 0,5V
por dígito. Neste caso, 0V poderia ser a representação do valor zero, 0,5V seria a representação do valor um,
1V seria a tensão representante do valor 2, e assim por diante. Porém, ainda nesta forma de representação
hipotética, com uma pequena variação de 5% sobre a tensão máxima de 5V, que equivale a 0,25V, a tensão
de 0,5V poderia subir para 0,75V, ou a tensão de 1V poderia cair para 0,75V. Neste caso, com esta variação
de 5% para cima ou para baixo, teríamos uma indefinição no valor representado, pois não seria possível
saber se 0,75V significam 1 ou 2. Infelizmente, variações até maiores que 5% ocorrem em circuitos elétricos
pelos mais diversos fatores.
Já o sistema binário é composto por dois dígitos (0 ou 1) e permite que as informações sejam assim
representadas. Neste caso, podemos assumir que 0V é 0, e 5V é 1. Porém, com uma variação de até 10%,
0,5V continua a ser nível baixo e, portanto, 0, e 4,5V continua a ser nível alto e, portanto, 1. A informação foi
mantida.
Embora um dígito binário permita representar somente duas informações distintas, a combinação de
diversos dígitos binários (bits) pode representar informações mais complexas.
Este sistema ainda permite que a representação da informação seja facilitada em componentes
eletrônicos simples. Uma chave pode estar com contato aberto ou fechado (0 ou 1). Um LED pode estar ou
não emitindo luz (1 ou 0). Um transistor pode estar em estado de condução ou em estado de corte (1 ou
0). Um relé pode estar comutado ou não (1 ou 0). Um par condutor pode ter tensão de 12V ou -12V entre
si (1 ou 0). Um pulso de luz pode ser curto ou longo (0 ou 1). Em outras palavras, representar informações
digitalmente é mais simples e eficiente.
No padrão TTL (transistor – transistor logic), muito utilizado em sistemas digitais, utilizamos dois níveis
de tensão distintos para representar da informação: nível baixo (0 V) e nível alto (5 V).
Neste sistema, se um condutor destinado ao transporte da informação estiver apresentando uma
tensão diferente de 0 V, porém muito próxima a este (por exemplo, 0,75 V), mesmo assim o sinal continua
a ser nível baixo de tensão, sem haver mudança na informação.
O mesmo ocorre em nível alto. Digamos que um sistema deva gerar um sinal de nível alto de 5 V, porém,
devido à resistividade de alguns conectores, perda e ruído dos condutores, a tensão caia para 4V. Mesmo
com esta queda de 20%, a informação permanece a mesma: nível alto.
Portanto, na eletrônica digital os sistemas têm o objetivo de manipular esta informação digital. Nos
sistemas binários, temos a representação binária de um sistema digital utilizando níveis de tensão alto e baixo.
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.
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.
Dentre os diversos fatores que nos levam a utilizar sistemas eletrônicos digitais podemos citar:
a) maior robustez, precisão e exatidão - sistemas digitais toleram variações em componentes eletrônicos sem alte-
rar a informação representada, o que não ocorre em sistemas analógicos;
b) facilidade de projeto: circuitos digitais são basicamente circuitos de chaveamento (ligar / desligar), fáceis de
serem implementados e bastante robustos, pois não importa se os valores de tensão ou corrente não estiverem
em níveis exatos, havendo uma ampla faixa de tolerância para os níveis Alto (High) ou Baixo (Low) na qual eles
se encontram;
c) fácil armazenamento de informação - é possível armazenar informações digitais usando princípios físicos (car-
tões perfurados), princípios magnéticos (HD, disquete), princípios eletrônicos (matriz de semicondutores de um
cartão de memória) e princípios ópticos (DVD, BlueRay, código de barras), dentre outros;
d) operações programáveis - operações lógicas e aritméticas são aplicáveis às informações digitais de forma mais
fácil do que em sistemas analógicos;
e) adequação à integração - embora o desenvolvimento de circuitos integrados tenha beneficiado os circuitos ana-
lógicos, os benefícios foram maiores para sistemas digitais, pois em sistemas analógicos há um limite para inte-
grações (devido ao tamanho e às características físicas de certos componentes), enquanto em sistemas digitais
alternativas permitem evoluções com dimensões nanoscópicas.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
144
Sistemas digitais são mais robustos, estáveis e viáveis, porém há uma desvantagem, o mundo é quase
totalmente constituído de informações analógicas, como por exemplo temperatura, pressão, tensão,
corrente, vazão, nível. Para obter vantagens de técnicas aplicadas a sistemas digitais com grandezas deste
mundo de informações analógicas, devemos seguir três passos:
a) converter sinais analógicos capturados do mundo real para formato digital;
amostra em um dado
paríodo de tempo é amostras por segundo (geralmente
convertida em uma
grandeza numérica, próximo a algumas milhares de
representada usando
11,15,16,15,12,4,1,4,12,14,11,5,6,... o sistema binários (0 e 1)
amostra por segundo). Cada amostra
é quantificada, virando um valor
numérico inteiro.
4 SISTEMAS DIGITAIS
145
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
transmitidos
em uma rede de dados por ondas através de ondas
de rádio, por
de rádio, usando sistemas que frequências
diferenciam a altura ou a frequência 11,15,16,15,12,4,1,4,12,14,11,5,6,... diferentes.
das ondas enviadas, chegando até o 15(1111), 12(1100), 4(0100), 1(0001), ...
Acima podemos observar a conversão sendo aplicada de duas formas: conversão entre representações
analógicas e digitais (analógica para digital: A/D, ou digital para analógica: D/A) e conversão de sistema
numérico (decimal para binário).
Um dado digital armazenado ou transferido pode ser verificado, e até corrigido, permitindo que a informação
digital seja enviada, copiada e armazenada sem perdas, ou que estas perdas, ao menos, sejam identificadas.
Porém, ao transformarmos sinais analógicos em sinais digitais, ou sinais digitais em analógicos, ocorrem
perdas e alterações nas informações. Conversões de maior resolução podem deixar estas perdas imperceptíveis,
porém elas continuarão a existir.
VOCÊ Um CD, DVD ou BlueRay são discos ópticos onde o som, as imagens e os dados são
convertidos em bits (0 e 1), armazenados e lidos por meio de um feixe de luz (laser)
SABIA? que percorre trilhas reflexivas, percebendo pontos e traços.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
146
Para realizar a conversão entre sistemas de codificação diferentes (decimal, hexadecimal, binário...) são
utilizados conversores de código, também conhecidos como codificadores e decodificadores, que serão
estudados mais tarde.
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.
Circuitos digitais geralmente operam com lógica binária, representados por dígitos do sistema binário
(0 e 1). Estes são representados eletricamente por nível baixo e nível alto de tensão, com tensões de 0V para
nível baixo, e não ultrapassando 5V para nível alto.
A álgebra booleana é principal ferramenta de análise e projeto de sistemas digitais, onde utilizamos
valores lógicos, conhecidos como verdadeiro (true, em inglês) e falso (false, em inglês), ambos representando
respectivamente 1 e 0.
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.
Tabela verdade é uma tabela que relaciona todas as combinações possíveis de valores aplicados a
variáveis de entrada de uma expressão aritmética, analisando o valor resultante da expressão. Para facilitar,
vamos imaginar que há um circuito lógico passando por um operador incógnito (desconhecido) que vamos
representar por um ponto de interrogação (FIGURA 178).
A
? x
B
Figura 178 - Exemplo tabela verdade
Fonte: SENAI - RS
Observe o circuito, onde A e B são entradas de valores lógicos. Portanto, A e B podem valer verdadeiro
(1) ou falso (0). Não sabemos o valor de A e B, mas podemos criar uma tabela com todas as combinações
possíveis. Dado que cada um dos operandos (A e B) podem assumir dois valores lógicos (0 ou 1), temos um
total de 4 combinações (2 x 2).
Montando a Tabela 4:
Tabela 4: Circuito A e B
A?B
A B
X
0 0
0 1
1 0
1 1
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
148
Para termos a Tabela 5 verdade do operador, precisamos também conhecer o resultado criado para
cada possível combinação de suas entradas. Vamos imaginar que, após testes de todas as possibilidades
deste operador, temos a seguinte tabela verdade (TABELA 5).
Tabela 5: Circuito A e B
A?B
A B
X
0 0 0
0 1 1
1 0 1
1 1 0
Fonte: SENAI - RS
Chamamos esta tabela de tabela verdade, e cada operador ou expressão tem sua própria tabela verdade.
Agora temos valores lógicos da saída (X) que são determinados em função das entradas do operador,
dadas por A e B. Observe que, para que X (resultado da operação A ? B) seja 1, A e B devem ser diferentes
um do outro.
O operador (?), neste caso, tem o comportamento do operador ou exclusivo (XOR) que vamos estudar
mais adiante.
A seguir estudaremos operadores lógicos aplicáveis à Eletrônica Digital e suas respectivas tabelas
verdade. Os operadores assumem, na Eletrônica Digital, o nome de portas lógicas, pois assumem
fisicamente o comportamento de circuitos (ou parte de circuitos) onde uma ou mais informações
digitais são coletadas na entrada, gerando uma informação digital na saída.
Na Eletrônica Digital, portas lógicas são circuitos com um ou mais terminais para entrada de dados e uma
saída, sendo esta saída definida pela combinação das entradas. São, portanto, circuitos combinacionais.
Cada porta lógica possui uma representação (símbolo) específica, uma expressão e uma tabela verdade.
Esses elementos são utilizados e combinados para implementar circuitos dedicados para aplicações específicas.
4 SISTEMAS DIGITAIS
149
Segue no Quadro 1, as principais portas lógicas, seu símbolo para diagramas, a expressão booleana, a
tabela verdade e exemplo dos modelos de componentes comercialmente encontrados.
PORTAS LÓGICAS
OPERAÇÃO SÍMBOLO EXPRESSÃO TABELA EXEMPLOS COMERCIAIS
VERDADE
OR (ou) X=A+B A B X 74HC32 (quad 2-input OR gates)
0 0 0 74HC4075 (triple 3-input OR gates)
A
X 0 1 1 CD4075 (triple 3-input OR gates)
B CD4072 (dual 4-input OR gates)
1 0 1
1 1 1
AND (e) X=A.B A B X 74HC08 (quad 2-input AND gates)
0 0 0 74HC11 (triple 3-input AND gates)
A
X 0 1 0 CD4082 (dual 4-input AND gates)
B 74HC21 (dual 4-input AND gates)
1 0 0
1 1 1
NOT (não) X=A A X 74HC04 (hex inverter)
A X 0 1 MC14049 (hex inverter)
1 0 CD4049 (hex inverter)
Portas NOR, NAND, XOR e XNOR são combinações da portas básicas AND, OR e NOT?
VOCÊ Devido à sua frequente utilização os fabricantes já constroem essas combinações e
SABIA? disponibilizam em modelos comerciais, porém elas podem ser implementadas com
as ligações de portas básicas.
A equivalência entre as portas lógicas é demonstrada no Quadro 2, onde portas mais complexas são
derivadas de ligações de portas lógicas mais simples. Geralmente, utilizamos componentes já prontos,
mesmo com as portas lógicas mais complexas. Porém, devido à redução de custo ou ao aproveitamento de
componentes em um circuito, podemos utilizar ligações equivalentes.
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
A representação simplificada da porta not pode ser usada em todo o esquema de seu circuito. Para tanto,
utilizamos um pequeno círculo junto à entrada ou à saída do operador em lugar do símbolo completo. Este
círculo deve ser representado no local onde a porta not estaria conectada (FIGURA 179).
AB A AB
A X =AB
X =AB B
B
A A
A A
X =AB X =AB
B B
Duas expressões lógicas equivalentes entre si podem ser bem diferentes em termos de tamanho. Se
usarmos a expressão lógica errada, corremos o risco de desenvolver um circuito fisicamente maior, mais
caro, que consome mais energia, ou que é mais lento.
Para não correr este risco, precisamos estudar alguns teoremas, que serão utilizados para a construção
e simplificação de circuitos lógicos mais eficientes.
4 SISTEMAS DIGITAIS
151
Estes teoremas são apresentados na forma de expressões, que possuem operadores representados por
símbolos. Para conhecer estes símbolos, vamos ver a seguir o uso deles em uma expressão (FIGURA 180).
D A.(B+A) C=X ou
D A.(B+A) C=X e
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” (+).
A partir de uma expressão lógica, aplicando os teoremas da Álgebra Booleana, podemos obter expressões
equivalentes e complementares, além da expressão dual.
Duas expressões são ditas equivalentes se produzem o mesmo efeito a partir das mesmas
entradas (mesma tabela verdade). Por exemplo, as expressões XY e X + Y são equivalentes, como
pode ser observado na Tabela 6.
Tabela 6: Verdade para as expressões equivalentes: a) XY e b) X + Y
a) b)
X Y XY XY X Y X Y X +Y
0 0 0 1 0 0 1 1 1
0 1 0 1 0 1 1 0 1
1 0 0 1 1 0 0 1 1
1 1 1 0 1 1 0 0 0
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
154
Duas expressões são complementares se a tabela verdade das expressões apresentar valores opostos
para as mesmas entradas. Por exemplo, as expressões XY e XY (com linha acima) são complementares,
como pode ser observado na Tabela 7.
Por meio de expressões equivalentes, na álgebra booleana é possível implementar qualquer função
utilizando somente portas nand ou somente portas NOR. Isso facilita implementações de circuitos, com
reaproveitamento de circuitos semicondutores e consequente redução de custos (QUADRO 3).
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
O Mapa de Karnaugh consiste em um método gráfico utilizado para simplificar expressões lógicas a
partir da tabela verdade. Os exemplos a seguir ilustram os mapas para 2, 3 e 4 variáveis (TABELA 8, TABELA
9 e TABELA 10).
A B F
0 0 1 B B
0 1 0 F=A.B+A.B A 1 0
1 0 0 A 0 1
1 1 1
Fonte: SENAI-RS
A B C F
0 0 0 1
C C
0 0 1 1
0 1 0 1 AB 1 1
0 1 1 0 F = A . B . C+ A . B . C+ A . B . C+ A . B . C AB 1 0
1 0 0 0 AB 1 0
1 0 1 0
AB 0 0
1 1 0 1
1 1 1 0
Fonte: SENAI-RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
156
A B C D F
0 0 0 0 0
0 0 0 1 1
0 0 1 0 0 F=A.B.C.D+A.B.C.D+A.B.C.D+A.B.C.D
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 0
0 1 1 1 0 MAPA DE KARNAUGH
1 0 0 0 0
1 0 0 1 0 C D CD CD CD
1 0 1 0 0
AB 0 1 0 0
1 0 1 1 0
AB 0 1 0 0
1 1 0 0 0
1 1 0 1 1 AB 0 1 1 0
1 1 1 0 0 AB 0 0 0 0
1 1 1 1 1
Fonte: SENAI-RS
Agrupamentos
A expressão para a saída de uma função pode ser simplificada pela combinação apropriada dos
quadrados do Mapa de Karnaugh que contenham 1s. Esse processo é o agrupamento. Podem ser
formados grupos de 2, 4, 8, 16 ou 32 quadrados adjacentes, de acordo com o número de combinações
das variáveis de entrada. A expressão simplificada é obtida a partir da análise do grupo, reescrevendo
as variáveis que se repetem ao longo de todos os quadrados. A seguir são apresentados exemplos de
agrupamentos com duplas (ou pares), quadras e octetos:
a) pares ou duplas;
AB AB AB AB
C 0 1 1 0
X = A.B.C + A.B.C = (B.C).(A+A)= B.C
C 0 0 0 0
Obs: Note que nesses dois termos, apenas A varia,
enquanto BC não se altera.
C C C C CD CD CD CD
AB 0 0 AB 1 0 AB 0 0 1 1
AB 1 1 AB 0 0 AB 0 0 0 0
AB 0 0 AB 0 0 AB 0 0 0 0
AB 0 0 AB 1 0 AB 1 0 0 1
b) quadras;
AB AB AB AB
C 0 0 0 0
X=C
C 1 1 1 1
Obs: Note que nesses quatro termos, A e B variam,
enquanto C não se altera.
CD CD CD CD CD CD CD CD
AB 0 0 0 0 AB 1 0 0 1
AB 0 1 1 0 AB 0 0 0 0
AB 0 1 1 0 AB 0 0 0 0
AB 0 0 0 0 AB 1 0 0 1
X = B.D X = B.D
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
158
c) octetos;
CD CD CD CD CD CD CD CD
AB 1 1 1 1 AB 1 1 0 0
AB 0 0 0 0 AB 1 1 0 0
AB 0 0 0 0 AB 1 1 0 0
AB 1 1 1 1 AB 1 1 0 0
X=B X=C
CD CD CD CD
AB 0 0 0 0
AB 1 1 1 1
AB 1 1 1 1
AB 0 0 0 0
X=B
d) agrupamentos mistos
CD CD CD CD CD CD CD CD
AB 0 0 0 1 AB 0 0 1 0
AB 0 1 1 0 AB 1 1 1 1
AB 0 1 1 0 AB 1 1 0 0
AB 0 0 1 0 AB 0 0 0 0
X = B.C + A.C.D + A.B.C.D X = A.B + B.C + A.C.D
Condição irrelevante
Alguns circuitos podem ser projetados para que, em função de certas combinações de entrada, a saída seja
irrelevante (não importando se, para este caso, a saída for 1 ou 0). Neste caso, costumamos representar o valor
irrelevante com um X (Tabela 11).
Tabela 11: Verdade considerando condições irrelevantes
A B X Y
0 0 1 0
0 1 x 1
1 0 0 0
1 1 1 x
Fonte: SENAI - RS
Analisando a tabela verdade para esse sistema, vemos que X é definido pela combinação dos estados
de A e B, porém quando A for 0, e B for 1, o valor de X será irrelevante, ou seja, para o circuito não importará.
O valor de Y, da mesma forma, assume valor irrelevante quando A e B estiverem valendo 1.
VOCÊ Os Mapas de Karnaugh podem ser utilizados para simplificar funções de até 6 variáveis.
SABIA?
4 SISTEMAS DIGITAIS
159
Nos casos em que uma função depende de 5 ou seis variáveis, temos dois métodos para a construção
dos diagramas: a sobreposição de mapas de 4 variáveis ou o espelhamento de mapas de 4 variáveis. Nos
exemplos abaixo temos mapas de 5 e 6 variáveis utilizando o método da sobreposição (FIGURA 181).
f
A-1 0 4 3 2
4 5 2 6
00 01 11 10 C 12 13 15 14 d
16 20 28 24 8 9 11 10
A=0 1 1 1 e
BC 17 21 29 25 f
16 17 19 18
DE 00 01 11 10 19 23 31 27 20 21 23 22
C 28 29 31 36 d
0 9 12 8 1 1
1 1 1 18 22 36 26 24 25 27 26
1 1
1 5 13 9
e
1 1
f b
3 7 15 11
48 49 51 50
7 6 14 10
52 53 55 54
1 1 C 60 61 63 62 d
a 56 57 59 58
e
f
32 33 35 34
36 37 39 38
44 45 47 46 d
C 40
41 43 42
e
Figura 181 - Mapas de Karnaugh para 5 e para 6 variáveis
Fonte: SENAI - RS
Um circuito multiplexador (MUX) ou seletor de dados é um circuito lógico que recebe vários dados
de entrada e seleciona um deles para transferi-lo para a saída. A seleção do dado de entrada que será
transportado para a saída é controlada pelas entradas de seleção, conforme mostrado na Figura 182.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
160
ENTRADAS DE DADOS
I0
I1
I2
I3 • A saída Z recebe um dado
IN de entrada de acordo com o
código na entrada de seleção.
S0 S1 S2
ENTRADAS DE SELEÇÃO
Figura 182 - Diagrama de um multiplexador
Fonte: SENAI - RS
Pelo diagrama, observamos que um multiplexador atua como uma chave digitalmente controlada
de múltiplas posições, em que um código digital é aplicado nas entradas de seleção, definindo qual
das “n” entradas de dados terá seu conteúdo transmitido para um único canal de saída. Multiplexadores
são construídos a partir de circuitos combinacionais, utilizando essencialmente portas lógicas. Devido
ao seu uso recorrente, existem modelos comerciais de multiplexadores. Vejamos como estes circuitos
podem também ser implementados a partir de portas lógicas básicas.
Para o projeto de um circuito multiplexador devemos levar em consideração o número de códigos
diferentes que as entradas de seleção podem fornecer. Cada um desses códigos será o “endereço” de uma
das entradas de dados, o qual definirá qual dado será enviado para a saída. Assim, para um multiplexador
com “n” entradas de seleção, teremos 2n entradas de dados.
Para entender melhor como funciona o projeto de um circuito multiplexador, vamos analisar o
processo de construção de dois multiplexadores: um circuito básico de 2 entradas (ou canais) de dados
e um circuito para 4 entradas.
Considere o circuito da figura a seguir, o qual apresenta um multiplexador com duas entradas de dados
(I0 e I1) e uma entrada de seleção (S). Utilizando uma entrada de seleção, é possível obter dois códigos
diferentes, ou seja, dois endereços diferentes e, assim, utilizar duas entradas de dados.
4 SISTEMAS DIGITAIS
161
O nível lógico da entrada S determina qual entrada de dado será transferida para a saída. Obtendo a
expressão para o circuito, temos (FIGURA 183).
• Z = I0 S + I1 S
Io
1 Assim, quando S = 0, a porta 2 é
I1 habilitada, permitindo que o sinal de
2 I1 seja enviado para a saída, e a porta 1
S
é desabilitada, fazendo com que I0 não
Figura 183 - Multiplexador de 2 canais
Fonte: SENAI - RS
interfira na saída.
S0 S1 SAÍDA
0 0 Z = I0
0 1 Z = I1
1 0 Z = I2
1 1 Z = I3
Comercialmente podem ser encontrados multiplexadores de dois, quatro, oito e desesseis entradas.
A combinação de Cis (circuito integrado) básicos possibilita a formação de um multiplexador com maior
números de entradas.
SAIBA Pesquisando como associar multiplexadores em série ou paralelo para formar um mul-
MAIS tiplexador com um número maior de entradas.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
162
O circuito apresentado na figura a seguir é o multiplexador de oito entradas 74xx151, que tem como
particularidades uma entrada de habilitação e o fornecimento de duas saídas, normal e invertida (FIGURA
185 e FIGURA 186).
a) b)
ENTRADAS SAÍDAS
I0 I1 I2 I3 I4 I5 I6 I7
E S2 S1 S0 Z Z
H X X X H L S2 0
L L L L I0 I0 S10
74 x x 151
L L L H I1 I1 S0 0
MUX de 8 Entradas
E
L L H K I2 I2
L L H H I3 I3
L H L L I4 I4
L H L H I5 I5
H H L I6 I6
L H H H I7 I7
c)
0 1 2 3 4 5 6 7
9 4 3 2 1 15 14 13 12
S2
10
S1
11
S0
7
E
6 5
Figura 185 - Multiplexador de 8 entradas - a) Tabela verdade b) Símbolo lógico c) Diagrama lógico
Fonte: SENAI - RS
Muitos circuitos digitais possuem entradas que permitem que o circuito funcione ou
VOCÊ não. Essas entradas de controle são chamadas de entradas de habilitação e podem
SABIA? ser o terminal de uma porta lógica ou de uma combinação de portas lógicas.
4 SISTEMAS DIGITAIS
163
=A =A
X =A = X =0
1= B 0=B
=A =A
X =A = X =1
1 =B 0=B
=A =A
X =A = X =1
0 =B 1= B
=A =A
X=A = X =0
0 =B 1= B
Figura 186 - Portas lógicas utilizadas como circuitos de habilitação
Fonte: SENAI - RS
Nos circuitos da Figura 186, a entrada de controle possibilita (habilita / enable) ou impede (desabilita /
disable) que o sinal de entrada alcance a saída. Nota-se que, ao habilitar portas não-inversoras (and e or), a
saída segue exatamente o sinal A, ao passo que, ao habilitar portas inversoras (nand e nor), a saída segue o
inverso de A. Observa-se ainda que, quando desabilitadas, as portas and e nor geram uma saída constante
em nível baixo, enquanto as portas or e nand geram uma saída constante em nível alto.
O circuito integrado 74xx157 é um multiplexador muito útil que possui quatro multiplexadores independentes
de 2 entradas, conforme mostrado na Figura 187. Esse circuito também apresenta uma entrada para habilitação
como o modelo anterior.
a) b) I1a I1b I1c I1d I0a I0b I0c I0d
E S Za Zb Zc Zd S
74 x x 157
H X L L L L E
L L I0a I0b I0c I0d
L H I1a I1b I1c I1d
Za Zb Zc Zd
c)
I1a I0a I1b I0b I1c I0c I1d I0d E S
a b c d
Figura 187 - Multiplexador quádruplo de 2 entradas 74xx157 a)Tabela verdade b) Símbolo lógico c) Diagrama lógico
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
164
SAIBA Pesquisando como associar multiplexadores em série ou paralelo para formar um multi-
MAIS plexador com um número maior de entradas.
ENTRADA
DE DADOS
Z0
Z1
I
Z2
Z3 • A entrada de dados é transmitida
ZN
apenas para uma das saídas, de
acordo com a entrada de código
de seleção.
S0 S1 S2
ENTRADAS DE SELEÇÃO
Figura 188 - Diagrama de um demultiplexador
Fonte: SENAI - RS
Para o projeto de um demultiplexador, devemos lembrar que o número de saídas será determinado
pelo número de entradas de seleção. Assim, para um demultiplexador com n entradas de seleção, ocorrem
2n saídas. Depois, é necessário relacionar um código de seleção com cada saída.
Para enterder melhor como funciona o projeto de um circuito demultiplexador, vamos analisar o
processo de construção de dois demultiplexadores: um circuito básico de 2 entradas (ou canais) de dados
e um circuito para 4 entradas.
Considere o circuito da Figura 189, onde temos um demultiplexador com uma entrada de dados (I), uma
entrada de seleção (S) e duas saídas (O0 e O1). O nível lógico na entrada S determina para qual saída será
transmitido o dado de entrada.
4 SISTEMAS DIGITAIS
165
O0
O1
A expressão para cada uma das saídas é dada pela seguinte fórmula:O0 = I . S e O1 = I. S
Para o projeto de um DEMUX 1:4 deve ser elaborada a tabela verdade, onde cada código de seleção é
relacionado com uma das saídas. A partir da tabela verdade é implementado o circuito. Como exemplo,
apresentamos na Figura 190 o projeto de um demultiplexador 1:4.
a) b)
S0 S1 O0 O1 O2 O3 O0 = I . S0 . S1
0 0 I 0 0 0 O1 = I . S0 . S1
0 1 0 I 0 0
1 0 0 0 I 0 O2 = I . S0 . S1
1 1 0 0 0 I O3 = I . S0 . S1
c)
O0
O1
I
O2
O3
S0 S1
Figura 190 - Projeto de um demultiplexador 1:4 a) Tabela verdade b) Expressões para as saídas c) Circuito implementado
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
166
Demultiplexador de 8 saídas
A Figura 191 apresenta o diagrama lógico de um demultiplexador de 8 canais. Nela, percebemos que
a entrada I é conectada a todas as saídas pelas portas and, mas somente uma dessas portas é acionada
pelo do código de seleção. O circuito mostrado é semelhante a alguns decodificadores de 3 linhas para
8 linhas que serão estudados mais tarde. A diferença entre eles está na entrada de dados I, que deve ser
acrescentada aos demultiplexadores. Desta forma, circuitos decodificadores que apresentam uma entrada
de habilitação podem ser utilizados como demultiplexadores.
a) b)
O0 = I (S2 . S1 . S0 )
S2 S1 S0 O7 O6 O5 O4 O3 O2 O1 O0
O1 = I (S2 . S1 . S0 )
0 0 0 0 0 0 0 0 0 0 I
0 0 1 0 0 0 0 0 0 I 0
O2 = I (S2 . S1 . S0 )
0 1 0 0 0 0 0 0 I 0 0 O3 = I (S2 . S1 . S0 )
0 1 1 0 0 0 0 I 0 0 0 O4 = I (S2 . S1 . S0 )
1 0 0 0 0 0 I 0 0 0 0
O5 = I (S2 . S1 . S0 )
1 0 1 0 0 I 0 0 0 0 0
O6 = I (S2 . S1 . S0 )
1 1 0 0 I 0 0 0 0 0 0
1 1 1 I 0 0 0 0 0 0 0 O7 = I (S2 . S1 . S0 )
c) A2 A1 A0 I (b)
00 01 02 03 04 05 06 07
Figura 191 - Demultiplexador 1:8 a) Tabela verdade b) Expressões para as saídas c) Diagrama lógico
Fonte: SENAI - RS
Na Figura 192 temos o diagrama do circuito integrado 74xx138, um decodificador configurado para ser
usado como um demultiplexador, com o dado de entrada aplicado em uma das entradas de habilitação.
I Vcc
123
E
A2
CÓDIGOS DECODIF/DEMUX
DE A1
74 XX 138
SELEÇÃO
A0
O0 O1 O2 O3 O4 O5 O6 O7
Figura 192 - Circuito 74xx138, Decodificador/Demultiplexador configurado como demultiplexador com a entrada de
habilitação funcionando como entrada de dados
Fonte: SENAI - RS
Demultiplexador de 16 saídas
O circuito integrado 74xx154 é um decodificador hexadecimal que, assim como o 74xx138, pode ser utilizado
como demultiplexador. Para tanto, basta conectar as duas entradas de strobe como a entrada de dados - figura
(a) – ou, ainda, reservar uma das entradas de strobe como entrada de dados e a outra com sua função normal,
conforme mostrado na figura (b). A entrada de strobe funciona como uma entrada de bloqueio. Quando ambas
as entradas estiverem em 0, o circuito funcionará como decodificador/demultiplexador (FIGURA 193).
a) b)
D S0
D S0 D S0D S0
7 7 7 7
C S1
C S1 C S1C S1
4 4 4 4
B x B B x B x
x
A A A A
x (...)
x (...) x (...)
x (...)
1 1 1 1
I G1 I 5 S14
G1 5 S14 I G1 I 5 S14
G1 5 S14
G2 4 G2
S15 4 Strobe G2 4
Strobe G2
S15 4
S15 S15
c) C B A
G2
D
G1
( 20 )
( 22 )
( 19 )
( 21 )
( 18 )
( 17 )
D D C C B B A A G
A
A
B
B
C
C
D A
A
D
B
B
C
C
D
D
G
( 16 )
( 15 )
( 14 )
( 13 )
( 12 )
( 11 )
( 10 )
(9)
(7)
(3)
(2)
(1)
(8)
(6)
(5)
(4)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OUTPUTS
Figura 193 - Circuito 74xx154 configurado como demultiplexador 1:16 a) e b) Configurações para funcionamento como demultiplexador 1:16 c) Diagrama lógico
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
168
A Figura 194 apresenta o circuito integrado 74xx155, que possui dois demultiplexadores, cada um com
4 canais de saída, e entradas tipo strobe diferentes, para permitir a ativação individual dos dois circuitos.
a) b)
ENTRADAS SAÍDAS 7 100
SELEÇÃO STROBE DADO - 1C 4 101
1 1 0 1 0 1 1 1 0 1G X 102
Strobe 103
A2G B X
X X X 0 1 1 1 1 1 Seleção 1
200
201
Dado 2C 5
202
c) A0 A1 (b) 5 203
Ea Ea Eb Eb
(b)
Assim como no caso dos multiplexadores, podem ser encontrados comercialmente demultiplexadores com
várias saídas; no entando, podemos implementar circuitos com um número maior de saídas por meio da associação
de demultiplexadores menores.
CASOS E RELATOS
Casos e relatos: Sr. Rivaldo atua no segmento de exportação e importação de frutas. Sua empresa de
porte médio conta com uma frota considerável de caminhões frigoríficos que permitem transportar frutas
e vegetais para vários locais da América do Sul. Em transportes longos, faz-se necessário um controle
mais rigoroso de temperatura, que pode variar de 2ºC a 10ºC conforme a mercadoria transportada, e
com variação máxima de 1ºC durante o transporte. Após consultar um especialista, Rivaldo considera a
compra de um sistema automatizado para controle de temperatura, e após alguns orçamentos, se depara
com duas propostas com custos bem diferentes.
4 SISTEMAS DIGITAIS
169
Na primeira opção, e bem mais cara, o sistema permite realizar um controle de temperatura entre -55ºC
e 85ºC, com uma resolução de 10 bits. No segundo sistema, o controle é realizado em temperaturas entre
-15ºC e 55ºC, com resolução de 8 bits. Após consulta a um especialista para saber qual sistema atende suas
espectativas, ainda por telefone, o consultor apresentou os seguintes dados: O sistema mais caro trabalha
em 10 bits, e pode ler até 210 = 1024 possibilidades. Isso, aplicado a uma faixa de temperatura de -55ºC a
85ºC, permite detectar variações de aproximadamente 0,14ºC, atendendo a expectativa. O segundo sistema,
de menor custo, permite realizar um controle de -15ºC a 55ºC, detectando variações de aproximadamente
0,28 ºC, e também atende as expectativas. Apesar de ter resolução de 8 bits, este último sistema permite um
ajuste mais preciso para a faixa de temperatura esperada para o interior das câmaras frias dos caminhões,
proporcionando melhor controle para esta aplicação, além de ter um menor custo.
Como dito anteriormente, o mundo é basicamente analógico. Grandezas lidas por sensores variam
constantemente em uma faixa. Temperatura, pressão, vazão, peso, velocidade, luminosidade… inúmeras
grandezas todas de origem analógica. Para processar esta informação analógica em sistemas mais robustos,
precisamos converter estes sinais analógicos em informações digitais.
Da mesma forma, sinais digitais processados precisam, em muitos casos, ser convertidos para informações
analógicas para gerar os efeitos esperados, como controlar a aceleração contínua de um motor de elevador
para que os ocupantes não sintam os trancos, variar a luminosidade de forma controlada em dispositivos de
interface, como displays e iluminações de painéis, ou, ainda, variar a amplitude e a frequência de um sinal
elétrico que é enviado a alto-falantes para produzir o som esperado no volume e na frequência corretos.
Temos, então, a necessidade de converter sinais analógicos em digitais, e sinais digitais em
analógicos (FIGURA 195).
Sinal Analógico Sinal Digital
0101101011
6
4
100 8
50
2
150 10
psi
bar
11
Conversores Conversores
A/D D/A
Com o advento dos Circuitos Integrados (CI), muitos componentes foram desenvolvidos com o objetivo
de realizar a conversão entre os tipos de sinais.Porém, quando realizamos a conversão, os fatores a seguir
devem ser considerados.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
170
Um sinal analógico é um sinal que varia dentro de uma faixa específica e pode ser representado, dentre
outras formas, por variações de corrente ou de tensão (padrões mais utilizados na automação industrial).
Resolução
Observe que a conversão de um sinal analógico (representado pela variação contínua de uma rampa)
para um conversor A/D de 1 bit gera um sinal digital que pode estar ligado ou desligado. Porém, com a
conversão de dois bits, obtemos 22 = 4 estágios diferentes. Com conversão de 3 bits, são 23 = 8 estágios
diferentes. Um conversor A/D de 8 bits pode, então, fornecer 28 = 256 estágios.
Em termos práticos, a resolução de um conversor A/D é dada em bits. Em certos sistemas microcontrolados
ou microprocessados que estudaremos em breve, o processo inverso também ocorre, convertendo uma
combinação binária de alguns bits em um sinal analógico. Quanto mais bits, maiores são as possibilidades
que podem ser obtidas.
Em termos práticos, se usarmos um sensor de temperatura analógico conectado a um conversor A/D de
8 bits, poderemos dividir a temperatura detectada por este sensor em até 256 (28) possíveis valores. Se este
conversor A/D fosse de 10 bits, seriam 1024 (210) possibilidades.
Alguns sistemas que exigem conversões extremamente precisas utilizam conversores A/D de 16 bits.
Faça um cálculo e descubra a quantidade de valores possíveis gerados por este tipo de conversor.
Da mesma forma, se pretendermos controlar a velocidade de um motor usando um conversor D/A de 4
bits, poderemos obter até 24 = 16 velocidades diferentes.
Sabemos que não é uma representação fiel de um sistema analógico; no entanto, quanto maior é a
resolução, mais aproximada é a representação.
4 SISTEMAS DIGITAIS
171
Velocidade de conversão
Muitos conversores utilizam circuitos de carga e descarga de capacitores para fazer a conversão de sinais
analógicos em sinais digitais. Sabemos que um capacitor é um componente que pode armazenar energia
elétrica.
Imagine um pequeno circuito composto por um capacitor e um resistor ligados em paralelo, e submetido
a uma tensão. Quando o circuito é desconectado, o capacitor se descarregará pelo resistor, até que a tensão
elétrica entre seus terminais seja anulada. Quanto maior a tensão à qual este capacitor é submetido, maior a
quantidade de elétrons que ele pode armazenar e, consequentemente, maior o tempo de descarga. Como
os circuitos de conversão precisam mensurar o tempo de descarga, muitos deles utilizam circuitos para
gerar bases de tempo estáveis. Estes circuitos, por mais rápidos que sejam, tomam algum tempo, tornam
a conversão um processo um pouco mais lento do que muitos outros processos digitais combinacionais.
Felizmente, têm surgido circuitos integrados e dispositivos de processamento de sinais extremamente
velozes, permitindo realizar conversões de sinais analógicos em sinais digitais em tempos extremamente
curtos, na ordem dos microsegundos.
Conversores AD são circuitos eletrônicos que podem ser apresentados em várias configurações: como
subcircuito de um circuito integrado com mais funções (caso que segue), como circuito integrado simples
ou, ainda, como parte de um dispositivo que realiza a leitura de sinais analógicos.
O exemplo que você verá na Figura 197 é um conhecido e bastante utilizado conversor A/D de
8 bits, que pode converter até 8 entradas analógicas (In 0 a In 7) em sinais de 8 bits (DB 0 a DB 7). Para
definir que entrada analógica deve ser convertida, os pinos A, B e C (AD0 a AD2) são utilizados para
informar a combinação binária da entrada a ser convertida. Por exemplo, se um sistema desejar ler
dois sensores analógicos, sendo um conectado à entrada In 3, e outro à entrada In 6, deverá ser feito
o procedimento a seguir:
a) para ler In 3, sendo que 3 em binário é 011, devem ser postos em nível alto (5V) somente os
pinos A e B, representando os dois bits menos significativos. Desta forma, após alguns poucos
microssegundos, a saída digital constituída pelos pinos DB0 a DB7 representará a combinação binária
desejada, referente à entrada In 3;
b) para ler In6, basta repetir o processo, porém com os pinos B e C em nível alto, e A em nível
baixo (0V). Desta forma, a combinação binária gerada é 110, que é equivalente a 6 em decimal,
indicando que esta será a porta que realizará a conversão.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
172
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
Este exemplo, além de ilustrar o funcionamento (de forma superficial) de um conversor A/D,
também demonstra o uso de um circuito multiplexador, onde um pequeno número de entradas
digitais é combinado para produzir um número maior de possibilidades, sendo que cada possibilidade
é uma possível ligação entre várias entradas e uma saída.
Na automação industrial e mecatrônica, grande parte dos circuitos de conversão de sinais
analógicos em digital já estão presentes nos sistemas de controle mais complexos. Em Controladores
Circuitos Programáveis, também conhecidos por CPs (ou PCs), são disponibilizadas entradas
analógicas de tensão e corrente (geralmente 0 a 10V, ou 4 a 20mA), podendo variar em quantidade
e resolução entre os fabricantes.
Da mesma forma que circuitos A/D, os circuitos D/A podem se apresentar como circuitos integrados
híbridos, agregando várias funções ou, ainda, partes de um dispositivo ou equipamento.
Um circuito D/A deve converter um conjunto de sinais digitais em um valor analógico.
Isso pode ser obtido, de forma mais genérica, utilizando-se um circuito com amplificador operacional,
conforme a imagem a seguir.
4 SISTEMAS DIGITAIS
173
A Figura 198 mostra a ligação de um amplificador operacional em uma rede resistiva (conhecida
como malha R-2R), onde, com nível de tensão alto (considerando 4.8V para isso) nos pinos Va, Vb, Vc
e Vd, podemos obter tensões de saída variando entre um mínimo e um máximo (no caso de 0 a 6V),
dependendo da combinação dos pinos de entrada.
2R R R R P 2R O 3R A B C D Vpo VS (V)
(Va) (Vb) (Vc) (Vd) (V)
2R 2R 2R 2R - 0 0 0 0 0,00 0,00
+ 0 0 0 1 0,20 0,40
Vs
Vd Vc Vb Va 0 0 1 0 0,40 0,80
0 0 1 1 0,60 1,20
Exemplo: 0 1 0 0 0,80 1,60
Se R = 10k, R2 = 20k 0 1 0 1 1,00 2,00
0 1 1 0 1,20 2,40
R2 (pode ser obrido por dois resistores R em série)
0 1 1 1 1,40 2,80
1 0 0 0 1,60 3,20
Se R = 10k, R3 = 30k 1 0 0 1 1,80 3,60
R3 (pode ser obtido por três resistores R em série) 1 0 1 0 2,00 4,00
1 0 1 1 2,20 4,40
1 1 0 0 2,40 4,80
Vd, Vc, Vb e Va são entradas digitais, Vs é uma 1 1 0 1 2,60 5,20
saída de comportamento próximo as analógico, 1 1 1 0 2,80 5,60
1 1 1 1 3,00 6,00
com resolução de 4 bits (16 possobilidades)
Figura 198 - Conversor D/A de 4 bits
Fonte: SENAI - RS
Este tipo de circuito pode ser útil caso desejemos obter um sinal de saída analógico em um
sistema que só possua sinais de saída digitais, como, por exemplo, um controle de um inversor de
frequência por sinal analógico.
Observe que o circuito acima é ilustrativo e pode ter funcionamento variado conforme modelo
e as características de alimentação do amplificador operacional.
Outra forma de obter uma saída analógica é o uso de PWM aliado a filtros com resistores e
capacitores, criando um conversor DA de 1 bit. Em poucas palavras, por meio de saídas pulsadas
com pulsos mais longos ou mais curtos, em alta frequência, a tensão média armazenada por
um circuito de resistor/capacitor varia. Desta forma, muitos sistemas microcontrolados geram
sinais analógicos.
Em muitos modelos de CPs já é disponibilizada uma ou mais saídas analógicas, que podem
ser utilizadas para integrar a outros dispositivos, sendo muito empregada em integrações com
sistemas de controle de velocidade de motores de corrente alternada AC, conhecidos como
inversores de frequência.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
174
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 . =
O circuito inicial da calculadora (codificador) transforma uma entrada decimal, feita por meio de um
teclado, em um código binário para que o circuito interno (processador aritmético) processe e realize a
operação desejada. O resultado da operação em binário é transformado por um circuito (decodificador)
em uma saída decimal, em uma forma compatível para que o mostrador apresente os algarismos.
É importante, entretanto, ressaltar que os termos codificador e decodificador se diferenciam em
função do referencial (qual o código de entrada e qual o código de saída), sendo comum o uso do termo
decodificador para ambas as operações. Muitas vezes utilizamos o termo conversores de código para evitar
problemas com a definição dos códigos.
SAIBA Discuta com seus colegas sobre a frase a seguir: “Existem 10 tipos de pessoas: as que
MAIS conhecem números binários e as que não conhecem números binários.
Imagine que todo este texto que você está lendo foi gerado e armazenado em um computador.
Cada letra do texto é representada, em uma tabela padronizada, por um código binário, que é
armazenado em um dispositivo digital.
A tabela ASCII (acrônimo para American Standard Code for Information Interchange) é um
VOCÊ padrão de codificação de caracteres de oito bits baseada no alfabeto inglês, onde os códi-
SABIA? gos representam caracteres? Exemplo: Na tabela ASCII, a letra H maiúscula e representada
pelo código 72, que em binário é 01001000.
4 SISTEMAS DIGITAIS
175
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.
Durante a evolução do ser humano foram utilizadas várias formas de representação numérica. Números
romanos ainda são usados para representar séculos. Os sumérios usavam bases distintas na mesma
representação numérica, empregando símbolos para múltiplos de 5, 12 e 60.
Prevalecendo o sistema decimal, que utiliza 10 dígitos (de 0 a 9), provavelmente pela adequação
à soma de dedos das mãos. O uso da representação de números maiores acabou utilizando-se da
extensão do sistema numérico decimal.
Porém, os sitemas digitais requerem uma “reinvenção” na forma de contar. Computadores não possuem
10 dedos, como os seres humanos, mas possuem características elétricas onde o sistema binário é o melhor
representado.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
176
Durante a conversão de números decimais para binário, e vice-versa, encontramos algumas formas
para fazê-lo de forma mais fácil. Se cada algarismo de um número decimal é representado por seu
binário equivalente, o resultado é o código BCD (Binary-coded decimal). Uma vez que o sistema decimal
é composto de 10 dígitos, quatro bits são necessários para a codificação (24 bits = 16 possibilidades).
Existem diversos códigos BCD, o mais comum é BCD 8421. Os números indicam os valores dos algarismos
de acordo com sua posição (23, 22, 21, 20). Entre os vários outros códigos temos BCD 7421, BCD 5211 e o BCD
2421. A conversão destes códigos para o sistema decimal é análoga à conversão do BCD 8421 (FIGURA 200).
Ex.: (874)10
8 7 4 (874)10 = (100001110100)BCD
(874)10 = (1101100010)2
1000 0111 0100
Conversão do número 874 e um sistema BCD 8421
Figura 200 - Código BCD (Binary Coded Decimal)
Fonte: SENAI - RS
a
f g b
e c
d
Figura 201 - Display de 7 segmentos
Fonte: SENAI - RS
00
01
E3
02
E2
ENABLE
E1 03
SAÍDA
04
A0 05
ENTRADAS DE A2 06
SELEÇÃO
07
A1
Alguns decodificadores possuem uma ou mais entradas enable (habilitação), que são utilizadas para
controlar a operação do circuito. O código de entrada é aplicado em A2 A1 A0 sendo A2 o MSB (bit mais
significativo). Analisando o diagrama é possível observar que as saídas são ativas em nível baixo, isto é, o
código de entrada ativará a saída correspondente e essa passará a ter nível lógico baixo; as demais saídas
permanecem em alto (FIGURA 203).
Vcc
123
E
A2
CÓDIGOS
A1 DECODIF/DEMUX
DE
74 XX 138
SELEÇÃO
A0
O0 O1 O2 O3 O4 O5 O6 O7
E1 E2 E3 SAÍDAS
Figura 203 - Decodificador 74xx138, diagrama lógico e tabela verdade em relação às entradas de habilitação (enable)
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
178
Saídas
Entradas
S0
E0 S1
S2
E1
S3
Circuito
Controlador Decodificador Motor de passo
amplificador
Figura 204 - Esquema de ligação de um decodificador de 2 bits para controlar até 4
saídas, usadas em um motor de passo de 4 bobinas
Fonte: SENAI - RS
Observe que, sem o uso do decodificador, seriam necessárias 4 saídas digitais para o controle do motor
de passo. Portanto, uma das principais aplicações de codificadores e decodificadores é para a otimização
de entradas e saídas digitais de sistemas de controle.
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
Imagine a seguinte situação: uma chave seletora de 8 posições em um painel de um equipamento. Cada
posição da chave gera um sinal e uma saída (FIGURA 206).
4 SISTEMAS DIGITAIS
179
S4
S3 S5
S2 S6
S1 S7
S0
24V
comum
Chave Seletora
Figura 206 - Painel de equipamento com chave seletora de 8 posições
Fonte: SENAI - RS
Observando a Figura 206, necessitariamos 8 entradas digitais para ligar esta chave diretamente a
um dispositivo de controle, no caso um CP. Como as entradas digitais são limitadas (finitas), utilizar
8 entradas digitais pode ser um problema (FIGURA 207).
S4
S3 S5
S2 S6
Codificador
S1 S7
S0
24V
comum
Chave Seletora
Figura 207 - CP usando 3 entradas digitais para ler sinal de 8 diferentes combinações possíveis
Fonte: SENAI - RS
Considere o codificador de 8 para 3 linhas mostrado na Figura 208, em que o acionamento de uma das 8
entradas gera um código de 3 bits na saída (TABELA 14).
A0
A1
A2 O0 (LSB)
A3
A4 O1
A5
A6 O2 (MSB)
A7
Figura 208 - Codificador de 8 para 3 linhas
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
180
A0 A1 A2 A3 A4 A5 A6 A7 O2 O1 O0
X 1 1 1 1 1 1 1 0 0 0
X 0 1 1 1 1 1 1 0 0 1
X 1 0 1 1 1 1 1 0 1 0
X 1 1 0 1 1 1 1 0 1 1
X 1 1 1 0 1 1 1 1 0 0
X 1 1 1 1 0 1 1 1 0 1
X 1 1 1 1 1 0 1 1 1 0
X 1 1 1 1 1 1 0 1 1 1
Fonte: SENAI - RS
Pelo circuito, é fácil verificar que qualquer uma das entradas produz um código binário na saída, correspondente
a ela. Mas o que acontecerá se duas ou mais entradas forem acionadas simultaneamente? Esta é uma desvantagem
dos circuitos codificadores simples. Uma versão modificada, denominada codificador de prioridade, inclui uma
lógica que garante que, quando duas ou mais entradas forem ativadas ao mesmo tempo, o código na saída
corresponderá à entrada de número mais alto.
O primeiro flip-flop eletrônico foi inventado em 1919, por William Eccles e F. W. Jordan.
VOCÊ Ele foi inicialmente chamado de circuito de disparo Eccles-Jordan, porém o nome flip-
SABIA? -flop é devido ao som produzido em um alto-falante conectado à saída do circuito.
4 SISTEMAS DIGITAIS
181
A lógica reset-set é a mais comum. Uma entrada S (set) é usada para ativar a saída, e uma entrada R (reset)
é utilizada para desativá-la.
O circuito para um flip-flop RS assíncrono (sem clock) pode ser implementado utilizando-se portas nor,
como mostrado na Figura 209.
a) b)
S Q
1 R Q
2 Q S Q
R
Figura 209 - Flip-flop RS a) implementação do circuito com portas NOR b) símbolo lógico
Fonte: SENAI - RS
Fonte: SENAI - RS
Outro circuito possível para a construção de um flip-flop RS assíncrono pode ser implementado
utilizando-se portas NAND, como mostrado na Figura 210.
a) b)
S Q R Q
Q S Q
R
Figura 210 - Flip-flop RS a) implementação do circuito com portas NAND b) símbolo lógico
Fonte: SENAI - RS
A análise deste circuito pode ser feita de forma análoga à realizada anteriormente, entretanto devemos
atentar para o fato de que neste circuito as entradas são invertidas, e a inversão faz com que tenhamos uma
tabela verdade para o circuito como a apresentada na Tabela 16.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
182
Fonte: SENAI - RS
O flip-flop RS síncrono é assim chamado porque, além das entradas reset (R) e set (S), possui uma
terceira entrada chamada clock (CLK), por ela um sinal externo determina o instante em que as saídas serão
atualizadas. O circuito para esse flip-flop é apresentado na Figura 211.
a) b)
S
Q R Q
CLK CLK
Q S Q
R
Figura 211 - Flip-flop RS síncrono a) implementação do circuito com portas lógicas b) símbolo lógico
Fonte: SENAI - RS
Analisando o circuito podemos observar que, quando a entrada CLK está em nível lógico baixo, as saídas
permanecem inalteradas, independentemente do valor colocado nas entradas R e S. Isto é, quando CLK =
0, as entradas R e S são inibidas e, por essa razão, a operação é chamada de inibição.
Entretanto, quando a entrada CLK está em nível lógico alto, temos o funcionamento de um flip-flop RS
conforme estudado anteriormente, com as entradas R e S, juntamente com o estado anterior das saídas,
definindo o estado atual das saídas.
Ou seja, a atualização do estado das saídas é sincronizada pelo sinal de clock (CLK), o qual determina
quando as entradas R e S podem atuar. A tabela verdade resume o funcionamento desse circuito
lógico (TABELA 17).
Tabela 17: Verdade para o flip-flop síncrono
4.7.3 FLIP-FLOP JK
O flip-flop RS estudado anteriormente apresenta como grande desvantagem a proibição para uma
dada combinação das entradas R e S. Com o objetivo de corrigir esse problema foi implementado
o flip-flop JK, cujo diagrama lógico é mostrado abaixo. Esse circuito é uma variação do flip-flop RS
síncrono, onde foi realizada uma nova ligação (realimentação) entre as saídas e as portas de entrada
(FIGURA 212).
J
(set) Q
CLK
Q
K
(reset)
O flip-flop JK mestre-escravo é uma implementação que visa eliminar a oscilação no circuito anterior
para a condição J = 1 e K = 1. O circuito consiste em dois flip-flops RS síncronos conectados em cascata, com
uma porta inversora entre o clock do primeiro flip-flop (mestre) e o clock do segundo flip-flop (escravo),
além de uma segunda realimentação entre as saídas e as portas de entrada. Esse circuito é apresentado na
Figura 213.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
184
Mestre Escravo
J x
Q
CLK
CLK
Q
K y
Para entender por que a oscilação não ocorre neste circuito como no caso anterior, precisamos analisar seu
funcionamento para a condição J = 1 e K = 1.
Quando a entrada de clock do circuito está em nível lógico alto (CLK = 1), o flip-flop mestre está habilitado e as
saídas intermediárias X e Y se complementam. Entretanto o clock do flip-flop escravo está em nível lógico baixo,
o que faz com que esteja desabilitado. Portanto, as saídas não sofrem alteração e a realimentação delas com a
entrada do circuito não provoca mais alterações em X e Y.
Quando a entrada de clock do circuito está em nível lógico baixo (CLK = 0), o flip-flop escravo está habilitado
e as saídas Q e Q sofrem alteração. Entretanto, como o flip-flop mestre está desabilitado, a alteração nas entradas
provocada pela realimentação não tem efeito sobre as saídas X e Y.
Ou seja, na condição J = 1 e K = 1, as saídas X e Y alteram-se somente na subida do pulso de clock,
enquanto que as saídas Q e se alteram somente na descida do pulso de clock. Na Tabela 19, é apresentada
a tabela verdade para um flip-flop mestre escravo, e na Figura 214, seu símbolo lógico.
Tabela 19: Verdade para o flip-flop RS Mestre-Escravo
ENTRADAS SAÍDAS OBSERVAÇÕES
CLK J K Q Q
0 X X Qanterior Q anterior As saídas permanecem inalteradas.
J Q
CLK
K Q
Figura 214 - Símbolo lógico de um flip-flop JK mestre-escravo
Fonte: SENAI - RS
VOCÊ Um flip-flop síncrono pode ser sensível à borda de descida ou à borda de subida.
SABIA?
4 SISTEMAS DIGITAIS
185
Existem modelos de flip-flop cujas saídas respondem à combinação das entradas quando ocorre a
subida do pulso de clock (transição positiva), e outros modelos (como o demonstrado anteriormente) são
sensíveis à borda de descida do pulso de clock (transição negativa).
A diferença entre os flip-flops pode ser observada na entrada de clock no símbolo lógico do componente
(FIGURA 215).
J Q J Q
CLK CLK
K Q K Q
Transição Transição
negativa positiva
Figura 215 - Flip-flop sensível à borda
Fonte: SENAI - RS
A inclusão das entradas preset (PR) e clear (CL) no flip-flop JK mestre-escravo tem como efeito a
determinação do valor lógico das saídas, independente da combinação das entradas J e K e do pulso de
clock. Na Figura 216 é apresentado o circuito para esse flip-flop.
a) PR
b)
PR
J x
Q
J Q
CLK CLK
CLK
K y
Q K Q
CL
CL
Figura 216 - Flip-flop JK mestre-escavo com entradas Preset e Clear a) implementação do circuito com
portas lógicas b) símbolo lógico
Fonte: SENAI - RS
A tabela verdade para esse circuito pode ser escrita como a Tabela 20. É importante observar, para esse
circuito, que a ativação simultânea das entradas de preset e clear (PR = 0 e CL = 0) gera um novo erro lógico
nas saídas e essa combinação deve ser evitada.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
186
4.7.6 FLIP-FLOP D
O flip-flop tipo D é uma variação do JK. Esse circuito possui uma única entrada de dados e uma entrada
de clock. Para a implementação de um flip-flop tipo D a partir de um JK, basta acrescentar uma porta not à
entrada K. Essa inversora será conectada à entrada J do flip-flop, como mostrado na Figura 217 e na Tabela 21.
a) b)
D J Q D Q
CLK CLK
K Q Q
Figura 217 - Flip-flop tipo D a) implementação do circuito a partir de um flip-flop JK b) símbolo lógico
Fonte: SENAI - RS
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.
O flip-flop tipo T é outra variação do JK. Assim como o modelo anterior, esse circuito também possui
uma única entrada de dados e uma entrada de clock. Para a implementação de um flip-flop tipo T a partir
de um JK, basta interligar as entradas J e K, como mostrado na Figura 218.
4 SISTEMAS DIGITAIS
187
a) b)
T J Q T Q
CLK CLK
K Q Q
Figura 218 - Flip-flop tipo T a) implementação do circuito a partir de um flip-flop JK b) símbolo lógico
Fonte: SENAI - RS
Uma aplicação prática de um circuito de Flip-Flop (T) é adequar um botão de pulso (ou circuito que gere
pulso) em uma lógica liga/desliga (FIGURA 219).
5V
Diodo
Relé
Botão
14
1
R1
13
2
1k5 Transistor
12
3
NPN
11
4
10
5
6
9
7
Figura 219 - Circuito com Flip-Flop J-K aplicado à configuração de Toggle. CI utilizado: 74xx73
Fonte: SENAI - RS
Analisando o circuito implementado, com base no funcionamento de um flip-flop JK, podemos obter a
seguinte tabela verdade (TABELA 22).
Tabela 22: Verdade para o flip-flop tipo T
ENTRADAS SAÍDAS
CLK T Q Q
0 Qanterior Q anterior
1 Q anterior Qanterior
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
188
Na Tabela 23, são apresentados alguns exemplos de modelos comerciais de flip-flop. É importante lembrar
que, antes de utilizar um modelo comercial, devemos sempre consultar o datasheet do componente para
conhecer quais os níveis lógicos de acionamento das entradas, bem como suas funções e controles adicionais.
Tabela 23: Modelos comerciais de flip-flop
MODELO DESCRIÇÃO RESUMIDA
74xx72 Flip-flip JK mestre-escravo com preset e clear
74xx73 Flip-flip JK com clear
74xx74 Flip-flip tipo D com preset e clear
74xx107 Flip-flip JK com clear
74xx109 Flip-flip JK com preset e clear
74xx111 Flip-flip JK mestre-escravo com preset e clear
74xx112 Flip-flip JK com preset e clear
74xx113 Flip-flip JK com preset
74xx114 Flip-flip JK com preset e clear
74xx171 Flip-flip tipo D com clear
74xx175 Flip-flip tipo D com clear
74xx273 Flip-flip tipo D com clear
74xx276 Flip-flip JK
74xx279 Flip-flip RS
74xx374 Flip-flip tipo D
Fonte: SENAI - RS
4 SISTEMAS DIGITAIS
189
RECAPITULANDO
Neste capítulo vimos que enquanto na Eletrônica Analógica temos como principal objetivo controlar
grandezas elétricas como corrente e tensão, na Eletrônica Digital o principal enfoque é a representação
da informação e de lógicas binárias em circuitos combinacionais e sequenciais.
A lógica utilizada em sistemas digitais é a lógica booleana, criada por George Boole, onde utilizamos
operadores “e” (and), “ou” (or) e “não” (not) para construir expressões. Operadores derivados (xor, nor, nand,
xnor) também permitem operações entre operadores. Os operandos são valores lógicos constituídos de
variáveis binárias ou constantes, podendo valer 0 (falso) ou 1 (verdadeiro). Componentes eletrônicos
que implementam comportamento destes operadores da lógica booleana são chamados de portas
lógicas, e combinados podem gerar circuitos mais complexos, como codificadores, decodificadores,
multiplexadores, demultiplexadores, processadores e microcontroladores, dentre outros. Todo circuito
lógico pode ser representado em uma tabela que relaciona todos os possíveis valores lógicos das entradas
e saídas, sendo ela chamada de “tabela verdade”.
Circuitos combinacionais são os que apresentam saídas definidas em função das entradas independente
da ordem com que as entradas mudam. Circuitos sequenciais, por sua vez, dependem da ordem com que
as entradas são acionadas para definir sua saída. Circutos que realizam a conversão de sinais digitais em
sinais analógicos são conhecidos por conversores D/A, e os que realizam a conversão de sinais analógicos
em digitais são conhecidos por conversores A/D. Na automação industrial e na mecatrônica, circuitos
combinacionais podem ser utilizados para realizar conversões, codificar e decodificar sinais, aumentar
as possibilidades de leitura de sinais usando técnicas de multiplexação e demultiplexação, e permitir
a construção de sistemas de controle programáveis por meio de circuitos digitais sequenciais, como
microcontroladores e microprocessadores.
Microcontroladores
Hoje, uma máquina de lavar roupas moderna possui seus sensores e atuadores interligados a
um computador central, na forma de uma placa de circuito impresso com alguns componentes
pequenos e de baixo custo. Praticamente não há trabalho mecânico nesta placa. A sequência
das atividades é determinada por um programa (software) gravado em circuitos computacionais
baratos, permitindo muito mais flexibilidade aos sistemas, agregando funcionalidades que antes
não existiam, de menor tamanho, menor consumo de energia, mais rápidos, diminuindo também,
na maioria dos casos, o custo de fabricação.
Na indústria, sistemas computacionais são utilizados nos mais diversos segmentos, desde controlar
o movimento de uma esteira para que ela mantenha uma velocidade constante até grandes sistemas
logísticos que regulam o fluxo de matéria-prima e produtos de forma a otimizar o transporte e
economizar energia.
Portanto, a Automação Industrial e a Mecatrônica moderna são dependente de circuitos
computacionais compostos de pequenos componentes eletrônicos, onde são ligados os sensores e
atuadores, e onde instalamos o programa (software) que determinará as regras de funcionamento.
Inicialmente, estes circuitos eram produzidos sob medida, dependendo das necessidades de
cada automação. Com o tempo, alguns fabricantes passaram a produzir sistemas padronizados de
automação. Hoje, os PCs (ou CPs) são equipamentos que seguem alguns padrões, sendo oferecidos
em várias versões, variando conforme a quantidade e os tipos de entradas e saídas, a capacidade de
processamento, a velocidade e outras características.
Embora sejam largamente usados, os CPs são relativamente caros e podem apresentar limitações
de velocidade e tamanho. Nestes casos, ainda são necessárias implementações de sistemas
automatizados sob medida.
SAIBA Pesquisando na internet sobre a aplicação dos microprocessadores 8080 e Z80, e a diferença
MAIS entre eles.
Mas, como um mesmo componente poderia ser tão versátil? Como um mesmo processador
poderia ser usado em equipamentos com funcionalidades tão diferentes? O microprocessador, de
forma geral, é um componente eletrônico capaz de ler e gerar sinais elétricos de acordo com uma
lista de instruções conhecida como programa, e os equipamentos automatizados são basicamente
compostos de sensores e atuadores. Como a automação destes equipamentos é definida pelas
ações efetuadas nos atuadores em função das informações coletadas pelos sensores, bastava
realizar a integração do microprocessador com estes sensores e atuadores e programá-lo com o
comportamento necessário.
Analisando assim até parece fácil. O problema é que, para criar um sistema de automação, são necessárias
algumas capacidades ao ser humano, como:
a) conhecer Eletrônica (Analógica e Digital);
b) conhecer técnicas de programação. Criar programas eficientes e sem falhas;
c) ser capaz de integrar os sensores e atuadores (seus sinais, níveis de tensão, corrente etc.) aos circuitos
computacionais;
d) ser capaz de implementar circuitos de apoio, utilizados para temporizar, converter sinais, codificar
sinais etc.
Já vimos um pouco dos conceitos mais importantes da Eletrônica Analógica e Digital, e
conhecemos alguns sensores e algumas estratégias de acionamento que podem ser utilizadas por
circuitos de controle. Vimos também alguns circuitos digitais que podem ser utilizados com circuitos
de apoio, como codificadores, multiplexadores, conversores etc.
Neste capítulo vamos percorrer mais uma parte deste caminho e, junto aos conteúdos estudados
em outros capítulos e unidades curriculares, buscaremos um entendimento mais amplo sobre o
tema. Nosso foco será no estudo de técnicas de programação, voltado ao desenvolvimento de
sistemas de automação utilizando microcontroladores.
5.2 MICROCONTROLADOR
Com o passar dos anos, os circuitos computacionais ficaram cada vez mais baratos, rápidos e
poderosos. Os microprocessadores acabaram sendo aplicados cada vez mais em sistemas onde o
processamento da informação e cálculos complexos eram seu principal objetivo, sendo empregados
em equipamentos onde a informação é o foco principal. Um computador moderno utiliza mais de
um processador para realizar suas tarefas de forma eficiente. Aparelhos de telefonia móvel são
verdadeiros computadores de bolso, agregando muitas funcionalidades.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
194
Importante: Da mesma forma que podemos realizar multiplicação usando somas sucessivas,
um microcontrolador com menos instruções pode realizar instruções mais complexas através da
execução de várias instruções mais simples. Isso, porém, toma tempo e memória. Esta é a vantagem
de microcontroladores com mais instruções (FIGURA 220).
bits
32-
PIC32
dsPIC33
b its
16- dsPIC30
Funcionalidade
PIC24H
PIC24F
s
8-bit PIC18
PIC16
PIC12
PIC10
Performance
Dada a diversidade de modelos, a seguir vamos listar os recursos inerentes aos microcontroladores
e suas respectivas definições.
a) memória ROM - um dos principais recursos de um microcontrolador, é a memória onde gravamos
o programa. Embora a sigla ROM signifique READ ONLY MEMORY (memória somente de leitura), em
alguns modelos esta memória pode ser apagada e regravada durante o procedimento de programação
do microcontrolador. Modelos de menor custo permitem que esta memória só seja gravada uma única
vez. Felizmente, os microcontroladores PIC que possuem F no nome (como PIC16F877A, PIC18F4520,
PIC16F628) podem ser gravados e regravados uma grande quantidade de vezes;
b) memória RAM - responsável pelo armazenamento temporário de dados, esta memória
armazena variáveis com dados e informações. É uma memória de acesso rápido, porém volátil; ou
seja, seu conteúdo é perdido quando o microcontrolador é desligado. Enquanto computadores
possuem gigabytes de memória RAM, um microcontrolador possui, internamente, alguns bytes
(podendo chegar a alguns Kbytes em modelos maiores);
c) entradas e saídas digitais (I/Os) - as entradas e saídas digitais são os pinos que podem ser usados
como saída (outputs), podendo ser ativados ou desativados pelo programa durante sua execução, ou
pelas entradas (inputs) onde deverão estar conectados os periféricos de entrada (sensores). Geralmente
um microcontrolador é bastante flexível neste ponto, onde um terminal (pino) pode ser configurado como
entrada ou como saída, podendo ainda variar seu comportamento durante a execução do programa.
Alguns microcontroladores possuem mais IOs (leia “aiôs”, que significa Inputs/Outputs = entradas/saídas)
do que outros, sendo importante observar o número necessário e as estratégias de conexão com os
periféricos para escolher um microcontrolador que ofereça uma boa relação custo/benefício;
d) conversor A/D - como os já estudados conversores digitais, geralmente um microcontrolador
pode ter este recurso integrado no próprio componente, podendo ainda estar associado a um circuito
multiplexador, permitindo que vários pinos sejam utilizados para a leitura de sinais analógicos.
Alguns microcontroladores podem diferir de outros em questões de velocidade e resolução da
conversão, e também no número de entradas e de canais multiplexados;
e) saídas PWM (Pulse Wide Modulation) - são destinadas a gerar, por meio de onda quadrada pulsante,
sinais em que o tempo do sinal em nível alto varia de forma inversamente proporcional ao sinal de nível
baixo, mantendo uma saída com frequência constante, porém com tensão média variável. Desta forma,
em altas frequências de trabalho podemos usar um microcontrolador e sua saída PWM para o controle de
motores de corrente contínua e controle de luminosidade, dentre outros;
f ) barramento de comunicação - são entradas e saídas digitais que atuam em conjunto, de forma
a atender um determinado padrão (protocolo) de comunicação em meio físico. São exemplos de
barramentos de comunicação: CAN, USB, LIN, SPI, USART, I2C. Um dos barramentos mais utilizados
é o USART, geralmente disponível nos microcontroladores, permitindo uma comunicação com
periféricos através de portas seriais, como RS232. CAN é muito utilizado na indústria automotiva.
SPI e I2C são muito usados para comunicar com outros circuitos integrados, como, por exemplo,
para fazer com que o microcontrolador troque dados com uma memória externa;
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
198
g) timers - são temporizadores, que consistem em áreas de memória cujos dados aumentam ou
diminuem sequencialmente com uma velocidade constante, geralmente configurável. Sabendo a
velocidade em que estes dados mudam, é possível criar linhas de programa onde pode ser feita a
comparação de valores com estes dados, de forma a detectar quando um determinado período de
tempo passou, ou de medir tempo entre dois eventos distintos. Para uso dos timers são necessários
conhecimentos específicos de programação e das características do recurso físico, que podem variar
conforme o modelo de microcontrolador utilizado;
h) EEPROM - da mesma forma que a memória ROM, esta memória é não-volátil e os dados nela
armazenados não são perdidos quando o microcontrolador é desligado. Existe um limite de gravações
relacionado à vida útil desta memória, mas geralmente a quantidade de gravações é elevada.
Nem todos os microcontroladores possuem todas as funções acima citadas.
Cabe ao desenvolvedor escolher um microcontrolador adequado, analisando também o custo e a
disponibilidade do componente.
Devido ao custo, à disponibilidade, e à quantidade de recursos, utilizaremos o microcontrolador
PIC16F877A em nosso percurso de estudo. Suas principais características são a Memória ROM Flash,
regravável, de 8 mil linhas de instruções + dados (cada instrução + dado = 14 bits). Tem capacidade
de operar a 20 MHz, conseguindo até 5 MIPS (5 milhões de instruções por segundo). Possui RAM de
368 bytes, EEPROM de 256 bytes, Interface USART, SPI, I2C. Possui comparador e duas saídas PWM
com 10 bits de resolução, dois timers de 8 bits, e um timer de 16 bits, sendo que um timer de 8 bits
pode ser usado com a função de contador rápido. Possui um conversor AD com 8 canais e limite de
corrente de 25mA por pino de I/O. Permite depuração no circuito, e que o programa acesse a própria
área de programa, tornando possível a autoprogramação usada em sistemas de “bootloader”.
O microcontrolador PIC16F877A é apresentado fisicamente em configuração de 40 pinos. Pode ser
encontrado em diversos encapsulamentos (FIGURA 221).
QFP PLCC
PDIP
Como citado anteriormente, vamos nos ater à versão DIP (ou PDIP), pois ela é mais fácil de
manipular e permite uso em placas protótipos, sendo também mais facilmente encontrada em lojas
de componentes eletrônicos (FIGURA 222).
5V (RUN)
PROG (13,4V)
CRISTAL RESET (OV)
5V
(MHz)
PORTC PORTE PORTA
E2
E1
E0
A5
A4
A3
A2
A1
A0
D1
D0
C3
C2
C1
C0
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
PIC16F877
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
D2
D3
C4
C5
C6
C7
D4
D5
D6
D7
B0
B1
B2
B3
B4
B5
B6
B7
PORTC PORTB
PORTD 5V
Figura 222 - Microcontrolador PIC16F877A I/P e seus principais pinos de alimentação, conexão e I/O
Fonte: SENAI - RS
FIQUE Enquanto na Automação Industrial a maior parte dos dispositivos sensores e atua-
ALERTA dores atuam em padrões digitais de tensão 24V, nos microcontroladores os níveis de
tensão não podem ultrapassar 5V, sob risco de danos permanentes ao componente.
Alguns pinos podem ainda ser associados a outras funções além de serem entradas ou saídas digitais.
No caso do microcontrolador PIC16F877A, vamos nos ater às principais funções de apoio, como entradas
analógicas, contador rápido, saídas PWM, comunicação RS232 (usart) e pinos de gravação ICSP. Outras
funções podem existir e devem ser estudadas de forma mais aprofundada no momento que você se sentir
mais confiante (FIGURA 223).
5V (RUN)
PROG (13,4V)
5V RESET (OV)
CRISTAL(MHz)
PWM
CONT
AN7
AN6
AN5
AN4
AN3
AN2
AN1
ANO
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
PIC16F877
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
GRAVADOR
TX (RS232)
RX (RS232)
5V ICSP
Nessa figura, podemos observar que os pinos 2 a 10 (exceto o pino 6) são entradas analógicas(AN),
e podem ser usados para detectar uma variação de tensão entre 0V e 5V, transformando esta variação
em uma informação binária de 10 bits.
Os pinos 39 e 40 são os pinos usados na gravação do microcontrolador através do método
ICSP, que será estudado a seguir. Estes pinos são utilizados, junto ao pino 1, para programar o
microcontrolador.
Os pinos 25 e 26 (RX, TX) são usados para comunicação serial padrão RS232.
Os pinos 16 e 17 são pinos geradores PWM, que é similar a uma saída analógica. Muito útil para
controle de velocidade de motores, por exemplo.
O pino 6 é um pino usado para contagem rápida, sendo configurável para realizar o incremento
de um timer interno pela detecção de pulsos.
Tradicionalmente, não conhecemos os pinos do microcontrolador por seu número, mas por sua
identificação de I/0.
Se ligarmos uma chave táctil ao pino 20, e um LED ao pino 21, podemos dizer que temos a I/O
D1 (ou RD1) configurada como entrada, conectada à chave táctil, e o pino D2 (ou RD2) configurado
como saída conectado ao LED.
Programa executável
em linguagem de máquina
Compilador
*.HEX
Software programador
Programa fonte PIC
C++
Compter
PIC
*.C
Circuito programador
Microcontrolador Aplicação
*** ***
PC
Programador
Figura 224 - Diagrama que demonstra o caminho percorrido por um programa, desde sua criação até a gravação no microcontrolador de destino, e seu uso no
equipamento
Fonte: SENAI - RS
5 MICROCONTROLADORES
203
Os microcontroladores da Microchip têm uma programação facilitada por contar com o recurso
conhecido como ICSP. Mas, o que é ICSP?
Para facilitar o entendimento, vamos imaginar que o PIC16F877A seja utilizado em um controlador de
temperatura, similar ao da Figura 225.
A empresa que produz este equipamento deve fabricar (montar) as placas de circuito impresso e seus
componentes. Devido à quantidade de produtos, o processo é automatizado.
Porém, o microcontrolador que definirá as funcionalidades do produto precisa ser programado.
Programar estes microcontroladores antes da montagem é um processo que envolve a manipulação
do componente e pode gerar erros e atrasos no processo produtivo.
Para estes casos, a disponibilização dos pinos de gravação em um conector especial na placa
de circuito impresso principal do produto permite que o microcontrolador seja instalado no
equipamento, recebendo os dados do programa em uma etapa posterior.
Uma das principais vantagens é a possibilidade de transferir programas diferentes sem a
necessidade de remoção do microcontrolador do equipamento, tornando mais fácil a manutenção
do produto.
A tecnologia que permite esta gravação no circuito é chamada de In-Circuit Serial Programming
(ICSP). Porém, para realizar essa gravação no PIC16F877A, precisamos conectar os pinos 39 e 40
(PGD e PGC) e o pino 1 (MCLR) ao computador por meio de um circuito de interface. O circuito
de interface deve realizar o transporte dos dados digitais, sendo controlado por um programa
existente no computador de origem, oferecendo segurança para evitar que a conexão entre o
microcontrolador e o PC possa danificar um dos equipamentos.
Alguns fabricantes disponibilizam um conjunto de hardware e softwares, como solução completa
para a programação de microcontroladores.Algumas dessas soluções permitem ir além da gravação
do microcontrolador, permitindo a depuração, que é o ato de controlar as instruções e ler os dados
do microcontrolador em tempo de execução. Esta estratégia é muito interessante quando estamos
desenvolvendo uma aplicação, pois permite ao desenvolvedor observar por quais linhas do programa
o fluxo de execução está passando, inserir pontos de parada (breakpoints) para que o programa pare
quando chegar em determinada linha, ou, ainda, verificar o valor de variáveis durante sua execução.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
204
Como grande parte destas soluções oferecem custos que podem ser considerados altos para
alguns estudantes, algumas pessoas acabaram criando softwares e circuitos de gravação e
disponibilizando estes circuitos em páginas na internet.
Entre esses circuitos de gravação, podemos citar o gravador TAIT, cujo circuito desenvolvido em
1996 permitiu a muitos estudantes construírem gravadores de baixíssimo custo (menos de 10 dólares)
e, por meio de programas instalados em PCs (computadores pessoais), tornou-se viável o uso de
microcontroladores PIC em projetos de estudantes com um investimento inicial baixo (FIGURA 226).
Computador
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
Nem sempre podemos contar com o circuito programador adequado, pois existem problemas
relativos ao custo, à dificuldade em implementar o circuito ou à falta de interfaces compatíveis.
Nestes casos, há uma técnica que pode ser usada, principalmente para fins didáticos, conhecida
como bootloader.
5 MICROCONTROLADORES
205
5.4 ALGORITMOS
Algoritmos é o termo usado para definir uma sequência finita de instruções que pertencem a um
conjunto também finito e não ambíguo. As instruções devem ser executadas em um período de tempo
finito e com uma quantidade finita de esforço.
Em outras palavras, algoritmo é uma lista de procedimentos bem definidos que devem ser executadas
por algo.
Muito importante: as instruções usadas em um algoritmo devem ser não-ambíguas. Existe ambiguidade quando
uma determinada informação tem mais de um sentido, podendo ser interpretada de várias formas diferentes.
Por exemplo, se você ouvir alguém falando a frase “prefiro lima”, o que você pensa?
Bom... se a pessoa que falou isso estiver na frente de uma banca de frutas? E se a pessoa estiver na frente
de uma agência de turismo, olhando pacotes de viagens para o exterior? Ou, ainda, se estiver na frente de
uma ferragem, escolhendo ferramentas? Ou de uma loja de tintas, escolhendo a cor para pintar uma parede?
Pois bem. O termo “lima” pode definir uma cor, uma ferramenta, uma fruta, uma cidade, dentre outras
coisas que pode significar. Os seres humanos utilizam o contexto para captar o sentido da frase, observando
onde a pessoa está, sobre o que está falando etc.
Os computadores “ainda” não são capazes de fazer isso, e mesmo que fossem, sempre há margem para
uma interpretação equivocada. Como os computadores não podem errar, a linguagem utilizada para
programá-los não pode ser ambígua. Portanto, em um algoritmo cada instrução realizará uma ação de forma
determinada, e sabemos qual será o resultado desejado em cada situação, independente do contexto.
Os algoritmos são “receitas” de como um determinado resultado deve ser obtido. Eles podem
possuir estruturas de controle de fluxo, que permite tomar caminhos de execução diferentes
dependendo da análise de informações.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
206
PASSO INSTRUÇÃO
1 Anote um valor numérico, positivo e inteiro, não superior a 100. Vamos chamar este valor de T.
2 Crie uma variável chamada V1, com valor inicial de zero.
3 Crie uma variável chamada V2, com valor inicial de zero.
4 Crie uma variável chamada V3, com valor inicial de zero.
5 Crie uma variável chamada V4, com valor inicial de zero.
6 Crie uma variável chamada V5, com valor inicial de zero.
7 Crie uma variável chamada V6, com valor inicial de zero.
8 Se T for inferior a 50, pule para o passo 12.
9 Subtraia 50 de T.
10 Adicione 1 a V1.
11 Volte para o passo 8.
12 Se T for inferior a 20, pule para o passo 16.
13 Subtraia 20 de T.
14 Adicione 1 a V2.
15 Volte para o passo 12.
16 Se T for inferior a 10, pule para o passo 20.
17 Subtraia 10 de T.
18 Adicione 1 a V3.
19 Volte para o passo 16.
20 Se T for inferior a 5, pule para o passo 24.
21 Subtraia 5 de T.
22 Adicione 1 a V4.
23 Volte para o passo 20.
24 Se T for inferior a 2, pule para o passo 28.
25 Subtraia 2 de T.
26 Adicione 1 a V5.
27 Volte para o passo 24.
28 Se T for inferior a 1, pule para o passo 32.
29 Subtraia 1 de T.
30 Adicione 1 a V6.
31 Volte para o passo 28.
32 Anote os valores de V1, V2, V3, V4, V5 e V6 em sequência, separados por espaços.
33 Fim do algoritmo
Quadro 4 - Execução de um algoritmo
Fonte: SENAI - RS
5 MICROCONTROLADORES
207
Note que todas as instruções, embora estejam escritas em descrição narrativa, são instruções bem
definidas, com uma interpretação que não remete à ambiguidade.
Se você executou o algoritmo todo, deve ter agora 6 valores anotados. E o que estes valores
significam?
O algoritmo tem o objetivo de calcular a menor quantidade de cédulas e moedas para troco. O valor
informado no início é o valor total do troco. Para o troco, serão necessárias V1 cédulas de R$ 50,00, V2 cédulas
de R$ 20,00, V3 cédulas de R$ 10,00, V4 cédulas de R$ 5,00, V5 cédulas de R$ 2,00, e V6 moedas de R$ 1,00.
Talvez, na sua opinião, existam formas mais fáceis de realizar este cálculo, mas o procedimento acima
na forma de um programa foi feito para que o resultado seja obtido seguindo-se passos mais simples.
Um computador ou circuito computacional geralmente executa estes passos de forma bastante
veloz, na maioria dos casos em menos de um milhonésimo de segundo para cada tarefa. Se
pudéssemos executar na mesma velocidade que um computador, certamente o resultado seria
obtido em menos de um milésimo de segundo.
Outra questão a ser considerada é que um computador é um equipamento projetado para ser
estável e preciso, não cometendo erros que os seres humanos podem cometer.
O algoritmo descrito acima é a representação textual (em uma linguagem não computacional),
mas com a possibilidade de ser traduzido para uma linguagem de computador. Ele expressa os
passos detalhados e não ambíguos que devem ser efetuados para obter um resultado final. Um
algoritmo pode ser escrito de várias formas, podendo ser textual, gráfico ou código especiais.
5.5 FLUXOGRAMA
Dizem que uma imagem pode valer mais do que mil palavras. Geralmente, por meio de um gráfico
ou esboço de um desenho, podemos passar mais informação do que em várias linhas de texto.
Quando se trata de programação, isso não é diferente; Costumamos usar diagramas para expressar
o funcionamento de um software.
Recentemente, em desenvolvimentos de alto nível, utilizamos linguagens de modelagem
relacionadas a conjuntos de diagramas que podem expressar sequência, relacionamento entre
os dados, interações com os usuários e com outros softwares e estruturas hierárquicas dos dados,
dentre outros. A linguagem UML é composta de diversos diagramas e pode definir com riqueza de
detalhes como as diversas partes de um complexo sistema computacional são formadas e como e
quando irão interagir entre si.
No caso dos sistemas embarcados mais simples, pode ser desnecessário dispender muito tempo
neste tipo de programação.
Nestes casos, é recomendado criar ao menos um fluxograma, que é um diagrama mais simples e
tradicional, onde o principal foco está na sequência dos eventos influenciada pelas decisões durante
o processo.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
208
Um fluxograma pode ser escrito em diversos níveis de profundidade. Alguns compiladores ainda
permitem que um programa seja escrito através de fluxogramas, permitindo gerar código executável
diretamente a partir do diagrama. Embora isso seja possível, não é recomendado para aplicações
mais complexas, pois um fluxograma toma bastante espaço para a representação das estruturas e
pode ser mais difícil de ser criado do que linhas de programa textuais geradas por um programador
mais experiente.
Vamos a um fluxograma aplicado a uma simples situação de controle na automação industrial
(FIGURA 227).
inicio
obter
temperatura
SIM ligar
temperatura
ventilação
>45ºC?
NÃO
temperatura SIM ligar
<40ºC? aquecimento
NÃO
desligar
ventilação
desligar
aquecimento
d) não há histerese.
Como vimos, os algoritmos devem ser elaborados de forma a não haver ambiguidade. No caso do
diagrama acima, para transformar em uma linguagem computacional seria necessário descrever melhor
o processo, definindo o que seria ligar e desligar, o que seria obter temperatura, e saber se a temperatura
obtida já será expressa em ºC. Caso contrário, não há como proceder à comparação como sugerido. Estes
detalhes geralmente são observados durante a escrita do programa propriamente dito.
5 MICROCONTROLADORES
209
5.6 COMPILADOR
Na tabela 25, uma expressão está multiplicando a variável VAR2 por 10, armazenando o valor obtido
na variável VAR1. Como visto anteriormente, isso é realizado por meio de somas sucessivas, mas em
linguagem C o programador não precisa se preocupar com isso, pois o compilador gera a sequência de
instruções necessárias, tornando a operação transparente. Isso faz com que o programador não necessite
conhecer ou aplicar as técnicas relativas a cada microcontrolador, pois estas já estão expressas nas regras
de tradução do compilador, que lerá o programa escrito em uma linguagem mais próxima da linguagem
humana (alto nível) e traduzirá isso para linguagem de máquina.
Outra vantagem é que no processo de compilação são detectados alguns erros que podem ter sido
gerados no programa fonte devido a erros de digitação, desconhecimento da linguagem, esquecimentos.
Na primeira etapa da compilação, o programa compilador realizará a análise léxica. Nesta etapa,
o compilador lê todas as palavras do programa fonte, verificando se consegue identificar todas.
Na linguagem C, por exemplo, é necessário declarar funções e variáveis que são utilizadas no
programa. Se o programador, por exemplo, declarar a variável chamada contador em seu programa,
porém no meio do programa, devido a um erro de digitação, escrever uma expressão usando o
nome “contadro”, haverá uma mensagem de erro, pois o nome da variável, embora muito parecido,
não é o mesmo.
Na segunda etapa ocorre a análise sintática. Neste momento, o principal objetivo é verificar como
os comandos e símbolos usados no microcontrolador são encadeados para obter um objetivo comum.
O foco nesta etapa da compilação é detectar a falta de algum elemento, ou a ordem inadequada dos
comandos. Erros de sintaxe são bastante comuns quando não conhecemos as estruturas de controle
e os comandos da linguagem que estamos utilizando.
Por fim, ocorre a geração de código intermediário, a otimização e a geração de código final.
O produto gerado por esta etapa é um programa escrito em uma linguagem muito próxima da
linguagem de máquina, faltando algumas etapas de otimização e ligações com bibliotecas externas.
Isso tudo é gerido pelo compilador, e nesta etapa podem surgir erros devido a fatores de limitações
de memória ou nome de arquivos.
Em compiladores usados em microcontroladores, nesta etapa ocorre a geração do arquivo Hex,
que será posteriormente transferido para a memória ROM do microcontrolador.
Alguns compiladores podem oferecer otimizações de memória mais eficientes, fazendo com que a
linguagem de máquina gerada seja mais “enxuta”, evitando comandos desnecessários e desperdício
de memória. Outros compiladores suprimem esta etapa de otimização em versões gratuitas ou de
demonstração, gerando um código final que pode ser relativamente maior e mais lento, porém
igualmente funcional.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
212
5.7 LINGUAGEM C
Embora não seja a única, esta é, incontestavelmente, a linguagem compilada mais popular para
microcontroladores. Foi criada por Dennis Richie, em 1972, no laboratório AT&T Bell Labs, com o
intuito de ser a linguagem de aprimoramento e desenvolvimento do sistema operacional Unix, que
foi originalmente escrito em Assembly.
Hoje, grande parte dos sistemas operacionais (como Microsoft Windows, Linux, Android) são
escritos em linguagem C, ou ao menos têm grandes partes geradas em linguagem C.
Faz alguns anos que esta linguagem passou a receber compiladores capazes de gerar código
para microcontroladores, e ainda não são muitos os fabricantes e as versões existentes.
Para os microcontroladores da microchip, podem ser obtidos os seguintes compiladores:
a) MPLAB + Hitech - disponível no próprio site da microchip (www.microchip.com), é disponibilizado
em uma versão gratuita, mas com limitações de otimização. Obedece ao padrão C ANSI, facilitando a
portabilidade (migração entre microcontroladores). Não existem muitas funções prontas, e o programador
deve criar algumas funções e sub-rotinas. O ambiente de desenvolvimento (MPLAB) é bastante rico em
recursos, mas pode ser um pouco complicado e confuso para quem está iniciando;
b) MPLAB + C18 - compilador também disponibilizado pela microchip, mas para PICs da família 18. Na
versão gratuita, conta com limitações de otimização;
c) SDCC - Small Device C Compiler – Gratuito e de código aberto (open-source). O problema é que para
PIC ainda está em desenvolvimento, e é necessário integrar a uma ferramenta de desenvolvimento como o
MPLAB. Não é recomendado para quem está iniciando devido à complexidade de instalação e uso;
d) MikroC - este compilador conta com versões de demonstração que compila códigos de até 2K.
Embora haja limitações quanto ao uso gratuito, é recomendado devido à riqueza de recursos e à interface
intuitiva e amigável;
e) SOURCEBOOST - compilador pago, porém de menor custo. Possui suporte a microcontroladores PIC
das famílias 10, 12, 16 e 18;
f ) CCS - um dos mais populares, embora não seja padrão C ANSI. Suas funções embutidas permitem
gerar código de forma mais simplificada, e a interface é relativamente amigável. Os programas existentes
neste material utilizarão este compilador como referência, e todos serão compilados na versão gratuita
disponível no site www.ccsinfo.com.
Após instalar e executar o compilador (PIC C Compiler), clique em File (ou no símbolo circular do canto
superior esquerdo da janela), posteriormente em New (novo arquivo) e, após, Source File (arquivo fonte)
(FIGURA 228).
5 MICROCONTROLADORES
213
Fonte: Após, uma janela será aberta solicitando o nome do arquivo fonte (programa em linguagem
C). Recomendamos que você grave o arquivo em uma pasta de fácil acesso, pois nela posterior-
mente o compilador gerará o arquivo em linguagem de máquina (arquivo Hex).
Outro detalhe importante: o nome de um programa fonte em linguagem C deve ser finalizado por .C, desta forma
sendo diferenciado dos demais arquivos. Gerar um arquivo com outro nome pode incorrer em erros na fase final de
compilação (FIGURA 229).
Figura 229 - Tela “Salvar Como”, que aparece ao se iniciar um novo programa
Fonte: CUSTOM COMPUTER SERVICES INC, [20--]
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
214
FIQUE Observe o nome do arquivo (com extensão C) e a pasta onde ele será gravado. É
ALERTA nesta pasta que, após a compilação, será encontrado um arquivo com mesmo nome,
porém com extensão .HEX.
Para este exemplo, vamos criar o arquivo PROG1.C. Ao clicar em “salvar”, uma área de edição é
disponibilizada, permitindo escrever o programa.
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.
Após digitar o arquivo, observe no canto inferior direito o nome do arquivo que você vai compilar.
Caso não esteja aparecendo o nome correto, feche todos os arquivos (e projetos, se for o caso)
abertos no compilador, e abra o arquivo C desejado novamente.
Uma vez aberto, clique em -> “compile”. A compilação irá ocorrer, inicialmente localizando por
erros de digitação ou de sintaxe. Posteriormente, surgirá uma janela indicando o erro, ou se o
programa foi corretamente compilado (FIGURA 230 e FIGURA 231).
5 MICROCONTROLADORES
215
Figura 230 - Demonstrando a opção para compilação (pode ser obtida pela tecla de atalho F9)
Fonte: CUSTOM COMPUTER SERVICES INC, [20--]
Esta linha serve para incluir, no início do programa, um arquivo já existente, conhecido como
header file (arquivo de cabeçalho). Este arquivo é fornecido pelo fabricante do compilador, mas
também pode ser construído por um programador experiente. Nele há definições importantes
sobre o microcontrolador que será usado, como endereçamento dos pinos de entrada e saída e
informações sobre recursos existentes.
Caso você venha a gerar um programa para outro microcontrolador, mude esta linha para o
microcontrolador correspondente.
No exemplo acima, usamos o arquivo 16f877.h, mas poderia também ser o 16f877a.h, pois estes
são equivalentes:
#use delay (clock=20000000) // define valor de clock para delays
Linha utilizada para informar ao compilador qual a velocidade do cristal de clock usada pelo
microcontrolador alvo. Caso esta linha não seja corretamente definida, teremos problemas relativos
à execução, pois os tempos definidos na função embutida “delay_ms” não serão mais respeitados. Em
poucas palavras, ela informa a velocidade do microcontrolador para o compilador.
void main(void) // função principal
Esta linha identifica uma função chamada MAIN (principal). A função principal é a única função
que tem nome fixo e deve existir obrigatoriamente em um programa C executável. Outras funções
(sub-rotinas) podem ser escritas em um programa C, mas ao menos uma deve se chamar MAIN, da
qual parte a execução do programa.
{
O abrir chaves ({) é usado para definir o início de algo. Neste caso, estamos iniciando a função
principal (indicada na linha anterior).
output_high(PIN_C0); // PINO C0 para nível alto
Esta é uma função embutida do compilador CCS. Em poucas palavras, esta linha, ao chamar a
função embutida output_high, define o pino (no caso pino C0) como saída, pondo também seu
nível de tensão em 5V (nível alto).
delay_ms(1000); // atraso(delay) de 1000 ms
Linha utilizada para causar um atraso (tempo) no programa. Se esta linha não existisse, a
próxima instrução seria executada após alguns microsegundos. Com ela, ocorre um atraso de 1000
milissegundos (um segundo).
output_low(PIN_C0); // PINO C0 para nível baixo
Instrução que, através da função embutida output_low, determina que o pino C0 (definido como
saída) vá para nível lógico baixo (0V).
delay_ms(1000); // atraso(delay) de 1000 ms
Outra execução da instrução de tempo, fazendo com que o programa tenha uma “pausa” de um segundo.
}
5 MICROCONTROLADORES
217
Finalização do programa principal. Sinais de chaves são usados para indicar o início e o final dos blocos
de instruções na linguagem C.
// ========== fim do programa ==============
Esta linha é de comentário, sem nenhum comando ou instrução. Comentários não influenciam
no tamanho do arquivo em linguagem de máquina (HEX) gerado e são muito úteis para melhorar a
manutenibilidade do programa, facilitando modificações e entendimentos futuros sobre o programa
através de anotações. Em linguagem C, comentários podem ser gerados através do uso de duas barras
seguidas (o comentário, neste caso, irá até o final da linha), ou através dos símbolos de /* e */. Neste caso,
barra asterisco inicia o comentário, podendo se estender por quantas linhas for necessário, sendo finalizado
por asterisco barra.
Após a compilação, devemos encontrar o arquivo Hex na mesma pasta onde o arquivo .C está salvo.
Importante salientar que isso só ocorre se a compilação tiver se dado sem ocorrência de erros. Este arquivo
Hex é que deve ser transferido para a memória do microcontrolador. Como já estudado anteriormente, é
necessário o uso de uma ferramenta de hardware e software para transferir o programa.
Usando um programa específico para transferência, transfira o arquivo Hex para o microcontrolador.
Verifique a documentação adequada do sistema de transferência, se necessário. Vamos adotar o hardware
exemplificado na Figura 232
D1
R = 470 ohms LED-RED
RB0/INT 33
RB1 34
RB2 35
RB3/PGM 36
RB4 37
RB5 38
RB6/PGC 39
RB6/PGD 40
RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2 16
RC2/CCP1 17
RC3/SCK/SCL 18
23
24
25
26
19
20
21
22
27
28
29
30
RC4/SDI/SDA
RC5/SDO
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
RC6/TX/CK
PROGRAM=PROG1.HEX.
RA2/AN2/VREF-/CVREF
RA5/AN4/SS/C2OUT
RA4/TOCKI/C1OUT
RA3/AN3/VREF+
MCLR/Vpp/THV
PIC 16F877A
OSC2/CLKOUT
RE1/AN6/WR
RE0/AN5/RD
OSC1/CLKIN
10 RE2/AN7/CS
RA0/AN0
RA1/AN1
13
14
9
8
2
3
4
5
1
6
Ao executar o programa, você deve observar que o LED conectado ao pino C0 do microcontrolador
ligará, permanecendo ativado por 1 segundo, e posteriormente desligará.
Ele não piscará, pois nosso programa não mandou repetir as instruções, gerando somente uma execução.
Se o microcontrolador for reiniciado, o programa recomeçará, com mais um único pulso no pino C0 do
microcontrolador.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
218
Procure adicionar linhas para realizar outros acionamentos, mudando também os tem-
SAIBA pos, sempre lembrando de compilar e transferir novamente o programa para realizar
MAIS novos testes. Usando o HELP do compilador (tecla F1), tente descobrir e utilizar outras
funções embutidas do compilador.
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:
Na sequência, o pino C0 é ligado e desligado e, posteriormente, surge a instrução “goto retorno”, que desvia o
fluxo de execução para o rótulo previamente definido (FIGURA 233).
3 RB4 37
RA1/AN1 Este LED ficará piscando
4
RA2/AN2/VREF-/CVREF RB5 38
5 RA3/AN3/VREF+ RB6/PGC 39
6 RA4/TOCKI/C1OUT RB6/PGD 40
7
D1
RA5/AN4/SS/C2OUT
R1
RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2 16 470
8 RE0/AN5/RD
LED - RED Este LED irá LIGAR e
RC2/CCP1 17
9 RE1/AN6/WR DESLIGAR uma vez início
RC3/SCK/SCL 18
10 RE2/AN7/CS 23
D2
RC4/SDI/SDA
R2
RC5/SDO 24
RC6/TX/CK 25 330
1 MCLR/Vpp/THV RC7/RX/DT 26
LED - BLUE
RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28
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.
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)
Observando os exemplos acima, é natural haver um certo desconforto em relação à pontuação: onde
usamos e onde não usamos um ponto e vírgula? E quando teremos que abrir e fechar chaves?
Estas são as dúvidas que vamos tentar esclarecer agora.
As chaves, em C, servem para indicar O início ( { ) e o final ( } ) de um determinado bloco de instruções. E
o que é um bloco de instruções? Bloco de instruções é um agrupamento de linhas que deve ter um sentido
único.
Sem estas sinalizações, um programa pode se tornar ambíguo, ter duplo sentido e, portanto, não pode
ser resolvido por um sistema computacional como linguagem de programação.
Para exemplificar, analise o trecho de descrição narrativa que segue:
…
ir até a sala
abrir a janela
se estiver chovendo
pegar o guarda-chuva
comprar pão e leite
...
Sabemos que não se trata de linguagem de programação, mas de um esboço de ações relacionadas a
uma condição, expresso em descrição narrativa. Porém, observando o texto acima, duas interpretações
são possíveis:
a) interpretação 1 - comprar pão e leite somente se chover. Neste caso, entendemos que o “se estiver chovendo”
tem efeito em todas as orações que o seguem, como “pegar o guarda-chuva” e “comprar pão e leite”;
b) interpretação 2 - comprar pão e leite, independente se chove ou não. Neste caso, a oração “se estiver chovendo”
está ligada somente à primeira oração que a segue: “pegar o guarda-chuva”. A outra oração deve ser feita inde-
pendente do resultado.
Já vimos que, em um sistema computacional, não pode haver margem para dupla interpretação.
Como resolver isso?
5 MICROCONTROLADORES
221
…
ir até a sala
abrir a janela
se estiver chovendo
início
pegar o guarda-chuva
comprar pão e leite
fim
…
Com a marcação de início e fim, temos agora uma interpretação facilitada usando o conceito de subprograma:
um pequeno trecho de instruções ligado a alguma instrução ou condição, em forma de bloco e demarcado por
um início e um fim.
O alinhamento com recuos (também chamado de indentação) permite visualizar melhor esta hierarquia,
tornando mais fácil identificar a conexão das instruções e dos blocos.
Na linguagem C, o início e o final de um bloco é delimitado por sinais de chaves, sendo o abrir chaves
({) o sinal de início, e o fechar chaves (}) o sinal de fim. A indentação (alinhamento com recuos) é facultativa
na linguagem C, porém extremamente recomendada. Um programa mal-alinhado fica mais difícil de ser
interpretado e corrigido.
No trecho de programa C que estudamos antes, existe a demarcação de um início e um fim, dada a
função main.
Portanto, todo programa em C, após as necessárias diretivas de compilação (dada pelas linhas com
sustenido, como os #include, #use, #define...), deve ter ao menos uma função principal, com seu início e
fim demarcados.
#...
void main(void)
{
… // linhas da função principal
}
Note que, antes desta demarcação de início, não usamos ponto e vírgula, para não quebrar a conexão
da linha com o bloco de instruções nela contido.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
222
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.
A falta ou a adição desnecessária de um ponto e vírgula pode trazer resultados inesperados na execução
do programa. Caso um ponto e vírgula seja adicionado na linha while(true), a estrutura de repetição será
truncada, fazendo com que o laço de repetição obtido não abranja o conteúdo das chaves, criando o que
chamamos de “laço vazio incondicional”. Em outras palavras, o ponto e vírgula em um while (1) antes do
abrir chaves trava a execução do programa principal.
5 MICROCONTROLADORES
223
Uma saída digital pode ser tratada individualmente ou em grupo. Quando tratada individualmente,
usamos regras para determinar o nível de tensão (alto ou baixo) em cada saída, não interferindo nas demais.
É possível também acessar a porta inteira (PORT), podendo enviar uma informação binária combinada,
fazendo com que todas as saídas da porta sejam modificadas no mesmo momento, economizando
instruções e deixando o programa mais rápido.
Na linguagem C padrão CCS, podemos usar as instruções para manipulação das I/Os diretamente
através de funções embutidas. Estas funções facilitam a vida do programador. Caso elas não existissem,
o procedimento de controle das saídas digitais deveria levar em consideração a programação de
registradores de direção antes de cada acionamento, determinando se o pino que está sendo acessado
deve ter comportamento de entrada ou de saída.
As funções embutidas do compilador CCS para acionamento das saídas digitais são:
output_high(PIN_xx); -> Leva o nível de tensão do pino para nível alto (normalmente 5V)
output_low(PIN_xx); -> Leva o nível de tensão do pino para nível baixo (0V)
output_float(PIN_xx); -> Deixa o pino flutuando, sem tentar manter nível de tensão
Nas instruções citadas acima, substitua a palavra PIN_xx pelo pino correspondente, como, por exemplo:
output_high(PIN_C0);
output_low(PIN_A2);
output_float(PIN_E1);
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
224
Exemplo de uso:
Segue o exemplo de um “semáforo” simples, composto de dois sinaleiros com três cores cada (FIGURA 234).
14 OSC2/CLKOUT
13
6
10 RE2/AN7/CS
1
5
4
3
2
8
9
PIC 16F877A
RE1/AN6/WR
RE0/AN5/RD
MCLR/Vpp/THV
RA5/AN4/SS/C2OUT
RA4/TOCKI/C1OUT
RA3/AN3/VREF+
RA2/AN2/VREF-/CVREF
RA1/AN1
RA0/AN0
OSC1/CLKIN
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC3/SCK/SCL
RC4/SDI/SDA
RC7/RX/DT
RC6/TX/CK
RC2/CCP1
RD7/PSP7
RD6/PSP6
RD5/PSP5
RD4/PSP4
RD3/PSP3
RD2/PSP2
RD1/PSP1
RD0/PSP0
RB3/PGM
RC5/SDO
RB6/PGD
RB6/PGC
RB0/INT
RB5
RB4
RB2
RB1
30
29
28
27
22
21
20
19
26
25
24
23
18
17
16
15
40
39
38
37
36
35
34
33
R6
R5
R4
R3
R2
R1
330
330
330
330
330
330
LED_VERMELHO 1
LED_AMARELO 2
LED_VERMELHO 2
LED_VEDE1
LED_AMARELO 1
LED_VEDE 2
Nesta aplicação, acionaremos LEDs devido ao limite de corrente e tensão das saídas do
microcontrolador, mas nada impede que estes sinais sejam amplificados por transistores, acionando
comutadores a relé para ativar e desativar sinaleiros reais.
Do ponto de vista da programação, nossa meta será construir um programa que atenda aos seguintes
requisitos funcionais:
a) nenhum semáforo pode ficar sem uma indicação;
d) o tempo dos semáforos abertos deve ser de 30 segundos, com mais 10 segundos de advertência (luz amarela).
Observe o uso da função OUTPUT_C. Ela permite enviar uma informação numérica (de um byte)
para o PORTC. Os valores informados entre os parênteses são constantes numéricas.
Quando a instrução output_c(0b00001010) for executada, os pinos C1 e C3 serão postos em nível
alto (5V), enquanto C0, C2, C4, C5, C6 e C7 serão postos em nível baixo (0V). Isso é mais eficiente do
que usar instruções output_high() e output_low() para definir o estado dos pinos, pois esta instrução
causa uma alteração (neste programa) em dois pinos, e seriam necessárias duas instruções para fazer
o papel da função output_c neste contexto.
O valor expresso, que inicia em 0b, está em binário. Se desejar expressar o valor em decimal,
basta não adicionar o prefixo 0b ao valor.
Por exemplo, output_c(10) equivale a output_c(0b00001010), pois 00001010 em binário equivale
a 10 em decimal. Já, se desejar expressar o valor em hexadecimal, adicione o prefixo 0x ao valor.
Exemplo: output_c(0x0A).
As formas de representação podem variar conforme a necessidade, porém evite adicionar zeros a
esquerda ao usar a representação decimal (sem o prefixo). Alguns compiladores interpretam o valor na
base octal, muito pouco utilizada, porém ainda suportada por alguns fabricantes e pelo padrão C ANSI.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
226
Entradas digitais geralmente são usadas em combinação com estruturas condicionais ou de repetição,
fazendo com que o programa execute percursos diferentes em função da variação de estado das entradas,
geralmente conectados a sensores ou dispositivos de comunicação.
Para exemplificar o uso, vamos a uma aplicação onde um motor de passo é controlado por um microcontrolador,
gerando movimentos no sentido horário ou anti-horário de acordo com duas entradas digitais conectadas a chaves
tácteis (botões).
Microcontrolador conectado a um motor de passo unipolar e a duas chaves tácteis (FIGURA 235).
1N4007
12V
BoT1
BoT2
5V 5V +12V
TIP 122
1k
1N4007
12V
TIP 122
C0 1k
1N4007
C1 12V
C2
C3
D0
D1
TIP 122
10k 10k 1k
1N4007
12V
TIP 122
1k
Observe que o motor de passo em questão é um atuador que possui 4 bobinas. Acionando cada uma
das bobinas em sequência, é possível obter um movimento controlado, gerando um pequeno passo (daí o
nome motor de passo). Como grande vantagem, o motor de passo permite um posicionamento facilitado,
podendo ser controlada também a velocidade através do aumento ou diminuição do tempo de transição
de um para outro passo.
Segue o programa que utiliza as entradas digitais onde estão conectadas as chaves BOT1 e BOT2. Estas
chaves tácteis serão usadas no programa para definir o sentido de rotação do motor (horário ou anti-horário).
5 MICROCONTROLADORES
227
A estrutura condicional IF (que será estudada de forma mais aprofundada) deve conter, entre
os parênteses que a sucedem, uma condição que pode ser verdadeiro ou falso. No caso, a função
input(...) pode resultar nestes sinais lógicos, podendo ser verdadeiro (caso a entrada em questão
esteja em nível alto) ou falso (caso esteja em nível baixo). Desta forma, podemos usar a função
embutida do compilador CCS chamada input para verificar o estado lógico do pino em questão.
Como já estudado, as chaves que sucedem a linha do IF são usadas para determinar o início e o
final do bloco de instruções que será executado caso o IF tenha uma condição verdadeira.
Da mesma forma que com os comandos de saída digital, existem comandos de entrada digital
que permitem ler um PORT inteiro, retornando os 8 bits possíveis existentes em um PORT.
A instrução
CODIGO = input_d();
Lê todo o PORTD, armazenando o valor lido na variável CODIGO. Esta variável deve ser previamente
declarada, com o tipo INT ou superior. Declaração de variáveis será estudado em seguida.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
228
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.
É função do programador definir a quantidade de memória que será usada por uma variável, bem
como inicializar (dar um valor inicial) a este espaço de memória.
Saber “declarar” uma variável é importante para utilizar, de forma mais adequada, a memória
disponível. Dependendo do dado a ser armazenado, pode ser alocada uma área maior ou menor de
memória, variando também conforme a forma de representação para o valor armazenado.
Outro fator importante é o escopo da variável. Quando criamos variáveis globais, estas ocupam
a memória durante todo o tempo de execução do programa, mantendo os dados armazenados
enquanto o microcontrolador estiver em modo execução. Já variáveis locais têm um tempo de vida
mais curto, liberando a memória quando a função (sub-rotina) onde esta variável está declarada
deixa de ser executada.
Em um sistema onde precisamos calcular, quantificar, acumular, contar, enfim, processar dados serão
necessárias variáveis, que consistem nas estruturas que armazenarão a informação durante a execução do
programa.
Vejamos a primeira versão do programa criado procurando identificar as variáveis existentes:
5 MICROCONTROLADORES
229
Vamos a um exemplo de programa que utiliza variáveis, iniciando por um estudo de caso:
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
230
CASOS E RELATOS
Evitando confusões relativas a uma possível reprovação de um lote, Mônica, uma técnica em automação
industrial com grande aptidão para sistemas embarcados, desenvolveu um circuito microcontrolado
onde os tijolos são contados, e a cada 1000 peças uma é destacada automaticamente por meio do
acionamento de um cilindro pneumático instalado perpendicularmente ao plano da esteira. A cada 5
amostras coletadas, uma sirene é acionada, informando ao departamento de controle de qualidade que
as amostras podem ser coletadas para teste. Mônica também implementou um sistema de contagem de
tijolos produzidos. Após alguns dias, percebeu-se que o contador não estava funcionando direito. Além
de contagem de tijolos ser perdida quando o sistema era desligado, a contagem não passava de 65535
tijolos. Com o emprego de outro tipo de dados na declaração da variável de contagem, e do uso de uma
técnica de gravação em EEPROM, os problemas foram solucionados.
No exemplo acima existem três variáveis declaradas. Todas foram declaradas dentro da função principal (interno
às chaves de void main (void)) e, portanto, são variáveis locais. Se houvesse outras funções neste programa, elas não
teriam acesso a essas três variáveis.
Quanto ao tipo, foram usados dois tipos de dado diferentes. Vamos analisar linha a linha:
int amostras = 0;
Esta linha declara a variável chamada amostra. A palavra int no início da linha identifica o tipo de dado
da variável. Este tipo de dado consiste em gerar uma variável para armazenar números inteiros no tamanho
padrão que, para microcontroladores PIC da família 16 e 18, é de 8 bits. Portanto, “amostras” é uma variável
inteira de 8 bits, que consegue armazenar números inteiros entre 0 e 255 (valores limites para representação
com 8 bits). Observe também o “= 0”, que identifica que a variável será inicializada com zero.
long contaparcial = 0;
Nesta linha, é declarada uma variável chamada contaparcial. O tipo de dado escolhido é long,
identificando a variável com o dobro do tamanho alocado em relação ao int, portanto de 16 bits, podendo
comportar números inteiros positivos, entre 0 e 65535, lembrando que a possibilidade de combinações
com 16 bits é de 216, ou seja, 65536 combinações.
long contatotal = 0;
5 MICROCONTROLADORES
231
Da mesma forma que na declaração anterior, a variável contatotal será declarada com variável de 16 bits, com
capacidade para números inteiros positivos até 65535. Este era o problema inicial que havia com este contador
e, para estender a capacidade da variável, é sugerido o uso de um tipo de dado mais abrangente, também para
números inteiros, que pode ser feito por uma das linhas que segue:
int32 contatotal = 0; ou long long contatotal = 0;
No CCS, o tipo de dado int32 (ou long long) permite declarar variáveis para armazenamento de números
inteiros de 32 bits. Como 232 = 4.294.967.296, o limite para este tipo de dado dificilmente será alcançado
(FIGURA 236).
Portanto, observamos que para utilizar as variáveis, antes de tudo precisamos conhecer:
a) os tipos de dados existentes, que definem quanta memória a variável irá ocupar, e como será a informação que
ela irá armazenar;
A Tabela 26 demonstra aos tipos de dados que podemos usar, para armazenar valores inteiros e positivos
em um microcontrolador de 8 bits.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
232
int 8 0 255
int8
long 16 0 65.535
int16
long long 32 0 4.294.967.295
int32
Fonte: SENAI - RS
Para declarar variáveis que suportem números inteiros negativos, é necessári (no CCS) adicionar um
prefixo na declaração das variávei, como demontrado na Tabela 27.
Tabela 27: Prefixo de declaração das variáveis
TIPO DE DADO/ QUANTIDADE MENOR MAIOR
NOME ALOCADA EM VALOR VALOR
ALTERNATIVO BITS SUPORTADO SUPORTADO
signed int 8 -128 127
signed int8
signed long 16 -32.768 32.767
signed int16
signed long long 32 -2.147.483.648 2.147.483.647
signed int32
Fonte: SENAI - RS
Em alguns casos, existe a necessidade de declarar variáveis que suportem números reais. Devido a sua
natureza discretizada e finita, os sistemas computacionais não podem representar números com infinitas
casas decimais, e usamos estratégias para promover o armazenamento de forma mais eficiente, buscando
melhor equilíbrio entre o espaço de memória ocupada, a precisão da informação representada e a faixa de
representação.
Para representar números muito grandes, costumamos utilizar abreviações ou notação científica.
Por exemplo, uma folha de papel geralmente tem espessura de um décimo de milímetro, ou seja, 1,00 x 10-4
metros; já a distância entre a Lua e a Terra é de aproximadamente 384.405 Km, ou seja, aproximadamente 3,84 x
108 metros. Observe que as informações são muito diferentes. Comparar a espessura de uma folha de papel com
distâncias usadas no espaço aparenta um contraste muito grande para ser representado numericamente usando
a mesma unidade de medida. No entanto, quando expressamos os valores em notação científica, é utilizada uma
quantidade relativamente pequena e muito próxima de dígitos.
Isso também ocorre quando usamos tipos de dados no formato de ponto flutuante. Pontos flutuantes são tipos
de dados compostos similares à “notação científica”, porém com representação na base binária.
5 MICROCONTROLADORES
233
Ao programador, esta representação é totalmente transparente, mas, a exemplo da notação científica, quando
usamos uma variável do tipo “ponto flutuante”, podem ocorrer imprecisões nos valores armazenados, pois parte
menos significativa dos dados é desprezada durante o armazenamento.
Para declarar variáveis deste tipo, usamos o seguinte tipo de dado:
Tipo de dado Quantidade alocada em bits
float 32
Quanto aos limites de um float, são bastante amplos, podendo chegar a dezenas de casas decimais. A
precisão pode variar conforme os valores armazenados. Quando um valor muito grande for representado,
partes menos significativas são eliminadas, causando pequenas alterações. Por exemplo, em uma variável
do tipo float é possível armazenar a espessura em metros de uma folha de papel, e a distância em metros
entre a Terra e a Lua; porém, caso uma seja somada à outra, a informação menos significativa será perdida.
Além dos tipos de dados numéricos, podemos declarar variáveis para uso com caracteres. Neste caso, o
tipo de dados usado é char e permite armazenar em até 8 bits os caracteres, codificados no sistema ASCII.
Tipo de dado Quantidade alocada em bits
char 8
Em certos casos, os tipos de dados podem ser suprimidos, não ao declararmos uma variável, mas ao
identificarmos funções (sub-rotinas).
Uma função pode receber dados entre os parênteses, e também retornar dados ao ser chamada. Porém,
se isso não ocorrer, utilizamos um tipo de dado “vazio”, que não aloca nenhuma memória. Este tipo de dado
é o VOID.
Tipo de dado Quantidade alocada em bits
void 0
Uma variável deve, obrigatoriamente, ter um nome único. Não podemos usar uma palavra reservada,
como nome de instrução ou de função embutida, para uma variável. O nome da variável também deve ser
uma única palavra, que pode conter letras, números e alguns símbolos, como o “underline” (_), porém o
primeiro caractere da variável não pode ser numérico.
Exemplo de nomes não válidos para variáveis:
a) contador de peças (mais de uma palavra. Sugerido: contador_de_pecas)
b) 123aux (iniciado por número. Sugerido: aux123)
c) main (palavra reservada. Sugerido: principal)
d) peças (uso de símbolo especial – cedilha. Sugerido: pecas)
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
234
Variáveis podem ser usadas dentro de uma função, para um cálculo local e temporário durante a execução do
programa. Também podem ser usadas para um armazenamento mais abrangente, com validade durante toda a
execução do programa.
Também podemos usar estas variáveis para trocar dados entre as funções, usando-as para envio de
dados durante a chamada de uma sub-rotina.
Portanto, em um programa C ANSI há três lugares nos quais podemos declarar variáveis. O primeiro
é fora de todas as funções do programa (funções serão vistas em breve). Estas variáveis são chamadas
variáveis globais e podem ser usadas a partir de qualquer lugar no programa. Podemos dizer que, como
elas estão fora de todas as funções, todas as funções as veem.
O segundo lugar é no início de um bloco de código. Estas variáveis são chamadas locais e só têm validade dentro
do bloco no qual são declaradas, isto é, só a função à qual ela pertence sabe da existência desta variável, dentro do
bloco no qual foram declaradas. É importante observar que a maioria dos compiladores exige que a declaração da
variável ocorra no início do bloco da função, não podendo ser feita depois que uma linha de instrução for executada.
Se isso não for respeitado, são exibidos erros de compilação.
O terceiro lugar onde podemos declarar variáveis é na lista de parâmetros de uma função. Apesar de
estas variáveis receberem valores externos, são conhecidas apenas pela função onde são declaradas.
5 MICROCONTROLADORES
235
Em algumas situações pode ser necessário o uso de várias ocorrências de uma mesma variável. Isso pode
exigir do programador a criação de estruturas de dados mais complexas como, por exemplo, a declaração
de matrizes.
Vamos analisar o uso de uma matriz para o hardware proposto abaixo (FIGURA 237).
U1
13 OSC1/CLKIN RB0/INT 33
R1 330
14 RB1 34
OSC2/CLKOUT
RB2
R2 330
35
2 RB3/PGM 36 R3 330
RA0/AN0
3 RA1/AN1
RB4 37 R4 330
4 RB5 38
RA2/AN2/VREF-/CVREF R5 330
5 RA3/AN3/VREF+ RB6/PGC 39
R6 330
6 RA4/TOCKI/C1OUT RB6/PGD 40
7 RA5/AN4/SS/C2OUT R7 330
RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2 16
8 RE0/AN5/RD
RC2/CCP1 17
9 RE1/AN6/WR 18
RC3/SCK/SCL
10 RE2/AN7/CS RC4/SDI/SDA 23
RC5/SDO 24
RC6/TX/CK 25
1 MCLR/Vpp/THV 26
RC7/RX/DT BOT +
RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
BOT -
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28
RD6/PSP6 29
RD7/PSP7 30
PIC 16F877A
PROGRAM = 7 SEGMENTOS.cof
Neste programa, a variável mascara (máscara) é dada por um int (8 bits), porém a indicação entre
os colchetes identifica a quantidade de repetições em memória desta variável. É como se houvesse 10
variáveis com o mesmo nome. Isso é realizado pela linha:
int mascara[10];
A inicialização também é realizada durante a declaração da variável, dando-lhe um valor inicial. Isso é
obtido usando o símbolo de atribuição, e com os valores de inicialização expressos entre sinais de chaves, e
separados por vírgula. Como são 10 posições na matriz “mascara” (máscara), são 10 valores de inicialização.
int mascara[10]={0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,
Os valores foram expressos em binário, para facilitar a implementação. Cada bit definirá o estado do dígito de 7
segmentos em sua ocorrência. Por exemplo, nas ocorrências 0, 2, 3, 5, 7, 8 e 9, o bit menos significativo será ligado.
Este bit será relacionado a um dos segmentos comuns que compõem a representação destes números.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
238
No programa principal, podemos observar que, toda vez que o botão conectado ao pino D0 for
pressionado, o valor exibido no display será incrementado. D1 é usado para decrementar. Testes foram
adicionados para evitar que os valores máximo e mínimo sejam ultrapassados, o que poderia gerar
inconsistências e erros de funcionamento.
Observe que “mascara” (máscara) não é uma variável, mas uma sequência de 10 variáveis, indexadas
por um valor constante ou variável entre colchetes; mascara[0] (máscara) contém um valor, mascara[1]
(máscara) pode conter outro, e assim sucessivamente. No exemplo acima, uma variável é utilizada entre os
colchetes, e isso permite que o programa mude sua ocorrência e facilite o uso de outras posições.
Geralmente, estruturas de dados mais complexas não são usuais em microcontroladores de 8 bits, pois
sua memória limitada não favorece seu uso.
5.7.12 OPERADORES
Na linguagem C, os operadores são os símbolos usados para realizar operações lógicas e aritméticas,
estabelecendo também a prioridade e o formato destas operações. Quando um programa realiza uma
operação aritmética, ocorre uma série de procedimentos, desde a definição da precedência (que define
qual parte da expressão será feita primeiro) até a forma com que os dados serão manipulados em memória,
consumindo mais ou menos bits.
Iniciaremos o estudo deste tópico estudando os operadores separados em categorias, com alguns
exemplos de uso (TABELA 28).
5 MICROCONTROLADORES
239
(Continua)
CATEGORIA OPERADOR AÇÃO EXEMPLOS OBS.
> Maior que if (a > b) ...; Assim como outros operadores relacionais,
retorna verdadeiro (1) ou falso (0). Retorna
x = a > b;
(1) se o primeiro operando for maior que o
segundo, e (0) caso contrário.
>= Maior ou if (a >= b) ...; Retorna (1) se o primeiro operando for
maior ou igual ao segundo. Caso contrário,
igual a x = a >= b;
retorna (0).
< Menor if (a < b) ...; Retorna (1) se o primeiro operando for menor
Relacionais
(Conclusão)
CATEGORIA OPERADOR AÇÃO EXEMPLOS OBS.
(NÃO)
0b11111111.
>> RIGHT x = a >> 1; Desloca os bits para a direita, um determina-
SHIFT do número de casas. Útil para realiar rotações
x = a >> b;
(Deslo- binárias em PORTs conectados a dispositivos
camento que precisam ser acionados em sequência,
de bits como motores de passo. 11000101 >> 1 =
para 01100010 11000101 >> 2 = 00110001
direita)
<< LEFT x = a << 1; Desloca os bits para a esquerda, um deter-
SHIFT minado número de casas. Da mesma forma
x = a << 2;
(Deslo- que o RIGHT SHIFT, o LEFT SHIFT pode ser
camento útil para rotações binárias em acionamentos
de bits realizados sequencialmente, como moto-
para es- res de passo. 11000101 << 1 = 10001010
querda) 11000101 << 2 = 00010100
Fonte: SENAI - RS
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
242
Operadores avançados
Na forma contracta, alguns operadores podem otimizar a execução do programa e o consumo de memória,
gerando código HEX um pouco mais eficiente, variando conforme otimizações de alguns compiladores.
O uso é realizado antecipando o operador para antes do sinal de atribuição e suprimindo o primeiro
operador, que deve ser o mesmo da variável de destino (TABELA 29).
Tabela 29: Operadores avançados
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.
No trecho de programa acima, uma operação de multiplicação é efetuada entre duas variáveis e o
resultado armazenado em uma varíavel (chamada X) do tipo int É importante lembrar que um int define
uma variável de 8 bits em compiladores para microcontroladores com esta largura de processamento,
e, portanto, podem armazenar valores inteiros positivos entre 0 e 255. O resultado da expressão de
multiplicação pode gerar um valor superior a 255, e neste caso o programador deve estar atento, pois,
se esta situação ocorrer, haverá estouro na capacidade da variável (conhecido pelo termo overflow),
podendo ocorrer efeitos indesejáveis, já que este tipo de situação não é previsto pelo compilador como
um erro. Se isso ocorrer, o valor que a variável X armazenará é a parte binária menos significativa resultante.
Por exemplo, digamos que o valor gerado pela expressão de multiplicação seja 300. Em binário, 300 é
representado por 100101100 (são necessários 9 bits). Neste caso, a partir do oitavo bit mais significativo,
os valores serão truncados. A variável conterá então o valor 00101100 em seus 8 bits que, traduzidos para
decimal, resultam em 44, valor muito diferente dos 300 iniciais.
Máquina de cálculo inadequada
A princípio, parece que para os trechos de programa acima não haverá nenhum problema. As variáveis A e B são
inteiras de 8 bits, e a variável X, de 16 bits, pode comportar o valor máximo gerado pela expressão de multiplicação,
não incorrendo em estouro (overflow). Porém, um detalhe característico da linguagem C (padrão ANSI) é realizar
cálculos da forma mais eficiente possível, usando áreas temporárias de memória para as operações e instruções de
cálculo diferentes e adequadas para cada realidade.
Se a operação envolver somente variáveis do tipo int, a “máquina de cálculo” escolhida para a operação
durante a execução do programa também será adequada para ints, e o valor resultante em áreas temporárias
de armazenamento também será um int, podendo ocorrer overflow nesta área temporária. Mesmo que
a variável de destino seja um tipo de dado maior, o valor que ela receberá vem desta área de memória
temporária, e portanto, o valor pode vir truncado.
Para evitá-lo, podemos utilizar modeladores, que são formas de especificar o comportamento de uma
variável em uma expressão.
Na Figura 238, as variáveis A e B são variáveis do tipo int, e a área temporária, onde o produto será armazenado
temporariamente, também tem comportamento de um INT. Um modelador pode ser usado para mudar o
comportamento de uma das variáveis (ou das duas), fazendo com que a expressão tenha tipos de dados mais
complexos (long, int32, float...) e desta forma o cálculo seja feito usando áreas temporárias mais complexas, capazes
de manter o dado calculado até ser armazenado na variável de destino.
variáveis do
variável do tipo INT
tipo LONG 8bits
16bits X = A * B;
área temporária,
X= 01011010
de 8bits
Mas na Figura 239, a presença de um modelador (também conhecido por “casting”) faz com que a
variável A, embora sendo um INT, se comporte como um LONG na expressão, forçando o programa
a gerar uma área de cálculo temporária de 16 bits, capaz de comportar o resultado da expressão.
área temporária,
X= 0101101001011010
de 16bits
Podemos definir que programar é estabelecer um conjunto de regras, que serão executadas
por um equipamento para a obtenção de um determinado resultado.
Existem, porém, várias formas de fazê-lo. Não estamos falando das diversas linguagens
existentes, e sim de algo muito mais abrangente: paradigmas de programação.
Um paradigma de programação fornece e determina a forma como o programador vê seu
programa em relação a sua execução. No paradigma de programação orientada a objeto, o
programador deve manter o foco nos objetos, que são os elementos controlados pelo programa.
Objetos são coleções de dados e rotinas agrupadas sob um mesmo aspecto, facilitando a abstração
para a criação de programas de grande complexidade, porém com alto nível de organização. Já a
programação estruturada entende que as estruturas de controle de fluxo determinarão a sequência
de ações a serem realizadas, uma a uma.
Em linguagem ladder (PCs), por exemplo, o programador estabelece uma relação entre as entradas
(sensores) e as saídas (atuadores), combinando as funções internas (blocos lógicos) para determinar o
funcionamento do programa. A ordem em que as ligações ocorrem não são o principal foco da programação,
e sim como elas são interligadas.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
246
Na programação estruturada, o fluxo de execução das instruções é determinado por sua ordem. Por
exemplo, no trecho de programa a seguir.
...
output_high(PIN_C2); // C2 em nível alto
delay_ms(1000); // tempo de 1 segundo
output_low(PIN_C2); // C2 em nível baixo
...
Podemos perceber que as linhas serão executadas em sequência. Inicialmente, o pino C2 será definido
para nível alto (5 V), após o programa ficará “parado” por um segundo (devido à instrução delay_ms), e, em
seguida, o pino C2 será definido para nível baixo (0V). Se trocarmos a ordem das linhas, o efeito será diferente.
Para controlar o fluxo de execução do programa, o programador deve definir o caminho por onde
as instruções irão passar, determinando também as regras que definem, durante a execução, se um
programa deve seguir por um ou por outro caminho.
Fluxogramas são usados para representar estes caminhos e os pontos de bifurcação e convergência.
Estes diagramas são utilizados para o estudo lógico dos procedimentos que devem ser seguidos tanto por
processos mais abrangentes quanto em pequenos programas computacionais (FIGURA 240).
inicio
obter
temperatura
SIM ligar
temperatura
ventilação
>45ºC?
NÃO
temperatura SIM ligar
<40ºC? aquecimento
NÃO
desligar
ventilação
desligar
aquecimento
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.
Sintaxe:
goto nomerotulo;
Onde nomerotulo é um nome único que identifica um rótulo, ou seja, um ponto único do programa.
Este nome (rótulo) deve ser identificado no programa através do nome, seguido por “dois pontos”.
Na linguagem C, a instrução de desvio incondicional goto pode realizar desvios incondicionais, fazendo
com que o programa tenha sua sequência de execução interrompida.
Segue um exemplo de um trecho de programa:
main()
{
volta: output_high(pin_C0);
delay_ms(1000);
output_low(pin_C0);
delay_ms(1000);
goto volta;
}
Embora abominado pelos seguidores mais fiéis da programação estruturada, o goto permite realizar
desvios fáceis em um programa escrito em linguagem C. Associado a estruturas condicionais, permite
também a criação de desvios condicionais, como abaixo representado:
main()
{
int aux = 0;
volta: output_high(pin_C0);
delay_ms(1000);
output_low(pin_C0);
delay_ms(1000);
aux ++;
if (aux == 10) goto segue;
goto volta;
segue: output_high(PIN_C1);
delay_ms(100);
output_low(PIN_C1);
aux = 0;
goto volta;
}
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
248
Observe que, no programa acima, uma condição (IF) está associada a uma instrução de desvio
incondicional (goto), gerando o comportamento de desvio condicional. O “goto segue” só será executado
caso a variável “aux” atinja o valor equivalente a 10.
Sintaxe:
if (condição)
{
instruções...
}
else
{
instruções...
}
if (condição)
{
instruções …
}
if (condição) instrução;
A estrutura condicional construída por um IF pode ser apresentada de duas formas distintas: com e sem
a contracondição else.
If, em língua inglesa, significa se. else, por sua vez, significa senão.
Para todo senão deve haver um se, porém nem sempre para todo se há um senão.
Lembre também que é possível suprimir as chaves, substituindo todo o bloco de instruções que seria
por elas delimitado por uma única instrução.
Largamente usada na programação, IF é a estrutura condicional mais importante em um programa.
Usamos IFs para criar pontos de desvio em um programa, geralmente avaliando expressões, variáveis e
sinais de entrada, tanto digitais quanto analógicos.
Seguem trechos de programa com IFs válidos:
…
if (var1 > 10)
{
output_high(PIN_C0);
output_low(PIN_C7);
var2 = 10;
}
var1 ++;
…
5 MICROCONTROLADORES
249
…
if (var1 > 10 && var2 < 40)
{
output_low(PIN_C1);
var2 = 50;
}
else
{
output_high(PIN_C1);
var2 –;
}
…
Para o trecho anterior, a expressão (em destaque) será válida quando o valor de VAR1 for maior que 10
e o valor de VAR2 for menor que 40. Caso a condição seja satisfeita, será executado o primeiro bloco de
instruções, delimitados pelas chaves logo após a linha do IF. Caso a expressão resulte em valor lógico falso,
o else será executado, com o fluxo de execução pulando da linha do IF para as instruções contidas no bloco
de instruções contidos após o else.
…
if (input(PIN_A1) == 0)
output_high(PIN_C0);
X ++;
…
O teste acima está associado a uma única instrução e, portanto, as chaves puderam ser suprimidas.
Observe que a única instrução ligada à condição está recuada (indentação), dada pela linha que põe o pino
C0 em nível alto. A linha que incrementa a variável X (X++) será executada independente do resultado do IF.
…
if (input(PIN_A1))
output_high(PIN_C0);
else
{
output_low(PIN_C0);
delay_ms(100);
var1 ++;
}
…
No teste anterior, as chaves do IF foram suprimidas devido ao uso de uma única instrução. No else, devido ao
uso de mais de uma instrução, as chaves são necessárias.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
250
São comuns os erros de programação onde programadores pouco experientes inserem “ponto e
vírgula” separando a condição (IF) da ação a ser executada (instruções). Neste caso, podem ocorrer erros
de compilação (casos em que um else é utilizado), ou erros de execução (não há erro de compilação, mas o
programa não funciona adequadamente).
FIQUE Não adicione o sinal de ponto e vírgula após o fechar parênteses da condição do IF.
ALERTA Isso trunca a instrução, quebrando a conexão entre ela e a condição que segue.
Switch em inglês significa “escolha”. Assim como o if - else, o switch é utilizado em estruturas de decisão.
Este recurso pode facilmente substituir uma “cadeia” de if´s encadeados (aninhados), o que resulta em
um código mais limpo e de fácil entendimento. O switch é próprio para testar uma única variável inteira em
relação a diversos valores.
A seguir, veja a forma geral (sintaxe) deste comando:
switch (variável)
{
case constante_1: linhas de programa ...;
break;
case constante_2: linhas de programa ...;
break;
.
.
.
case constante_n: linhas de programa ...;
break;
default : linhas de programa ...;
}
A estrutura switch estabelecerá uma comparação entre uma variável e as constantes que
aparecem depois da palavra “case”. Após a utilização do comando switch (variável), devemos
utilizar delimitadores (chaves) para melhor organizar o bloco de instruções que segue. Entre as
chaves, utilizamos o comando case (constante) para identificar o valor a ser comparado com a
variável. Caso a expressão constante seja igual ao valor da variável anteriormente referenciada,
será executada a operação descrita após o sinal de dois pontos (:).
Observe, no entanto, que, se uma condição for satisfeita, todas as declarações abaixo também serão
executadas; ou seja, se a condição satisfeita para um caso (case), os “cases” subsequentes também serão
executados. Para interromper o switch, neste caso, devemos utilizar o comando break, fazendo com que
o fluxo de execução seja desviado para o término (fechar chaves) do bloco de instruções do switch.
5 MICROCONTROLADORES
251
Se não desejamos interromper a execução, o break pode ser suprimido. Devemos, no entanto, observar
que, após um case ser executado, todas as condições restantes também serão executadas até que seja
encontrado um break, ou até que o bloco de instruções do switch seja finalizado.
A opção default permite que um determinado bloco seja executado no caso de nenhuma condição
anterior ter sido executada.
Na Figura 241, veja um exemplo de uso do comando em um programa que utiliza o switch para o
hardware.
U1
13 OSC1/CLKIN RB0/INT 33
R1
14 RB1 34
OSC2/CLKOUT
RB2 35 330
2 RB3/PGM 36
3
RA0/AN0
RB4 37 R2
RA1/AN1
5V C. C. 4 RB5 38
RA2/AN2/VREF-/CVREF
39
330
5 RA3/AN3/VREF+ RB6/PGC
6 RA4/TOCKI/C1OUT RB6/PGD 40
R3
7 RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI 15 330
RC1/T1OSI/CCP2 16
8 RE0/AN5/RD
9 RE1/AN6/WR
RC2/CCP1 17
R4
RC3/SCK/SCL 18
10 RE2/AN7/CS RC4/SDI/SDA 23 330
RC5/SDO 24
RC6/TX/CK 25 R5
1 MCLR/Vpp/THV 26
RC7/RX/DT
330
RD0/PSP0 19
RD1/PSP1 20 R6
RD2/PSP2 21
RD3/PSP3 22 330
RD4/PSP4 27
RD5/PSP5 28 R7
RD6/PSP6 29
RD7/PSP7 30 330
PIC 16F877A
PROGRAM = 7 SEGMENTOS.cof R8
BOT - 330
R10
10K
R9
BOT +
10K
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
252
void main(void)
{
int menu = 0; // declara variável de 8 bits
short flag = 1; // declara variável de 1 bit
while(true) // laço infinito
{
if (input(PIN_D0) && flag) // se BOT + for pressionado ...
{
menu ++; // incrementa variável
flag = 0; // registra que já processou
}
if (input(PIN_D1) && flag) // se BOT - for pressionado ...
{
menu --; // decrementa variável
flag = 0; // registra que já processou
}
if (!input(PIN_D1) && !input(PIN_D0))
flag = 1; // caso nenhum botão pressionado, reseta flag
switch(menu) // ESCOLHA com base na variável MENU
{
case 0 : menu = 6; // caso = 0, atribui valor máximo (6)
break; // e interrompe o switch
case 1 : output_c(0b00000000); // caso = 1, zera todo portc
break; // e vai para final do switch
case 2 : output_c(0b10000001); // caso = 2, habilita + e - significativos
break; // e vai para final do switch
case 3 : output_c(0b11111111); // caso = 3, habilita todo PORTC
break; // e vai para final do switch
case 4 : output_c(0b11100111); // caso = 4, habilita 6 bits de PORTC
break; // e vai para final do switch
case 5 : output_c(0b01010101); // caso = 5, habilita bits impares
delay_ms(300); // e realiza parada de 300 ms
case 6 : output_c(0b10101010); // caso = 5 ou = 6, habilita bits pares
break; // e vai para final do switch
default: menu = 1; // caso seja qualquer outro valor, atribui 1
}
delay_ms(300); // tempo
output_c(0b00000000); // põe todo PORTC em nível baixo
delay_ms(300); // tempo
}
}
5 MICROCONTROLADORES
253
No exemplo acima, a estrutura condicional definida pelo switch / case está em destaque. Atente para
o uso do case que define o ponto de entrada em função do valor da variável, e para o uso do break (não
usado em todos os cases) que desvia o fluxo de execução para o final (fechar chaves) do switch. O uso do
rótulo default dentro do switch permite que o fluxo de execução seja desviado para esta linha se nenhuma
situação anterior tiver sido atendida.
A palavra while significa “enquanto”. A seguir, veja a sintaxe dessa palavra na linguagem C.
…
while (condição)
{
instruções ...
}
…
While é uma instrução responsável por repetição, sendo bastante versátil. O teste que garante que cada
repetição das instruções será executado é realizado no início de cada ciclo (FIGURA 242).
void main(void)
{
int x;
while (true)
repetir {
incondicionalmente while (!input(PIN_D0));
x = 0;
while (x < 12)
ficar repetindo enquanto {
o valor de X for inferior a 12 output_high(PIN_E 0);
delay_ms(100);
output_low(PIN_E 0);
ficar repetindo enquanto delay_ms(100);
não houve nível alto em D0 x++;
}
}
}
Sua versatilidade é demonstrada pela figura anterior, onde o while é utilizado de três diferentes formas. Na
primeira (laço vermelho), o while (true) é usado para definir um bloco de repetição que ficará sendo executado
incondicionalmente. A condição (true) é sempre verdadeira, fazendo com que o laço aja como um“laço infinito”. Já
o segundo while (laço em verde) é um laço vazio. Ele pode ser assim chamado por não possuir nenhuma instrução
após seu teste condicional. É importante observar que, neste tipo de teste, o ponto e vírgula se faz presente após
a condição, indicando que, interno ao laço, nenhuma instrução será realizada. Em outras palavras, somente o
teste é realizado, ficando o programa dedicado ao constante teste da expressão interna aos parênteses. Quando
a condição não for mais satisfeita, o while será interrompido, seguindo com a execução a partir da próxima
instrução após o ponto e vírgula. Este tipo de teste não é comum em sistemas de processamento de dados, pois
os dados não tendem a mudar de estado sem a interferência do próprio programa, porém funcionam muito
bem em microcontroladores para testes de entradas digitais, pois elas podem mudar de estado, refletindo o
comportamento de um sensor ou outro elemento conectado às entradas digitais.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
254
Por fim, em azul, um laço que utiliza a comparação de uma variável com uma constante para causar a
repetição controlada, por uma quantidade determinada de vezes, de um bloco de instruções. Observe
que a variável de controle foi inicializada (x=0) antes do início do laço, e que interior (ou anterior?) a
ele uma linha (x++) é responsável pela mudança da variável X a cada ciclo. Sem esta última instrução,
a variável X não teria seu valor alterado e, consequentemente, o laço não teria fim.
Para interromper um while ou qualquer estrutura de repetição, deve-se executar a instrução break.
Já a instrução continue promove um reinicio do laço, ignorando o restante das instruções compreendidas
no bloco definido pela estrutura de repetição.
Vejamos um exemplo:
...
while(!input(PIN_D0)) //enquanto D0 não estiver em nível alto
{ //inicio da estrutura de repetição
output_high(PIN_C0); //põe C0 em 5V
delay_ms(100); //tempo
output_low(PIN_C0); //C0 em 0V
if (input(PIN_D1)) //se D1 for para nível alto...
{ //
x = 0; //zera x
break; //sai da estrutura de repetição, interrompe while
} //
if (input(PIN_D2)) //se D2 for acionado
continue; //volta ao início da estrutura de repetição
x ++; //aumenta X
output_high(PIN_C1); //põe C1 em 5V
delay_ms(100); //tempo
output_low(PIN_C1); //C1 em 0V
} //final da estrutura de repetição
...
O laço descrito anteriormente continuará a ser executado até que o pino D0 esteja em nível alto. Porém,
se o pino D1 for posto em nível alto, o laço também será interrompido, mas pela instrução break. Neste
caso, antes da interrupção é atribuído um valor para a variável X antes de sair da execução do laço.
Caso o pino D2 esteja em nível alto, o programa continuará executando o laço, porém não fará o
incremento de X e nem mudará o estado do pino C1, pois a instrução continue faz com que o laço seja
reiniciado, fazendo com que a execução do programa volte ao início do bloco de instruções, refazendo
também o teste de condição do laço.
Esta é outra forma de escrever uma estrutura de repetição, sendo o grande diferencial do do/while o
emprego do teste na parte final do laço. Sua sintaxe é:
do {
instruções;
} while (condição);
…
5 MICROCONTROLADORES
255
Lembre também que uma linha de instruções é sempre terminada por um ponto e vírgula (;), e um
bloco de instruções é delimitado por chaves ({ ... }). Assim como no while, o comando break pode ser usado
para interromper um do/while, e o comando continue fará com que o laço reinicie.
Segue um trecho de programa onde fazemos o uso de um do/while:
…
do {
printf(“\r\nPressione S/N”);
dado = getch(); //busca valor UART, armazenando na variável “dado”
} while(dado != ‘S’ && dado != ‘N’);
…
No trecho acima, será enviada uma mensagem através da porta serial. Em seguida, uma variável
(provavelmente do tipo CHAR) receberá o valor do caractere recebido pela porta serial (que será
enviado pelo equipamento ou terminal conectado à porta serial). Ao receber este dado, ele será
comparado com o caractere S e N. Caso seja diferente de ambos, todo o bloco será repetido,
reiniciando o laço.
Caso seja representado através de um while, mais linhas serão necessárias para o mesmo efeito.
For significa para (preposição). É uma estrutura de repetição bastante prática e voltada à realização de
contagens ou de iterações de um laço, relacionadas a uma variável de controle.
…
for ( expressão_inicial; condição_para_repetição; expressão_auxiliar)
{
linha ou bloco de instruções a repetir...
}
…
Observe que, entre os parênteses deste comando, são inseridos três itens: a expressão_inicial
geralmente é utilizada para inicializar uma variável de controle, determinando qual o seu valor inicial.
A condição_para_repetição é a condição para ocorrer a repetição. Quando esta condição for falsa, o for
será interrompido, seguindo para a próxima instrução após o bloco de instruções.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
256
...
int AUX; // variável declarada
...
AUX = 0; // variável deve ser inicializada
while(AUX < 10) // enquanto valor de AUX for < que 10
{
output_high(PIN_D0);
delay_ms(100);
output_low(PIN_D0);
delay_ms(100);
AUX ++; // AUX é incrementado
}
output_high(PIN_C4);
...
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.
Sub-rotinas, ou funções (como são chamadas na linguagem C), são trechos de programas relativamente
independentes, e que podem ser disparados a partir de um “chamado” realizado pelo próprio programa, ou
ainda por sinais de interrupção.
5 MICROCONTROLADORES
257
b) reaproveitamento de código - ao fragmentar um problema, talvez seja possível observar que, em muitos casos, uma mes-
ma sequência de comandos deve ser executada em pontos diferentes do programa. O uso de sub-rotinas permite exe-
cutar esta sequência de comandos a partir de pontos diferentes, melhorando a organização do programa. Muitas vezes,
sub-rotinas podem ser reaproveitadas em mais de um programa;
c) otimização de memória - variáveis locais são variáveis que possuem escopo limitado à função onde são decla-
radas, porém seu tempo de vida se limita ao tempo de execução da função, sendo a memória por elas alocada
liberada quando a função deixa de ser executada. Isso otimiza o consumo de memória RAM.
13 OSC1/CLKIN RB0/INT 33 R1
14 RB1 34
OSC2/CLKOUT
RB2 35 330
2 RB3/PGM 36
3
RA0/AN0
RB4 37
R2
RA1/AN1
4
RA2/AN2/VREF-/CVREF RB5 38
330
5 RA3/AN3/VREF+ RB6/PGC 39
R4 6 RA4/TOCKI/C1OUT RB6/PGD 40 R3
7 RA5/AN4/SS/C2OUT
1K RC0/T1OSO/T1CKI 15 330
RC1/T1OSI/CCP2 16
8 RE0/AN5/RD
RC2/CCP1 17
9 RE1/AN6/WR 18
RC3/SCK/SCL
10 RE2/AN7/CS RC4/SDI/SDA 23
R5 RC5/SDO 24
RC6/TX/CK 25
1 MCLR/Vpp/THV
10K RC7/RX/DT 26
RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28
RD6/PSP6 29
RD7/PSP7 30
PIC 16F877A
PROGRAM = sonoro-hex
BOT 2
R10
10K
R9
BOT 1
10K
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:
void main(void)
{
int conta = 0; // declara variável de 8 bits
while(true) // laço infinito
{
if (input(PIN_D0)) // se BOT1 ...
{
beep(); // chama subrotina BEEP
conta = 0; // zera variável
}
if (input(PIN_D1)) // se BOT2 ...
beep(); // chama subrotina BEEP
conta ++; // incrementa variável
if (conta == 100) // se variável for igual a 100
{
beep(); // chama subrotina
conta = 0; // zera variável
}
else // senão
{
output_high(PIN_C0); // pisca C0 (LED)
delay_ms(100);
output_low(PIN_C0);
delay_ms(400);
}
}
}
5 MICROCONTROLADORES
259
O programa iniciará sua execução no momento em que o microcontrolador for energizado e estiver
corretamente configurado para execução, sempre a partir da função principal (main). Ao executar
a linha de chamada da função (em vermelho), a execução do programa principal é interrompida,
gerando uma marcação na linha onde a chamada ocorre, e entregando o controle à função chamada.
As instruções internas da função são então executadas. Ao finalizar a função através do fechar chaves
do bloco da função, ou através da instrução return, o programa principal volta a ter o controle,
reassumindo a partir da marcação que havia sido realizada na chamada da função.
A seguir, veja algumas considerações importantes sobre funções:
a) você pode realizar chamadas de funções a partir de qualquer ponto do programa principal ou
de outras funções;
b) recursividade é um recurso que permite que a função chame a ela mesma, devendo haver
alguma forma de controle para interromper a recursão a partir de uma determinada quantidade
de vezes. É uma técnica bastante utilizada na programação em computadores, onde a quantidade
de memória de pilha e de memória RAM não é um problema. Em microcontroladores, por outro
lado, há uma limitação neste sentido, e alguns compiladores bloqueiam a possibilidade do uso de
recursividade. O CCS não permite, até versões mais recentes, o uso de recursividade, gerando erros
no momento da compilação;
c) variáveis locais de uma função são descartadas quando a função é interrompida, e os dados nelas
contidos podem ser alterados ou perdidos;
d) junções podem retornar informações através de um tipo de dado, ou através do acesso a áreas
de dados (variáveis globais ou endereço de memória de variáveis locais da função que realizou a
chamada).
Vimos que sub-rotinas podem facilitar o processo de programação, uma vez que fragmentamos
o problema em partes menores, reaproveitando trechos de programa em várias partes dele. Porém,
em muitos casos vamos precisar “enviar” informações às funções, ou “buscar” respostas que podem
ser enviadas por elas. A troca de mensagens existente em funções dos programas é muito útil e
importante para garantir a melhor organização e eficiência do software produzido.
A Figura 244 mostra o esquema de ligação de um microcontrolador PIC16F877A a um display de
caracteres (LCD) de 16 colunas e 2 linhas, a dois botões (chaves tácteis), um relé que controla um motor e
um sensor indutivo, ajustado para detectar um pino metálico preso à polia de um equipamento. Trata-se
do controle de posicionamento de uma esteira.
LCD2
LM016L
VDD
VSS
VEE
RW
D0
D1
D2
D3
D4
D5
D6
D7
RS
11
13
10
12
14
7
1
2
5
3
4
6
8
9
U1
13 OSC1/CLKIN RB0/INT 33
14 RB1 34
OSC2/CLKOUT
RB2 35
2 RA0/AN0 RB3/PGM 36 VDD 24V
+ -
3 RB4 37
RA1/AN1
VDD 4
RA2/AN2/VREF-/CVREF RB5 38
5 RA3/AN3/VREF+ RB6/PGC 39
6 RA4/TOCKI/C1OUT RB6/PGD 40
7 RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI 15
R3
1K
8 RE0/AN5/RD
RC1/T1OSI/CCP2 16
17 VDD
R1
RC2/CCP1
9 RE1/AN6/WR 18
RC3/SCK/SCL 470K
10 RE2/AN7/CS RC4/SDI/SDA 23
RC5/SDO 24
RL1
RC6/TX/CK 25 5V
1 MCLR/Vpp/THV RC7/RX/DT 26
D1
RD0/PSP0 19
LED-BLUE
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28 Q1
RD6/PSP6 29 BC542
RD7/PSP7 30
PIC 16F877A
PROGRAM = sonoro-hex
R2 MOTOR DA ESTEIRA
10K
R6 R4 R5
10K 10K 10K
O microcontrolador possui as chaves tácteis ligadas em D0 e D1. O programa determina que, quando a
chave táctil conectada a D1 é acionada, o motor da esteira é ativado até que a polia sofra três revoluções
completas. Quando D2 é acionado, serão realizadas sete revoluções nesta polia.
O procedimento de contar voltas através do sensor conectado em D7 é o mesmo para ambas as formas,
porém a quantidade de revoluções é diferente.
Usando a passagem de parâmetros, é possível enviar esta quantidade à função, usando esta informação
internamente à função para realizar os procedimentos através do mesmo trecho de programa.
Segue o programa sugerido:
#include <16f877.h> // inclui arquivo de cabeçalho
#use delay (clock=20000000) // define valor de clock para delays
#define use_portb_lcd true // define que será usado display no PORTB
#include <lcd.c> // inclui biblioteca de uso do LCD 16x2 da CCS
void gira(int qtde) // declara função chamada GIRA, que recebe um parâmetro (int)
{
output_high(pin_c0); // liga motor da esteira
while(qtde > 0)
{
printf(lcd_putc,”\fGirando: %u”, qtde); // escreve qtde no display
while(input(PIN_D7)); // aguarda sensor da polia enviar sinal 0
while(!input(PIN_D7)); // aguarda sensor da polia enviar sinal 1
qtde --; // diminui variável recebida como parâmetro
}
output_low(pin_c0); // desliga motor da esteira
}
void main(void)
{
lcd_init();
while(1)
{
printf(lcd_putc,”\fBOT1 = 3 giros\nBOT2 = 15 giros”);
if (input(PIN_D0)) gira(3); // se botão1 pressionado, chama GIRA com parâmetro = 3
if (input(PIN_D1)) gira(15); // se botão2 pressionado, chama GIRA com parâmetro = 15
delay_ms(100);
}
}
Neste exemplo, a passagem ocorre somente com um parâmetro, que é do tipo INT, porém são permitidos
os parâmetros que forem necessários, podendo também ser de qualquer tipo de dado que julguemos
adequado ao comportamento da variável, bastando declará-los entre os parênteses da função, tomando o
cuidado de separá-los por vírgula.
Exemplos de trechos de programas
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
262
Uma função chamada “motor”, que recebe como parâmetro duas variáveis inteiras, sendo uma de 8 bits e
outra de 16 bits. Estas variáveis devem ser usadas no corpo da função e têm comportamento de variáveis locais.
A chamada desta função pode ocorrer em qualquer outra função descrita após ela, podendo ser passada
como parâmetros, valores constantes ou valores de variáveis.
Exemplo de passagem de parâmetros usando constantes durante a chamada da função:
…
MOTOR (10, 3000);
…
A função “motor” será executada, sendo passadas como parâmetro duas constantes. Observe que o
valor enviado deve ser comportado pelos tipos de dados declarados na função.
Outra forma de realizar a chamada de uma função passando informações é o envio de dados contidos
em variáveis:
…
MOTOR (X, POS);
…
Desta forma, o conteúdo de X será armazenado no primeiro parâmetro (velocidade), e POS no segundo
parâmetro (posicao). As variáveis X e POS devem ser de tipos de dados compatíveis, podendo ser de
tamanhos (em bits) iguais ou inferiores aos tipos usados pelos parâmetros da função, sob risco de haver
perda ou alterações nos dados.
Neste caso, também é importante observar que os valores enviados para a função “motor” serão cópias
dos conteúdos de X e POS, sendo que as alterações sofridas pelos parâmetros internos à função não são
refletidas nestas variáveis.
FIQUE A informação passada à função durante a passagem de parâmetros por conteúdo é so-
mente o conteúdo. Alterando o valor do parâmetro dentro da função, não alteramos o
ALERTA valor das variáveis que foram usadas durante a chamada da função.
É possível também realizar chamadas à função passando como parâmetros dados de variáveis combinados
com constantes, ou até mesmo resultado de expressões.
Seguem chamadas válidas para a função anteriormente declarada:
…
MOTOR (X + Y, 4000);
…
MOTOR (A / 2, POS);
…
5 MICROCONTROLADORES
263
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;
Após esta linha, a variável X conterá o menor valor (5), e Y o maior (10). O uso do símbolo & antes da
variável é obrigatório, e faz com que a função seja chamada passando-lhe os endereços de X e Y na memória.
Embora não seja muito comum em estudos iniciais com linguagens de programação,
FIQUE o uso de ponteiros na linguagem C pode tornar os programas muito mais eficientes,
ALERTA porém, em caso de erro, podemos alterar valores em outras áreas de memória, cau-
sando efeitos inesperados durante a execução do programa.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
264
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”.
Para usar o LCD (padrão HD44780, 16 colunas, 2 linhas, modo texto) como periférico de saída, adotaremos
neste material a biblioteca LCD.C fornecida de forma integrada ao compilador CCS e incluída no cabeçalho
de nossos programas. Esta biblioteca utiliza um LCD 16x2 conectado a 4 + 3 fios no PORTB ou PORTD.
Utilizaremos a ligação via PORTB, usando o esquema a seguir (FIGURA 245).
5V
14
1
B7 D7
B6 D6
B5 D5 CONTRASTE
B4 D4
B3 0 ... 5V
B2 RW
B1 RS
B0 EN
5 MICROCONTROLADORES
265
Esta ligação utiliza um display de caracteres em modo “4 + 3 fios”. Observe que são utilizadas sete
ligações para enviar dados ao LCD, sendo que três são para controle (EM, RS e RW) e quatro são para os
dados (um nibble por vez).
Para que o display aceite este modo de ligação, deve sofrer um processo de inicialização, que implica no
envio de alguns sinais em sequência e tempos pré-determinados. Estas informações são fornecidas junto ao
datasheet do display e geralmente seguem o padrão consolidado definido pelo modelo HD44780 da Hitachi.
Para realizar a inicialização a partir do programa, podemos usar a função lcd_init(), que está presente
na biblioteca LCD.C. A chamada a esta função deve ser realizada no início do programa, podendo ser antes
do laço principal. Na falta da rotina de inicialização, é normal obter um comportamento anormal do LCD,
geralmente dado pelo escurecimento da primeira linha, com exibição de caracteres estranhos. Outras
formas de inicialização podem se fazer necessárias em modelos diferentes de LCD.
Ao enviar um dado ao LCD, utilizaremos a função lcd_putc(CHAR). Observe que entre os
parênteses desta função será colocado o texto ou o caractere a ser enviado ao LCD. O CCS entende
que, se o conteúdo passado como parâmetro para esta função for uma sequência de caracteres
(chamada STRING, e delimitada por aspas duplas), o envio ocorre caractere por caractere, até o final
da string.
Portanto, se executarmos a função lcd_putc(‘x’); será enviado ao LCD o caractere “x”. Se executarmos a
função lcd_putc(“Ola ...”), será enviada a mensagem “Ola...”, que está entre as aspas duplas. Se a instrução
for lcd_putc(X), deve haver uma variável chamada X do tipo CHAR. Esta será a variável a ser enviada.
Observe a diferença entre este caso e o primeiro citado, onde foram utilizadas aspas simples para identificar
o caractere ‘x’, diferenciando da variável X.
Caracteres especiais do lcd_putc- alguns caracteres podem ser enviados ao LCD para promover
controle de posição, apagar ou retroceder o cursor. O cursor é um ponto que pode ou não estar habilitado,
e que identifica onde será escrito o próximo caractere. Estes caracteres especiais que podem ser enviados
ao display são interpretados pela função lcd_putc, que envia a correta sequência de dados e controle com
o objetivo de realizar um determinado efeito no periférico.
São caracteres especiais do LCD :
\f: limpeza do display. Esta opção reinicia o display, limpando-o e posicionando o cursor na linha 1
coluna 1.
\b: retorno de um caractere. Esta opção faz com que o cursor retroceda uma posição.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
266
\n: Nova linha. Posiciona o cursor na primeira coluna da segunda linha do LCD.
Veja alguns exemplos de uso na Figura 246.
Oi Teste.
1 lcd_putc(”Oi”);
lcd_putc(”Teste.”);
lcd_putc(”\fLipando...”); Limpando . . .
2 segunda linha
lcd_putc(”\nsegunda linha”);
lcd_putc(”\fTestX”); Teste
3
lcd_putc(”\be”);
Posicionando o cursor
Para posicionar o cursor no LCD, podemos usar a função lcd_gotoxy(x,y), onde x e y são, respectivamente,
a coluna e a linha onde ele deve ser reposicionado.
Desta forma, se desejarmos escrever algo na primeira linha do display sem apagar a segunda linha, basta
inserir o comando lcd_gotoxy(1,1). Isso posicionará o cursor na primeira linha, e na primeira coluna. No
entanto, tome cuidado, pois, uma vez que o display não foi apagado, as informações antigas permanecerão
na primeira linha, a menos que você as sobrescreva.
Para rolar o conteúdo do LCD um caractere para a direita, ou seja, deslocar um texto para a esquerda ou a
direita, utilize o comando lcd_send_byte(0,0x1C), ou, caso esteja usando a biblioteca LCD.c modificada, utilize
o comando lcd_shift_right().
Para rolar o conteúdo do LCD um caractere para a esquerda, utilize o comando lcd_send_byte(0,0x18),
ou, caso esteja usando a biblioteca LCD.c modificada, utilize o comando lcd_shift_left().
A seguinte sequência de comandos gera o efeito de uma mensagem rolando no display. Para isso, será
necessário declarar uma variável do tipo INT chamada X.
Para ativar o cursor, utilize o comando lcd_send_byte(0,0x0E). Para ativar o cursor piscante utilize o
comando lcd_send_byte(0,0x0F), e, para desativá-lo, use lcd_send_byte(0,0x0C).
5 MICROCONTROLADORES
267
5.7.26 PRINTF
O printf é um comando bastante conhecido por programadores de linguagem C. Sua função é gerar uma
saída formatada, permitindo juntar texto e informações contidos em variáveis, gerando uma sequência de
caracteres que pode ser enviada a qualquer função de saída de dados.
Sua utilidade é clara quando precisamos realizar operações como a de escrita de um valor numérico no
LCD, ou enviar este valor via saída serial.
A Figura 247 apresenta um exemplo de uso com o LCD.
#include <16f877.h>
contando - > 0 contando - > 2
#use delay (clock=20000000)
#define use_portb_lcd true
#include <lcd.c>
void main()
{ contando - > 1 contando - > 3
...
int CONTA = 0;
lcd_init();
while(true)
{
printf(lcd_putc,”\fcontando -> %u”, CONTA);
CONTA = CONTA + 1;
delay_ms(300);
}
}
Figura 247 - Uso com o LCD
Fonte: SENAI - RS
O programa acima realiza uma contagem progressiva, iniciando pelo valor zero e mostrando um número
a cada 300 milésimos de segundo.
No compilador CCS, o PRINTF é uma função embutida, não sendo necessária nenhuma biblioteca
especial para seu uso. Ele pode ser usado para gerar sequência de textos formatados. É assim chamado pois
o comando permite dar formato ao conteúdo das variáveis, juntando-os a partes de texto (FIGURA 248).
contando - > 2
efeito deste linha:
Dentro dos parênteses da função printf, devemos dispor os seguintes elementos, separados por vírgulas.
Função de saída
É a função que receberá a sequência de caracteres construída pelo printf. Nesta posição, e para o
compilador em questão, você pode utilizar qualquer função que aceite um parâmetro do tipo char. Como
a função lcd_putc requer um char entre os parênteses, ela pode ser aplicada ao printf como função de
saída, enviando os dados preparados pelo printf para o display. Usando a função lcd_putc, obtemos a saída
de dados no display LCD. Se este elemento for suprimido, a saída será enviada ao dispositivo padrão, que
geralmente é a porta serial do microcontrolador. Neste caso, o CCS irá solicitar o uso da diretiva USE RS232
para configurar a porta serial;
String
É o trecho de caracteres delimitado por aspas duplas, que irá definir como será a sequência de
caracteres que será gerada. É importante observar a delimitação realizada pelas duas aspas duplas. Dentro
delas podem ser inseridos caracteres de texto, caracteres especiais e especificadores de formato. Na string
podem ser usados:
a) texto - sequências de caracteres que serão enviadas. Qualquer espaço ou caractere que não esteja
identificando um caractere especial ou especificador de formato será tido como texto. É importante
observar que, para exibir uma barra invertida (\), usamos duas barras internas a string, e para exibir o sinal
de percentual (%), usamos dois sinais em sequência, sem espaço entre eles. Isso se deve ao fato destes
sinais iniciarem uma especificação de formato ou um caractere especial;
b) caracteres especiais - são símbolos geralmente usados para gerar efeitos nos dispositivos receptores
das sequências de texto. Geralmente, tais caracteres não possuem uma representação impressa e são
compostos por uma barra invertida seguida de um símbolo, geralmente uma letra. Um exemplo de
caractere especial é o new line, representado por um \n, que, quando recebido por um display alfanumérico
ou terminal de dados, posiciona o cursor em uma nova linha;
Exemplo de caracteres especiais: \f (limpar display), \n (nova linha), \b (voltar um caractere), \r (retorno
de carro), \g (beep) etc.
Obs.: Alguns caracteres especiais somente resultarão efeito em terminais seriais.
c) especificadores de formato - locais, em meio ao texto, onde deverá ser inserido o conteúdo da variável
no momento em que o programa montar o trecho de saída de texto.
Em outras palavras, é no lugar do primeiro especificador de formato que será inserido o valor da primeira
variável, no segundo especificador, o local onde será inserido o valor contido na segunda variável, e assim por
diante. O nome especificador de formato se dá pelo fato de o símbolo definir o formato, ou seja, a forma como o
valor será exibido, com mais ou menos dígitos, no formato decimal ou hexadecimal etc.
Como cada especificador de formato está relacionado a uma variável (identificada após a string, dentro
dos parênteses do PRINTF), é importante utilizar um especificador compatível com o tipo de dado da
variável correspondente.
Observe o Quadro 5:
5 MICROCONTROLADORES
269
TESTE
12345 printf (lcd_putc,“\fTESTE\n12345”);
RELOGIO 03:23
printf (lcd_putc,“\fRELOGIO %02u: %02u”, HORA, MINUTO);
Obs: as variáveis HORA e MINUTO são do tipo INT, enquanto que TOTAL e PARCIAL são LONG ou INT32
Hardware - Usando o PIC16F877A, utilizaremos a UART física para realizar a conexão, onde os pinos
C6 e C7 assumirão comportamento de TX (transmissão) e RX (recepção) dos dados em um padrão TTL
(transistor – transistor logic), com níveis de tensão baixo (0V) ou alto (5V). O padrão de comunicação RS232
exige, no entanto, níveis de tensão negativos (-5V, 0V, +5V, ou -12V, 0V, +12V, dependendo da versão e
do equipamento). Para gerar estes níveis de tensão amplificados e negativos, sugerimos o uso de um
TRANCEIVER RS232, como o MAX232, ST232, ICL232, ADM232 ou HIN232 (FIGURA 251).
CABO
5V SERIAL
1µ F 1µ F DB9 DB9 DB9 DB9
PIC16F877A
2 2
1µ F 3 3
5 5
C6 TX
1µ F
C7 RX
Figura 251 - Esquema de ligação de um MAX232 a um microcontrolador e uma porta serial padrão DB9
Fonte: SENAI - RS
Esquema de ligação de um MAX232 a um microcontrolador e uma porta serial padrão DB9. Observe que
o sinal de TX de um periférico deve chegar ao RX do outro, por isso o cabo é cruzado (2-3, 3-2).
Uma vez conectado, vamos a um programa que utilize a porta serial em um microcontrolador. Como
primeiro exemplo, faremos um programa que escreve a mensagem “Ola mundo!” no terminal serial.
Note a presença das linhas em destaque, que configuram e enviam dados à saída serial.
void main(void)
{
printf(“\n\rOla mundo!”); // envia dados pela serial. /n=nova linha, /r=retorno col 1
while(true)
{
// laço infinito.
}
}
O programa anterior envia uma mensagem pela porta serial, iniciando por dois caracteres
especiais, que posicionam o cursor no início de uma nova linha no terminal antes de enviar a
mensagem “Ola mundo!”.
Note o uso do printf, sem nenhuma função de saída. No compilador da CCS, a saída padrão para o
printf é a porta serial, que deve estar devidamente configurada, como na terceira linha do programa,
através da diretiva #use rs232.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
272
Para a leitura de dados da porta serial usamos a função embutida GETC(),que retorna o caractere
recebido pela porta serial. Se esta função for disparada sem que haja caractere no buffer de entrada,
o sistema permanecerá travado até que um caractere seja recebido. Para evitar isso é recomendado
o uso da função KBHIT(), que pode identificar se há ou não algum caractere no buffer de entrada
(memória onde o byte fica armazenado até ser processado).
O envio de bytes também pode ser feito usando as instruções putchar (byte) ou puts(string): a
primeira é usada para envio de um único byte (int8 ou char), e a segunda, para o envio de uma
string, similar ao printf.
Como segundo exemplo, vamos criar um sistema que emula um terminal, permitindo que dois
microcontroladores sejam interligados usando o mesmo programa. O efeito do software proposto
deve replicar os sinais recebidos no portd, enviando-os ao portc do outro microcontrolador.
void main(void)
{
int PORTD, PORTD_ANT = 0;
char AUX;
while(true)
{
PORTD = input_d(); // busca valor do PORTD
if (PORTD != PORTD_ANT) // detecta se houve mudança no PORTD
{
if (input(PIN_D0)) putchar(‘A’); // se D0, envia letra A via rs232
if (input(PIN_D1)) putchar(‘B’); // se D1, envia letra B via rs232
PORTD_ANT = PORTD; // registra mudança
}
if (kbhit()) // se houver dados para receber no buffer de entrada rs232
{
AUX = getch(); // le dado (byte)
switch(AUX)
{
case ‘A’ : output_high(PIN_C0); // caso seja um caractere A, poe C0 em 5V
break;
case ‘B’ : output_low(PIN_C0); // caso seja um caractere B, poe C0 em 0V
break;
}
}
} // fim do laço infinito.
} // fim do programa principal
Caso este programa seja executado com um único microcontrolador conectado a um terminal, o efeito
esperado será a exibição de caracteres A e B quando os pinos D0 e D1 mudarem de estado (borda de
subida do sinal, com mudança do nível baixo para nível alto).
Caso este programa seja executado em dois microcontroladores, interligados pela porta serial, quando
D0 mudar de nível baixo para nível alto o pino C0 do outro microcontrolador mudará para nível alto, e
quando D1 mudar de nível baixo para alto o pino C0 do outro microcontrolador mudará para nível baixo.
5 MICROCONTROLADORES
273
O microcontrolador PIC16F877 pode realizar a conversão de um sinal analógico (que varia de 0 a 5 Volts)
em um valor binário de até 10 bits. Isso é possível graças ao recurso ADC (Analog Digital Converter) que está
embutido no próprio componente.
Outro fator importante é que este microcontrolador possui 8 canais analógicos configuráveis; ou
seja, é possível ler esta variação de tensão por até 8 pinos diferentes.
Algumas configurações avançadas permitem, ainda, que alguns pinos sejam usados como referência positiva
e negativa, fazendo com que uma leitura seja feita em uma faixa de tensão mais restrita, como de 1 a 3 Volts.
É importante observar que, quando utilizamos um pino como entrada analógica, seu recurso de
entrada/saída digital é desativado, porém a mudança (transição) das funções do pino pode ser executada
em tempo de execução através de instruções no programa (FIGURA 252).
1 40
0 a 5 Volts AN0 PIN_A0 2 39
0 a 5 Volts AN1 PIN_A1 3 38
0 a 5 Volts AN2 PIN_A2 4 37
0 a 5 Volts AN3 PIN_A3 5 36
6 35
0 a 5 Volts AN4 PIN_A5 7 34
0 a 5 Volts AN5 PIN_E0 8 33
0 a 5 Volts AN6 PIN_E1 9 32
0 a 5 Volts AN7 PIN_E2 10 31
11 30
12 29
13 28
Figura 252 - Pinos do PIC16F877A que podem ser configurados para conversão analógica/digital
Fonte: SENAI - RS
Como já estudado anteriormente, podemos usar conversores de sinal analógico para digital
em microcontroladores para interpretar sinais de sensores analógicos, geralmente utilizados para
leituras de grandezas físicas, como pressão, vazão, força, luminosidade, temperatura, velocidade,
tensão, corrente etc.
No caso do PIC16F877A, estas informações precisam estar no formato 0 a 5V, pois, se os níveis de
tensão ultrapassarem estes valores, poderão ocorrer danos irreversíveis ao componente.
Um exemplo de aplicação: Leitura de um potenciômetro. Por meio da entrada analógica, podemos
quantificar a posição de uma resistência variável, que pode ser um potenciômetro convencional ou
qualquer outro sensor que, da mesma forma, realize a variação de uma resistência.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
274
POTENCIÔMETRO
A0
5V
Figura 253 - Potenciômetro de 10K conectado a um microcontrolador. Para facilitar entendimento, demais ligações de
alimentação e clock do microcontrolador foram suprimidas
Fonte: SENAI - RS
5V 1 40
LM = ANO 2 39
35dz 3 38
4 37
5 36
6 35
7 34
8 33
9 32
10 31
11 30
12 29
13 28
Figura 254 - Sensor de temperatura LM35DZ, de característica linear,
conectado diretamente ao canal AN0 de um microcontrolador
Fonte: SENAI - RS
//------------------------
#include <16f877.h>
#device ADC=10 // define que a conversão AD será de 10 bits
#use delay (clock=20000000)
#define use_portb_lcd true // define que o LCD está ligado ao PortB
#include <lcd.c> // inclui biblioteca de LCD
long AD(int CANAL) // declara função (subrotina) usada para ler entrada analógica
{
long AUXILIAR; //Declara uma variável de 16 bits
enable_interrupts(GLOBAL); //Habilita uso de interrupção para conversão AD
setup_adc_ports(ALL_ANALOG); //Habilita todas as analógicas(A0,A1,A2,A3,A5,E0,E1,E2)
setup_adc(ADC_CLOCK_INTERNAL); //Configuração do clock do conversor AD
set_adc_channel(CANAL); //Configuração do canal do conversor AD
delay_us(100); //Tempo para selecionar canal, recomendado pela microchip
AUXILIAR = read_adc(); //Faz a leitura e armazena na variável AUXILIAR
setup_adc_ports(NO_ANALOGS); //Desativa entradas analógicas
return(AUXILIAR); //Retorna valor analógico lido
}
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
O programa anterior realiza a leitura do canal analógico AN0, mas a função descrita AD(canal) permite
que o canal possa ser modificado, bastando utilizar entre os parênteses o número, entre 0 e 7. A leitura de
mais de um canal pode ser realizada em um mesmo programa.
Na Figura 255 apresentamo outro exemplo de ligação do microcontrolador a um LDR ligado em um
divisor de tensão.
5 MICROCONTROLADORES
277
5V
LDR
1 40
2 39
AN1 3 38
4 37
5 36
6 35
1K2 7 34
8 33
9 32
10 31
11 30
12 29
13 28
5.7.29 PWM
Os microcontroladores são dispositivos que, comandados por programas, podem facilmente realizar o
acionamento ou o desligamento de uma saída digital. Mas, e se o dispositivo a ser controlado necessitar de
um controle analógico?
Por exemplo, ligar e desligar um motor conectado indiretamente (via transistores ou relés) a um pino
do microcontrolador não é complicado se usarmos as instruções de nível alto (output_high) e nível baixo
(output_low). Mas, se além de ligar e desligar este motor, for necessário “dosar” a tensão a ele fornecida, de
forma a controlar também sua velocidade ou seu torque?
Para isso, seria necessária uma saída analógica. E como realizar este controle se tal saída não existe em
um dispositivo de controle discreto, como um microcontrolador?
O PIC16F877A possui duas saídas PWM, que são saídas pulsantes, capazes de realizar pulsos de largura
controlada. O uso de PWM permite gerar saídas analógicas, facilitando o controle de periféricos.
Por meio do PWM é possível pulsar (ativar e desativar) uma saída, filtrando-a com circuitos geralmente
compostos por resistores e capacitores, e gerando, com estes pulsos filtrados, o efeito desejado.
Por exemplo, vamos imaginar um ventilador de uma única velocidade conectado a uma chave liga/
desliga. Se você mantiver a chave ligada, o ventilador acelerará até obter 200 RPM. Se você desligar a chave,
o ventilador desacelerará até parar. Mas, se você ficar ligando e desligando a chave, em intervalos de 1
segundo, perceberá que o ventilador vai girar a uma velocidade inferior que 200 RPM. E se você exercer
pulsos ligados mais largos, e pulsos desligados mais curtos, o ventilador acelerará.
AUTOMAÇÃO E MECATRÔNICA INDUSTRIAL
278
É dessa forma que o PWM funciona, trabalhando com frequências bem elevadas, com vários
acionamentos por segundo. Obtemos uma saída que poderá ser adequada, usando um filtro RC adequado,
para a tensão necessária.
É comum também utilizar a saída pulsante diretamente no dispositivo de amplificação (transistor ou
circuito integrado de potência) para gerar a mesma saída pulsante em níveis de tensão e corrente mais
elevados. Desta forma, é possível controlar a intensidade de luminosidade, a temperatura, a velocidade e
o torque de motores, o som etc.
E quais são as características de uma saída PWM?
Podemos citar três características: o nível de tensão, o tempo de ciclo e a taxa (tamanho do
pulso). Quanto ao nível de tensão, ficará restrito ao nível de trabalho do microcontrolador. No caso
do PIC16F877, que funciona a 5V, o nível dos pulsos também será de 5V, respeitando-se os limites
de corrente da saída digital, de alguns miliampéres. Caso haja interesse em aumentar este valor, ou
de aumentar a corrente, será necessária a amplificação com transistores ou outro circuito integrado
(FIGURA 256).
+24V C.C.
R1
Motor
C1 D1
Microcontrolador
R2
Transistor
NPN
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:
RECAPITULANDO
Neste capítulo, vimos que os microcontroladores são circuitos integrados programáveis muito
versáteis, que podem ser utilizados em inúmeras aplicações de controle. Por serem programáveis, seu
comportamento é determinado por um software, em que técnicas de programação permitem gerar, a
partir de programas, a leitura de sinais digitais e analógicos, processamentos lógicos e matemáticos e
acionamentos de dispositivos atuadores.
Vimos que os microcontroladores executam programas escritos em linguagem de máquina, mas
que podem ser gerados através de outras linguagens, dentre as quais a linguagem C. Estas linguagens
precisam ser compiladas através de um programa chamado compilador, que transforma instruções de
alto nível em instruções de máquina para que o microcontrolador possa executar.
Durante o estudo sobre a linguagem C, uma importante linguagem de programação também aplicada
a microcontroladores, entendemos o conceito das estruturas e dos subprogramas, representados por
sinais de início e fim através de símbolos, no caso, chaves. Vimos que os programas são executados
instrução a instrução, e que o desvio na execução do programa pode ser pré-definido por meio das
estruturas de controle de fluxo, como o while, do/while, for, if e switch. As sub-rotinas de um programa
escrito em linguagem C são conhecidas como funções, e uma função pode, ou não, receber parâmetros
e retornar dados.
Vimos também que a representação de dados em memória requer a declaração de variáveis, e que
durante esta etapa o programador deve determinar o tipo de dado adequado para que a variável consiga
comportar a informação da forma mais eficiente possível.
Por último, vimos aplicações onde o microcontrolador é utilizado para a leitura de sinais analógicos, a
comunicação e a geração de sinais pulsantes através da técnica de PWM.
5 MICROCONTROLADORES
281
Anotações:
REFERÊNCIAS
ALMEIDA, José Luiz Antunes de. Dispositivos semicondutores: tiristores: controle de potência em
CC e CA. São Paulo: Érica, 1996.
BOYLESTAD, Robert L. Dispositivos eletrônicos e teoria de circuitos. 8.ed. São Paulo: Pearson
Prentice Hall, 2004.
CUSTOM COMPUTER SERVICES INC. PCW: demo software. [S.l.], [20--].Windows. Disponível em:<
http://www.ccsinfo.com/ccsfreedemo.php>. Acesso em 10 nov. 2015.
CRUZ, Eduardo Cesar Alves; CHOUERI JÚNIOR Salomão. Eletrônica aplicada. 2.ed.São Paulo: Érica, 2008.
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.
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.
THOMAZINI, Daniel. Sensores industriais: fundamentos e aplicações. 6.ed. rev. e atual. São
Paulo: Érica, 2009.
DANIEL CORTELETTI
Graduação em Ciência da Computação pela Universidade de Caxias do Sul - UCS. Graduação
no programa especial de formação pedagógica para formadores de educação profissional pela
Universidade do Sul de Santa Catarina - UNISUL. Instrutor de educação profissional de nível
técnico do Centro Tecnológico de Mecatrônica SENAI desde 2000 nas áreas de microcomputação,
sistemas embarcados, robótica industrial e automação industrial, atuando também em serviços
de pesquisa e desenvolvimento no núcleo de serviços técnicos e tecnológicos desta instituição.
ÍNDICE
A
Acionamentos 43, 44, 51, 55, 56, 58, 59, 60, 69, 195, 218, 236, 241, 251, 278, 280
Álgebra booleana 143, 146, 150, 151, 154
Algoritmos 112, 205, 206, 208
amplificador operacional 70, 71, 73, 74, 76, 77, 172, 173, 283
Anodo 27, 30, 37, 46, 47, 64, 65, 66, 176
Aplicações de transistores 45
Arquivos executáveis 202
autoprogramação 198, 204
B
Bootloader 198, 204, 205
C
Catodo 27, 30, 37, 46, 47, 64, 65, 66, 176
Células de carga 119, 120
Circuitos codificadores 174, 178, 180
circuitos decodificadores 145, 166, 176, 177
Circuitos demultiplexadores 164, 166
Circuitos lógicos 96, 146, 150, 172, 209
Circuitos multiplexadores 146, 159
Comandos para acionamento 223, 224
Como compilar 214
Comparador 70, 74, 75, 76, 114, 119, 198
Comunicação serial 201, 270
condicionamento de sinal 30, 68, 135
Conversão analógica/digital 273
Conversor A/D 170, 171, 172
Conversor D/A 170, 172, 173
Conversores 132, 136, 136, 146, 169, 170, 171, 174, 189, 193, 194, 197, 202, 270, 274
Criação de um programa 212
D
Declaração de variáveis 227, 234, 280
DIAC 64, 66, 67
Dígitos 36, 140, 141, 142, 144, 146, 175, 176, 232, 236, 269
Diodo de sinal 29, 30
Diodo emissor de luz 35
Diodo retificador 29, 30
Diodo Zener 29, 31, 32
Display alfanumérico 264, 265, 268
Display de 7 segmentos 176, 236
E
Eletrônica Analógica 21, 72, 91, 139, 189, 192, 193
ENCAPSULAMENTO DE TRANSISTORES 51
Encoders 128,129, 130, 131, 132, 274
Entradas e saídas digitais 178, 197
Estrutura de repetição 219, 220, 222, 253, 254, 255
Estruturas de controle de fluxo 246, 205, 219, 245, 280
Estruturas de decisão 250
Extensômetros 119, 120, 134
F
Filtro ativo 85, 86
Filtro passivo 82, 83
Flip-flop D 186
Flip-flop JK 183, 184, 185, 186, 187, 188
Flip-flop JK mestre-escravo 184, 186
Flip-flop RS 181, 182, 183, 184, 185
Flip-flop RS síncrono 182, 183, 184, 185
Fluxograma 207, 208, 246
Fonte chaveada 86, 90
Fonte linear 88
Fontes de alimentação 41, 42, 44, 86, 87, 91, 100, 285
Fonte simétrica 88, 89
Fotodiodo 38, 39, 40, 41, 105, 106
H
HISTERESE 75, 76, 208
J
JFET 55, 56, 58, 60
L
Linguagem C 210, 211, 212, 213, 217, 221, 223, 238, 242, 244, 246, 247, 263, 267, 280
M
Memória RAM 194, 197, 228, 257, 259
memória ROM 198, 202, 205, 211
Microcontrolador 8051 195
Microcontrolador MICROCHIP 195
Microprocessadores 110, 189, 193, 194, 195
Microprocessadores na Automação Industrial 192
MODOS DE DISPARO 64
MOSFET 55, 61, 69
Multivibrador biestável 180
N
Nome das variáveis 233
O
Operadores 147, 148, 150, 151, 152, 189, 238, 239, 240, 241, 242, 245, 274
Optoacopladores 41, 42, 65, 99, 100
Osciladores 79, 81, 91
P
Passagem de parâmetros 259, 260, 262
Portas lógicas 62, 79, 148, 149, 150, 160, 162, 163, 182, 186, 189
Printf 255, 261, 267, 268, 269, 270, 271, 272, 276
PWM 80, 173, 197, 198, 201, 277, 278, 279, 280
R
Recursos de um Microcontrolador PIC 197
Relés fotoelétricos 111
Retorno de dados 263
S
SCR 64, 65, 66
Sensor de barreira óptica 109
Sensor de pressão 69, 117, 118
Sensor de ultrassom 94, 112
Sensores a laser 110
Sensores analógicos 69, 96, 101, 102, 137, 159, 171, 274
Sensores capacitivos 115, 116, 118
Sensores de aceleração 119
Sensores de posicionamento 128, 129, 134
Sensores de temperatura 88, 102, 122, 274
Sensores de vazão 120, 121, 122
Sensores digitais 96, 97, 100, 114, 137
Sensores eletromecânicos 104, 137
Sensores indutivos 104, 114, 115, 133
Sensores magnéticos 104, 116, 117, 122
Sensores NPN 97, 98, 99, 100
Sensores ópticos 105, 106, 108, 110, 114, 137
Sensores ópticos por transmissão 108
Sensor infravermelho 111, 127
Sensor óptico por retrorreflexão 107
Simplificação de circuitos lógicos 150
Sistemas digitais 44, 139, 141, 142, 143, 144, 146, 174, 180, 189, 283, 284
Sistemas Digitais 139
Strain-gage 119, 120
String 265, 268, 269, 270, 272
Sub-rotinas 212, 216, 233, 256, 257, 259, 280
T
Tabela verdade 147, 148, 149, 153, 154, 155, 156, 158, 161, 162, 165, 166, 177, 178, 182, 183, 185,
186, 188, 189
Técnicas digitais 143, 144
Teoremas e Leis da álgebra booleana 151
Termopares 68, 124, 125, 126, 127, 134, 136
TESTAR TRANSISTORES BIPOLARES 53
Testar um diodo 40
Timers 81, 194, 195, 198
Tipos de dados 228, 231, 232, 233, 236, 239, 242, 243, 244, 245, 262
Tiristores 63, 64, 65, 66, 87, 91, 283
Transdutores 93, 129, 132, 133, 134, 135, 136
Transistor bipolar 45, 46, 47, 50, 53, 55, 61, 69, 98
Transistor Darlington 55
Transistores CMOS 62, 63
Transistores de efeito de campo 55
Transistor NPN 46, 48, 49, 50, 54, 62
Transistor PNP 47, 50
TRIAC 64, 66, 67
V
Visão artificial 112
SENAI – DEPARTAMENTO NACIONAL
UNIDADE DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA – UNIEP
Waldemir Amaro
Gerente
Daniel Corteletti
Elaboração
Fernando R. G. Schirmbeck
Coordenação Educacional
i-Comunicação
Projeto Gráfico
ISBN 978-85-7519-850-6
9 788575 198506