0% acharam este documento útil (0 voto)
12 visualizações34 páginas

Aula 3 - Programando No Arduino

O documento aborda conceitos fundamentais de programação em Arduino, incluindo variáveis, constantes, operadores aritméticos, relacionais e lógicos, além de estruturas de controle como condicionais e laços de repetição. Ele apresenta exemplos práticos e exercícios para reforçar o aprendizado. O conteúdo é direcionado a estudantes do curso de Engenharia Elétrica da Universidade Paulista.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
12 visualizações34 páginas

Aula 3 - Programando No Arduino

O documento aborda conceitos fundamentais de programação em Arduino, incluindo variáveis, constantes, operadores aritméticos, relacionais e lógicos, além de estruturas de controle como condicionais e laços de repetição. Ele apresenta exemplos práticos e exercícios para reforçar o aprendizado. O conteúdo é direcionado a estudantes do curso de Engenharia Elétrica da Universidade Paulista.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Microprocessadores e

Microcontroladores
Programação em Arduino
Curso de Engenharia Elétrica
Universidade Paulista

© UNIP 2020 all rights reserved


Hoje (slide 2/34)

 Variáveis e constantes
 Operadores aritméticos
 Operadores relacionais
 Operadores lógicos
 Estruturas de controle: Condicionais
 Estruturas de controle: Laços de repetição
 Exemplos
 Exercícios

© UNIP 2020 all rights reserved


Arduino (slide 3/34)

 Sua linguagem é C/C++


 Quase Tudo que você programar em C++ deve
funcionar em Arduino
 Hoje vamos olhar do ponto de vista de
programação como a linguagem se estrutura

© UNIP 2020 all rights reserved


VARIÁVEIS E CONSTANTES

© UNIP 2020 all rights reserved


Variáveis e constantes (slide 5/34)
 Nossa memória pode ser reservada para armazenarmos valores que
podemos mudar ao longo da execução do programa
 Essas posições podem ser reservadas diretamente pelo endereço de
memória
 Ou podem ser reservadas por uma chave que correlaciona a posição da
memória com um valor melhor para que eu trabalhe
 Chamamos esses itens de variáveis

© UNIP 2020 all rights reserved


Variáveis e constantes (slide 6/34)
 As variáveis podem assumir diferentes tipos de dados
 A tabela apresenta alguns tipos

Tipo de dado Keyword Tamanho Valores


Booleano (lógico) boolean 8 bit true/false
Inteiro Int 16 bit -32768 a 32767
Ponto flutuante (real) float 32 bit -3.4028235E38 a
3.4028235E38
Caractere char 8 bit Texto entre aspas
Inteiro sem sinal unsigned int 16 bit Sem sinal 0 a 65535

© UNIP 2020 all rights reserved


Variáveis e constantes (slide 7/34)
 Constantes não pode ser alteradas ao longo do programa
 Duas maneiras de programa-las
 1) #define <variável> <valor>
- #define pinoA 8
- Sem ponto-e-vírgula

 2) const <tipo> <valor>;


- const int pinoA = 8;
- Com ponto-e-vírgula

© UNIP 2020 all rights reserved


Variáveis e constantes (slide 8/34)
 Duas maneiras de inicializar variáveis
 1) na própria declaração
- int pinoA = 8;

 2) Durante o código
- int pinoA;
- ...
- pinoA = 8;

 Nesse caso, o sinal de igual é chamada operador atribuição

© UNIP 2020 all rights reserved


Variáveis e constantes (slide 9/34)
 Casting
- Fundição, molde;
- O elenco de um filme, que “toma uma nova forma”, é a cast

 É transformar um tipo de variável em outro


- int a = 1;
- b = float(a);

- float a = 1;
- b = int(a);

- char a = ‘a’;
- b = int(a);

© UNIP 2020 all rights reserved


OPERADORES ALGÉBRICOS

© UNIP 2020 all rights reserved


Operadores aritméticos (slide 11/34)
 Operadores são essenciais a qualquer linguagem de
