Buscar

Práticas de microcontroladores e microprocessadores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 275 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 275 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 275 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Indaial – 2021
Práticas de 
Microcontroladores 
e MicroProcessadores
Prof.a Leyla Kraulich
Prof.a Rafaela Filomena Alves Guimarães
1a Edição
Copyright © UNIASSELVI 2021
Elaboração:
Prof.a Leyla Kraulich
Prof.a Rafaela Filomena Alves Guimarães
Revisão, Diagramação e Produção:
Centro Universitário Leonardo da Vinci – UNIASSELVI
Ficha catalográfica elaborada na fonte pela Biblioteca Dante Alighieri 
UNIASSELVI – Indaial.
Impresso por:
K91p
Kraulich, Leyla
Práticas de microcontroladores e microprocessadores. / Leyla 
Kraulich; Rafaela Filomena Alves Guimarães. – Indaial: UNIASSELVI, 2021.
265 p.; il.
ISBN 978-65-5663-907-9
ISBN Digital 978-65-5663-908-6
1. Microcontroladores. - Brasil. I. Guimarães, Rafaela Filomena Alves. 
II. Centro Universitário Leonardo da Vinci.
CDD 004
aPresentação
Olá, acadêmico! Seja bem-vindo ao Livro Didático da disciplina de 
Práticas de Microcontroladores e Microprocessadores. Tais componentes 
estão presentes em praticamente todos os dispositivos eletrônicos que nos 
cercam, como máquinas e dispositivos industriais, veículos, brinquedos, 
eletrodomésticos. Há uma grande variedade de microcontroladores 
disponíveis no mercado, porém o Arduíno é uma ótima opção de didática 
para aumentarmos nossa compreensão sobre o assunto, além de ser 
facilmente incorporado em nossos projetos.
Os microcontroladores e os componentes eletrônicos são o hardware, 
que darão forma ao seu projeto, enquanto o software, os códigos de 
programação escritos por você, serão processados pelo hardware e permitirão 
que os sensores e atuadores executem suas funções. Para que todas as etapas 
fiquem claras, subdividimos esta apostila em três unidades. 
Na Unidade 1, estudaremos os conceitos básicos sobre 
microcontroladores e introduzir nossos conhecimentos com relação ao seu 
hardware e software, principalmente sobre seu ambiente de desenvolvimento. 
Em seguida, na Unidade 2, começaremos a fazer projetos, utilizando 
o Arduíno UNO. Estes serão trabalhados conforme a ordem de complexidade 
dos algoritmos. Estudaremos o funcionamento dos dispositivos como matriz 
de contatos, resistores e outros eletrônicos, por uma abordagem mais prática 
para, posteriormente, trabalharmos uma sequência de projetos e desafios 
que abordam saídas analógicas e digitais, sensores e atuadores.
Por fim, na Unidade 3, aprenderemos daremos sequência a outros 
projetos práticos, utilizando sensores de pressão, temperatura, umidade; são 
projetos com motores, transistores displays e transistores.
Boa leitura e bons estudos!
Prof.a Leyla Kraulich
Prof.a Rafaela Filomena Alves Guimarães
Você já me conhece das outras disciplinas? Não? É calouro? Enfim, tanto para 
você que está chegando agora à UNIASSELVI quanto para você que já é veterano, há 
novidades em nosso material.
Na Educação a Distância, o livro impresso, entregue a todos os acadêmicos desde 2005, é 
o material base da disciplina. A partir de 2017, nossos livros estão de visual novo, com um 
formato mais prático, que cabe na bolsa e facilita a leitura. 
O conteúdo continua na íntegra, mas a estrutura interna foi aperfeiçoada com nova 
diagramação no texto, aproveitando ao máximo o espaço da página, o que também 
contribui para diminuir a extração de árvores para produção de folhas de papel, por exemplo.
Assim, a UNIASSELVI, preocupando-se com o impacto de nossas ações sobre o ambiente, 
apresenta também este livro no formato digital. Assim, você, acadêmico, tem a possibilidade 
de estudá-lo com versatilidade nas telas do celular, tablet ou computador. 
 
Eu mesmo, UNI, ganhei um novo layout, você me verá frequentemente e surgirei para 
apresentar dicas de vídeos e outras fontes de conhecimento que complementam o assunto 
em questão. 
Todos esses ajustes foram pensados a partir de relatos que recebemos nas pesquisas 
institucionais sobre os materiais impressos, para que você, nossa maior prioridade, possa 
continuar seus estudos com um material de qualidade.
Aproveito o momento para convidá-lo para um bate-papo sobre o Exame Nacional de 
Desempenho de Estudantes – ENADE. 
 
