Você está na página 1de 14

APOSTILA DE ARDUINO BÁSICO

PROGRAMAÇÃO

Santo Oliani Junior

Taquaritinga
2019
Sumário

1 Introdução .......................................................................................... 2

1.1 Algoritmo ..................................................................................... 2

1.2 Estrutura de decisão: o famoso SE. ............................................ 4

1.3 Laços de repetição ...................................................................... 5

1.3.1 Laço de Repetição PARA ...................................................... 5

1.3.2 Laço de repetição Enquanto (While) ..................................... 6

1.3.3 Laço de repetição Faça...Enquanto (do...while) .................... 6

2 Variáveis ............................................................................................ 7

2.1 Atribuição .................................................................................... 9

2.2 Operadores ................................................................................. 9

3 Algoritmos no arduino ...................................................................... 10

4 Âmbito das variáveis ........................................................................ 11

4.1 Âmbito global............................................................................. 11

4.2 Âmbito local ............................................................................... 12


2

1 INTRODUÇÃO

Antes de falar sobre a programação propriamente dita, precisamos pensar

sobrea a lógica que existe por trás da programação. Antes de começar a

aprender a programar, precisa-se aprender sobre lógica de programação. Para

entender sobre isso vamos falar sobre lógica do cotidiano que se faz a cada

momento. Pense em uma ação qualquer do que você costuma fazer no dia a dia.

Agora quebre essa ação em partes, quanto mais detalhado melhor. Imagine cada

passo desse como sendo uma operação de um programa e você seja o robô

executando essa tarefa. Isso é chamado de algoritmo.

1.1 Algoritmo

Em termos técnicos, segundo SCHIMIGUEL (2013), “um algoritmo é uma

sequência lógica, finita e definida de instruções que devem ser seguidas para

resolver um problema ou executar uma tarefa”.

O que isso quer dizer?

Inconscientemente criamos algoritmos em nosso cotidiano para executar

nossas tarefas diárias. Fazemos uma sequência de passos para executar uma

determinada tarefa ou ação sem perceber todas os passos que seguimos. Se

“destrinchar” em passos para executá-la perceberemos que esse conjunto de

passos pode ser repetido sempre para resolver aquele problema ou executar

aquela tarefa. Esses passos estruturados se tornam nosso algoritmo.

Para treinarmos um pouco, pense em como você chegou até onde está

agora. Quais passos seguiu detalhadamente para isso? Escreva abaixo cada

passo seguido, ou em um bloco de notas no computador caso não tenha

impresso, o que é melhor para a natureza. Separe um passo por linha. Vamos
3

discutir com os colegas quais passos cada um fez e compararmos com o

nosso.

__________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________

_______________________________________________________________.

O que acabou de fazer é chamado de pseudocódigo. Um código escrito

em língua natural sem necessidade de nenhuma linguagem de programação


4

específica. Apenas se define os passos para resolver o problema. O

pseudocódigo é importante para quando estamos aprendendo.

Agora quando falamos em linguagem de programação, usamos a mesma

sequência lógica que fizemos, porém deverá ser realizada em uma determinada

linguagem de programação, onde vamos escrever um algoritmo nessa

linguagem. Nesse caso devemos seguir algumas regras que até então não

precisamos no pseudocódigo.

Antes de falar sobre a programação em ARDUINO precisamos ainda

conhecer, rapidamente, 2 estruturas primordiais utilizados em lógica de

programação para facilitar a construção do nosso programa.

1.2 Estrutura de decisão: o famoso SE.

No seu pseudocódigo, houve algum momento que precisou se perguntar:

“E se estiver vindo carro?’; ou “E se estiver chovendo”; ou ainda “E se meu carro

quebrar”. São momentos que se pode ter 2 respostas, uma para caso a resposta

seja verdadeira e outra para caso a resposta não seja verdadeira.

Exemplo: Se estiver chovendo, levo guarda-chuva, senão não levo.

Perceba que podemos quebrar isso em partes:

Se (estiver chovendo) {
Levo Guarda-Chuva;
}
Senão {
Não levo guarda-chuva;
}

Perceba que o código já está estruturado da forma que usaremos no

Arduino, mas ainda usando a linguagem natural.


5

1.3 Laços de repetição

Além de decidir alguns passos, também temos algumas tarefas que

precisam ser repetidas diversas vezes, até que determinada condição seja

realizada, seja ela fixa ou não.

1.3.1 Laço de Repetição PARA

Por exemplo, dar 4 passos para frente. Ao invés de escrever:

Ande um passo para frente;


Ande um passo para frente;
Ande um passo para frente;
Ande um passo para frente;

Podemos escrever da seguinte forma:

Para (P=0; P < 4; P++) {


Ande um passo para frente;
}

Entendendo o comando para:

