sábado, 13 de agosto de 2016

Linguagem de programação do Arduino.


Arduino

Linguagem

Vamos abordar a linguagem aplicada ao Arduino de uma maneira bastante simples para começarmos a entender a lógica de programação aplicada aos projetos, a intenção não é transformar ninguém em programador de sistemas, mas aprender o suficiente para uso na mecatrônica, aliás, a função do mecatrônico é fazer as coisas acontecerem de forma integrada.
Muito bem, vamos começar com algumas notas para que tenhamos a compreensão básica dos programas de computador.

Programas C++

Um programa em C++ consiste de uma ou mais partes que chamamos de função. Um programa em C++ deve definir pelo menos uma função chamada main, que marca o ponto de inicio de execução do programa.
Cada instrução em C++ chamamos de sentenças, que podem ser simples ou compostas. As sentenças simples são sentenças terminadas com pontoe virgula, as sentenças compostas são as informações agrupadas em blocos dentro de chaves.
As informações usadas dentro de um programa são chamadas de variáveis, onde o nome de cada variável está associada a um lugar específico na memoria. Como cada variável usa uma determinada quantidade de armazenamento na memoria elas devem ser declaradas, especificando seu tipo e nome que devem seguir algumas regras:
Nomes significativos não muito longos;
Não podem ser nomes ou palavras reservadas à lingagem;
Maiúsculas devem diferenciar-se das minúsculas;
Usar letras maiúsculas ou “_” para ligar as palavras;
Usar nomes de variáveis do tipo i, j e k somente para contadores;
Quando definimos um variável, ainda é necessário dar um valor à elas usando o operador atribuição (=).
No geral devem sempre lembrar que ao executar um programa, uma variável é associada a:
Um tipo,que informa quantos bytes a variável ocupa e como deve ser interpretada;
Um nome, como identificador;
Um endereço, o endereço do byte menos significativodo local da memoria associada a variável;
Um valor, o conteúdo real dos bytes associados com a variável
Os nomes das variáveis, devem ser declarados antes de serem usados para evitar erros durante a compilação;
Antes de serem utilizadas, as variáveis devem receber valores, evitando falhas na execução do programa.
Além das variáveis, em C++, podem ser usados números ou caracteres cujo valores não mudam, eles são chamados constantes. As constantes assim como as variáveis também têm tipos e não são associados a lugares na memória.


palavras reservadas à Linguagem C
fonte: Livro C++ - Notas de Aula. prof. Armando Luiz N. Delgado.


Então entendendo a linguagem C++ fica mais fácil uma introdução à linguagem de programação do Arduino.

Programar o Arduino

Já que estamos falando de constantes e variáveis vamos abordar esse conceito voltado ao Arduino agora.


  • Constantes: no Arduino não podem ser alterados, são valores pré-definidos, com dois componentes em três grupos eles são representados pelos valores binários 1 e 0.
  •  True/false – estados lógicos que definem verdadeiro para qualquer valor diferente de zero e falso é o valor zero;
  •  High/low – definem as tensões nos pinos digitais, alto é uma tensão de 5 volts e baixo é tensão 0 volts (?);
  • Inpout/output – programadas pela função pinMode (), podem ser definidas como entradas ou saídas.
  • Variáveis: Como visto anteriormente são locais na memória marcadas com nome e o tipo de informação guardada. Assim como as funções, toda varável deve ser declarada antes de ser chamada.
  • Escopo da variável – é o limite da variável, podendo ser declarada em qualquer parte do programa. Sendo declarada antes da função Setup (), passa a ter o escopo de Variável Global, sendo vista e usada por qualquer função no programa. Se for declarada dentro de uma função, passa a ter um escopo de Variável Local e só pode ser usada por essa função.


Podemos destacar também os tipos de variáveis:

  •         byte – armazena 8 bits (0-255);
  •         int – armazena números inteiros de até 16 bits;
  •         long – armazena números inteiros até 32 bits;
  •         float – armazenam números fracionários de até 32 bits.


Matrizes: coleções de variáveis de um mesmo tipo que são acessados por meio de um indicador (índice). Para declarar uma matriz, deve ser dado um tipo e um nome seguido de []:
int nomeMatriz[] = {16, 32, 64, 128,...};
ou somente o tipo, o nome e o tamanho da matriz, deixando no programa o armazenamento de variável nas posições, ou indicas da matriz:
int nomeMatriz [10];
// posições para variáveis inteiras

 
Para ler ou escrever uma Matriz, deve ser escrito conforme segue, suponhamos que queira guardar um inteiro 12 na 2ª posição da matriz nomeMatriz:
nomeMatriz [2] = 12;
atribuindo um valor armazenado na 3ª posição de nomeMatriz à uma variável x:
int x = nomeMatriz [3];

Lógica e aritmética: adição (+), subtração (-), multiplicação (*) e divisão (/), são as opraçõe aritméticas que podem ser usadas na linguagem do Arduino, Além de três operados lógicos: &&/AND (porta lógica ‘E’), ||/OR (porta lógica ‘OU’) e !/NOT (porta lógica ‘NÃO’). Vale lembrar também dos operadores de comparação, que como o próprio nome diz: servem para comparar constantes e variáveis entre sí, testando se uma condição é verdadeira.

  •        X == y; (se x é igual a y)
  •        X ≠ y; (se x é diferente de y)
  •        X < y; (se x é menor que y)
  •        X > y; (se x é maior que y)
  •        X <= y; (se x é menor ou igual a y)
  •        X >= y; (se x é maior ou igual a y)

Funções de tempo: as funções de tempo podem suspender temporariamente outras funções no programa e são alteradas pelo usuário, são elas: delay (ms), onde o programa pausa por um tempo em mili segundos determinados entre (), ou delayMicrossegundos (us), onde o programa pode executar um pause determinado em microssegundos, também determinados ().

Funções de controle (Fluxo) – parte 1

 if

é usado para selecionar uma ou mais instruções com base em um teste de comparação. São executadas todas as instruções declaradas entre {...}, se e somente se, o resultado for verdadeiro.


fonte: próprio autor


fonte: próprio autor

if...else

ao contrário do comando if, o comando if...else oferece uma outra alternativa para um novo teste se a primeira condição for falsa.


fonte: próprio autor


fonte: próprio autor

 if...else if

Acrescentando o comando if...else no laço do comando if, pode-se também criar um outro comando chamado if...else if.
Por exemplo se a “expressão A” for verdadeira o ‘bloco de instruções X é executado, se “expressão A” for falsa, mas a “expressão B” for verdadeira ‘bloco de instruções Y’ é executado, e se “expressão A” e “expressão B” forem falsas o ‘bloco de instruções Z’ é executado.




fonte: próprio autor


fonte: próprio autor


Encerramos assim a nossa primeira parte de programação com Arduino, no próximo post vamos conhecer os comandos switch...case, while, do...while, for, e o operador ternário ‘?’.


Até a próxima.

Nenhum comentário:

Postar um comentário