Bons estudos!
NOTA
Olá, acadêmico! Iniciamos agora mais uma disciplina e com ela 
um novo conhecimento. 
Com o objetivo de enriquecer seu conhecimento, construímos, além do livro 
que está em suas mãos, uma rica trilha de aprendizagem, por meio dela você terá 
contato com o vídeo da disciplina, o objeto de aprendizagem, materiais complementares, 
entre outros, todos pensados e construídos na intenção de auxiliar seu crescimento.
Acesse o QR Code, que levará ao AVA, e veja as novidades que preparamos para seu estudo.
Conte conosco, estaremos juntos nesta caminhada!
LEMBRETE
suMário
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO ................................ 1
TÓPICO 1 — MICROCONTROLADORES ...................................................................................... 3
1 INTRODUÇÃO .................................................................................................................................... 3
2 O QUE SÃO MICROCONTROLADORES .................................................................................... 3
3 APLICAÇÕES DOS MICROCONTROLADORES ...................................................................... 7
4 O MICROCONTROLADOR USADO NO ARDUÍNO ................................................................ 8
5 AS ORIGENS DO ARDUÍNO E SEUS MODELOS ..................................................................... 9
RESUMO DO TÓPICO 1..................................................................................................................... 13
AUTOATIVIDADE .............................................................................................................................. 14
TÓPICO 2 — ARDUÍNO: HARDWARE E SOFTWARE ............................................................... 17
1 INTRODUÇÃO .................................................................................................................................. 17
2 A PLACA DO ARDUÍNO UNO ..................................................................................................... 17
2.1 SHIELDS OU MÓDULOS ........................................................................................................... 18
3 ENTRADAS E SAÍDAS ANALÓGICAS E DIGITAIS ............................................................... 19
4 O AMBIENTE DE DESENVOLVIMENTO DO ARDUÍNO ..................................................... 21
RESUMO DO TÓPICO 2..................................................................................................................... 26
AUTOATIVIDADE .............................................................................................................................. 27
TÓPICO 3 — PROGRAMAÇÃO DO ARDUÍNO .......................................................................... 29
1 INTRODUÇÃO .................................................................................................................................. 29
2 ESTRUTURA BÁSICA E SINTAXE DO SKETCH ...................................................................... 30
3 CONSTANTES E VARIÁVEIS ........................................................................................................ 32
3.1 TIPOS DE DADOS ........................................................................................................................ 33
4 OPERADORES ARITMÉTICOS, RELACIONAIS, LÓGICOS ................................................ 35
5 ESTRUTURAS DE CONTROLE .................................................................................................... 37
5.1 SENTENÇA IF ............................................................................................................................... 37
5.2 SENTENÇA IF...ELSE................................................................................................................... 38
5.3 SENTENÇA IF...ELSE ANINHADAS ........................................................................................38
5.4 SENTENÇA SWITCH: CONDIÇÕES MÚLTIPLAS ................................................................. 39
6 ESTRUTURAS DE CONTROLE: LAÇOS .................................................................................... 40
6.1 SENTENÇA WHILE...................................................................................................................... 40
6.2 SENTENÇA DO...WHILE ............................................................................................................ 41
6.3 SENTENÇA FOR .......................................................................................................................... 41
7 FUNÇÕES ............................................................................................................................................ 42
8 BIBLIOTECAS .................................................................................................................................... 44
9 MONITOR SERIAL ........................................................................................................................... 46
LEITURA COMPLEMENTAR ............................................................................................................ 49
RESUMO DO TÓPICO 3..................................................................................................................... 52
AUTOATIVIDADE .............................................................................................................................. 53
REFERÊNCIAS ...................................................................................................................................... 55
UNIDADE 2 — PROJETOS PRÁTICOS PARA O ARDUINO – PARTE 1 ................................ 57
TÓPICO 1 — ENTRADAS E SAÍDAS .............................................................................................. 59
1 INTRODUÇÃO .................................................................................................................................. 59
2 ENTRADA E SAÍDA DIGITAL ...................................................................................................... 60
3 SAÍDA PWM ....................................................................................................................................... 62
4 ENTRADA ANALÓGICA ................................................................................................................ 63
RESUMO DO TÓPICO 1..................................................................................................................... 65
AUTOATIVIDADE .............................................................................................................................. 66
TÓPICO 2 — PROJETOS COM LED ................................................................................................ 69
1 INTRODUÇÃO .................................................................................................................................. 69
2 MONTAGEM DO CIRCUITO DO PROJETO N. 1 – PROJETO SIMPLES COM LED ....... 77
2.1 CÓDIGO DE PROGRAMAÇÃO DO PROJETO N. 1 .............................................................. 81
2.2 ESTUDANDO UM POUCO DO CÓDIGO DO PROJETO N. 1 ............................................. 86
3 CÓDIGO DE PROGRAMAÇÃO DO PROJETO N. 2 ................................................................ 87
3.1 ESTUDANDO UM POUCO DO CÓDIGO DO PROJETO N. 2 ............................................. 88
4 MONTAGEM DO CIRCUITO DO PROJETO n. 3 – PROJETO COM SEMÁFOROS ........ 89
4.1 CÓDIGO DE PROGRAMAÇÃO DO PROJETO N. 3 .............................................................. 92
4.2 ESTUDANDO UM POUCO DO CÓDIGO DO PROJETO N. 3 ............................................. 93
5 MONTAGEM DO CIRCUITO DO PROJETO N. 4 – PROJETO COM SEMÁFORO 
INTERATIVOS ................................................................................................................................... 93
5.1 CÓDIGO DE PROGRAMAÇÃO DO PROJETO N. 4 .............................................................. 98
5.2 ESTUDANDO UM POUCO DO CÓDIGO DO PROJETO N. 4 ........................................... 100
RESUMO DO TÓPICO 2................................................................................................................... 101
AUTOATIVIDADE ............................................................................................................................ 102
TÓPICO 3 — PROJETOS COM SONORIZADORES ................................................................. 105
1 INTRODUÇÃO ................................................................................................................................ 105
2 MONTAGEM DO CIRCUITO DO PROJETO n. 5 – PROJETOS COM 
SONORIZADOR PIEZO ................................................................................................................ 106
2.1 CÓDIGO DE PROGRAMAÇÃO DO PROJETO N. 5 ............................................................ 108
2.2 ESTUDANDO UM POUCO DO CÓDIGO DO PROJETO N. 5 ........................................... 109
3 MONTAGEM DO CIRCUITO DO PROJETO N. 6 – CONTROLANDO 
SONORIZADORES COM POTENCIÔMETRO ....................................................................... 110
3.1 CÓDIGO DE PROGRAMAÇÃO DO PROJETO N. 6 ............................................................ 115
4 MONTAGEM DO CIRCUITO DO PROJETO N. 7 – CONTROLANDO 
SONORIZADORES COM POTENCIÔMETRO E PWM ........................................................ 118
4.1 CÓDIGO DE PROGRAMAÇÃO DO PROJETO N. 7 ............................................................ 120
RESUMO DO TÓPICO 3................................................................................................................... 122
AUTOATIVIDADE ............................................................................................................................ 123
TÓPICO 4 — PROJETOS COM DISPLAYS .................................................................................. 125
1 INTRODUÇÃO ................................................................................................................................ 125
2 MONTAGEM DO CIRCUITO DO PROJETO N. 8 – PROJETOS COM DISPLAY ............ 126
2.2 CÓDIGO DE PROGRAMAÇÃO DO PROJETO N. 8 ............................................................ 133
3 DISPLAY DE LED DE 8 SEGMENTOS ........................................................................................ 136
4 DISPLAY DE CRISTAL LÍQUIDO (LCD) ................................................................................... 140
LEITURA COMPLEMENTAR .......................................................................................................... 149
RESUMO DO TÓPICO 4................................................................................................................... 159
AUTOATIVIDADE ............................................................................................................................ 160
REFERÊNCIAS .................................................................................................................................... 162
UNIDADE 3 — PROJETOS PRÁTICOS PARA O ARDUINO – PARTE 2 .............................. 163
TÓPICO 1 — SENSORES DE TEMPERATURA – PROJETO N. 1 ............................................ 165
1 INTRODUÇÃO ................................................................................................................................ 165
2 MONTAGEM DO CIRCUITO DO PROJETO N. 1 – SENSOR DE TEMPERATURA....... 167
3 CÓDIGO DE PROGRAMAÇÃO DO PROJETO N. 1 .............................................................. 177
RESUMO DO TÓPICO 1................................................................................................................... 183
AUTOATIVIDADE ............................................................................................................................ 184
TÓPICO 2 — SENSORES DE PRESSÃO– PROJETO N. 2 ........................................................ 189
1 INTRODUÇÃO ................................................................................................................................ 189
2 MONTAGEM DO CIRCUITO DO PROJETO N. 2 .................................................................. 190
3 CÓDIGO DE PROGRAMAÇÃO .................................................................................................. 191
RESUMO DO TÓPICO 2................................................................................................................... 196
AUTOATIVIDADE ............................................................................................................................ 197
TÓPICO 3 — SENSORES DE TEMPERATURA E UMIDADE – PROJETO N. 3 .................. 201
1 INTRODUÇÃO ................................................................................................................................ 201
2 MONTAGEM DO CIRCUITO ...................................................................................................... 201
3 CÓDIGO DE PROGRAMAÇÃO .................................................................................................. 205
4 ESTUDANDO OS CÓDIGOS ...................................................................................................... 208
RESUMO DO TÓPICO 3................................................................................................................... 209
AUTOATIVIDADE ............................................................................................................................ 210
TÓPICO 4 — CONTROLE DE UM MOTOR SIMPLES – PROJETO N. 4 .............................. 213
1 INTRODUÇÃO ................................................................................................................................ 213
2 PROJETO N. 4 ................................................................................................................................... 213
3 MONTAGEM DO CIRCUITO ...................................................................................................... 215
4 CÓDIGO DE PROGRAMAÇÃO .................................................................................................. 221
5 ESTUDANDO OS CÓDIGOS ...................................................................................................... 224
6 CONTROLE DE MOTORES COM TRANSISTOR – PROJETO N. 5 ................................... 224
7 MONTAGEM DO CIRCUITO ...................................................................................................... 226
8 CÓDIGO DE PROGRAMAÇÃO .................................................................................................. 234
RESUMO DO TÓPICO 4................................................................................................................... 237
AUTOATIVIDADE ............................................................................................................................ 238
TÓPICO 5 — OUTROS PROJETOS................................................................................................ 241
1 INTRODUÇÃO ................................................................................................................................ 241
2 CONTROLE DE SERVOMECANISMOS – PROJETOS N. 6 E 7 ........................................... 241
3 MONTAGEM DO CIRCUITO DO PROJETO N. 6 .................................................................. 243
4 CÓDIGO DE PROGRAMAÇÃO DO PROJETO N. 6 .............................................................. 246
5 ESTUDANDO UM POUCO DO CÓDIGO DO PROJETO N. 7 ............................................ 247
6 MONTAGEM DO PROJETO N. 07 – CONTROLE DE DOIS SERVOMOTORES 
(UM ESQUERDO E UM DIREITO) ............................................................................................ 250
7 CÓDIGO DE PROGRAMAÇÃO DO PROJETO N. 7 .............................................................. 252
LEITURA COMPLEMENTAR .......................................................................................................... 255
RESUMO DO TÓPICO 5................................................................................................................... 262
AUTOATIVIDADE ............................................................................................................................ 263
REFERÊNCIAS .................................................................................................................................... 265
1
UNIDADE 1 — 
INTRODUÇÃO À PLATAFORMA DO 
ARDUÍNO UNO
OBJETIVOS DE APRENDIZAGEM
PLANO DE ESTUDOS
A partir do estudo desta unidade, você deverá ser capaz de: 
• entender o que são microcontroladores;
• conhecer as aplicações dos microcontroladores;
• saber sobre o funcionamento do Arduíno e entender suas principais 
vantagens em relação a outras plataformas de desenvolvimento de 
microcontroladores e a facilidade de sua utilização;
• reconhecer seus principais componentes, as entradas e saídas e seu 
hardware;
• entender os fundamentos básicos da programação utilizada no Arduíno.
Esta unidade está dividida em três tópicos. No decorrer da unidade, 
você encontrará autoatividades com o objetivo de reforçar o conteúdo 
apresentado.
TÓPICO 1 – MICROCONTROLADORES
TÓPICO 2 – INTRODUÇÃO AO ARDUÍNO
TÓPICO 3 – PROGRAMAÇÃO DO ARDUÍNO
Preparado para ampliar seus conhecimentos? Respire e vamos 
em frente! Procure um ambiente que facilite a concentração, assim absorverá 
melhor as informações.
CHAMADA
2
3
TÓPICO 1 — 
UNIDADE 1
MICROCONTROLADORES
1 INTRODUÇÃO
Os microcontroladores cumprem um papel fundamental no nosso 
cotidiano, estão presentes em equipamentos eletroeletrônicos, impressoras, 
brinquedos, circuitos de automóveis e todos os aparelhos que necessitam 
de automação e controle. De certa forma, essa automatização das máquinas 
proporcionou desenvolver tarefas com maior agilidade, além de substituir a mão 
de obra braçal, por vezes até insalubres e perigosas.
O mercado de microcontroladores oferece várias opções de fabricantes, 
assim como diferentes dispositivos, diferenciados basicamente por sua arquitetura 
e capacidade de processamento. O dispositivo precisa ser programado, ou 
seja, o projetista deve escrever um programa que contenha o processamento a 
ser executado. A linguagem usada para escrever tais algoritmos pode variar de 
acordo com o microcontrolador escolhido.
Iniciaremos nosso estudo sobre microcontroladores, em especial o Arduíno 
UNO. Para tanto, é imprescindível entendermos o que são os microcontroladores, 
o que é o Arduíno, quais são as configurações e versões de placas ofertadas no 
mercado. Na sequência, em outras unidades do estudo, vamos manipular seu 
software e colocar em prática seus experimentos.
2 O QUE SÃO MICROCONTROLADORES 
Tanto os microcontroladores como os microprocessadores precisam 
de um programa (software) para indicar as tarefas a serem executadas. 
Essas instruções são gravadas na memória de programa que, no caso do 
microcontrolador, fica em uma parte da memória EEPROM interna, e nos 
microprocessadores fica em uma memória não volátil externa ao chip. 
Esse programa é executado pela UC (Unidade de Controle), que lê essas 
instruções na sequência, executa cálculos e comparações na ULA (Unidade 
Lógica e Aritmética) e utiliza a memória RAM para armazenar os resultados e 
para poder consultá-los de acordo com a necessidade do programa.
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
4
Entre os anos de 1998 e 2000, tínhamos à disposição basicamente 
duas famílias de microcontroladores: a família 8051 da INTEL e a família 
PIC da Microchip. Nessa época, era muito trabalhoso criarmos projetos com 
microcontroladores, até mesmo pela falta de opções e acesso a informações.
Os códigos de programação necessitavam de mainframes para processar as 
informações. Não existiam ferramentas de busca como Google e tampouco acesso 
à internet.Todas essas questões dificultavam a programação. Na década de 1970, o 
microcontrolador foi inventado pela Texas Instruments e, mais ou menos na mesma 
época, o microprocessador foi inventado pela Intel.
Um dos grandes fabricantes mundiais de microcontroladores é a Microchip, 
responsável por produzir os microcontroladores PIC (Peripherical Interface 
Controller). E, originalmente, os sistemas embarcados eram desenvolvidos em 
Assembly, em uma linguagem de baixo nível, eficiente em termos de velocidade 
e uso de memória, porém que exige mais tempo para desenvolvimento, devido à 
necessidade de conhecimento de arquitetura do controlador. Com essa linguagem, 
era necessário trabalhar byte a byte e, às vezes, bit a bit. 
 Um software chamado compilador convertia esses códigos em linguagem 
