Buscar

Microcontroladores 3

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

MICROCONTROLADORESMICROCONTROLADORES
E IOTE IOT
UNIDADE 3 –UNIDADE 3 –
MICROCONTROLADORESMICROCONTROLADORES
Autor: Eliny dos Santos GomesAutor: Eliny dos Santos Gomes
Revisor: Lucas Gonçalves CorreiaRevisor: Lucas Gonçalves Correia
INICIAR
Introdução
Caro(a) estudante,
Nesta unidade, iremos inicialmente trabalhar com comunicação e estaremos em uma
área que todos conhecem, pois trata-se do que fazemos todo o tempo, mas precisamos
conhecer como o microcontrolador se comunica e os tipos de interfaces que utiliza.
Iremos focar no conhecimento da interface serial, suas características, modos de
operação e reconhecer as necessidades de uso. A partir disso, começaremos a trabalhar
com os microcontroladores, conhecendo alguns tipos, arquiteturas e usos dos mesmos e,
também, a linguagem de programação que utilizam e depois, especificamente, no
Arduino. Será possível identificar dois projetos simples simulados na plataforma
Tinkercad, que também conheceremos e que será sua grande aliada para exercitar os
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 1/27
conhecimentos adquiridos. Após o término desta unidade, seremos capazes de começar
a imaginar alguns projetos para a prática.
Bons estudos!
3.1 Interface de comunicação serial
As interfaces de comunicações são responsáveis por conectar a informação entre
equipamentos com regras que definem o modo da transmissão, assim são usados em
diferentes tipos de conexões. Os formatos de interface utilizados são comunicação serial,
que envia e recebe a informação sequencialmente, e comunicação paralela, que envia e
recebe por mais de uma via de comunicação.Estudaremos a comunicação serial e, para
melhor entendermos, vamos conhecer suas características. Alguns protocolos de
comunicação serial são UART (RS232), SPI, I²C, entre outros.
3.1.1 Modos de comunicação
A taxa de comunicação significa a velocidade de uma comunicação, tendo como
unidade bits por segundo (bps). Dependendo do método de comunicação, essa taxa tem
diferentes nomes. Se for síncrona, é chamada de “clock”. Se for assíncrona, é chamada
de “baud rate”. Em uma comunicação, é necessário que o tipo e a taxa de comunicação
sejam iguais na transmissão e recepção (principalmente nas assíncronas, que não usam
referência de clock).
» Método de comunicação
Síncrono é o método em que um sinal de clock é necessário para que o sistema
trafegue, tendo como sua principal vantagem a velocidade. O sinal de clock é enviado por
um fio diferente dos dados nessa comunicação, tendo um fio a mais.
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 2/27
Figura 1 – Método de TR/RX síncrona.
Fonte: Elaborado pela autora, 2020.
Assíncrono é o método em que o sinal de transmissão é enviado diretamente à
recepção do dispositivo, sendo que, como não tem um sinal para marcar o tempo, é
necessário que os dois dispositivos utilizem a mesma taxa de baud rate, sendo esse um
parâmetro muito importante nesse método. A transmissão é feita bit a bit e cada bit tem
um tempo para ser transmitido, sendo que o primeiro a ser enviado é um “start bit”,
indicando o início da transmissão, e o último é um “stop bit”, indicando seu fim.
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 3/27
Figura 2 – Método de TR/RX Assíncrona.
Fonte: Elaborado pela autora, 2020.
» Sentido de transmissão
A comunicação entre dispositivos pode ter três sentidos:
Simplex: trata-se de uma comunicação unidirecional, que significa que somente um
dos dispositivos pode transmitir e o outro só receber. É como uma via de mão única;
Half-duplex: é uma comunicação em que os dois dispositivos interligados podem
transmitir ou receber, porém, não ao mesmo tempo. Quando um está transmitindo, o
outro está recebendo e vice-versa;
Full-duplex: é uma comunicação em que os dispositivos interligados podem
transmitir e receber simultaneamente.
» Protocolos de comunicação
Vamos conhecer um pouco de alguns protocolos de comunicação, suas vantagens e
funcionamento. Os protocolos de comunicação diferem na quantidade de fios (pinos), que
tem a ver com a quantidade de vias de comunicação somada aos fios de alimentação
(Vcc) e terra (GND).
» UART
O protocolo UART ( Universal Asynchronous Receiver/Transmitter ) é uma comunicação
assíncrona e full-duplex, utilizado em alguns microcontroladores e que faz a conversão
da comunicação paralela para a serial. É um protocolo muito simples em que o pino de
transmissão (TX) é ligado no pino de recepção (RX) e é enviado um quadro de bits do TX
ao RX, que será interpretado bit a bit. Cada quadro contém um start bit, cinco a nove bits
de dados e um ou dois bits de stop bit, mais um bit de paridade par (Even) ou ímpar
(Odd), que tem a função detectar eventuais erros na comunicação.
» I²C/TWI
O protocolo i²C foi um barramento criado com a função de facilitar a integração de
componentes padronizados que podem realizar diversas funções. A principal
característica é a funcionalidade de um mesmo sistema utilizar tecnologias construtivas
diferentes sem que tenha incompatibilidades e nem conflitos em um sistema de dois fios.
Para seu funcionamento, utiliza a função de mestre ( master ) e escravo ( slave ), em que
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 4/27
possibilita que mais de um mestre possa controlar os escravos. O protocolo utiliza dois
pinos, SDA que é o sinal de dados e SCL, que é o clock, assim, é possível concluir que o
sentido de comunicação é half-duplex, pois contém apenas um pino para envio de dados
e que, também, é síncrono, pois usa um pino de clock.
» RS232
Um protocolo semelhante ao UART em seu funcionamento, porém alcança maiores
distâncias e seu sentido é full-duplex. Mas temos mais pinos que podem ser usados para
verificar os dados enviados. Existem dois padrões de conexão, o DB-25, com 25 pinos, e
o DB-9, com 9 pinos. No caso do DB-9, tem os pinos de TD (Transmitted Data) e RD
(Received Data) para troca de dados e outros sete pinos para controle e confiabilidade da
comunicação.
» SPI
A Interface Periférica Serial (SPI) é um protocolo de dados seriais síncronos usado pelos
microcontroladores para se comunicar com um ou mais dispositivos periféricos
rapidamente em curtas distâncias. Também pode ser usado para comunicação entre dois
microcontroladores. Com uma conexão SPI, sempre há um dispositivo mestre
(geralmente um microcontrolador) que controla os dispositivos periféricos. Não há limite
para o número de escravos e a comunicação é full-duplex. O funcionamento básico é
pelos pinos SS, MOSI e MISO, conforme a Figura 3. O mestre gera um clock e indica
pelo pino SS para qual dispositivo será enviada a comunicação, os dados são enviados
pelo pino MOSI e o dispositivo escravo envia uma resposta, se necessário, pelo pino
MISO. Os tipos de ligação são: paralela e cascata.
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 5/27
VOCÊ QUER LER?
Existem outros tipos de protocolos. O artigo “Um estudo sobre protocolos de
comunicação para ambientes de internet das coisas” fala sobre protocolos de
comunicação específicos para ambientes de IoT. Disponível em: <
https://sol.sbc.org.br/index.php/eradrs/article/view/2984/2946 >.
3.2 Introdução ao microcontrolador
Figura 3 – Comunicação do protocolo SPI.
Fonte: SACCO, 2020.
A comunicação serial é uma parte importante na comunicação dos microcontroladores,
servindo para comunicar o microcontrolador com o computador, para fazera
comunicação entre dois microcontroladores ou, ainda, um microcontrolador com outros
periféricos e, conforme seu uso, será o tipo de protocolo usado.
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 6/27
https://sol.sbc.org.br/index.php/eradrs/article/view/2984/2946
Um microcontrolador é um sistema computacional completo, estando integrado em um
único componente (chip), sendo a CPU ( Central Processor Unit ), as memórias RAM
(dados), flash (programa) e EEPROM, pinos e I/O (input e output) e mais alguns
periféricos internos (osciladores, canal USB, interface serial assíncrona UART, módulo de
temporização e conversores A/D). A arquitetura de um sistema digital define quem são e
como as partes que compõem o sistema estão interligadas. As arquiteturas mais comuns
para sistemas computacionais digitais são a arquitetura de Von Neumann e arquitetura
Harvard.
Na arquitetura Von Neumann, a CPU está interligada à memória por um único
barramento (BUS), os dados e instruções são armazenados em uma única memória.Na
arquitetura de Harvard, a CPU tem barramento diferentes para interligar a memória de
dados (barramentos de dados) e a memória de programas (barramento de endereço).
Os microcontroladores têm muitas vantagens, dentre as quais podemos destacar o
desempenho equivalente de processamento conforme a necessidade, utiliza menos
energia e tem um baixo custo.
3.2.1 Tipos de microcontroladores e arquitetura
Há diversos tipos e fabricantes de microcontroladores, cada fabricante determina a sua
família de microcontroladores com características definidas. Podemos citar:
A fabricante Microchip é responsável pela família PIC (controlador de interface
programável), que tem alta velocidade de processamento por sua arquitetura
Harvard e conjunto de instruções RISC. Além disso, conta também com recursos de
programação por memória flash, E²PROM e OTP;
A Holtek Semicondutores desenvolve famílias de microcontroladores focados em
determinados segmentos de mercado, por exemplo, controle de teclado,
controladores USB, conversores analógico/digital, dentre outros. Esse
microcontrolador usa uma arquitetura do tipo Harvard (barramento de dados e
programa separados);
A Intel família MCS-51 (8051/52, 8031/32, 8751) utiliza arquitetura com
multiplexação de dados e endereços (Harvard). A Intel não produz mais os
dispositivos originais nessa linha, dedicando-se a dispositivos mais sofisticados;
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 7/27
A ATMEL, desde 2016 denominada Microchip, tem outras famílias, porém a
conhecida é a família AVR, integrante do projeto Arduino. O Atmel® ATMEGA328P é
um microcontrolador CMOS de oito bits e baixo consumo de energia, baseado na
arquitetura RISC aprimorada do AVR® executando instruções poderosas em um
único ciclo de clock (ATMEGA328P [DATASHEET]).
O projeto Arduino engloba software e hardware em uma placa que contém um
microcontrolador. Conforme Monk (2013), existem diversas placas de Arduino e todas
utilizam a mesma linguagem para ser programada, mas a versão Uno é a mais utilizada e
a maioria usa as mesmas conexões com o ambiente externo, o que permite o uso de
qualquer modelo facilmente.
O Arduino Uno tem grande relevância e utilização e difere das versões anteriores com a
utilização de um controlador USB diferente (Monk, 2013), tem facilidades para se
comunicar com um computador, outro Arduino ou outros microcontroladores.
Figura 4 – Placa Arduino.
Fonte: Elaborada pela autora, 2020.
Na Tabela 1, estão descritas as características dessa placa, o que é muito importante
conhecer para planejar e construir um projeto.
Tabela 1 – Características da placa Arduino Uno
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 8/27
MICROCONTROLADOR ATMEGA328P
Tensão de operação 5 V
Tensão de entrada (recomendada) 7-12 V
Tensão de entrada (limite) 6-20 V
Pinos digitais I/O
14 (sendo que seis podem ser usados
como saída PWM)
Pinos PWM Digital I/O 6
Pinos de entrada analógica 6
Corrente DC dos pinos por I/O 20 mA
Corrente DC para pinos 3,3V 50 mA
Flash Memory
32 KB (ATMEGA328P), sendo 0,5 KB
usados pelo gerenciador de sinalização
SRAM 2 KB (ATMEGA328P)
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&c… 9/27
EEPROM 1 KB (ATMEGA328P)
Velocidade de Clock 16 MHz
LED na placa 13
Comprimento 68,6 mm
Largura 53,4 mm
Peso 25 g
Fonte: ARDUINO. Acesso em: 15/06/2020. (Adaptado).
O Arduino Mega é o que tem a mais alta performance entre todos os modelos de Arduino
e, também, tem a maior quantidade de portas de entrada e saída. Um dos fatos que o
torna um feito engenhoso na sua criação foi que todos os conectores laterais continuam
compatíveis com os do Arduino Uno, disponibilizando a ele todos os shields feitos para o
Uno (MONK, 2013).
Na Tabela 2, estão descritas as características dessa placa, sendo também muito
importante conhecer para planejar e construir um projeto.
Tabela 2 – Características da placa Arduino Mega
MICROCONTROLADOR ATMEGA2560
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 10/27
Tensão de operação 5 V
Tensão de entrada (recomendada) 7-12 V
Tensão de entrada (limite) 6-20 V
Pinos digitais I/O
54 (sendo que 15 podem ser usados
como saída PWM)
Pinos de entrada analógica 16
Corrente DC dos pinos por I/O 20 mA
Corrente DC para pinos 3,3V 50 mA
Flash Memory
256 KB, sendo 8 KB usados pelo
gerenciador de sinalização
SRAM 8 KB
EEPROM 4 KB
Velocidade de Clock 16 MHz
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 11/27
LED na placa 13
Comprimento 101,52 mm
Largura 53,3 mm
Peso 37 g
Fonte: ARDUINO. Acesso em: 15/06/2020. (Adaptado).
3.3 Programação do Arduino
A linguagem de programação é o modo como o computador entende o que desejamos
executar, o computador entende a linguagem de máquina (baixo nível). Podemos
programar em linguagem de máquina, no entanto, é mais difícil para o entendimento da
linguagem, então, foram criadas linguagens de alto nível que trabalham mais perto da
linguagem das pessoas, porém precisam de compiladores para fazer a codificação à
linguagem de máquina.
O projeto Arduino usa uma linguagem de alto nível muito conhecida e tradicional: a
linguagem C, com pequenas modificações, ocultando a parte mais complexa. O ambiente
de desenvolvimento é utilizado para compilar no Arduino, sendo esse ambiente chamado
de IDE. Uma linguagem de programação é usada para escrever um programa, que é uma
sequência de comandos para executar uma tarefa qualquer.
A linguagem de programação do Arduino pode ser dividida em três partes principais:
estruturas, valores (variáveis e constantes) e funções.
A programação utiliza variável para armazenar dados e deve ser declarada com tipo de
dado que deve ser armazenado. Atribuir um valor significa o valor que está armazenado
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 12/27
dentro dessa variável. Na Tabela 3, são descritos o tipo de dados que pode ser
armazenado identificando seu intervalo e o tamanho da memória utilizada.
Tabela 3 – Tipos de dados armazenados nas variáveis
TIPO DE DADOS
MEMÓRIA
(BYTES)
INTERVALO
Boolean 1 Verdadeiro ou falso (0 ou 1)
char 1 -128 até +128
byte 1 0 até 255
int 2 -32.768até +32.767
unsigned int 2 0 até 65.536
long 4
-2.147.483.648 até
+2.147.483.647
unsigned long 4 0 até 4.294.967.295
float 4
-3.4028235 +38 até
+3.4028235+38
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 13/27
double 4 como float
Fonte: MONK, 2014, p. 30.
» Os elementos da linguagem Arduino
Um operador é usado para executar funções normais ou complexas com as variáveis ou
constantes, por exemplo, um operador de adição. Alguns tipos de operadores que podem
ser usados estão descritos na Tabela 4.
Tabela 4 – Operadores
OPERADORES
ARITMÉTICOS
OPERADORES
DE
COMPARAÇÃO
OPERADORES
BOOLEANOS
OPERADORES
PARA
PONTEIROS
% (resto) != (diferente de) ! (NÃO lógico) & (referência)
* (multiplicação) < (menor que) && (E lógico) * (desreferência)
+ (adição)
<= (menor que
ou igual a)
|| (OU lógico)
- (subtração) == (igual a)
/ (divisão) > (maior que)
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 14/27
= (operador de
atribuição)
>= (maior que
ou igual a)
Fonte: Elaborada pela autora, 2020.
Estruturas de controle ou de decisão são usadas para verificar um comando e efetuar
uma decisão do mesmo. As estruturas usadas no Arduino são:
Break: a estrutura é usada para sair de comandos de “laço”, “tipo while” ou
“do...while”, ou ainda, do “switch case”.
Continue: esse comando salta dos comandos de um loop (“for”, “while” ou “do…
while”) e indo diretamente para a condicional do loop;
Do...while: seu funcionamento é idêntico ao do while, porém a condição é sempre
testada no final do loop;
Else: comparando com o comando “If”, tem a função de aumentar o controle do
fluxo do código. No entanto, quando usados juntos, podem se testar mutuamente;
For: esse comando é uma estrutura de repetição que pode estar em qualquer parte
do código sendo identificada por estar entre chaves;
Goto: tem a função de enviar a sequência do código para outra parte dele, que é
identificado por um nome;
If: este comando como sua tradução já diz, é um comando “se”, assim, executa algo
se a condição for verdadeira ( true );
Return: identifica o fim de uma função, e se na sua sintaxe solicitar um valor de
retorno esse será entregue;
Switch...case: é mais um comando de controle de fluxo no código, sempre há um
teste verificando o valor determinado no “case” e se for positivo o código para e
executa os comandos do “case”;
While: é um comando de loop que só irá parar caso a expressão se torne falsa.
Outras estruturas ainda são encontradas na referência, amplie seus conhecimentos
estudando essas outras possibilidades. Também veremos algumas funções como “setup”
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 15/27
e loop que são conhecidos como sketchs e tem a funções conforme definido:
loop(): inicializa e atribui valores iniciais;
setup(): é chamada quando um programa inicia. É usada para inicializar variáveis,
configurar o modo dos pinos (INPUT ou OUTPUT), inicializar bibliotecas etc. Essa
função será executada apenas uma vez, após a placa ser alimentada ou acontecer
um reset.
Como exemplo, podemos citar um programa mais simples e comum do Arduino, que
consiste em acender e piscar um LED. O código é detalhado nas frases indicadas após
“//”, pois o “//” são linhas de comentário do programa. Sempre é interessante comentar
um código, principalmente as partes com uma lógica mais complicada, pois outro
programador pode entender o que foi projetado.
// Preparação do Arduino, este código irá rodar uma única vez
void setup()
{
pinMode(12, OUTPUT); // Colocamos o pino 12 do Arduino como OUTPUT (saída)
}
// Este código é chamado automaticamente pelo Arduino, ficará em void loop() //
loop até que seu Arduino seja desligado
{
// Ativamos o pino 12 (colocando 5v nele)
digitalWrite(12, HIGH); // Aguardamos 1 segundo
delay(1000); // Desligamos o pino 12
digitalWrite(12, LOW); // Aguardamos mais um segundo
delay(1000); // Este código irá se repetir eternamente
}
Outro conceito em programas são “strings”, um conjunto de caracteres para Arduino que
pode ser usado em duas situações: escrever em um display LCD ou para enviar dados
seriais de texto.
VOCÊ QUER LER?
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 16/27
Para saber mais sobre programação do Arduino, consulte os livros do autor Simon
Monk: Programação com Arduino: começando com sketches e Programação com
Arduino II: passos avançados com sketches .
3.3.1 Biblioteca padrão do Arduino
Uma biblioteca é utilizada para que o usuário não tenha que manipular bits e
registradores do microcontrolador. Do ponto de vista do usuário, é utilizada apenas para
chamadas de funções e escrita de procedimentos lógicos. As bibliotecas são adicionadas
por meio do comando “include”.
Existem bibliotecas que já vem instaladas junto com o programa, chamadas de biblioteca
padrão, mas também existem outras que podem ser usadas, porém não vem instaladas
para não sobrecarregar o Arduino. Essas são chamadas “core” e, assim, somente as
bibliotecas usadas estão instaladas. Também há as bibliotecas adicionais que são criadas
e compartilhadas pelo grupo de trabalho e por outros programadores, que as fazem e
disponibilizam.
Vamos praticar
É possível criar bibliotecas e, no tutorial do site de referência, é possível
aprender a criar os programas que, porventura, possamos usar muitas vezes.
Disponível em: < https://www.arduino.cc/en/Hacking/LibraryTutorial >.
Uma biblioteca Arduino consiste, basicamente, em três componentes ou arquivos. São
eles:
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 17/27
https://www.arduino.cc/en/Hacking/LibraryTutorial
Arquivo header (cabeçalho) com extensão “.h”, que contém uma listagem (ou
declaração) de todas as funções e variáveis da nossa biblioteca;
Arquivo source (fonte) com extensão “.cpp”, que contém o corpo e funcionamento ou
lógica (definição) das funções;
Arquivo “keywords.txt”, que é específico da IDE Arduino e usado para dar coloração
as funções da biblioteca, enquanto se escreve um código.
Foram as bibliotecas que tornaram o Arduino tão popular, pois elas facilitaram a
programação sem a necessidade de um profissional com grandes estudos para usar a
imaginação e criar muitos projetos inovadores. Quando colocar uma placa ou um
componente específico para trabalhar com seu Arduino, antes de sair criando seus
programas, pesquise as bibliotecas existentes e verifique se já não existe alguma pronta,
sendo necessário somente chamar e colocar as variáveis de entrada e saída.
3.4 Funções do Arduino
Uma função é um bloco de código programado para realizar uma determinada tarefa,
seguindo uma série de comandos pré-definidos. Essas funções têm grande utilização
para que não seja necessário que uma determinada parte do programa seja repetida
diversas vezes, tornando a leitura do código mais clara e fácil.
Se comparar uma função com o refrão de uma música, ou seja, com um trecho que se
repete a cada verso, não seria necessário repetir a escrita de todas as linhas do refrão,
indicando apenas “refrão” para que todos saibam quando cantar a mesma parte da
música. Assim, a função, quando é chamada, roda a parte do programa referenciada.
Os parâmetros de uma função são as informações que devem ser enviadas na chamada
dessa função. No exemplo da música, poderia ser chamado o “refrão (LÁ)” e o parâmetro
indicaria que o refrão é em LÁ. As funções precisam ser declaradas indicando seu uso e
seus parâmetros.
As funçõesdo Arduino podem ser pesquisadas para uso e têm toda a indicação de uso e
exemplos. Na lista que segue, temos os tipos de funções:
Entradas e saídas digitais;
Funções matemáticas;
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 18/27
Números aleatórios;
Bits e bytes;
Apenas zero, due e família MKR;
Funções trigonométricas;
Interrupções externas;
Entradas e saídas avançadas;
Caracteres;
Interrupções;
Funções temporizadas;
Comunicação;
USB.
Como exemplos de funções de entrada e saída, temos: digitalRead(), digitalWrite() e
pinMode().
3.4.1 Projetos práticos
O uso de simuladores ajuda a fazer os primeiros testes de projetos com Arduino. Uma
ferramenta que pode auxiliar é o Tinkercad. Essa ferramenta é da empresa Autodesk,
criadora de softwares famosos como o Autocad, e ela é conhecida como “sala de aula”,
permitindo criar, desenhar circuitos e modificar rapidamente qualquer design. É um
software gratuito e que pode ser utilizado de modo on-line.
O uso de simuladores são grandes aliados em projetos, pois não pode ter perda de
componentes.
O acesso do site está identificado nas referências desta unidade. Ele deve ser usado
diretamente, seus arquivos ficam guardados e é possível indicar um caminho para
acesso ao seu projeto.
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 19/27
Figura 5 – Captura de tela inicial do Tinkercad.
Ao clicar no site e se cadastrar, será criada uma conta na qual será possível arquivar
todos os projetos que executar, podendo, inclusive, serem compartilhados para que
outras pessoas possam acessar, sendo possível gerar um hiperlink para enviar às
pessoas que desejar.
Para iniciar um novo circuito com Arduino, no menu lateral, deve-se estar em Circuits e
deve-se pressionar o botão verde: Criar um novo projeto .
Conforme a Figura 6, podemos identificar que as placas do Arduino podem ser
simuladas, pois temos outros componentes, “protoboard”, “sensores”, dentre outros. A
fiação de interligação pode ser colorida o que facilita na identificação dos fios. Verifique o
código usado para programar.
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 20/27
Figura 6 – Captura de tela de projeto em simulação do tutorial Tinkercad.
O código a seguir é referente ao circuito que usa o LCD para escrever e contar os
minutos. Esse projeto já está pronto no Tinkercad, como também existem outros para
quem é iniciante possa ter uma ideia de como é montada uma placa.
/*
LiquidCrystal Library - Hello World
Demonstrates the use a 16x2 LCD display. The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.
This sketch prints "Hello World!" to the LCD
and shows the time.
The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* LCD VSS pin to ground
* LCD VCC pin to 5V
* 10K resistor:
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 21/27
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}
Para quem não tem facilidade com linguagem de programação, o Tinkercad também
pode ser programado em blocos, de modo que todo interessado possa começar a
programar com o simulador. Com o uso dos blocos, conforme a Figura 7, podemos
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 22/27
verificar que é bem mais simples e intuitivo, facilitando para depois transferir para a
linguagem de programação.
Figura 7 – Captura de tela de projeto em simulação do tutorial Tinkercad.
Ainda na Figura 7, é possível observar que o LED está aceso, esse é o primeiro projeto
que podemos fazer, pois com poucos componentes e uma simples programação já
conseguimos fazer piscar um LED.
A Figura 8 representa a realização de um zoom da tela de simulação de circuito, da
esquerda para direita os botões têm a seguintes funções:
Botão rotacional: o elemento selecionado faz um giro em 25 graus;
Botão excluir ou delete: elimina da tela o item selecionado;
Botões desfazer e refazer (dois próximos botões): é um atalho CTRL+Z no circuits.io
tem a função de desfazer a última ação e a refazer, se necessário;
Botão de anotação: coloca anotação o em qualquer local do circuito;
Botão de exibir/esconder as anotações.
Figura 8 – Captura de tela de simulação do Tinkercad.
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 23/27
Os botões identificados na Figura 9, estão do lado direito da tela e tem as seguintes
funções:
Botão para baixar código, sendo possível após os testes passar o código para o
hardware;
Botão “Bibliotecas”: caso tenha que usar bibliotecas para que nos poupe trabalho de
codificar além do necessário;
Botão “Debugger”: tem a mesma ação que os “debuggers” em outras IDEs, serve
para analisar como o código irá se comportar linha por linha.
Figura 9 – Captura de tela de projeto em simulação do tutorial Tinkercad.
Essa é uma pequena parte dessa ferramenta, é possível utilizar em outros tipos de
circuitos, em desenhos 3D e outras aplicações. Sugerimos que você explore as
possibilidades. Essa prática é necessária para que se consiga dominar e usar todas suas
possibilidades.
VOCÊ QUER LER?
Agora que você já conhece um pouco do Arduino, uma dúvida pode se
apresentar: Será possível fazer aplicações em IoT que é a tecnologia do momento
com esse dispositivo?
No artigo "Desenvolvimento de um sistema de automação residencial de baixo
custo aliado ao conceito de Internet das Coisas (IoT)", é realizado o
desenvolvimento de um sistema de automação residencial de baixo custo usando
um Arduino e o conhecimento de IoT com a utilização de sensores e atuadores
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 24/27
responsáveis pela comunicação e acionamento de dispositivos microcontrolados.
É uma ótima e viável leitura de aplicação. Disponível em: <
http://sbrt.org.br/sbrt2016/anais/ST02/1570269244.pdf >.
Síntese
Caro aluno(a), estamos concluindo esta unidade com muitos conhecimentos adquiridos, e
já podemos definir as interfaces de comunicação, conhecemos alguns tipos de
microcontroladores e, principalmente, o Arduino, com suas bibliotecas e funções que
poderemos fazer alguns projetos simulados, pois também conhecemos a ferramenta
Tinkercadque possibilita muitos exercícios aplicados para ampliar o conhecimento. Bem,
agora, é prática! Vamos usar os livros de referência que indicam muitos circuitos para
começar e explorar as possibilidades, escrever códigos com a linguagem que
aprendemos e, a partir disso, explorar a criatividade de cada um. Não se limite, vá além,
imagine um projeto e coloque em prática, utilizando o Arduino.
Referências bibliográficas
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 25/27
http://sbrt.org.br/sbrt2016/anais/ST02/1570269244.pdf
ARDUINO. Documentação de referência da linguagem Arduino . Disponível em: <
https://www.arduino.cc/reference/pt/ >. Acesso em: 15 jun. 2020.
AUTODESK TINKERCAD. Simulador de circuitos . Disponível em: <
https://www.tinkercad.com/ >. Acesso em: 30 jun. 2020.
EVANS, M.; NOBLE, J.; HOCHENBAUM, J. Arduino em ação . 1.ed. São Paulo:
Novatec, 2013.
GIMENEZ, S. P. Microcontroladores 8051 : conceitos, operações, fluxogramas e
programação. 1.ed. São Paulo: Érica, 2015.
GIMENEZ, S. P. Microcontroladores 8051 : teoria e prática. 1.ed. São Paulo: Érica,
2010.
GIMENEZ, S. P. Microcontroladores 8051 : teoria do hardware e do software. 1.ed. São
Paulo: Pearson, 2002.
MONK, S. 30 projetos com Arduino . 2. ed. Porto Alegre: Bookman, 2014.
ROTTA, G.; CHARÃO, A.; DANTAS, M. Um estudo sobre protocolos de comunicação
para ambientes de internet das coisas. In: ESCOLA REGIONAL DE ALTO
DESEMPENHO DA REGIÃO SUL (ERAD/RS), 2017, Ijuí. Anais... XVII Escola Regional
de Alto Desempenho do Estado do Rio Grande do Sul. Porto Alegre: Sociedade Brasileira
de Computação, 2017. pp. 387-390. Disponível em: <
https://sol.sbc.org.br/index.php/eradrs/article/view/2984/2946 >. Acesso em: 15 jun. 2020.
SACCO, F. Comunicação SPI – Parte 1. Portal Embarcados , 04 mar. 2020. Disponível
em: < https://www.embarcados.com.br/spi-parte-1/ >. Acesso em: 12 jul. 2020.
WANZELER, T.; FÜLBER, H., MERLIN, B. Desenvolvimento de um sistema de
automação residencial de baixo custo aliado ao conceito de Internet das Coisas (IoT). In:
XXXIV SIMPÓSIO BRASILEIRO DE TELECOMUNICAÇÕES, 2016, Santarém. Anais ...
Santarém: Sociedade Brasileira de Telecomunicações, 2016, pp. 36-39. Disponível em: <
http://www.sbrt.org.br/sbrt2016/anais/ST02/1570267704.pdf >. Acesso em: 30 jul. 2020.
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 26/27
https://www.arduino.cc/reference/pt/
https://www.tinkercad.com/
https://sol.sbc.org.br/index.php/eradrs/article/view/2984/2946
https://www.embarcados.com.br/spi-parte-1/
http://www.sbrt.org.br/sbrt2016/anais/ST02/1570267704.pdf
22/04/2024, 10:08 Unidade 3 - Microcontroladores e IOT
https://student.ulife.com.br/ContentPlayer/Index?lc=jV%2fpYsXAYxxMtdFLfHWfRw%3d%3d&l=WXvShvceqTslNSNh6BM%2b%2fQ%3d%3d&… 27/27

Continue navegando