top of page

Nesta secção, vamos conhecer a estrutura do programa, os comando para o fluxo de dados, saber os pinos que existe numa placa arduino, as funções que desempenha. É uma secção longa mas produtivo para quem quer conhecer e aprender a programar um arduino. Podemos usar esta página para pesquisar e esclarecer as nossas dúvidas, lembrando que não é obrigatório saber tudo sem pesquisas frequentes.

Arduino UNO é uma placa do arduino muito famoso actualmente, por isso vamos explorar o que tem essa placa.

Antes de escrever qualquer programa, devemos ter em mente, que existe um corpo de programação que o código fonte exige e a função principal para facilitar a compilação, caso contrário o mesmo não acontece. 

FUNÇÕES DE INICIALIZAÇÃO (ESTRUTURA DA PROGRAMAÇÃO):

A função void setup() e a função void loop() caracteriza o corpo da programação do arduino, caso seu programa não tenha estas funções, não será possível identificar a linguagem usada e não realizará a compilação. 


A função void setup() é uma função de inicialização do programa e o que estará contido nela será executada apenas uma vez no programa. Dentro desta função deve conter as informações principais para iniciar o seu programa que estará contido dentro da função void loop().

Dentro da função void setup() podemos definir os pinos como saída/entrada (Modo) para fluxo de dados e nesse caso usaremos o comando pinMode (pino, Modo), onde o pino são números inteiros e é identificado na placa de arduino e o Modo pode ser de entrada (INPUT) ou de saída (OUTPUT) de dados. 

Dentro da função void loop() deve ter programas de execução, tudo que faça sentido na linguagem de programação usada.

Quando se tratar de uma leitura de dados analógicos (A0 - A5), não será necessário realizar a declaração destes pinos em void setup(), contudo os pinos analógicos podem ser usados como pinos digitais, e nesse caso deveremos identificar no programa, na função de inicialização como pino 14 (nesse caso  A0) até o pino 19 (no caso do A5).

COMENTÁRIOS:

Comentários, a primeira vista parece desnecessário mas não é, pelo contrário, é muito útil. Comentar as nossas linhas de código é de extrema importância, ajuda-nos a entender o nosso código daqui a 10 anos. 

Quando queremos realizar um comentário com mais de uma linha, usamos o símbolo /* ao início do comentário e */ ao terminar o mesmo.

Quando queremos fazer um comentário curto, pode se usar // e desta forma quando iniciar uma nova linha, voltará a editar o programa novamente.

PORTAS DIGITAIS:

Quando queremos ler ou escrever um dado qualquer, devemos usar comando específico para o efeito.

 