de máquina, fornecendo um arquivo hexadecimal com extensão hex. Um pouco 
mais tarde, surgiram os tradutores que permitiam a construção do seu software 
em linguagem C, bem mais amigável aos olhos humanos, e que convertia os 
comandos para códigos hexadecimais no compilador.
A Microchip teve domínio do mercado até o lançamento da ATMEL, 
com a família AVR, e está cada vez mais popular com a plataforma Arduíno. 
Segundo Germiniani (2013), a ATMEL fez bastante sucesso também com os 
microcontroladores CORE M0+ e M4, além dos processadores ARM A5 para 
aplicações de alta performance. Essa sequência de sucessos talvez tenha motivado 
uma ação até então inusitada: no início de 2016, a Microchip adquiriu a Atmel.
Com o projeto Arduíno, as práticas de microcontroladores tornaram 
a programação muito flexível. Afinal, a ATMEL disponibiliza em seu site 
documentação que ajuda na resolução de problemas. O AVR segue a arquitetura 
de Harvard, em que os barramentos associados às memórias de dados e do 
programa são distintos.
A grande oferta de placas de Arduíno facilita a conexão com outros 
dispositivos, e sua IDE é extremamente amigável, permitindo a utilização por 
designers e admiradores do mundo inteiro, aumentando a demanda de sensores 
e outros periféricos eletrônicos, barateando esses dispositivos.
Um microcontrolador é uma placa de circuito que incorpora no mesmo 
encapsulamento o microprocessador, a memória de programa e a memória de 
dados. Além disso, possui uma série de pinos com entradas e saídas e vários 
periféricos, resultando em um hardware final complexo. Normalmente, a 
diferença entre essas características é o que diferencia os microcontroladores.
TÓPICO 1 — MICROCONTROLADORES
5
Já o microprocessador, é um chip programável, que não pode atuar 
sozinho, é necessário associar a ele uma unidade de memória RAM, uma de 
memória ROM e registradores de deslocamentos externos (que nada mais são do 
que chips com funções de entrada e saída). A conexão entre esses componentes 
é feita através de uma Placa Mãe. Quando todo esse conjunto englobado pela 
Placa Mãe é colocado dentro de um único Circuito Integrado (CI), obtemos um 
microcontrolador.
 Na Figura 1, podemos observar em (a) um exemplo de microprocessador, 
em (b) (c) e (d) exemplos de microcontroladores.
FIGURA 1 – TIPOS DE MICROCONTROLADORES
FONTE: <https://blog.multcomercial.com.br/microcontrolador-saiba-o-que-e-e-como-usar/>. 
Acesso em: 15 jul. 2021.
Podemos fazer uma analogia de um microprocessador com uma CPU de 
um computador. Ele contém a unidade de controle, a unidade lógica e aritméticas 
e registradores (acumuladores). Formado por com milhões de transistores 
em conjunto para armazenamento e manipulação de dados, ele compõe os 
computadores, sendo uma das suas peças internas. Já o microcontrolador (MCU) é 
um processador especial, geralmente contém no mesmo chip diversos periféricos, 
sendo usado na maior parte das vezes como controle digital (MONTEIRO, 2018).
Microcontroladores são produzidos basicamente a partir de dispositivos 
semicondutores de dimensões micrométricas, daí deriva seu prefixo “micro”. O 
objetivo de seus fabricantes é reduzir a cada dia, as dimensões destes dispositivos, 
visto que há um grande avanço na nanoeletrônica.
Os custos dos microcontroladores possuem um custo reduzido por serem 
produzidos em larga escala. Dentro os principais fabricantes temos: Motorola, 
Microchip, ATMEL, Intel, Mitsubishi, NEC, Philips, SGS, Hitachi e Toshiba. 
Dispositivos compostos dentro por um único chip, memória (de dados 
e de programa), entrada/saída, temporizadores, relógio interno, entre outros 
hardwares específicos. Esses dispositivos de controle possuem baixo preço e alta 
eficiência, além de outras funções diferenciadas, normalmente não encontradas 
em microprocessadores excelentes (temporizadores, conversores A/D e D/A) 
(MONTEIRO, 2018).
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
6
De acordo com Germiniani (2020), possuem como principais características:
• são programados para executar uma única e determinada tarefa; a fim de 
alterar a sua funcionalidade, é necessária programá-lo com novo software;
• consome menos energia, dadas as suas características físicas serem menores e 
menos exigentes em termos energéticos do que um tradicional PC, computador 
portátil ou servidor. Os programadores de microcontroladores se focam em 
manter o consumo energético das suas aplicações baixo, para que aplicações 
portáteis que utilizem baterias possam funcionar durante mais tempo;
• entradas/saídas reconfiguráveis. Os microcontroladores possuem aquilo 
que chamamos periféricos, que permitem estabelecer conexões entre um 
microcontrolador e outros microcontroladores ou computadores (como USB, 
CAN, UART); permitem ter a percepção de processos no mundo físico e 
real (por exemplo, ações de comutação, medição de temperatura etc.) e nos 
permitem controlar esses processos (como em controle de motores, alertas de 
disparos etc.);
• programação de memória não-volátil (EEPROM, Flash), desse modo, o 
programa do controlador pode ser regravado várias vezes, inclusive podendo 
até mesmo se autogravar;
• possuem interrupções, sendo assim, algumas funções podem ser executadas 
quando acontece algo importante, suspendendo a operação em execução para 
que outras mais importantes possam ser executadas;
• possuem entradas e saídas (E/S) analógicas e digitais, permitindo a leitura e a 
saída de tensão na faixa de 0 a 5 volts corrente contínua;
• possui E/S serial, permitindo transmissão e recepção com outros dispositivos 
por meio da comunicação serial, obedecendo os protocolos de comunicação 
RS232, I2C e SPI. 
FIGURA 2 – COMPONENTES DE UM MICROCONTROLADOR
FONTE: <https://drive.google.com/file/d/10WDga0ETzuy_In4OY0C-8Y_jlvlyQ3gs/view>. 
Acesso em 15 jul. 2021.
TÓPICO 1 — MICROCONTROLADORES
7
A diferença entre microcontrolador e microprocessador é bastante 
simples, o microcontrolador, além da UCP, contém blocos internos de memória 
em um único chip. Entretanto, sua aplicação é para sistemas embarcados com 
função específica. Já o microprocessador precisa de componentes externos 
para seu devido funcionamento, sendo sua grande vantagem, seu poder de 
processamento. Com isso, ele é aplicado no uso de computadores, smartphones e 
sistemas de maior complexidade. 
3 APLICAÇÕES DOS MICROCONTROLADORES 
Podemos encontrar microcontroladores nas mais diversas áreas, quando 
é necessário manipular e armazenar altas quantidades de dados e para realizar 
simples tarefas de controle. 
Há um crescente investimento pelas companhias da indústria 
automobilística em microcontroladores, pois eles estão presentes até mesmo 
na produção de veículos. O avanço tecnológico não só permitiu o crescimento 
do processamento, como também acabou tornando o custo bem mais acessível, 
desde o uso pessoal até para as empresas.
Em veículos, esses componentes também nos ajudam em questão de 
conforto, segurança e eficiência. Um sistema eletrônico embarcado atua no 
controle de estabilidade, controle de tração, freios inteligentes, e executa funções 
específicas para oferecer conforto às necessidades dos usuários.
Nos eletrodomésticos percebemossua presença no cotidiano, em 
condicionadores de ar, máquinas de lavar, cafeteiras, geladeira, até mesmo em 
equipamentos de comunicação, cada vez mais presente em nossa sociedade, em 
equipamentos de rede como switch e roteador, telefones. Está presente todos os 
eletrodomésticos básicos, que facilitam, melhoram e otimizam a vida dos usuários.
Conforme Neto, Monteiro e Queiroga (2012, p. 5),
Na área da segurança, é comum o uso de sistemas microcontroladores, 
como alarmes residenciais, discadores, sensores perimétricos, trancas 
e fechaduras eletrônicas, portões motorizados, sensores de presença e 
de iluminação.
De modo geral, os microcontroladores são, atualmente, componentes 
tecnológicos que favorecem a vida moderna. Aumentam a eficiência, 
permitem a redução de custo e um significativo aumento de 
funcionalidades, facilitando e melhorando a vida dos usuários e 
agregando valor aos produtos onde são aplicados.
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
8
Microcontrolador é uma coisa, microprocessador é outra. São arquiteturas 
diferentes para propósitos diferentes. Um microcontrolador contém um microprocessador.
ATENCAO
4 O MICROCONTROLADOR USADO NO ARDUÍNO
O Arduíno é uma plataforma de hardware projetada sobre o 
microcontrolador AVR da fabricante ATMEL que possui capacidade de 8 bits e 32 
bits. Dentre seus benefícios e características, podemos citar a ótima eficiência de 
processamento e núcleo compacto. Possui arquitetura voltada à programação C, 
a qual permite produzir códigos compactos, além de existir microcontroladores 
AVR específicos para diversas áreas.
 Segundo Oki e Mantovani (2013, p. 6), as principais características dos 