programação
 Aritméticos servem para fazer contas
 Ou seja, retornam números
 Podem ser de dois tipos: unários e binários
- Esse binário não é o que você tem em mente

 Unários: funcionam com apenas um único operando


- ++ e --
- a++; ou a--;
- ++a; ou --a;
- Teste quando: int a = 1; j = a++; Serial.println(j);
int a = 1; j = ++a; Serial.println(j);

© UNIP 2020 all rights reserved


Operadores aritméticos (slide 12/34)
 Operadores binários: precisam de duas entradas de mesmo tipo
 Soma: +
 Subtração: -
 Multiplicação: *
 Resto: %
 Divisão: /
- int a = 1, b = 2;
- int c, d;
- c = a+b;
- d = c*2+4*a/2+b;

 Potenciação/radiciação: pow(base, expoente)

© UNIP 2020 all rights reserved


Operadores aritméticos (slide 13/34)
 Se vamos atualizar um número
somando/subtraindo/multiplicando ele mesmo por uma
constante podemos usar a notação
 int a = 1;
 a += 2; //soma 2 no valor de a e o atualiza: a = a + 2;
 a -= 2; // a = a – 2;
 a *= 2; // a = a*2;
 a /= 2; // a = a/2;

© UNIP 2020 all rights reserved


Operadores aritméticos (slide 14/34)
 Em uma expressão, como saber qual parte será realizada
primeiro?
 Isso é chamado de precedência de operadores
 Na ordem, do que acontece primeiro para o que acontece por
último
 1) Entre o parênteses: ()
 2) *, /, %
 3) +, -
 4) Atribuição: =

© UNIP 2020 all rights reserved


OPERADORES RELACIONAIS

© UNIP 2020 all rights reserved


Operadores Relacionais (slide 16/34)
 São binários e fazem uma verificação entre os dois itens
 Ou seja, retornam se é verdadeiro (1) ou falso (0)
 Maior e menor: >, <
 Maior/menor ou igual: >=, <=
 Igual: ==
 Diferente: !=
- int a = 1, b = 2;
- Serial.println(a>b);
- Serial.println(b>=a);

© UNIP 2020 all rights reserved


OPERADORES LÓGICOS

© UNIP 2020 all rights reserved


Operadores Lógicos (slide 18/34)
 Fazem uma operação lógica
 Como nos circuitos digitais
 Portanto, retornam se é verdadeiro (1) ou falso (0)
 AND: &&
 OR: ||
 NOT: !
- int a = 1, b = 10;
- Serial.print(a > b || a < 5);

© UNIP 2020 all rights reserved


ESTRUTURAS DE CONTROLE:
CONDICIONAIS

© UNIP 2020 all rights reserved


Condicionais (slide 20/34)
 Verifica se uma expressão lógica é verdadeira ou falsa
 Se for verdadeiro, executa o bloco dentro do condicional
 Se não, continua para a próxima parte do código
 if (condição) {
//código caso condição seja verdadeira
}

- int a = 1, b = 2;
- if (a>b)
- {
- Serial.pritln(“a é maior que b”)
- }

© UNIP 2020 all rights reserved


Condicionais (slide 21/34)
 Podemos colocar um bloco de execução de negação que
será executada caso a condição testada seja falsa
 É chamado de else
- int a = 1, b = 2;
- if (a>b)
- {
- Serial.pritln(“a é maior que b”)
- }
- else
- {
- Serial.pritln(“b é maior ou igual que a”)
- }

© UNIP 2020 all rights reserved


Condicionais (slide 22/34)

 Exemplo: verificar se a é o maior número entre três


- int a = 1, b = 2, c = 3;
- if (a > b)
- {
- if (a > c)
- Serial.println(“a é o maior número da lista”)
- else
- Serial.println(“a é o segundo maior número da lista”)
- }
- else
- {
- if (a > c)
- Serial.println(“a é o segundo maior número da lista”)
- else
- Serial.println(“a é o menor número da lista”)
- }
© UNIP 2020 all rights reserved
ESTRUTURAS DE CONTROLE:
LAÇOS DE REPETIÇÃO

