Buscar

3

Prévia do material em texto

Interfaceamento 
Eletroeletrônico I 
Material Teórico
Responsável pelo Conteúdo:
Prof. Esp. Elvis Luiz dos Santos
Revisão Textual:
Prof.ª Dr.ª Selma Aparecida Cesarin
Programação
• Introdução;
• Programando com Arduino;
• Criando Programas para Arduino.
• Aprender a programar e prototipar via aplicativo on-line.
OBJETIVO DE APRENDIZADO
Programação
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem 
aproveitado e haja maior aplicabilidade na sua 
formação acadêmica e atuação profissional, siga 
algumas recomendações básicas: 
Assim:
Organize seus estudos de maneira que passem a fazer parte 
da sua rotina. Por exemplo, você poderá determinar um dia e 
horário fixos como seu “momento do estudo”;
Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma 
alimentação saudável pode proporcionar melhor aproveitamento do estudo;
No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos 
e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você tam-
bém encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua 
interpretação e auxiliarão no pleno entendimento dos temas abordados;
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o 
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e 
de aprendizagem.
Organize seus estudos de maneira que passem a fazer parte 
Mantenha o foco! 
Evite se distrair com 
as redes sociais.
Mantenha o foco! 
Evite se distrair com 
as redes sociais.
Determine um 
horário fixo 
para estudar.
Aproveite as 
indicações 
de Material 
Complementar.
Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma 
Não se esqueça 
de se alimentar 
e de se manter 
hidratado.
Aproveite as 
Conserve seu 
material e local de 
estudos sempre 
organizados.
Procure manter 
contato com seus 
colegas e tutores 
para trocar ideias! 
Isso amplia a 
aprendizagem.
Seja original! 
Nunca plagie 
trabalhos.
UNIDADE Programação
Introdução
Para desenvolver nossos sistemas de interfaceamento, vamos utilizar Microcon-
troladores Atmega que serão programados utilizando a board Arduino UNO.
ATMEGA 328P
É um microcontrolador de 8 bits, com arquitetura Harvard modificada.
O ATmega328 pertence à família AVR da Atmel. Todos os modelos dessa 
família compartilham uma arquitetura e conjunto de instruções básicas, particu-
larmente os grupos tinyAVR (microcontroladores ATtiny), megAVR (os ATmega) 
e XMEGA (os Atxmega).
Características do componente:
• Microcontrolador: ATmega328P;
• Tensão de operação: 1,8-5,5v;
• Pinos de entrada/saída I/O digitais: 23 (das quais 6 podem ser PWM);
• Pinos de entradas analógicas: 6;
• Frequência de operação: 20MHz máximo;
• Memória EEPROM: 1K;
• Memória SRAM: 2;
• Memória Flash: 32K (dos quais 2K são usados pelo bootloader Arduino).
Legenda
AT
M
EG
A3
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
RESET PCINT5 PC6
PD0
PD1
PD2
PD3
PC5
PC4
PC3
PC2
PC1
PC0
A5
A4
A3
A2
A1
A0PD4
PCINT16
PCINT17
PCINT18
PCINT13
PCINT12
SCL
SDA
PCINT11
PCINT10
PCINT9
PCINT8
ADC5
ADC4
ADC3
ADC2
ADC1
ADC0
GND
AREF
VCC
GND
VCC
PCINT19
PCINT20
RXD
TXD
INTO
INT1PWMCC2B
0C0B
OSC1
OSC2
XTAL1
XTAL2
T1
AIN0
AIN1
CLKO
PCINT6
PCINT7
PCINT21
PCINT22
PCINT23
PCINTO
PCINT5
PCINT4
SCK
MISO
PCINT3
PCINT2
PCINT1
OC2A
OC1B
OC1A
PWM
PWM
MOSI
SS
PWM
0C0A
PWM
PWM
ICP1
T0
0
1
2
3
4
5
6
7
8
12
13
11
10
9
PD5
PD6
PB6
PB7
PD7
PB0
PB4
PB3
PB5
PB2
PB1
XCK
GND
POWER
CONTROL
PORT PIN
DIGITAL PIN
PWN PIN
SERIAL PIN
ANALOG-RELATED PIN
ARDUINO PINATMEGA328 PIN FUNC
Figura 1 – Disposição dos pinos do ATMEGA328 em amarelo/Arduino em marrom
8
9
Tabela de pinos arduino uno: http://bit.ly/2NWJdNe
Ex
pl
or
Os primeiros modelos de Arduino usavam o ATmega8 (com 8K de memória Flash) 
que, posteriormente, foi substituído pelo ATMega168 (com 16K de Flash e maiores 
recursos de entrada e saída) e finalmente pelo ATMega328 (com 32K de Flash). 
A versão DIP desses três modelos compartilha a mesma pinagem (porém o 
ATMega168 e ATMega328 permitem alguns usos diferentes dos pinos). 
O Arduino Mega 2560 usa o ATMega2560 com 256K de Flash e uma capaci-
dade muito maior.
Afinal, o que é o Arduino?
O Arduino é uma pequena placa de microcontrolador contendo um plugue de 
conexão USB, que permite a ligação com computador.
Figura 2 – Arduino UNO com indicação de pinos de saída
Fonte: Adaptado de Getty Images
Conforme exibido na figura, a placa Arduino UNO possui 14 pinos que podem 
ser usados como entrada ou saída digitais. Esses Pinos operam em 5V, em que 
cada pino pode fornecer ou receber uma corrente máxima de 40 mA. Cada pino 
possui resistor de pull-up interno que pode ser habilitado por software. 
Alguns desses pinos possuem funções especiais:
• PWM: 3,5,6,9,10 e 11 podem ser usados como saídas PWM de 8 bits por 
meio da função analogWrite();
• Comunicação serial: 0 e 1 podem ser utilizados para comunicação serial. 
Deve-se observar que esses pinos são ligados ao microcontrolador responsável 
pela comunicação USB com o PC;
9
UNIDADE Programação
• Interrupção externa: 2 e 3. Esses pinos podem ser configurados para gerar 
uma interrupção externa, por meio da função attachInterrupt().
Para interface com o mundo analógico, a placa Arduino UNO possui 6 entradas, 
em que cada uma tem a resolução de 10 bits. Por padrão, a referência do conver-
sor AD está ligada internamente a 5V, ou seja, quando a entrada estiver com 5V 
o valor da conversão analógica digital será 1023. O valor da referência pode ser 
mudado por meio do pino AREF. 
Ao se manipular a placa e projetar o circuito que será conectado aos seus I/Os 
deve ter muito cuidado pois, entre os pinos do microcontrolador e a barra de pinos, 
não há nenhum resistor, que limite a corrente.
Além disso, dependendo do local em que se está trabalhando, pode-se provocar 
curto circuito nos pinos, já que a placa não possui isolação na sua parte inferior, 
como mostrado na figura a seguir:
Figura 3 – Parte traseira do Arduino sem isolação
Fonte: Reprodução
Para facilitar a prototipagem das interfaces que iremos criar, o Arduino pos-
sui diversos outros terminais que permitem a conexão com dispositivos externos. 
Você pode desenvolver seus dispositivos ou adquiri-los prontos. 
Esses dispositivos são chamados de SHIELDS e podem ter várias funções.
Na figura a seguir, podemos ver vários deles com função de teclado, joystick, 
GPRS, display LCDsensor de gás entre outras funções.
Alguns tipos de SHIELDS disponíveis no Mercado: http://bit.ly/34HJomj
Ex
pl
or
10
11
O IDE do Arduino 
O Arduino é composto por duas partes principais: uma plataforma de hardware
com um programa residente em parte de sua memória Flash (bootloader) e também 
um aplicativo em que são desenvolvidos os programas, que roda em qualquer com-
putador PC com Windows ou Linux, ou num computador Apple com Mac OS-X.
O seu Ambiente de Desenvolvimento Integrado, ou IDE, que pode ser baixado em: 
http://bit.ly/2RNRzc4
Figura 4 – Tela principal da IDE do Arduino
Figura 5 – Itens da tab ARQUIVO
No menu ARQUIVO, temos:
• Novo: (Ctlr+N): abre uma nova janela de edição de sketches sobre aquela já 
ativa na tela do IDE;
11
UNIDADE Programação
• Abrir: (Ctrl+O): abre uma janela para localizar e carregar um sketch existente 
em no seu computador;
• Sketch: abre a pasta de projetos de sketches; 
• Fechar (Ctrl+W): fecha a tela ativa do IDE;
• Salvar (Ctrl+S): salva com o mesmo nome o sketch ativo na janela de edição;
• Salvar como (Ctrl+Shift+S): salva o sketch ativo com outro nome;
• Carregar utilizando um Gravador (Ctrl+U): grava o Arduino com o sketch 
aberto. Configuração de Página (Ctrl+Shift+P):
• Abre uma janela de configuração do formato de impressãodo sketch ativo;
• Imprimir (Ctrl+P): abre a janela de impressão;
• Preferências (Ctrl+comma): abre uma janela de configurações como alterar 
idioma da;
• Sair (Ctrl+Q): fecha todas as janelas e sai do IDE.
Figura 6 – Menu editar
No menu Editar, temos:
• Desfazer (Ctrl+Z): desfaz a última digitação na janela de edição ou o último 
comando realizado;
• Refazer (Ctrl+Y): repete a última digitação na janela de edição ou o último 
comando realizado;
• Cortar (Ctrl+X): copia para o clipboard e apaga a área marcada na janela 
de edição;
• Copiar (Ctrl+C): copia para o clipboard sem apagar a área marcada na 
janela de edição;
12
13
• Copiar para Fórum (Ctrl+Shift+C): copia para Fórum do Arduíno o 
texto marcado;
• Copia com HTML (Ctrl+Alt+C): formata em HTML e copia no clipboard;
• Pasta (Ctrl+V): Copia na janela de edição o texto no clipboard;
• Selecionar Tudo (Ctrl+A): seleciona todo o texto na janela de edição; 
• Comentar/Descomentar (Ctrl+/): coloca ou retira duas barras no início da 
linha comentário;
• Aumentar recuo (Ctrl+]): desloca todo o texto em que está o cursor duas po-
sições a direita;
• Diminuir recuo (Ctrl+[): desloca todo o texto em que está o cursor duas po-
sições a esquerda;
• Buscar (Ctrl+F): abre uma janela para pesquisa ou substituição de caracteres 
na janela de edição;
• Buscar próximo (Ctrl+G): busca dos caracteres seguintes na pesquisa com Find...
Figura 7 – Menu sketch
No menu sketch, temos as opções:
• SKETCH é o nome dado ao programa feito no IDE do Arduino;
• Verify / Compile (Ctrl+R): verifica a consistência do código fonte e o compila; 
• Stop: interrompe qualquer processo em andamento no IDE;
• Show Sketch Folder (Ctrl+K): mostra o conteúdo da pasta com os 
sketches abertos;
• Import Library: inclui uma ou mais bibliotecas no código fonte na janela de edição; 
• Add File: abre um novo sketch em uma outra aba no IDE.
13
UNIDADE Programação
Figura 8 – Menu Ferramentas
No Menu Ferramentas, temos:
• Auto Formatação (Ctrl+T): alinha automaticamente em colunas todo o 
texto Arquivar;
• Sketch: abre a pasta de projetos de sketches;
• Corrigir codificação & Recarregar: corrige pequenos erros de sintaxe no 
código Monitor Serial (Ctrl+Shift+M): abre o aplicativo Terminal serial;
• Placa: abre as opções de modelos de placas Arduino;
• Porta Serial: abre as opções de portas seriais disponíveis no computador para 
configuração do IDE;
• Gravador: abre as opções de hardware de programadores de bootloader para 
o Arduino;
• Gravar bootloader: transfere o bootloader para o microcontrolador. O bootloader 
é o que transforma o ATMEGA328 em um Arduino. É ele quem facilita a progra-
mação com comandos descomplicados se comparado à linguagem C.
Figura 9 – Barra de Controles
14
15
Barra de Controles
Na barra de controle, temos os seguintes itens:
• Verificar: Verifica a consistência e compila o código fonte na janela de edição;
• Carregar: Grava no Arduino o sketch ativo;
• Novo: Abre um novo aplicativo IDE sobre aquele já ativo na tela;
• Abrir: Abre uma janela para localizar e carregar um sketch novo;
• Salvar: Salva o sketch ativo na janela de edição.
• Barra de Mensagens: Processo de compilação em andamento.
Figura 10
Após compilar, temos os dados na tela preta. Se aparecer a tela a seguir, quer 
dizer que existe um erro e não foi transferido para Arduino.
Figura 11 – Tela de erro
Se tudo correr bem, deve aparecer esta tela no rodapé do IDE:
Figura 12 – Tela indicando sucesso na compilação e carregamento
15
UNIDADE Programação
Programando com Arduino
Um programa ou Sketch representa uma lista de instruções, que devem ser exe-
cutadas na ordem em que foram escritas.
A pontuação e a forma como as palavras são formadas criam o que se denomina 
sintaxe da linguagem e devem ser seguidas à risca.
Símbolos utilizados na construção de funções são os seguintes:
• { }: Dentro das chaves vão os procedimentos que a função deve executar;
• ; : O ponto e vírgula é usado para marcar o final de um procedimento;
• //: Comentário de uma linha: qualquer caractere depois das duas barras é 
ignorado pelo programa;
• /*... */: Comentário em várias linhas: qualquer texto colocado entre esses 
símbolos também é ignorado pelo programa;
• ( ): Parênteses: indica a existência condição para um determinado comando 
ou parâmetros utilizados em funções;
• [ ]: Colchetes: utilizado para array(conjunto de dados) ou matrizes.
Constantes
Na linguagem de programação do Arduino, três grupos de valores são predefi-
nidos e chamados de constantes e, por isso, não mudam nunca.
São eles:
• TRUE/FALSE (verdadeiro/falso): Verdadeiro e falso são constantes chamadas 
booleanas (relativas à álgebra de Boole) que definem estados lógicos 1 e 0, ligado 
e desligado. Verdadeiro é tudo que for diferente de zero e falso o que for zero;
• HIGH/LOW (alto/baixo): Essas constantes definem os níveis de tensão nos 
pinos do Arduino. Alto e o nível de +5 volts, ligado; baixo e o nível de terra, 
ou zero volt, desligado;
• OUTPUT/INPUT (saída/entrada): Essas constantes são usadas com a fun-
ção pinMode( ) para definir o modo como um pino qualquer do Arduino será 
configurado, se como saída (output) ou como entrada (input).
Variáveis
Variáveis são nomes que os programas associam a posições de memória. 
Como a própria palavra sugere, o conteúdo dessas posições de memória pode 
mudar durante a execução do programa. 
Declaramos uma variável definindo para ela um tipo, um nome e, opcionalmente, 
um valor inicial que pode ser mudado por funções dentro do programa.
16
17
As variáveis podem ser de dois tipos:
• Variável global: quando a variável é criada, e mais de uma função a utiliza, é 
necessário criar em um escopo global;
• Variável local: quando a variável é criada dentro de uma função, em que so-
mente essa função utilizará seu valor.
Os dois tipos podem ser basicamente:
• int (integer): que armazenam números inteiros, sem casa decimal, positivos 
ou negativos de ate 2 bytes na RAM;
• long (long): que guardam valores inteiros de até 4 bytes;
• boolean: para valores de ate 1 byte;
• float (float): que guardam valores em ponto flutuante, com casas decimais, 
de ate 4 bytes;
• char (character): de 1 byte que guarda um caractere ASCII.
Criando variáveis no programa
Para criar uma variável em um programa, definimos o tipo, um nome e, se qui-
sermos, um valor.
O nome de uma variável não pode ser iniciado por um número. Apenas letras 
do alfabeto maiúsculo ou minúsculo como primeiro caráter e números e letras nos 
demais caracteres.
Não podemos utilizar caracteres especiais ou mesmo palavras reservadas, na 
composição do nome.
Por exemplo, se necessitamos criar uma variável para carregar um valor de tempo:
Int tempo = 1000;
Tabela 1 – Tipos de variáveis
Tipo de dados RAM Intervalo numérico
void keyword N/A N/A
boolean 1 byte 0 a 1 (false ou true)
byte 1 byte 0 a 255
char 1 byte -128 a 127
unsigned char 1 byte 0 a 255
int 2 bytes -32.768 a 32.767
unsigned int 2 bytes 0 a 65.535
word 2 bytes 0 a 65.535
long 4 bytes -2.147.483.648 a 2.147.483.647
unsigned long 4 bytes 0 a 4.294.967.295
float 4 bytes -3,4028235E+38 a 3,4028235E+38
double 4 bytes -3,4028235E+38 a 3,4028235E+38
17
UNIDADE Programação
Tipo de dados RAM Intervalo numérico
string 1 byte + x Sequência de caracteres
array 1 byte + x Coleção de variáveis
Operadores Aritméticos 
Os operadores aritméticos retornam o resultado de uma operação aritmética 
entre dois operandos.
São eles:
Tabela 2
Operador Ação
+ Soma (inteira e ponto flutuante)
- Subtração ou Troca de sinal (inteira e ponto flutuante)
* Multiplicação (inteira e ponto flutuante)
/ Divisão (inteira e ponto flutuante)
% Resto de divisão (de inteiros)
++ Incremento (inteira e ponto flutuante)
-- Decremento (inteira e ponto flutuante)
Operadores Lógicos 
Esses operadores comparam duas expressões e retornam 1 ou 0 (verdadeiro ou falso). 
São três os operadores lógicos:
Tabela 3 – Operadores lógicos
OperadoresLógicos
X==Y X é igual a Y
X!=Y X é diferente de Y
X<Y X é menor que Y
X>Y X é maior que Y
X<=Y X é menor ou igual a Y
X>=Y X é maior ou igual a Y
Criando Programas para Arduino 
As duas principais partes (funções) de um programa desenvolvido para o Arduino são: 
• setup(): em que devem ser definidas algumas configurações iniciais do pro-
grama. É executado uma única vez, no momento do boot e carrega todas as 
diretivas de modo de pinos por exemplo (INPUT ou OUTPUT) e outras confi-
gurações importantes para o funcionamento do hardware e software;
18
19
• loop( ): função principal do programa, executa indefinidamente, tudo o que 
estiver dentro de seu laço. Todo o programa para o Arduino deve ter essas 
duas funções, obrigatoriamente e, como podemos ver na imagem a seguir, o 
programa já inicia com essas funções escritas.
Figura 13 – Sketch em branco
Arduino. Acesse em: http://bit.ly/39AcOpP
Ex
pl
or
Este é o programa mais básico do Arduino. Vem na própria IDE como exemplo. 
Esse programa ou sketch faz piscar um led que está ligado ao pino 13, dentro da 
própria placa do Arduino:
//This example code is in the public domain.
void setup()
 {
 pinMode(13, OUTPUT); // informa ao Arduino que o pino 13 vai trabalhar como 
saída 
 }
 void loop() 
 {
 digitalWrite(13, HIGH); // envia ao pino 13 uma tensão de 5V (nível 
logico 1) e liga o led
 delay(1000); // led fica ligado por 1s 
 digitalWrite(13, LOW); // envia 0V (nível logico 0)ao pino 13 desligando 
o led
 delay(1000); // led fica desligado por 1s e volta a ligar pois está no 
loop
}
19
UNIDADE Programação
Lembrando-se de que tudo que está escrito após o // não é considerado pelo 
programa: é simplesmente um comentário do programa, o que é muito importante 
para saber o que seu programa faz. 
Comando if (se)
Conforme orientações do próprio site do Arduino o comando if funciona como segue.
As informações a seguir foram tiradas do site do fornecedor da IDE. 
Disponível em: https://bit.ly/33HxSXY
O comando if checa uma condição e executa o comando a seguir ou um bloco 
de comandos delimitados por chaves, se a condição é verdadeira (‘true’).
Sintaxe
 if (condição) 
 {
 //comando(s)
 }