microcontroladores AVR são:
• executam poderosas instruções em um simples ciclo de clock e 
operam com tensões entre 1,8 e 5,5 V, com velocidades de até 20 
MHz. Estão disponíveis em diversos encapsulamentos (de 8 até 64 
pinos);
• alta integração e grande número de periféricos com efetiva 
compatibilidade entre toda a família AVR;
• possuem vários modos para redução do consumo de energia;
• possuem 32 registradores de propósito geral, memória de acesso 
load-store e a maioria das instruções é de 16bits;
• memória de programação FLASH programável in-system, SRAM 
e EEPROM, para desenvolvimentos rápidos e flexibilidade de 
projeto;
• preço acessível e um conjunto completo e gratuito de softwares.
Para um melhor entendimento, é possível identificar os elementos 
principais do circuito por meio do diagrama em blocos.
TÓPICO 1 — MICROCONTROLADORES
9
FIGURA 3 – DIAGRAMA DE BLOCOS DO ARDUÍNO
FONTE: Monk (2010, p. 10)
O ATmega328 tem 32 KB de memória flash (em que é armazenado o 
software), além de 2 KB de SRAM (em que ficam as variáveis) e 1 KB de EEPROM 
(esta última pode ser lida e escrita por meio da biblioteca EEPROM e guarda os 
dados permanentemente, mesmo que desliguemos a placa). A memória SRAM é 
apagada toda vez que desligamos o circuito.
5 AS ORIGENS DO ARDUÍNO E SEUS MODELOS 
O Arduíno foi um projeto que teve início na Itália no ano de 2005, seus 
desenvolvedores são: Massimo Banzi, David Cuartielles, Tom Igoe, Gianlica 
Martino e David Mellis. O objetivo era elaborar um dispositivo que fosse ao barato, 
funcional e fácil de programar, acessível para que estudantes e projetistas amadores.
Uma particularidade desses dispositivos é que se trata de uma plataforma 
de hardware código aberto (open source). Essa expressão nos permite dizer que 
qualquer um com conhecimento em programação é livre para modificá-lo e 
ampliá-lo de acordo com a necessidade, visando sempre à melhoria dos produtos 
que possam ser criados a partir do Arduíno ou, ainda, está aberto para uso e 
contribuição de toda sociedade.
Mesmo sendo uma plataforma open source, este dispositivo possui sua 
marca registrada, por esse motivo outras placas similares construídas por outras 
pessoas não podem utilizar o nome Arduíno.
Com o decorrer dos anos, a linha Arduíno ampliou-se, buscando soluções 
para os mais diversos projetos. Conheça um pouco mais dessa família com as 
imagens da Figura 4, alguns modelos listados no site oficial do Arduíno. Cada tipo 
tem sua característica e vantagens específicas para projetos que se deseja realizar.
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
10
FIGURA 4 – TIPOS DE MICROCONTROLADORES
FONTE: <https://www.arduino.cc/en/Main/Products>. Acesso em 15 jul. 2021.
No Quadro 1, podemos observar as especificações de alguns modelos de 
placa, e que o modelo a ser escolhido depende da necessidade do seu projeto, por 
exemplo, em processos que requerem altas taxas de processamento, uma opção é 
o Arduíno Due, que é cerca de 15 vezes mais rápido comparado ao Arduíno Uno 
e possui duas portas DAC além das PWM normais. 
Além disso, ele tem um ADC de 12 bits em vez dos atuais 10 bits do Uno, 
mas infelizmente o custo é o dobro da plataforma Arduíno Uno. Tendo isso em 
vista, pode-se dizer que o Arduíno uno é uma opção barata para aplicações de 
desenvolvimento que não exijam tanta exatidão e confiabilidade, sendo ideal 
para iniciantes e na área educacional (GERMINIANI, 2021).
TÓPICO 1 — MICROCONTROLADORES
11
QUADRO 1 – MODELO DE QUADRO
FONTE: <https://www.filipeflop.com/blog/tipos-de-arduino-qual-comprar/>. 
Acesso em: 1° ago. 2021.
Considerando as características técnicas, de acordo com Germiniani 
(2021), temos 12 especificações que o desenvolvedor deve levar em conta na 
escolha de um microcontrolador para seu produto.
1- Memória – atualmente, os microcontroladores disponíveis no mercado 
já contam com memórias RAM e Flash em sua estrutura. A Flash é uma 
memória não-volátil utilizada para armazenamento de programa, já a RAM 
é uma memória volátil para armazenamento de dados temporários. Alguns 
microcontroladores também incluem a memória EEPROM, responsável pelo 
armazenamento de dados permanentes.
2- GPIOs (Digital General Purpose Input and Output) – são pinos utilizados 
para entrada e saída.
3- Entrada Analógica – a maioria dos microcontroladores possui a capacidade 
de ler de forma precisa tensões analógicas. Os sinais analógicos são vistos 
pelo microcontrolador por meio de um conversor analógico digital (ADC).
4- Saída Analógica – os sinais podem ser gerados pelo microcontrolador por 
meio de um conversor digital analógico (DAC) ou por um gerador de PWM, 
nem todos os microcontroladores possuem um DAC mas oferecem saídas 
PWM.
5- In Circuit Programming (ISP) – o ISP permite ao desenvolvedor programar o 
microcontrolador enquanto ele estiver instalado no circuito de aplicação, não 
existe a necessidade de removê-lo, apenas para gravá-lo. Os dois protocolos 
mais conhecidos são JTAG e SWD.
6- Wireless – se o seu produto necessita de interfaces sem fio, há 
microcontroladores especializados para esse tipo de aplicação que oferecem 
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
12
bluetooth, wifi, zigbee, entre outros padrões wireless.
7- Comunicação Serial – todos os microcontroladores oferecem algum tipo de 
comunicação serial. Os vários protocolos de comunicação serial são UART, 
SPI, I2C.
8- UART (Universal Asynchronous Receiver Transmitter) – é uma porta serial 
que transmite palavras digitais, tipicamente de comprimento de 7 a 8 bits, sua 
função é possibilitar a transmissão e a recepção de dados seriais.
9- SPI (Serial Peripheral Interface) – SPI é utilizado para comunicações seriais 
de curta distância entre microcontrolador e periféricos, SPI é um protocolo 
síncrono, ou seja, possui um clock que temporiza a comunicação, a SPI possui 
por padrão 4 sinais (data in, data out, clock e chip select).
10- I2C (Inter Integrated circuit) – é um barramento serial de 2 sinais, muito 
utilizado na comunicação entre o microcontrolador e outros chips da placa, 
assim como o SPI, o I2C é um protocolo síncrono. No entanto, o I2C possui 
um único sinal para data in e data out e, em vez de um pino de seleção de 
chip (Chip Select), o I2C utiliza um único endereço para cada periférico; essepadrão de comunicação possui como vantagem utilizar apenas 2 sinais, em 
que o padrão SPI utiliza 4 sinais, porém, o I2C é mais lento que o SPI.
11- USB (Universal Serial Bus) – é provavelmente o padrão mais familiar, USB 
é um dos protocolos de comunicação serial mais rápidos, é normalmente 
utilizado para ligação de periféricos que necessitam de grandes quantidades 
de transferência de dados.
12- CAN (Controller Area Network) – é um padrão de comunicação serial 
desenvolvido para ser utilizado apenas em aplicações automotivas.
Um fato muito importante com relação ao Arduíno é que há muito suporte 
disponível na rede, com vários fóruns e discussões e até mesmo a plataforma 
Arduíno, que favorece a interação com seus usuários.
As duas linguagens mais comuns para programação de microcontroladores 
são Assembly e C, e as principais diferenças entre ambas são:
• a linguagem C torna a programação amigável, facilitando a 
programação de aplicações mais complexas;
• a linguagem C aumenta a portabilidade, uma vez que as instruções 
Assembly variam muito até mesmo entre os mesmos fabricantes;
• a linguagem C permite o aproveitamento de código com uso de 
bibliotecas;
• é necessário controle do hardware para programar em Assembly;
• o tamanho do código em Assembly será sempre menor;
• os programas em Assembly tendem a ser mais rápidos (MONTEIRO, 
2018, p. 19-20).
13
Neste tópico, você aprendeu que: 
• O mercado de componentes eletrônicos oferece várias opções de fabricantes e 
diferentes dispositivos. Com relação a sua utilização, são fortemente usados 
em circuitos de automóveis, robótica, equipamentos biomédicos; de modo 
geral, todos aqueles que necessitam de automação e controle. 
• Microprocessadores e microcontroladores são componentes diferentes, e um 
microcontrolador contém um microprocessador, mas não o contrário.
• O Arduíno foi um projeto que teve início na Itália no ano de 2005 com o objetivo 
de ser um dispositivo barato, funcional e fácil de programar, acessível para 
estudantes e projetistas amadores.
• O Arduíno é uma plataforma de hardware projetada sobre o microcontrolador 
AVR da fabricante ATMEL, que possui capacidade de 8 bits e 32 bits. Apresenta 
uma ótima eficiência de processamento e núcleo compacto (milhares de portas 
lógicas). Possui arquitetura voltada à programação C, a qual permite produzir 
códigos compactos.
• O Arduíno é um embarcado e possui microcontrolador (tem sua própria 
memória e processador, sendo capaz de realizar qualquer instrução que for 
programada) ATMEGA. É uma plataforma Open-Source, mesmo assim possui 
sua marca registrada.
• É preciso observar especificações que o desenvolvedor deve levar em conta na 
escolha de um microcontrolador para seu projeto.
RESUMO DO TÓPICO 1
14
1 Microcontroladores estão cada vez mais presentes no nosso cotidiano, 
agregam conforto e facilidades que não tínhamos antes. Sobre esses 
componentes, assinale a alternativa CORRETA:
a) ( ) Para programar o Arduíno, é necessário que o projetista domine 
exatamente seu hardware.
b) ( ) Há apenas dois valores que um pino do Arduíno pode assumir: HIGH 
e LOW, e pode estar configurado como entrada ou saída.
c) ( ) Pinos que estão configurado como pinMode() OUTPUT estão na entrada 
e os que estão INPUT são os de saída.
d) ( ) Os microcontroladores da ATEMEL apresentam baixa eficiência e 
núcleo compacto.
2 O microcontrolador pode ser considerado como um computador em um 
único chip. Abaixo estão descritos alguns dispositivos que podem fazer 
parte de um microcontrolador. Sobre a composição do microcontrolador, 
analise as sentenças a seguir:
I- Possui barramentos de entrada e saída para se conectar a dispositivos 
externos, os quais colaboram para aumentar sua funcionalidade.
II- Normalmente a disposição interna de um microcontrolador divide-se em 
duas arquiteturas, Harvard e Yale.
III- O Arduíno é composto pelos microcontroladores AVR da fabricante 
ATMEL. 
IV- Internamente, o Arduíno possui uma variedade de osciladores, 
temporizadores, portas seriais, conversores A/D, que facilitam o trabalho 
para seus usuários.
Assinale a alternativa CORRETA:
a) ( ) As sentenças I e IV estão corretas.
b) ( ) As sentenças I e III estão corretas.
c) ( ) As sentenças II e III estão corretas.
d) ( ) As sentenças III e IV estão corretas.
3 O Arduíno surgiu na Itália em 2005, visando projetos de eletrônica e 
programação de forma interativa. Possui um conjunto de ferramentas 
acessíveis de baixo custo. Sobre esse dispositivo, assinale a alternativa é 
CORRETA:
a) ( ) Um microcontrolador pode conter apenas uma memória principal, 
onde estão armazenados os programas a serem manipulados pelo 
processador.
b) ( ) Para que o microprocessador se comunique com as memórias, não há 
necessidade de um sistema de controle.
AUTOATIVIDADE
15
c) ( ) Os microcontroladores contêm os microprocessadores, memórias de 
dados e uma infinidade de periféricos, como contadores, interfaces de 
entrada e saída.
d) ( ) Linguagens de programação podem ser instruções isoladas, e não 
há necessidade de ordenar instruções para que tenha eficiência no 
processo de execução.
4 As duas linguagens mais comuns para programação de microcontroladores 
são Assembly e C. Disserte sobre as principais diferenças entre ambas.
5 Um microcontrolador se diferencia de um microprocessador em 
vários aspectos. Disserte sobre as diferenças entre microcontrolador e 
microprocessador.
16
17
TÓPICO 2 — 
UNIDADE 1
ARDUÍNO: HARDWARE E SOFTWARE
1 INTRODUÇÃO
O Arduíno é uma plataforma embarcada, com grande versatilidade para 
protótipos eletrônicos, com vantagens de baixo custo e facilidade de utilização, 
mesmo para pessoas que possuem pouco conhecimento em eletrônica. Nos 
estudos, vamos usar como referência o Arduíno UNO, versão mais comercializada 
neste segmento. 
Neste tópico, estudaremos o funcionamento do seu hardware e o ambiente 
de desenvolvimento para execução de projetos. O Arduíno pode ler sensores, 
controlar atuadores (motor, lâmpadas) processar a informação, e assim, controlar 
dispositivos ou ambiente de acordo com as necessidades do usuário.
É importante lembrarmos que hardware é a placa que possui como 
componentes central um microcontrolador da família ATmega; software 
consiste na linguagem de programação e um ambiente de desenvolvimento 
derivados do Processing. Sua comunidade é composta de grande número 
de pessoas que compartilham os seus conhecimentos e projetos na internet, 
disseminando a plataforma.
2 A PLACA DO ARDUÍNO UNO 
Por meio da Figura 5, identificamos os itens que compõem seu hardware. 
A organização da placa é apresentada conforme os itens:
• microcontrolador ATmega328: cérebro da placa, ou seja, onde todo o 
processamento de dados é feito. Basicamente, uma CPU com clock de 20 MHz, 
8 bits e 32 kB de memória flash. É neste controlador que os programas são 
armazenados;
• porta USB: é onde ocorre a comunicação com o computador, também serve 
como fonte de alimentação da placa;
• fonte de alimentação: usada quando desejamos operar a placa sem um 
computador. Para adaptadores AC, recomenda-se uma tensão de 9 a 12 volts;
• 14 pinos de entrada e saída digital (pino 0 -13): são utilizados como entradas e 
saídas digitais de acordo com a necessidade do projeto, conforme foi definido 
no código;
18
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
• 6 pinos de entradas analógicas (pinos A0 – A5): esses pinos são dedicados a 
receber valores analógicos, por exemplo, a tensão de um sensor. O valor deve 
estar na faixa de 0 a 5V, que serão convertidos para valores entre 0 a 1023;
• 6 pinos de saídas analógicas (pinos 3, 5, 6, 9, 10 e 11): são pinos digitais 
que podem ser programados para serem utilizados como saídas analógicas, 
utilizando modulação PWM (ZANETTI, 2015);
• alguns possuem símbolo ∼, que representa uma saída do tipo PWM (Modulação 
por Largura de Pulso), que seria uma forma de simular uma saída analógica;
• LEDs TX e RX indicama comunicação entre o Arduíno e seu computador. Eles 
acendem quando há upload de código e durante a comunicação serial.
FIGURA 5 – PLACA DO ARDUÍNO UNO
FONTE: Kerschbaumer (2018, p. 54)
2.1 SHIELDS OU MÓDULOS
Uma característica relevante da plataforma Arduíno é a possibilidade de 
expansão por meio de extensões chamadas shields. Essas são placas de expansão 
que são plugadas ao Arduíno a fim proporcionar novas funcionalidades que 
sozinho ele não seria capaz. As shields podem ser utilizadas desde o controle 
de motores, até a comunicação sem fio, e ainda podem conter displays de LCD, 
sensores, módulos de comunicação ou relés, por exemplo.
Segundo McRoberts (2011), um exemplo de shield bastante utilizado em 
projetos é o Shield Ethernet, cuja função é permitir que a pessoa tenha acesso à rede 
(Ethernet ou Internet) por meio da conexão de um cabo entre o shield e o roteador. 
Na Figura 6, podemos observar uma imagem da Shield Ethernet. A capacidade de 
expansão possibilita uma infinidade de aplicações de maneira simples e rápida. 
TÓPICO 2 — ARDUÍNO: HARDWARE E SOFTWARE
19
FIGURA 6 – PLACA DO ARDUÍNO UNO E SHIELD ETHERNET
FONTE: <https://www.usinainfo.com.br/blog/Arduíno-vs-raspberry-pi-qual-a-diferenca/>.
 Acesso em: 15 jul. 2021.