Por exemplo, para fazer com que um LED acenda, precisamos abrir uma porta digital (stats = 0/1 (LOW/HIGH) para comutar 5V a saída para acender o LED que queremos.

Os pinos digitais serve para ligar/desligar ou seja é 0 ou 1. Nesses pinos podemos ligar sensores onde pretendemos saber só, e apenas se detectou algo que queremos fazendo a leitura. 

 

Neste caso do uso do comando digitalWrite , estou a escrever o resultado e esse será visível, no caso do ligar/desligar o LED.

No caso do uso comando de digitalRead  estará lendo na entrada do pino digital o valor do sensor ou de botão.

Sintaxe do uso de pino digital:

digitalWrite (pino_digital, HIGH);   // coloco um pino digital qualquer a nível lógico 1 (HIGH).

digitalWrite (pino_digital, LOW);   // coloco um pino digital qualquer a nível lógico 0 (LOW).

digitalRead (pino_digital);             // Faz a leitura no pino indicado

PINOS ANALÓGICOS:

Também existe pinos analógicos que serve para a leitura de valores de um sensor, por exemplo o sensor de temperatura. Sabemos que a temperatura varia, nesse caso não nos interessa saber se existe a temperatura ou não, mas nos interessa saber o seu valor. Ao fazer a leitura de dados em uma entrada analógica teremos como retorno um valor entre 0 e 1023, sabendo que o arduino possui um conversor analógico digital de 10 bits, então, 2^10 = 1024 logo 1023 é o valor máximo

Sintaxe do uso do pino analógico:

analogRead (pino_Analógico); // Ler no pino analógico o valor do sensor

Para ver o valor lido no pino analógico, podemos usar o monitor serial, ou incluir um display no projecto. Ao longo desse site vais encontrar projectos (ver menu PROJECTOS) com diferentes tipos de exemplos.

As portas analógicas servem também para escrever tais como os pinos digitais, ela nos possibilita usar os pinos PWM (Pulse Width Modulation) do Arduino. Usando esta funcionalidade podemos variar a velocidade do motor ligada ao robot e permite variar o valor de um LED. A frequência de um sinal PWM é aproximadamente 490Hz.

TEMPO:

Em qualquer programação desenvolvida, por vezes é usado o comando de tempo, e na nossa vida quotidiana deparamos com vários exemplo práticos que as vezes passa despercebido. Em qualquer semáforo do mundo tem o tempo de espera na transição do estado (Verde, Amarelo, Vermelho), pode não ser por programação de arduino, mas foi usado relés temporizadores, autómatos e entre outros equipamentos electrónicos e no nosso caso falaremos de arduino.

No arduino usamos o tempo em milissegundo ou em microssegundos:

Sintaxe do uso do comando do tempo:

delay (tempo_ms);  // O uso deste comando possibilita a pausa do programa em execução em uma quantidade de tempo em milissegundos. 

delayMicroseconds (tempo_us); // O uso deste comando possibilita a pausa do programa em execução em uma quantidade de tempo em microssegundos.

millis (); // Este comando possibilita o retorno da quantidade de tempo que passou, em milissegundos, desde que o programa começou a ser executado. Para usar este comando é necessário o uso da variável unsigned long.

BIBLIOTECA:

Usando a biblioteca, facilita a leitura do programa, deixa o programa hipoteticamente mais simples reduzindo linhas de códigos, economiza o espaço na memória do programa. Muitos fabricantes de equipamentos electrónicos programáveis, fornecem uma biblioteca do mesmo.

Suponhamos que queremos usar a biblioteca de um componente qualquer mas não está disponível na pasta "LIBRARY", podemos procurar na internet a biblioteca pretendido e adicionar a pasta "LIBRARY", logo, ficará disponível para o uso.

Para além de ter a biblioteca disponível numa pasta, devemos incluir o mesmo no desenvolvimento do programa usando comandos específicos:

#include

Quando é usado #include, estará dizendo ao programa incluir o arquivo-cabeçalho ao programa.

Sintaxe:

#include <NomeDaBiblioteca.h>

#define

Usando esse comando é interessante para definir uma variável. por exemplo, em vez de andar com o número do pino sempre pendurado ao longo da programação, podemos usar o nome do pino e facilita a compreensão do programa.  Ao pino 13 do arduino, podemos dar o nome do LED. 

sintaxe:

#define LED 13

Nota: O uso do comando #include  e o #define é sempre colocado antes da função de inicialização void setup() e não se usa o ";".

TIPOS DE DADOS:

Saber o tipo de dados que vamos usar para programar é importante, uma vez mais que o ambiente de programação reclama da falta de declaração de dados, dizendo que a variável não foi declaro e dizendo que tipo de dodos se trata.

No tratamento de dados apresento: intchar, void, float, double e etc...

int é a variável padrão do programa. Esta variável consegue memorizar dados de -32768 até 32767.
Sintaxe:

 int ledPin = 13; // tipo da variável, nome da variável, 13 o pino usado

char é um tipo de dado que dedica 1 byte de memória para armazenar o valor de um caracter (letras).
Sintaxe:

char c = Serial.read(); // No caso, ler o caracter . Ao longo do site, encontraras vários outros exemplos.

void é usado apenas na declaração de funções, indica que a função chamada não retornará nenhum valor para a função que a chamou. 

Sintaxe:

void loop(){

instruções;

}

Podemos ver a tabela, com diferentes tipos de dados:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SEBENTA

bottom of page