Código Arduino & Visão Geral da Sintaxe
Como aprendeu no Módulo 01, IDE significa Ambiente de Desenvolvimento Integrado. Um som muito chique, e deve fazê-lo sentir-se inteligente sempre que o utilizar. O IDE é um programa semelhante a um editor de texto que lhe permite escrever código Arduino.
Quando abre o programa Arduino, está a abrir o IDE. É intencionalmente racionalizado para manter as coisas tão simples e directas quanto possível. Quando se guarda um ficheiro no Arduino, o ficheiro chama-se esboço – um esboço é onde se guarda o código de computador que se escreveu.
A linguagem de codificação que o Arduino usa é muito parecida com C++ (“ver mais mais”), que é uma linguagem comum no mundo da computação. O código que aprender a escrever para o Arduino será muito semelhante ao código que escrever em qualquer outra linguagem de computador – todos os conceitos básicos permanecem os mesmos – é apenas uma questão de aprender um novo dialecto, caso procure outras linguagens de programação.
Se gostar deste tutorial, clique aqui para ver o curso de vídeo Arduino GRATUITO – milhares de pessoas gostaram muito.
O código que escrever é “legível para humanos”, ou seja, fará sentido para si (por vezes), e será organizado para que um humano o siga. Parte do trabalho da IDE é pegar no código legível humano e traduzi-lo em código legível por máquina para ser executado pelo Arduino. A este processo chama-se compilação.
O processo de compilação é sem falhas para o utilizador. Tudo o que tem de fazer é premir um botão. Se tiver erros no código do seu computador, o compilador irá exibir uma mensagem de erro no fundo do IDE e destacar a linha de código que parece ser o problema. A mensagem de erro destina-se a ajudá-lo a identificar o que possa ter feito de errado – por vezes a mensagem é muito explícita, como dizer: “Ei – esquece um ponto-e-vírgula”, por vezes a mensagem de erro é vaga.
Porquê preocupar-se com um ponto-e-vírgula que pergunta? Um ponto-e-vírgula faz parte da sintaxe da língua Arduino, as regras que regem a forma como o código é escrito. É como a gramática na escrita. Digamos, por exemplo, que não utilizámos períodos em que escrevemos – todos teriam um bom tempo a tentar perceber quando as frases começavam e acabavam. Ou, se não utilizássemos a vírgula, como iríamos transmitir uma pausa dramática ao leitor?
E deixe-me dizer-lhe, se alguma vez teve um professor de inglês com uma caneta vermelha hiperactiva, o compilador é dez vezes pior. De facto – os seus programas NÃO irão compilar sem uma sintaxe perfeita. Isto pode deixá-lo louco no início, porque é muito natural esquecer a sintaxe. À medida que vai ganhando experiência na programação, aprenderá a ser assíduo sobre codificação gramatical.
P>Pomos as nossas mãos a sujar e introduzimos alguma sintaxe.
O Ponto e vírgula ;
Um ponto-e-vírgula precisa de seguir cada declaração escrita na linguagem de programação Arduino. Por exemplo…
int LEDpin = 9;
Nesta declaração, estou a atribuir um valor a uma variável inteira (cobriremos isto mais tarde), repare no ponto-e-vírgula no final. Isto diz ao compilador que terminou um pedaço de código e que está a passar para a próxima peça. Um ponto-e-vírgula é para o código Arduino, como um ponto-e-vírgula é para uma frase. Significa uma declaração completa.
A barra de duplo avanço para comentários de linha única //
//When you type a double backslash all the text that follows on the same line will be grayed out
Comentários são o que se usa para anotar o código. Um bom código é bem comentado. Os comentários destinam-se a informá-lo e a qualquer outra pessoa que possa tropeçar no seu código, em que diabo estava a pensar quando o escreveu. Um bom comentário seria algo como isto…
//This is the pin on the Arduino that the LED is plugged intoint LEDpin = 9
Agora, dentro de 3 meses, quando analisar este programa, sei onde colar o meu LED.
Comentários serão ignorados pelo compilador – para que possa escrever o que quiser neles. Se tiver muito a explicar, pode usar um comentário com várias linhas, mostrado abaixo…
/* The multi-line comment opens with a single backslash followed by an asterisk. Everything that follows is grayed out and will be ignored by the compiler, until you close the comment using first an asterisk and then a backslash like so */
Os comentários são como as notas de rodapé do código, excepto muito mais predominantes e não no fundo da página.
Curly Braces { }
Curly Braces são usados para anexar mais instruções realizadas por uma função (discutimos as funções a seguir). Há sempre um parêntese de abertura e um parêntese de fecho. Se se esquecer de fechar um suporte encaracolado, o compilador não vai gostar e lançar um código de erro.
void loop() { //this curly brace opens//way cool program here} //this curly brace closes
Remembrar – nenhum suporte encaracolado pode ficar por fechar!
Funções ( )
Discuta um pouco as funções.
Funções são peças de código que são utilizadas tão frequentemente que são encapsuladas em certas palavras-chave para que as possa utilizar mais facilmente. Por exemplo, uma função poderia ser o seguinte conjunto de instruções…
Wash Dog1. Get a bucket2. Fill it with water3. Add soap4. Find dog5. Lather dog6. Wash dog7. Rinse dog8. Dry dog9. Put away bucket
Este conjunto de instruções simples poderia ser encapsulado numa função a que chamamos WashDog. Sempre que queremos executar todas as instruções que apenas digitamos WashDog e voila – todas as instruções são executadas.
No Arduino, há certas funções que são utilizadas tão frequentemente que foram incorporadas na IDE. Quando as escrevemos, o nome da função aparece cor-de-laranja. A função pinMode(), por exemplo, é uma função comum utilizada para designar o modo de um Arduino pin.
Qual é a relação com os parênteses que seguem a função pinMode? Muitas funções requerem argumentos para funcionar. Um argumento é informação que a função usa quando funciona.
Para a nossa função WashDog, os argumentos podem ser nome do cão e tipo de sabão, ou temperatura e tamanho do balde.
pinMode(13, OUTPUT);//Sets the mode of an Arduino pin
O argumento 13 refere-se ao pin 13, e OUTPUT é o modo em que se quer que o pin funcione. Quando se introduz estes argumentos, a terminologia é chamada passing. Passa-se a informação necessária às funções. Nem todas as funções necessitam de argumentos, mas abrir e fechar parênteses permanecerá independentemente, embora vazio.
millis( );//Retrieves the length of time in milliseconds that the Arduino has been running
Notificação de que a palavra SAÍDA é azul. Existem certas palavras-chave no Arduino que são usadas frequentemente e a cor azul ajuda a identificá-las. A IDE torna-as azuis automaticamente.
Agora não vamos entrar aqui, mas pode facilmente fazer as suas próprias funções no Arduino, e pode até fazer com que a IDE as colore para si.
Falaremos, contudo, sobre as duas funções utilizadas em quase TODO o programa Arduino.
configuração nula ( )
A função, setup(), como o nome implica, é utilizada para configurar a placa Arduino. O Arduino executa todo o código que está contido entre as chaves encaracoladas de configuração() apenas uma vez. Coisas típicas que acontecem na configuração() são a definição dos modos de pinos, começando por
void setup( ) { //the code between the curly braces is only run once for setup()
Vocês podem estar a perguntar-se o que significa o vazio antes da configuração da função(). O vazio significa que a função não retorna informação.
algumas funções retornam valores – a nossa função DogWash pode retornar o número de baldes necessários para limpar o cão. A função analogRead() retorna um valor inteiro entre 0-1023. Se isto parece um pouco estranho agora, não se preocupe, pois iremos cobrir cada função Arduino comum em profundidade enquanto continuamos o curso.
Deixe-nos rever algumas coisas que deve saber sobre setup()…
1. setup() só funciona uma vez.
2. setup() tem de ser a primeira função no seu sketch Arduino.
3. setup() tem de ter chaves de abertura e fecho.
loop vazio( )
Tens de adorar os programadores Arduino porque os nomes das funções são tão reveladores. Como o nome implica, todo o código entre as chaves encaracoladas em loop() é repetido uma e outra vez – em loop. A função loop() é onde residirá o corpo do seu programa.
Como com setup(), o loop() da função não retorna quaisquer valores, portanto a palavra void precede-a.
void loop( ) { //whatever code you put here is executed over and over
Parece-lhe estranho que o código corra num grande loop? Esta aparente falta de variação é uma ilusão. A maior parte do seu código terá condições específicas de espera que desencadearão novas acções.
Se tiver um sensor de temperatura ligado ao seu Arduino, por exemplo, então quando a temperatura chegar a um limiar pré-definido poderá ter uma ventoinha accionada. O código de looping está constantemente a verificar a temperatura à espera para accionar a ventoinha. Por isso, mesmo que o código faça loops vezes sem conta, nem todas as peças do código serão executadas a cada iteração do loop.
Try On Your Own
Este curso é baseado nos esboços de exemplo fornecidos com a IDE Arduino. Abra a sua IDE Arduino e vá para File > Example > 01.Basics e abra três esboços diferentes. Identificar a seguinte sintaxe e funções que se encontram nos esboços:
- ; ponto e vírgula
- / comentários de uma linha
- /* */ multiline comments
- { } open and closing curly braces
- ( ) parênteses
- setup() – identificar as braçadeiras de abertura e fechamento de caracóis
- loop() – identificar as braçadeiras de abertura e fechamento de caracóis
- algumas palavras-chave azuis como OUTPUT ou INPUT
0 comentários