O funcionamento das shields é completamente dependente do Arduíno 
e, na maior parte das vezes, necessita de bibliotecas de software específicas 
para funcionar corretamente. Essas bibliotecas devem ser instaladas no IDE do 
Arduíno, baixando-as do website do fabricante do shield, algumas inclusive estão 
presentes como bibliotecas padrão do Arduíno.
3 ENTRADAS E SAÍDAS ANALÓGICAS E DIGITAIS
Portas digitais têm seu funcionamento baseados em princípios booleanos, 
ou seja, apenas dois estados que podemos denominar de verdadeiro ou falso, 
certo ou errado, 0 ou 1, HIGH ou LOW. No caso do Arduíno, a nomenclatura mais 
utilizada é HIGH ou LOW. Estar HIGH será interpretado como está passando 
corrente elétrica por aquela porta, em contrapartida, o LOW significa que não 
está circulando corrente elétrica. Na Figura 7, temos um gráfico representativo 
dessa situação.
FIGURA 7 – REPRESENTAÇÃO DE HIGH E LOW
FONTE: As autoras
Isso significa que precisamos trabalhar com valores bem definidos de 
tensão quando utilizamos as portas digitais. Nesse caso, estamos trabalhando 
com valores digitais binários, ou seja, projetamos valores que utilizam apenas 
dois valores. No Arduíno, geralmente utilizamos as tensões 0 V e 5 V. 
20
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
Dessa forma, as portas digitais podem trabalhar com essas duas tensões, 
sendo que o software que desenvolveremos poderá requisitar ao microcontrolador 
que optamos por fornecer 0 V em uma determinada porta, ou ainda 5 V; e a 
resposta será lida em outra porta (que também terá uma resposta de 0 V ou 5 V).
Em portas analógicas, obviamente teremos uma possibilidade maior que 
duas (HIGH e LOW), pois sua resolução é de 10 bits, ou seja, de 0 a 1023. Isso 
significa que precisamos aplicar uma regra de três para fazer a conversão em 
volts. Por exemplo, se temos uma tensão de 3,5 V, então o Arduíno fornecerá o 
número 716.
Outro recurso é o Pulse Width Modulation, conhecido por PWM. Por meio 
dele, podemos controlar a potência do dispositivo. Se observarmos a placa de 
Arduíno, em geral esse recurso é posicionado próximo às portas digitais. Com 
ele podemos controlar a razão cíclica de um sinal (Duty Cycle), que é uma 
porcentagem da potência total que poderia ser entregue ao dispositivo.
A técnica de PWM é bastante aplicada na eletrônica, e pode ser utilizada 
no controle de velocidades de motores, controle de luminosidade, controle de 
servo motores. Quando uma chave está ligada, ela permite a passagem de toda 
potência, e essa potência é aplicada na carga em sua totalidade; já quando a chave 
está desligada, nenhuma potência é entregue. Se controlarmos o tempo que a 
chave fica ligada e desligada, consequentemente controlamos o valor da potência 
entregue (METTEDE, 2021). 
Para funcionamento do PWM e considerando a onda quadrada, regulamos 
a largura do pulso, o chamado Duty Cycle. Seus parâmetros são: o período e a 
largura do pulso, definida em porcentagem.
FIGURA 8 – SINAL PWM COM DUTY CYCLE DE 25%.
FONTE: <hhttp://www.squids.com.br/arduino/index.php/projetos-arduino/projetos-squids/basico/264-
projeto-80-interrupcao-por-timer-no-arduino-disparo-de-alarme-com-sensor-de-toque>. 
Acesso em: 15 jul. 2021.
TÓPICO 2 — ARDUÍNO: HARDWARE E SOFTWARE
21
Para exemplificar essa situação, podemos pensar em um sinal digital que 
oscila entre 0V e 5V com determinada frequência – o Arduíno trabalha com um 
padrão de 500Hz. Tal situação funciona como se fosse um clock, porém os tempos 
em que o sinal permanece em 0V e 5V podem ser diferentes. Duty cycle é a razão 
do tempo em que o sinal permanece em 5 V sobre o tempo total de uma oscilação. 
4 O AMBIENTE DE DESENVOLVIMENTO DO ARDUÍNO
Assim como qualquer dispositivo programável, a plataforma Arduíno 
necessita que os programas sejam desenvolvidos em uma linguagem de 
programação, compilados e posteriormente transferidos ao Arduíno. Esse 
ambiente utilizado no desenvolvimento de aplicações é denominado ambiente 
integrado de programação, chamado de IDE (Integrated Development Environment). 
A IDE Arduíno pode ser obtida gratuitamente no site do Arduíno.
Inclui um editor de código com recursos de realce de sintaxe, parênteses 
correspondentes e identificação automática. É capaz de compilar e carregar 
programas para a placa com um único clique. Depois que o programa é criado, 
ele é chamado de sketch.
Sua interface é bastante simples e didática. Além disso, outra vantagem 
é que contém, no próprio ambiente de desenvolvimento, diversas bibliotecas de 
módulos prontas para utilizar, dispensando que o usuário tenha que desenvolver 
uma programação específica para cada módulo. Tais bibliotecas são fundamentais 
para que o módulo opere corretamente.
Após baixar e instalar o software, teremos um ambiente de desenvolvimento, 
conforme ilustrado na Figura 9.
22
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
FIGURA 9 – IDE DO ARDUÍNO
FONTE: As autoras
Confira, a seguir, as funcionalidades do ambiente de desenvolvimento 
integrado do Arduino, conforme Souza (2017):
•	 Botão	Verificar: compila o sketch, verificando os erros de sintaxe do seu código. 
Na compilação, a IDE do Arduíno traduz o código escrito em linguagem C 
para a linguagem de máquina (sequência de bits, código binário), preparando 
para o armazenamento na placa do Arduíno.
• Botão Carregar: compila e, em caso de ausência de erros de sintaxe, armazena 
o código na placa do Arduíno. Em resumo, esse botão executa os mesmos 
procedimentos do botão Verificar e ainda armazena o código binário no 
Arduíno, o que faz com que a placa “rode” o seu código logo em seguida.
• Botão Novo: crua um novo sketch;
• Botão Abrir: abre um sketch e salva previamente.
• Botão Salvar: salva a sketch.
• Botão Monitor Serial: abre o monitor serial. O monitor serial é usado para ler 
um valor armazenado em uma dada variável. Observe que o monitor serial só 
pode ser aberto quando a placa de Arduíno está conectada ao computador.
TÓPICO 2 — ARDUÍNO: HARDWARE E SOFTWARE
23
Para que possamos selecionar o modelo da placa utilizada, escolhemos a 
opção Ferramentas, depois Placa, em que estará disponível todos os modelos de 
Arduíno, conforme a Figura 10. 
FIGURA 10 – ESCOLHA DA PLACA DO ARDUÍNO
FONTE: As autoras
É importante ficarmos atentos para selecionarmos a porta em que vamos 
conectar o Arduíno. Se utilizarmos o Windows, possivelmente aparecerá a COM4, 
mas isso será feito por teste de tentativa e erro. Podemos utilizar a função default 
blink, que nada mais é que o LED incluso na placa de Arduíno. Então, a partir do 
menu Arquivo, escolha Exemplos | Basics | Blink.
24
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
FIGURA 11 – O IDE DO ARDUÍNO FAZENDO CARREGAMENTO DO SKETCH BLINKFONTE: As autoras
Logo que você clicar no botão Upload, aparecerá uma barra no canto 
inferior da IDE indicando o progresso da operação enquanto o sketch está sendo 
compilado. A seguir, os LEDs rotulados como Rx e Tx deverão piscar por um 
breve tempo. Finalmente, o LED l deve começar a piscar. O IDE também exibirá 
uma mensagem como Binary sketch size:1,084 bytes (of a 32,266 byte maximum). Isso 
significa que o sketch utilizou cerca de 1 Kb dos 32 Kb de memória flash que estão 
disponíveis para programas no Arduíno (MONK, 2015).
Um programa pode ser escrito em linguagem Assembly (linguagem de 
máquina mais próxima à máquina) ou ainda podemos utilizar a linguagem C (mais 
amigável ao homem). Ainda assim, tais linguagens necessitam ser completamente 
transcritas para a máquina pelo uso de tabelas e alguns programas específicos 
que façam essa tradução.
TÓPICO 2 — ARDUÍNO: HARDWARE E SOFTWARE
25
Programas como estes geram um arquivo com extensão (.hex), que contêm 
uma sequência de caracteres ASCII, de modo geral são arquivos que contêm 
sistema de numeração hexadecimal. 
Temos um montador que permite que a instrução seja expressa em 
símbolos de fácil assimilação em caracteres alfanuméricos, utilizando instruções 
do fabricante. Além disso, monta o código com funções reconhecidas pelo 
hardware. A diferença para o compilador é que este utiliza outra programação 
não reconhecida pelo hardware. Por exemplo, a Linguagem C é muito utilizada 
para programar PIC, um exemplo de programa para gravar um dado na 
memória EEPROM.
Na ocasião em que você não tenha o Arduíno, há alguns simuladores, 
os quais utilizam o ambiente virtual para simulação de circuitos eletrônicos 
gratuitamente. Por meio de um Toolkit, ele emula as placas UNO, MEGA e NANO. 
Dessa forma, você poderá simular diversas aplicações, com interação de diversos 
componentes virtuais e até mesmo, posteriormente, enviar para um Arduíno real.
Outro benefício de utilizarmos esses ambientes virtuais é que não há 
necessidade de comprar componentes eletrônicos que não serão utilizados no 
projeto final, além de eliminar o risco de estragar componentes por conexão ou 
manipulação inapropriada deles. É ideal para iniciantes que ainda não possuem 
todas as ferramentas para começar a montar seus projetos e têm receio de cometer 
algum erro que possa danificar seus componentes (COELHO, 2021).
Algumas sugestões de simuladores, de acordo com Coelho (2021), estão 
relacionadas a seguir:
• O Tinkercard, com sua ferramenta Circuits, é a plataforma de simulação de 
circuitos mais popular entre os admiradores e a mais indicada. Podemos utilizar 
componentes básicos como LEDs, resistores, pushbuttons e potenciômetros, 
bem como simular componentes mais complexos, como módulos LCD, 
transistores, MOSFETs, CIs comparadores, amplificadores operacionais, timers 
e registradores de deslocamento.
• O Virtronics é a plataforma mais adequada para depuração de códigos mais 
complexos. Permite rodar o programa linha por linha, observar o valor das 
variáveis e os estados das portas digitais e analógicas. O programa possui 
funcionalidade gratuita limitada e é exclusivamente para computadores 
Windows. Não possui compatibilidade com componentes externos ao Arduíno. 
• O UnoArduSim é uma ferramenta para Windows ofertada gratuitamente. 
Oferece possibilidade de depuração linha por linha do código, apresenta 
simulação de alguns componentes simples como pushbuttons, chaves motoras 
DC e servos. 
26
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu que: 
• O Arduíno é uma plataforma de computação física embarcada, ou seja, um 
sistema pode interagir com seu ambiente por meio de hardware e software. 
Apresenta mais de um modelo de placas e grande variedade de shields para 
complementar suas funcionalidades.
• A referência do nosso estudo será o modelo Arduíno Uno e, por esse motivo, 
aprendemos a identificar seus componentes, entradas analógicas e digitais PWM. 
• Podemos identificar os botões de verificar, carregar, novo, abrir, salvar e 
monitor serial dos sistemas relacionados ao Arduíno.
• Há algumas plataformas virtuais gratuitas para você aprender ativamente 
como trabalhar com o Arduíno UNO.
27
1 Quanto ao ciclo de programação do Arduíno, ordene os itens a seguir:
I- Aguardar a reinicialização, depois ocorrerá a execução do sketch criado.
II- Conexão da placa a uma porta USB do computador.
III- Desenvolvimento de um sketch com comando para a placa.
IV- Upload do sketch para a placa, utilizando a comunicação USB.
Assinale a alternativa que apresenta a sequência CORRETA:
a) ( ) I – IV – III – II.
b) ( ) II – I – IV – III.
c) ( ) IV – III – II – I.
d) ( ) II – III – IV – I.
2 Associe a primeira coluna com a segunda, de forma que as frases iniciadas 
na primeira coluna fiquem corretamente associadas com o seu complemento 
na segunda coluna:
I- Uma Linguagem de baixo nível.
II- Uma Linguagem de alto nível.
III- O Montador.
IV- O compilador.
V- O IDE.
( ) Permite melhor compreensão e domínio do hardware utilizado.
( ) Disponibiliza uma interface contendo o editor de texto, o compilador e 
ferramentas para debug num mesmo programa 
( ) Utiliza outra linguagem para programação que o hardware não reconhece.
( ) Utiliza apenas a linguagem Assembly, usando apenas as instruções do 
fabricante.
( ) Permite mais facilidade na abstração para a elaboração do código.
Assinale a alternativa que apresenta a ordem CORRETA:
a) ( ) III – I – II – V – IV.
b) ( ) IV – III – II – I – V.
c) ( ) IV – V – II – I – III.
d) ( ) IV – I – III – V – II.
3 No final do século XX, muitos equipamentos sofreram evoluções radicais 
em virtude da utilização dos microcontroladores, e aos poucos manipular 
computadores e softwares faz parte da realidade de grande parte da 
população. O Arduíno é uma ótima opção para motivar estudantes a colocar 
em prática esses conhecimentos de programação. Com base no exposto, 
assinale a alternativa CORRETA:
AUTOATIVIDADE
28
a) ( ) O Arduíno permite desenvolver apenas projetos de baixa complexidade, 
e esse é um dos motivos de ser utilizado para projetos didáticos.
b) ( ) Simuladores virtuais não são muito utilizados, por terem carência de 
componentes.
c) ( ) Sua placa contém alguns soquetes que permitem conectar fios ou 
Leds, um oscilador de cristal, um conector para fonte de alimentação e 
adaptador USB que permite a comunicação com o computador.
d) ( ) A programação desse dispositivo é complexa para público mais 
jovem, depende de conhecimentos prévios de arquitetura de 
microcontroladores.
4 Uma função no Arduíno consiste em gerar uma sequência de comandos a 
ser executada em cada programa; algumas destas funções são extremamente 
importantes. Disserte sobre a estrutura básica de um programa no Arduíno.
5 A função setup () e loop () são em geral executadas a cada código no 
ambiente de desenvolvimento integrado do software. Disserte sobre as 
funções setup () e loop ().
29
TÓPICO 3 — 
UNIDADE 1
PROGRAMAÇÃO DO ARDUÍNO
1 INTRODUÇÃO
Acadêmico, no Tópico 3, abordaremos a linguagem de programação do 
Arduíno. Por intermédio da linguagem de programação, conseguiremos indicar 
quais ações devam ser executadas pelo Arduíno.
 