Parâmetros
Condição: uma expressão booleana, isto é, que pode resultar apenas em true 
ou false.
Código de exemplo
As chaves podem ser omitidas depois de um comando if. Se isso é feito, a próxima 
linha (definida pelo ponto e vírgula) é interpretada como o único comando condicional. 
Para mais de um comando, use as chaves para delimitar o bloco de comandos.
if (x > 120) {
 digitalWrite(pinoLED, HIGH);
}
if (x > 120) {
 digitalWrite(pinoLED, HIGH);
}
if (x > 120) {
 digitalWrite(pinoLED, HIGH);
20
21
}
if (x > 120) {
 digitalWrite(pinoLED1, HIGH);
 digitalWrite(pinoLED2, HIGH);
} // todas as formas acima estão corretas
Notas e advertências
As expressões sendo testadas dentro dos parênteses, geralmente, requerem o 
uso de um ou mais dos operadores mostrados a seguir.
Operadores de comparação
• x == y (x é igual a y);
• x != y (x é diferente de y);
• x < y (x é menor que y);
• x > y (x maior que y);
• x <= y (x é menor ou igual a y);
• x >= y (x é maior ou igual a y).
Cuidado para não usar acidentalmente o símbolo de igual simples (ex. if (x = 10) ). 
O símbolo de igual simples é o operador de atribuição, se atribui 10 a x (coloca 
o valor 10 na variável x). Em vez disso, o símbolo de igual duplo (ex. if (x == 10) ) 
deve ser usado, que é o operador de comparação, e testa se x é igual a 10 ou não. 
O último é apenas verdadeiro se x é igual a 10, enquanto o primeiro comando 
mostrado sempre resultará em verdadeiro.
Isso acontece porque a linguagem C++ interpreta if (x=10) da seguinte forma: 
10 é atribuído a x (lembre-se de que o símbolo de igual simples é o (operador de 
atribuição)), então x agora contém 10. Então, o comando ‘if’ testa 10, o que sempre 
resulta true, desde que qualquer número diferente de zero resulta em true. 
Consequentemente, if (x = 10) irá sempre resultar em true, o que não é desejável 
ao se usar um comando ‘if’. Além disso, a variável x irá receber o valor 10, o que 
também é indesejado.
Comando for
As informações a seguir foram tiradas do site do fornecedor da IDE.
Site do arduino, disponível em: https://bit.ly/2NF4Y5d
Ex
pl
or
21
UNIDADE Programação
Descrição
O comando for é usado para repetir um bloco de código envolvido por chaves. 
Um contador de incremento é, geralmente, utilizado para terminar o loop. 
O comando for é útil para qualquer operação repetitiva, e é usado, frequente-
mente, com vetores para operar em coleções de dados ou pinos.
Sintaxe
for (inicialização; condição; incremento) {
 //comando(s);
}
A  inicialização  ocorre primeiro e apenas uma vez. A cada repetição do loop, 
a condição é testada; se é verdadeira (true), o bloco de comandos, e o incremento são 
executados. Quando a condição se torna falsa (false), o loop termina.
Código de Exemplo
// Varia o brilho de um LED usando um pino PWM
int pinoPWM = 10; // LED em série com um resistor de 470 ohm no pino 10
void setup() {
 // setup não necessário
}
void loop() {
 for (int i = 0; i <= 255; i++) {
 analogWrite(pinoPWM, i);
 delay(10);
 }
}
Notas e Advertências
O loop for na linguagem C é muito mais flexível que os loops `for̀ encontrados 
em outras linguagens. 
Quaisquer dos três elementos da sintaxe podem ser omitidos, porém os ponto e 
vírgula (‘;’) são necessários. Além disso, os comandos para inicialização, condição e 
22
23
incremento podem ser quaisquer comandos válidos na linguagem C, mesmo com 
variáveis não relacionadas ao loop, e podem usar quaisquer tipos de dados da lin-
guagem, incluindo floats. 
Se esses tipos de comandos forem incomuns, podem prover soluções rápidas 
para alguns problemas raros de programação.
Por exemplo, usar uma multiplicação no comando de incremento irá gerar uma 
progressão logarítmica:
for (int x = 2; x < 100; x = x * 1.5) {
 println(x);
}
Gera: 2,3,4,6,9,13,19,28,42,63,94.
Outro exemplo, aplica um efeito de fading crescente e decrescente em um LED
com apenas um loop for:
void loop() {
 int x = 1;
 for (int i = 0; i > -1; i = i + x) {
 analogWrite(pinoPWM, i);
 if (i == 255) {
 x = -1; // muda a direção no pico
 }
 delay(10);
 }
}
Para saber muito mais sobre a Programaçâo do Arduino acesse: https://bit.ly/33JC7lS
Ex
pl
or
Funções digitais 
Orientadas a revisar o estado e a configuração das entradas e saídas digitais: 
• digitalRead( ): Lê o valor de um pino digital especificado, HIGH ou LOW. 
Sintaxe: digitalRead(pin) buttonState = digitalRead(9); // Leitura do estado de 
um botão no pino 9;
23
UNIDADE Programação
• digitalWrite( ): Escreve um valor HIGH ou um LOW em um pino digital. 
Sintaxe: digitalWrite(pin, valor) digitalWrite(9, HIGH); // – Coloca o pino 9 
em estado HIGH. 
Funções analógicas 
Ideais para a leitura ou escrita de valores analógicos: 
• analogRead( ): Lê o valor de um pino analógico especificado. A placa Arduino 
contém um conversor analógico-digital de 10 bits com 6 canais;
• Com isso, ele pode mapear tensões de entrada entre 0 e 5 volts para valores 
inteiros entre 0 e 1023. Isso permite uma resolução entre leituras de 5 volts / 
1024 unidades ou 0,0049 volts (4.9 mV) por unidade. Sintaxe: analogRead(pin) 
int a = analogRead (A0); // – Lê o valor do pino analógico A0 e armazena //
este valor na variável “a”;
• analogWrite( ): Escreve um valor analógico (onda PWM) em um pino. Pode 
ser usado para acender um LED variando o brilho ou girar um motor a veloci-
dade variável. Sintaxe: analogWrite(pin, valor) analogWrite (9,134); // –Envia 
o valor analógico 134 para o pino 9.
24
25
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
Arduino.cc
https://bit.ly/2CCCEKx
 Livros
Some assembly required: assembly language programming with the AVR microcontrollersMARGUSH, T. S. Some assembly required: assembly language programming with 
the AVR microcontrollers. 1. ed. New York: CRC Press, 2011.
The avr microcontroller and embedded system: using assembly and c
MAZIDI, M. A.; NAIMI S.; NAIMI S. The avr microcontroller and embedded 
system: using assembly and c. 1. ed. New Jersey: Prentice Hall, 2011.
AVR e arduino técnicas de projeto
LIMA, C. B. D; VILLACA, M. V. M. AVR e arduino técnicas de projeto. Florianopolis: 
[s.n], 2012;
Microcontroladores e microprocessadores
PERIM, Gonçalves de Carvalho Feitosa, Jefferson Nataline; NASCIMENTO, Rosa do. 
Microcontroladores e microprocessadores. Londrina: Educacional S.A., 2017
 Leitura
8-bit AVR Microcontrollers
ATMEL AVR. 8-bit AVR Microcontrollers. ATmega328/P. Datasheet Complete. 
San Jose: 2016.
http://bit.ly/37t638i
25
UNIDADE Programação
Referências
SOUZA, D. J. Desbravando o PIC. 9.ed. São Paulo: Erica, 2005.
ZANCO, W. S. Microcomputadores PIC – Técnicas de Software e de Hardware 
para Projetos de Circuitos Eletrônicos. São Paulo: Erica, 2006.
ZANCO, W. S. Microcomputadores PIC18 com linguagem C. Uma abordagem 
prática objetiva. São Paulo: Erica, 2006. (e-book)
26

Continue navegando