P é uma variável que foi definida dentro do laço de repetição.

P = 0 – foi definido um valor inicial para P de 0

P < 10 – vai ser repetido enquanto P for menor que 10

P ++ – Toda vez que for repetido, a variável P receberá +1 em seu valor

Ou seja, com menos linhas de programação, podemos repetir os passos tantas

vezes for necessária sem precisar fazer 1 linha por passo.


6

1.3.2 Laço de repetição Enquanto (While)

Existe também laços de repetição sem número definidos de vezes que

será repetido, onde uma condição deverá ser satisfeita para sair do laço de

repetição.

Enquanto (velocidade < 100km/h) {


Aumentar acelerador;
}

Ou seja, não importa quantas vezes esse laço vai acontecer e sim a condição ao

qual ele está definido. Enquanto a velocidade não for 100km/h, continuo

aumentando o acelerador. Quando ela for atingida eu paro de acelerar.

1.3.3 Laço de repetição Faça...Enquanto (do...while)

O laço de repetição “Faça...enquanto” é parecido com o “Enquanto” visto

anteriormente, mas com a diferença que ele é executado ao menos 1x sem

verificar a condição que é feita apenas no final.

Faça {
Aumentar o acelerador
} enquanto (velocidade < 100km/h);

A diferença nesse caso é que não será verificada a velocidade inicial antes

de aumentar o acelerador. Mesmos que a velocidade já esteja acima dos

100km/h ele aumentará a velocidade ao menos 1x. Já na condição anterior, se

a velocidade já estiver superior a 100Km/h ele não fará nenhuma execução.


7

2 VARIÁVEIS

Segundo o dicionário Autrélio uma variável é “sujeito a variações ou

mudanças; que pode variar; inconstante, instável.”. Uma variável em

programação, é usada para guardar valores ou expressões que pode sofrer

alterações em tempo de execução.

Uma variável sempre possui um identificador único (também chamado de

nome da variável). Duas variáveis não podem ter o mesmo identificador e este

deve seguir algumas regras:

• Deve se iniciar com uma letra;

• Não pode iniciar com número ou outros caracteres;

• Deve ter apenas letras, números e Hífen ou Underline (- ou _);

• Não pode conter acentos ou espaços em branco;

• Não pode conter caracteres especiais (exemplo: *&¨%);

• Não pode conter vírgulas ou pontos;

• Deve ser única;

• Algumas linguagens ela pode ser case sensitive ou seja, diferencia

letras maiúsculas e minúsculas (o que é o caso do ARDUINO).

Os dados que guardamos nas variáveis podem ser de diferentes tipos.

Vamos listar alguns deles.

• char, são utilizados para armazenar caracteres e ocupam um byte.


• byte, podem armazenar um número entre 0 e 255.
• int, ocupam 2 bytes (16 bits) e tanto armazenam um número entre 2-15 e 215-1, ou
seja, entre -32,768 e 32,767.
• unsigned int, também ocupam 2 bytes, mas como não possuem sinal, podem tomar
valores entre 0 e 216-1, ou seja, entre 0 e 65,535.
• long, ocupa 32 bits (4 bytes), de -2,147,483,648 até 2,147,483,647.
• unsigned long.
• float, números decimais que ocupam 32 bits (4 bytes). Podem tomar valores entre -
3.4028235E+38 e +3.4028235E+38.
8

• double, também armazena números decimais, mas possuem 8-bytes (64 bit).

Sempre que escolhemos um tipo de dados, devemos escolher o menor

tamanho possível para as nossas necessidades, uma vez que ocuparão espaço

na memória da nossa placa e pode ocorrer que o nosso programa precise de

mais memória do que a disponível. Mas como criamos variáveis no nosso

código? É muito simples: indicando o tipo e o nome da variável. Podemos

também atribuir (ou não) um valor inicial. Vejamos um exemplo:

char miCaracter='a'; //declaramos uma variável tipo char, chamada


miCaracater e vamos iniciá-la com valor a

byte Numero = 189; // variável do tipo byte inicializada a 189

int Inteiro; //variável do tipo int sem inicializar

unsigned int numeroPositivo = 2343; //número inteiro positivo


inicializado

float numDecimal = 12.212; //número decimal inicializado a 12,212

Existe outro tipo de variável muito importante: String (“Cadeia” em

português). Serve para armazenar cadeias de texto, e é fundamental quando

queremos enviar texto pela porta série. Permite criar cadeias a partir de números,

outras variáveis ou concatenando cadeias. Vejamos alguns exemplos

String stringOne = "Olá String"; // usar uma String fixa


String stringOne = String('a'); // converter um char fixo numa
String
String stringTwo = String("This is a string"); // converter uma
String fixa num objecto String
String stringOne = String(stringTwo + " with more");// concatenar
duas strings
String stringOne = String(13); // usar um número
inteiro
9