Alguns autores consideram que sua linguagem é chamada de Wiring, 
entretanto, é consenso nos fóruns especializados que o Arduíno não é uma 
linguagem propriamente dita, e sim um dialeto da linguagem C, contendo funções 
específicas para a programação do microcontrolador AVR.
De forma simplificada, o processo de compilação começa quando o IDE 
do Arduíno faz pequenas alterações no sketch, criando um código em C++. Em 
seguida, o compilador AVR-GCC converte o código de C++ para linguagem de 
máquina (ou código objeto) para, em seguida, armazená-lo na placa do Arduíno 
via USB, como um único arquivo Intel hexadecimal COELHO, 2021). 
Para que se possa desenvolver programas para o Arduíno, as seções 
a seguir apresentarão todos os detalhes de sua linguagemde programação. 
Segundo o site oficial do Arduíno (2021), os programas escritos em Arduíno 
podem ser divididos em três partes: variáveis, funções e estruturas. Estes serão 
assuntos deste Tópico 3.
A linguagem C é dita uma linguagem de baixo nível, isto é, uma linguagem 
que é próxima da linguagem dos microcontroladores e processadores, na qual 
temos que programar registradores de bits, manipular a memória e executar 
instruções do processador. C++ é uma linguagem de alto nível, ou seja, seu 
nível de abstração é maior e ela está mais próxima da linguagem humana do 
que da dos computadores. Em linguagens de alto nível, nós não manipulamos a 
memória e os recursos de hardware diretamente, mas sim por meio de bibliotecas 
e recursos previamente disponíveis que deixam a linguagem mais transparente 
para o programador. 
A linguagem Arduíno utiliza uma série de bibliotecas e recursos para que 
o usuário não tenha que manipular bits e registradores do microcontrolador. Se 
você já programou alguma dessas linguagens, Arduíno não será um problema, e 
tais semelhanças serão evidenciadas neste tópico.
30
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
2 ESTRUTURA BÁSICA E SINTAXE DO SKETCH 
Segundo Zanetti (2015), o código-fonte é chamado de sketch. Quando 
escrevemos algum código-fonte e verificamos sua sintaxe e sua execução, 
utilizamos um compilador, cuja função é traduzir nosso código-fonte para outra 
linguagem, compreendida pelo microcontrolador. Após o processo de compilação, 
o sketch poderá ser transferido, por meio de uma conexão USB para o Arduíno.
Os programas implementados no Arduíno possuem como referência a 
Linguagem C++, preservando sua sintaxe clássica na declaração de variáveis, nos 
operadores, nos ponteiros, nos vetores, nas estruturas, por exemplo. Sua estrutura 
pode ser dividida em três partes principais.
As estruturas de referência são:
• estruturas de controle (if, else, break, ...);
• sintaxe básica (define, include, ...);
• operadores aritméticos e de comparação (+, -, =, ==, !=,...);
• operadores booleanos (||, !);
• acesso a ponteiros (*,);
• operadores compostos ()/++, -, +=, ...).
Os valores de referência são:
• tipos de dados (byte, array, int, char, ...);
• conversões (char(), byte(), int(), ...);
• variável de escopo e de qualificações (variable scope, static, volatile, ...);
• utilitário (sizeof(), diz o tamanho do espaço da variável e bytes).
Os sketchs são salvos com a extensão .ino , sua área de mensagem dá 
feedback ao salvar e exportar arquivos e também exibe informações de erros 
ao compilar. Geralmente utilizamos os seguintes componentes para elaborar 
o algoritmo: estruturas; variáveis; operadores booleanos; de comparação e 
aritméticos; estrutura de controle; funções digitais e analógicas.
A estrutura básica de um sketch é formada por duas funções principais:
• void setup(): utilizada para inicialização do programa Arduíno. Comandos 
inseridos nessa função são executados somente uma vez logo após o programa. 
• void loop(): executada indefinidamente enquanto a placa estiver ligada, pois 
seu comportamento padrão é um ciclo de repetição. Quando a última linha do 
código for executada, o sketch será lido novamente a partir da primeira linha, 
e assim sucessivamente, até que a placa seja desligada ou o botão reset seja 
pressionado.
TÓPICO 3 — PROGRAMAÇÃO DO ARDUÍNO
31
Assim como outras linguagens de programação, há um conjunto básico 
de elementos necessários para sua execução, os mais comuns são:
• o ponto e vírgula (;) obrigatório para marcar o final de uma linha de comando;
• as chaves ({ }) indicam um bloco de comandos, muito comum para definição de 
funções e estruturas de comando;
• os símbolos // ou /* */ denotam os comentários, ou seja, trechos do programa 
que serão ignorados e não executados;
• a diretiva #include é usada para incluirmos uma biblioteca de comandos. 
Exemplo:
void setup()
{
//Define a porta do led como saida
pinMode(13, OUTPUT);
}
void loop()
{
//Acende o led
digitalWrite(13, HIGH);
//Aguarda o intervalo especificado
delay(1000);
//Apaga o led
digitalWrite(13, LOW);
//Aguarda o intervalo especificado
delay(1000);
} 
Conforme Kerschbaumer (2018), a programação do Arduíno permite 
que utilizemos comentários no programa. São importantes para documentar os 
programas e facilitam a manutenção do mesmo, em virtude que poderemos ter 
centenas de linhas. Na linguagem de programação do Arduíno, os comentários 
de uma linha devem iniciar com "//", tudo que vem após as duas barras é ignorado 
pelo compilador, veja o exemplo a seguir.
void setup() {
// exemplo de comentário
}
Outra maneira de incluirmos os comentários é iniciar o código "/*" e 
finalizar com o código "*/", veja o exemplo a seguir.
/*
Exemplo de comentário
com várias linhas
*/
32
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
No Arduíno, todos os blocos de código deve ser iniciados e finalizados 
com chaves ({ }). Isso serve tanto para sub-rotinas como para instruções que 
integrem blocos de código. Veja o exemplo a seguir do que está entre o "/*" e o "*/" 
é ignorado pelo compilador (KERSCHBAUMER, 2018).
void loop() {
if(valor > 5)
{
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
}
Nesse exemplo, temos dois blocos de código definidos entre chaves, o 
bloco da sub-rotina ou função loop() e o bloco da instrução if. É uma boa prática 
deslocar com a tecla TAB cada bloco de código, pois assim é mais fácil visualizar 
onde cada bloco inicia e termina (KERSCHBAUMER, 2018).
3 CONSTANTES E VARIÁVEIS
Constantes são valores predefinidas e que não podem ser alterados pelo 
programador. Na linguagem de programação utilizada pelo Arduíno, há três 
grupos de constantes que podem ser utilizadas diretamente:
• HIGH e LOW: são valores referentes à tensão nos pinos digitais, sendo que 
HIGH indica 5 V, e LOW indica 0 volt.
• INPUT e OUTPUT: são valores que definem o estado de uso de um pino. 
INPUT indica entrada input) para a placa. O estado OUTPUT determina que o 
pino da placa fornecerá uma saída de valor quando, por exemplo, acendemos 
um LED, dando como saída o valor HIGH (5V).
• TRUE e FALSE: são referências para valores lógicos, ou seja, verdadeiro ou 
falso, respectivamente.
Variáveis são referências de valores armazenados em memória, para serem 
manipuladas no decorrer do código. Para utilizá-las, é necessário que estejam 
declaradas inicialmente. Tal declaração consiste em atribuir um nome para ela e 
informar qual o tipo de valor que ela armazenará. Possui o seguinte formato:
Tipo nome = valor inicial;
TÓPICO 3 — PROGRAMAÇÃO DO ARDUÍNO
33
Em que:
• tipo: pode ser um valor numérico, uma letra ou uma palavra, entre outros tipos 
de dados;
• nome: define o nome que vamos utilizar para referenciar. Os nomes podem 
conter números ou letras maiúsculas ou minúsculas. Deve iniciar com letra, e 
não pode conter espaços na formação do nome, o caractere permitido é o “_”;
• valor inicial: é um parâmetro opcional, pois uma variável pode ou não receber 
um valor inicial ao ser criado. Esse valor é atribuído pelo sinal “=”.
Vejamos agora os tipos de dados que podem ser utilizados.
3.1 TIPOS DE DADOS
As linguagens de programação são diferentes dependendo das 
plataformas computacionais. Tais características são específicas com relação 
à forma de armazenamento de dados. Há vários tipos de dados que podemos 
armazenar no Arduíno
Uma linguagem de programação apresenta dados que definem o tipo 
do valor a ser manipulado. Por exemplo, se criarmos uma variável com o nome 
“idade” e definimos que ela será do tipo numérico inteiro. Os tipos de dados mais 
utilizados estão detalhados no Quadro 2:
QUADRO 2 – TIPO DE DADOS
FONTE: Zanetti (2015, p. 29)
34
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
Segundo Kershbaumer (2018), sua sintaxe é feita da seguinte forma: 
primeiramente deve-se informar o tipo de dados utilizado, na sequência o nome 
da variável.
QUADRO 3 – TIPO DE DADOS
FONTE:Kerschbaumer (2018, p. 70)
Conforme Kerschbaumer (2018, p. 71),
O nome da variável deve iniciar com uma letra e não deve possuir 
espaços. É possível declarar mais de uma variável do mesmo tipo 
por vez, basta separar seus nomes com vírgula. Ao final da linha de 
declaração de variáveis, deve-se adicionar um ponto e vírgula. Veja a 
seguir alguns exemplos de declaração de variáveis.
int contador, valor_1;
long velocidade_do_motor;
float temperatura1;
As variáveis criadas dessa forma não possuem nenhum valor armazenado. 
No Arduíno, é possível atribuir um valor a uma variável, assim que ela é criada, 
basta adicionar o sinal de igual (=) e o valor a ser atribuído logo após o nome da 
variável (KERSCHBAUMER, 2018). Veja alguns exemplos a seguir:
int numero_de_pecas = 0; 
 float valorMaxino = 1500;
