Antes de mais nada, todo futuro desenvolvedor deve ter em mente três pilares, que NÃO são luxo:
- Lógica de programação;
- Inglês, que é ferramenta de trabalho; e,
- Força de vontade.
Para programar para Arduino – qualquer que seja a placa-mãe escolhida -, é necessário alguns conhecimentos de C/C++.
A codificação em Arduino está dividida em três bases:
- Funções
- Variáveis
- Estruturas
O objetivo desta página não é reinventar a roda. O objetivo é direcionar os nossos estudos àquilo que realmente interessa, cujo acesso a este link explica cada uma das bases elencadas acima. O caminho que oriento é a referência do Arduino, em inglês, para consulta e exemplificação das três bases; embora, existe em português também, neste link.
O código, por sua vez, deve ser organizado, contendo comentários sucintos e suficientes para facilitar a manutenção, seja pelo criador, seja próximos desenvolvedores.
Comentários
São linhas que o SDK não converte em código, mas, são extremamente úteis à compreensão do desenvolvedor. Durante a conversão em código executável, todas as linhas com estas marcações são ignoradas.
Há dois tipos:
Comentário linha a linha – representado pelos caracteres juntos //
Exemplo :
// Autor : Alexandre Toledo
Comentário por bloco – representado pelos caracteres juntos /* e */
Exemplo :
/*
Autor : Alexandre Toledo
Data de criação : 23/04/2020
Versão : 1.0
/*
Ponto-e-vírgula
Lembre-se de sempre colocar o ponto-e-vírgula (;) ao término de cada linha, exceto para comentários e outras situações a serem vistas durante os exemplos-modelo.
Exemplo : digitalRead (4) ; <= note o ponto-e-vírgula.
Parêntesis ( ) – colchetes [ ] – chaves { }
Estes duplos trios tem distinção de uso em função de sua aplicação. A melhor forma de compreendê-los é vendo exemplos.
Palavras reservadas
Algumas poucas adaptações foram feitas à plataforma, sendo importante reconhecê-las para poder usar. Estamos falando das palavras reservadas e sua sintaxe.
As palavras reservadas não podem ser usadas diferentemente ao qual foram criadas.
- HIGH | LOW – Configura uma porta como nível lógico alto ou baixo, respectivamente.
- INPUT | OUTPUT | INPUT_PULLUP – Configura uma porta como entrada, saída ou ainda como entrada e ativa o resistor de pull-up interno.
- LED_BUILTIN – Ao invés de endereçar a porta 13 (no caso Arduino UNO R3) pelo número, invoca-se esta palavra reservada e o compilador faz o resto.
- true | false – São constantes que servem de condição de teste, largamente empregado em praticamente todos os compiladores C/C++.
Sintaxe e convenção
Quando criamos uma função simples, nomeamos esta função integramente com letras minúsculas; entretanto, funções que são batizadas com nomes compostos, a grafia é feita com todas as letras juntas e a partir da segunda palavra, as iniciais deverão ser sempre maiúsculas.
Confuso ? Veja os exemplos abaixo. Clique em cada uma e veja uma demonstração diretamente do site.
função simples : random()
função composta : digitalWrite()
Também cabe a observação a respeito do que significa LOW/HIGH. Supondo a seguinte situação abaixo:
int led1 = LOW;
int led1 = 0; // zero
Ambos tem o mesmo significado durante a compilação e execução.
Case Sensitive
Nesta plataforma, escrever uma variável (calma, que a explicação virá, caso você não saiba o que significa) como:
contador e Contador, são sentenças completamente diferentes, O compilador trata-os de forma diferente.
A cara de uma função
retorno nome-da-função (argumentos);
Toda a função precisa de um nome, o nome-da-função. Ex. digitalWrite, analogRead, delay. É impossível e desnecessário fica listando todas aqui.
Argumentos são termos que podem ser passados ou não para a função, afim de que esta execute determinada tarefa.
Já o retorno, corresponde ao resultado final da execução da função, que recebeu os argumentos. São exemplos de retorno : void, char, int, double, float, string, bolean. O resultado final é expresso pela função return. Entretanto, se o retorno for do tipo void, não faz sentido a última instrução ser return.
Instalando a IDE do Arduino a partir do site
Acesse e baixe a versão adequada para a sua plataforma (Windows, Linux, Mac) disponível neste link. É possível que, durante a instalação do Arduino, você experimente uma dificuldade: clone ou original?
Isso se deve porque existe uma interface entre o microcontrolador ATMEGA328 e a porta USB. Quando a placa é original, a instalação é transparente ao usuário.
Entretanto, quando a placa é um clone (que emprega a pastilha CH340G, no lugar do ATMEGA16U2 ou o ATMEGA8U2), o usuário deverá instalar um driver adicional. O passo a passo, com o driver, pode ser encontrado neste link.
Depois de instalado o driver, a SDK não faz distinção se a placa é original ou genérica.
setup e loop
São o início de tudo na plataforma Arduino. Todo o sketch novo começa com estas duas funções E, sim, eles são escritos em letra minúsculas, pois são case sensitive; logo, não as use em mais nenhum lugar, exceto como elas se apresentam! Tão logo você tenha instalado o SDK e fazer a sequência : Arquivo > Novo, a tela abaixo será exibida.
Exemplo de um Sketch básico
O exemplo abaixo traz uma possível estrutura de código-fonte, que pode ser seguido pelos iniciantes, embora algumas das entradas não sejam usadas em primeiro instante. Dada a riqueza de detalhes, sugiro clicar sobre a imagem para melhor visualizar o modelo.
O desenvolvimento e a programação
Por hora, deixo o link com uma apostila da UFF em Niterói, do Rio de Janeiro, sobre exemplos fáceis e consagrados ao desenvolvimento e programação do Arduino.
Usando as bibliotecas
Bibliotecas conferem ao Arduino a capacidade de expansão – sejam de software (internas) ou de hardware (externas). A fim de que esta página não ficasse muito extensa, neste link é possível encontrar um artigo pessoal.
References
No site do Arduino existe uma página com todas as funções básicas em português – acessível por este link, contendo:
- a descrição;
- a sintaxe;
- os parâmetros;
- o que ele retorna;
- exemplos de códigos prontos para usar (Isso ajuda muito)
- avisos e alertas
- veja mais … (várias sugestões de outras funções)
Voltar a página inicial do estudo sobre Arduino, neste link.