2.1 Atribuição

Atribuir um valor a uma variável significa armazenar o valor nela para usar

posteriormente. No Arduino usamos o símbolo de =. Para atribuirmos o valor 13

à variável led como pode-se ver no exemplo:

led = 13;

2.2 Operadores

Um operador é um conjunto de um ou mais caracteres que serve para

operar sobre uma ou mais variáveis ou constantes. Um exemplo muito simples

de operador é o operador de adição, o +. Digamos que queremos somar dois

números e atribuir a uma variável de nome valor. Para isso, fazemos o seguinte:

valor = 10+1;

Pode-se usar também outras variáveis entre os operadores como no

exemplo a seguir:

valor = soma1 + soma2;

Nesse caso será somado o valor das variáveis soma 1 e soma2 e atribuído

o resultado na variável de nome valor.

Cada linguagem de programação possui um conjunto de operadores

diferente. Alguns dos operadores mais comuns na linguagem utilizada no

Arduino são:

• Operadores aritméticos:
o + : adição ("mais")
o -: subtração ("menos")
o *: multiplicação ("vezes")
o /: divisão ("dividido por")
10

• Operadores lógicos:
o && : conjunção ("e")
o || : disjunção ("ou")
o == : igualdade ("igual a")
o != : desigualdade ("diferente de")
o !: negação ("não")
o >: "maior que"
o <: "menor que"
o >= : "maior ou igual a"
o <= : "menor ou igual a"

3 ALGORITMOS NO ARDUINO

Toda linguagem de programação exige um conhecimento prévio para se

começar a escrever. Existem algumas palavras reservadas que não podem ser

usadas como identificadores de variáveis e conforme o curso for avançando você

começará a perceber essas palavras.

Na linguagem Arduino temos a seguinte estrutura inicial:

void setup() {

void loop() {

Perceba que temos 2 estruturas uma chamada setup e outra loop. Acima

da estrutura setup podemos declarar todas as variáveis globais (vamos falar

sobre isso no próximo capítulo).

Dentro da estrutura do setup colocamos o código que será executado ao

ligar o arduino e será executado apenas uma vez.


11

void setup() {
//código a ser executado apenas 1x

Perceba que dentro do código acima existe uma linha que começa com

duas barras “//”. Essas duas barras significam que aquilo é um comentário e nada

ali será executado. Esses comentários são úteis para documentar o nosso

código, como uma explicação do que aquela linha faz. Nem sempre seremos os

únicos a dar manutenção no código, e mesmo que seja, estamos suscetíveis ao

esquecimento. Por isso é extremamente importante comentarmos.

Dentro de loop colocamos o código que será executado em formato de

looping. Este loop existe pois quando se trabalha com sistemas interativos, como

a leitura de um sensor por exemplo, precisa-se ler esse sensor a todo o

momento, ou período de tempos específicos para que o projeto funcione.

void loop () {
//código a ser executado em looping

4 ÂMBITO DAS VARIÁVEIS

Antes de começarmos os experimentos práticos ainda vale entender o

âmbito ou escopo das variáveis. Vamos a explicar isto através de exemplos.

4.1 Âmbito global

int a= 5;

void setup()
{
12

void loop()
{
a = a + 1;
}

Dizemos que a variável a é global porque se pode aceder a ela a partir de

qualquer parte, ou seja, acedemos ao seu valor através das funções setup e loop

ou qualquer outra função que venhamos a criar.

4.2 Âmbito local

São variáveis que apenas existem dentro do âmbito em que foram

declaradas. Para entendermos rapidamente, um âmbito é o que está entre

parênteses. Se as utilizarmos fora do seu âmbito, teremos um erro de

compilação. Como apenas existe dentro do seu âmbito, o meu programa poderia

repetir o mesmo nome da variável em âmbitos distintos. Vamos ver alguns

exemplos para explicá-lo bem:

void setup()
{
int a= 5;

void loop()
{
a = a + 1; //ao compilar, daria um erro de compilação, porque
a não existe no loop
}

No código acima a variável int somente existe dentro de setup. Fora dessa

estrutura a variável deixa de existir e não poderá ser usada. Há a possibilidade

de criar novamente outra variável com o mesmo nome dentro de outro âmbito
13

desde que ela não tenha sido criada no âmbito global com esse nome. Podemos

ver um exemplo disso no código a seguir.

void setup()
{
int a= 5;

void loop()
{
int a = 0;
a = a + 1;
}

Neste caso não irá gerar nenhum erro, mas temos a viável a em 2 âmbitos

diferentes, o que para o Arduino, são tratados como 2 variáveis diferentes (em

escopos diferentes).

Você também pode gostar