É importante salientar que não são permitidos caracteres especiais nos 
nomes de variáveis, assim letras acentuadas e o “ç” não podem ser usados 
(KERSCHBAUMER, 2018).
TÓPICO 3 — PROGRAMAÇÃO DO ARDUÍNO
35
4 OPERADORES ARITMÉTICOS, RELACIONAIS, LÓGICOS
Para realizarmos operações aritméticas nos códigos de programação, é 
necessário utilizar operadores aritméticos, assim como o emprego dos operadores 
relacionais e lógicos. Cada um desses grupos de operadores possui um conjunto 
de símbolos e respectivos significados. 
Esses operadores referenciam valores numéricos ou sobre variáveis, 
porém é importante respeitar o tipo de dados utilizado nas variáveis 
que compõe a operação. Também é possível realizar operações mais 
complexas utilizando vários operadores e, se necessário, usando 
parênteses ( ). 
A precedência desses operadores segue a lógica da matemática. 
Primeiro são avaliadas as expressões dentro dos parênteses mais 
internos, depois os incrementos e decrementos, na sequência 
as multiplicações e divisões e finalmente as somas e subtrações 
(KERSCHBAUMER, 2018, p. 72).
Além dos operadores aritméticos, também são disponibilizados vários 
operadores lógicos. No quadro a seguir são listados os operadores aritméticos 
mais utilizados na linguagem adotada no Arduíno.
QUADRO 4 – OPERADORES ARITMÉTICOS
FONTE: Zanetti (2015, p. 2)
Como podemos observar, inicialmente as variáveis são declaradas como 
int a = 10, e posteriormente a e b são somadas, resultando na variável c.
int a = 10;
int b = 5;
int c;
c = a + b;
36
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
Os valores relacionais também são muito significativos, pois permitem 
a comparação entre os valores. E o resultado de uma determinada comparação 
sempre resultará em um valor lógico (booleano), ou seja, verdadeiro (TRUE) ou 
falso (FALSE). O Quadro 4 dispões os operadores relacionais. Por exemplo, temos 
que o valor armazenado na variável booleana será TRU, pois a variável a é maior 
ou igual a b.
int a = 10;
int b = 5;
boolean result = (a>=b);
QUADRO 5 – OPERADORES RELACIONAIS
FONTE: Zanetti (2015, p. 30)
Veja a seguir os operadores lógicos.
QUADRO 6 – OPERADORES LÓGICOS
FONTE: Zanetti (2015, p. 30)
Em seguida, vemos os operadores bit a bit.
TÓPICO 3 — PROGRAMAÇÃO DO ARDUÍNO
37
QUADRO 7 – OPERADORES BIT A BIT
FONTE: Zanetti (2015, p. 31)
Conforme podemos concluir após analisar o trecho de programa a seguir, o 
valor da variável result, nesse exemplo, será FALSE. Ou seja, a variável x é maior ou 
igual a 10, resultando em TRUE, porém a variável x não é menor que 20, resultando 
em FALSE. Quando usamos o operador logico E (&&) para concatenar as duas 
expressões, teremos (TRUE && FALSE), o que produzirá um resultado FALSE. 
Pois, em uma expressão com E (AND), a saída (resultado) será verdadeira se, e 
apenas se, todos os elementos da expressão (entrada) forem verdadeiros.
int x = 30;
boolean result = ((x>=10) && (x<20));
 No trecho de programa a seguir, podemos notar um exemplo de operadores 
