entrada-POST

Na lição anterior, vimos o loop While (Enquanto) e o botão, onde podíamos programar acções enquanto não acontecesse nenhum tipo de evento. Se montaste o circuito da lição anterior, não precisas de alterar nada! Se não o tiveres, está aqui o esquema de conexão: zum-3led-4puls

Os módulos do botão e do LED conectam-se aos pinos digitais 5 e 3, respectivamente. Também pode realizar-se com o LED integrado na placa, que está conectado ao pino 13.

O loop Do-While (Fazer-Enquanto)

O loop Do-While (Fazer-Enquanto) é parecido, já que também espera pelo evento, mas tem certas diferenças: o loop While executa-se enquanto se cumprir a condição, enquanto que o loop Do-While executa-se ao menos uma vez e depois confirma se a condição se cumpre. A seguir podes ver as duas representações gráficas do loop While, à esquerda, e do loop Do-While, à direita:

A sintaxe do loop Do-While pode ver-se aqui:

 

Em primeiro lugar vamos olhar para a parte entre chavetas, onde iremos escrever o código que se executará, e em segundo lugar, a condição. Uma vez que o código tenha sido escrito dentro do do { }, vai ser confirmada se a condição se cumpre ou não. Caso a condição se cumpra, voltará a ser repetido este processo até que a condição deixe de ser cumprida, enquanto que o loop While confirma a condição antes de executar o código, sendo esta a única diferença entre os loops While e Do-While. Continuando com o exemplo do código anterior, vejamos como seria o código Arduino do loop Do-While. Vamos assumir que existe uma variável que é um inteiro e que se actualiza, em alguma outra parte do nosso programa. O loop Do-While seria:

Podes ver a referência completa do loop Do-While aqui.

O botão

Para aprender sobre o botão e entradas digitais entra na lição anterior do curso: o loop While (Enquanto) e o botão..

O código

Assumindo que conectaste os elementos como se descreveu no princípio da entrada, ou seja, o módulo do botão no pino 5 e o módulo LED no pino 3, podemos então começar a programar. Em primeiro lugar declaramos as variáveis que vão armazenar o número do pino em que conectámos o hardware. Esta práctica é realmente útil, já que se modificarmos o esquema de conexão, apenas teremos que alterar uma vez o número do pino utilizado. Para isso utilizamos o seguinte código:

 

 

Desta forma, em vez de utilizar o número do pino, poderemos utilizar o seu nome, tornando a programação mais fácil, especialmente se utilizarmos uma palavra-chave como nome. Uma vez declaradas as variáveis dos pinos, temos que indicar como vai funcionar cada um dos pinos, e para isso:

 

 

Este código é equivalente a:

 

 

Uma vez feito, vamos criar um programa que faça piscar o LED com dois padrões distintos: um se não pressionarmos o botão e outro se o botão estiver pressionado. O código ficaria assim:

 

 

Como poderás ver, as linhas 21 e 32 têm à frente “// ” : isto indica ao Arduino que estas linhas são comentários, e por isso não se tomam em conta durante o desenvolvimento do programa. Existem várias formas de realizar comentários: a primeira ” // ” , apenas comenta uma linha. Enquanto que ” /* */ “, utiliza-se para comentar blocos de código ou texto. Podes ver a referência sobre comentários aqui. Na linha de código 23, podes ver começar a estrutura de controlo if-else:

 

Neste código, podemos ver como se utiliza firstTime como condição, sem nenhum outro tipo de operação ou comparação. A estrutura de controlo if espera por qualquer resposta do tipo true ou false ou 1 ou 0, que é precisamente o que lhe estamos a dar, uma vez que firstTime é uma variável do tipo boolean. Se quiseres recordar as variáveis, podes visitar esta lição ou a referência do Arduino. Também utilizamos a mesma função para criar um padrão completamente distinto, no LED, fazendo um código muito mais curto, fácil de entender e de modificar por qualquer pessoa. Se quiseres ver as mensagens que o programa envia para saber se está ou não dentro do loop Do-While, elimina os comentários das linhas 21 e 31 do código.

Como exercício, cria uma cópia do projecto, procura e modifica manualmente todos os campos onde apareça a variável led, pelo número do pino onde conectaste o LED (pino 13, no caso do vídeo). Depois, no projecto original, conecta o LED noutro pino, modifica o valor da variável led no princípio do código. Vês o poder de podermos assignar pinos às variáveis?