© UNIP 2020 all rights reserved


Laços de repetição (slide 24/34)
 São utilizados para evitar repetições desnecessárias de
códigos
 Temos dois tipos mais comuns
 for e while
 O for é utilizado quando sabemos de antemão quantas
repetições eu quero
- “Para esses casos, repita”

 O while é utilizado quando não sabemos quantas repetições


faremos
- “Enquanto isso for verdade, repita”

 Apesar das definições, elas são praticamente intercambiáveis

© UNIP 2020 all rights reserved


Laços de repetição: for (slide 25/34)

 Precisamos de uma variável de incremento que vai


contar as repetições
 for (inicialização; condição; incremento)
{
// Código a repetir;
}
 Inicialização: qual o valor que meu contador começa
 Condição: quando isso for Falso, eu paro de repetir
 Incremento: de quanto eu incremento meu contador

© UNIP 2020 all rights reserved


Laços de repetição: for (slide 26/34)
 int i = 0; //costumeiramente, i vem de incremento
 for(i = 0; i<5; i++)
Serial.println(“Ola mundo”);

 for(i = 3; i<5; i++)


Serial.println(“Ola mundo”);

 for(i = 0; i<5; i++)


Serial.print(i);

 for(i = 3; i<5; i++)


Serial.print(2*i);

© UNIP 2020 all rights reserved


Laços de repetição: for (slide 27/34)
 int i = 0;

 for(i = 10; i>5; i--)


Serial.println(i);

 Outra maneira de iniciar


 for(int i = 3; i<5; i++)
Serial.println(i);

© UNIP 2020 all rights reserved


Laços de repetição: while (slide 28/34)

 Um laço while vai repetir infinitamente enquanto a


condição for verdadeira
 while (condição) {
// código a repetir;
}
 Exemplo
 int i = 1;
 while (i > 0) {
Serial.println(“Olá mundo”)
}

© UNIP 2020 all rights reserved


Laços de repetição: while (slide 29/34)
 Exemplos
 int i = 5;
 while (i > 0) {
Serial.println(“Olá mundo”);
i--;
} //parecido com for
 Laço infinito
 while (1) // while(true); while(1==1)
{
Serial.println(“Olá”);
}

© UNIP 2020 all rights reserved


Exemplos (slide 30/34)
 1) Escreva um código que escreva na tela quatro vezes o
comando “Contador limitado” e depois, mesmo dentro do
loop do Arduino, nunca mais escreva nada na tela. Utilize um
laço while.
 bool liberar_impressao = true;
 int i = 0;
 void loop(){
while(liberar_impressão && i < 4)
{
Serial.println(“Contador limitado”)
i++;
}
liberar_impressao = false;
}

© UNIP 2020 all rights reserved


Exemplos (slide 31/34)

 2) Escreva um código capaz de encontrar o maior


valor entre 3 números inseridos pelo usuário antes
do código começar a rodar.
 int v1=0, v2=13; v3 = 14;
 void loop(){
max = v1;
if (max < v2)
max = v2;
if (max < v3)
max = v3;
Serial.println(max);

© UNIP 2020 all rights reserved


Exemplos (slide 32/34)

 3) Escreva um código capaz de calcular a potência


de um número onde o usuário entre com a base e o
expoente. Considere o expoente sempre inteiro e
maior que 1.
 int base = 2, expoente = 5;
 void loop(){
float potencia = 1;
for (int i = 0; i<expoente; i++)
potencia *= base
Serial.println(potencia);
}

© UNIP 2020 all rights reserved


Exercícios propostos (slide 33/34)
 1) Escreva um código em C que encontre o menor número
entre 3 números pré-definidos pelo usuário.
 2) Escreva um código que tenha um inteiro n previamente
definido pelo usuário, calcule a diferença dele com 25. Se n
for menor que 25, mostre na tela o quadrado da diferença. Se
ele for maior, divida-a por 2. Mostre na dela o resultado da
condição correta. (ENTREGA)

© UNIP 2020 all rights reserved


FIM !
© UNIP 2020 all rights reserved

Você também pode gostar