bit a bit, dispostos no Quadro 6. A variável a inteira x está armazenando o valor 
inteiro dois, cuja representação binária é 0000000000000010. O valor da variável 
y será obtido realizando o deslocamento à esquerda de três bits da variável x, ou 
seja, em binário, teremos 0000000000010000, que, em decimal, é o valor 16.
int x = 2; // Representação binária 0000000000000010
int y = x<< 3; // Representação binária 0000000000010000
5 ESTRUTURAS DE CONTROLE 
A estrutura de controle de fluxo determina como o programa responderá 
diante de certas condições ou parâmetros. Estruturas de decisão agrupam um 
bloco de comandos que podem ser executados ou não, dependendo do resultado 
de uma expressão lógica.
5.1 SENTENÇA IF
A estrutura de decisão mais simples que temos no Arduíno é a estrutura if 
(em português, “se”). Nela, definimos um bloco de comandos, que estão definidos 
entre as chaves { }. Esse bloco será executado somente se a expressão resultar em 
um valor TRUE (verdadeiro). Caso contrário, não será executado comando algum. 
38
UNIDADE 1 — INTRODUÇÃO À PLATAFORMA DO ARDUÍNO UNO
Podemos entender essa estrutura como sendo: se a expressão avaliada 
resultar em verdadeiro, o bloco de comando será executado. Assim, temos a 
seguir a definição da estrutura de seleção if:
//Se expressão igual a TRUE, o bloco de comandos é executado
if (expressao) {
 [bloco de comandos]
}
5.2 SENTENÇA IF...ELSE
A combinação dos comandos if…else permite maior controle sobre o 
fluxo de código que o comando if, por possibilitar que múltiplos testes sejam 
agrupados. O comando else (senão) será executado se a condição do comando if 
(se) resultar em falso. A sintaxe dos comandos if…else na programação Arduíno é:
// Se expressão igual a TRUE, o bloco de comandos-1 é executado,
// caso contrário, ou seja, a expressão igual a FALSE, o 
// bloco de comandos-2 será executado
if (expressao) {[bloco de comandos-1]
} else {
[bloco de comandos-2]
}
5.3 SENTENÇA IF...ELSE ANINHADAS
Podemos encadear várias estruturas if e else em situações em que se 
torna necessário verificar duas ou mais expressões. A seguir, podemos observar 
como realizar o encadeamento para um problema que exige a avaliação de 
duas expressões:
// Se expressão-1 igual a TRUE, o bloco de comandos-1 é executado. 
// Caso a expressão-1 seja FALSE e a expressão-2 for TRUE o bloco 
// de comandos-2 será executado. Finalmente, se a expressao-2 for 
// FALSE, o bloco de comandos-3 é executado.
if (expressão-1) { [bloco de comandos-1]
} else if(expressão-2){
[bloco de comandos-2]
} else {
[bloco de comandos-3]
}
TÓPICO 3 — PROGRAMAÇÃO DO ARDUÍNO
39
5.4 SENTENÇA SWITCH: CONDIÇÕES MÚLTIPLAS
Quando há necessidade de um encadeamento a partir de uma sequência 
de comparações com uma mesma variável, para verificarmos seu valor entre 
vários valores possíveis, podemos utilizar a estrutura switch-case, ou seja, escolha-
caso. Nessa estrutura, definimos inicialmente qual é a variável a ser comparada, 
colocando entre os parênteses da estrutura switch. Em cada um dos termos case, 
colocamos o valor a ser comparado. 
Essa estrutura é similar ao uso de if...else encadeados com a mesma variável, 
sendo comparada com expressões de igualdade, por exemplo quando queremos 
comparar se o valor de uma variável do tipo inteira é igual 1, ou se é igual a 2, ou 
se é igual a 3. A variável definida é comparada com todos os valores nos termos 
case, e quando uma das operações é TRUE, o bloco de comandos correspondente 
é executado. A sintaxe da estrutura switch-case é:
// Caso o valor da variável seja igual a valor1, o bloco de 
// comandos-1 é executado. Caso o valor da variável seja igual 
// a valor2, o bloco de comandos-2 é executado e 
// assim sucessivamente. Quando todos os cases forem FALSE o 
// bloco de comandos default é executado.
switch (variavel) {
case valor1:
[bloco de comandos-1]
break; 
case valor2:
[bloco de comandos-2] 
break;
case valorN:
[bloco de comandos-N] 
break;
default: [bloco de comandos-default]
break;
Ao final de cada bloco case, usamos o comando break, que faz com que 
a estrutura switch-case seja encerrada. Ao final da estrutura, podemos usar

Outros materiais

Outros materiais