Manual
do
Maker
.
com
Existem duas maneiras de pegar entradas do usuário; uma em tempo de execução, a partir de onde a leitura pode ser da entrada padrão (teclado) ou lendo arquivos do disco. A outra é passando parâmetros na linha de comando, porém como o objetivo é trabalhar com Arduino, vamos utilizar somente a interação com usuário em tempo de execução.
A comunicação com Arduino será pela porta serial, mas para podermos testar no computador, utilizaremos a função scanf(). Basicamente sua forma é: scanf("%TIPO",&ENDERECO);
Isso quer dizer, se queremos pegar um byte, basta fazer:
char umByte; scanf("%c",&umByte);
A palavra scan significa "varredura", ou seja, vai ler qualquer coisa que vier na entrada padrão no formato de char. Então, se na entrada padrão for digitado o número dois, ele será lido como um caractere e não como um inteiro. O endereçador & diz ao scanf que o valor lido deve ser armazenado na variável umByte.
Agora vamos fazer um enunciado: - Faça um programa que diga ao usuário para entrar com dois valores inteiros. SE o primeiro for maior que o segundo, exiba "O primeiro valor eh maiorn", SENÃO exiba "O segundo valor eh maior".
A primeira coisa a ser feita é interpretar o enunciado e separar suas partes. A primeira coisa que o enunciado pede é para pegar dois valores inteiros do usuário, ou seja, é necessário criar duas variaveis do tipo int: int primeiro,segundo;
E diz para informar ao usuário que ele deve entrar com dois valores. Então, haverá um printf(): printf("Entre com um valor para ser comparado: ");
Agora o usuário vai ver essa mensagem na tela e vai automaticamente digitar algum valor. É necessário recebê-lo com a função scanf(): scanf("%d",&primeiro);
Agora é necessário pegar o segundo valor. Informe ao usuário: printf("nAgora entre com o segundo valor: ");
E deve-se ler esse valor na segunda variável: scanf("%d",&segundo);
Resolvida a primeira parte do enunciado, que contém também as condiç ões SE e SENÃO. Se o primeiro for maior que o segundo, exibir a mensagem "O primeiro é maior que o segundo", SENÃO exibir "O segundo é maior": if (primeiro > segundo){ printf("nO primeiro eh maior que o segundon"); } else{ printf("nO segundo eh maiorn"); }
Esse exemplo simples é para deixar claro que primeiramente você terá um algoritmo, posteriormente transformado em código. Você deve escrever sua idéia e analisar suas condicionais e seu fluxo, então transformá-lo em código. Um exemplo em Arduino seria:
Nesse caso, fariamos um laço que nunca termina, uma medição do sensor, uma comparação para disparar ou parar o alarme e uma pausa de 1 segundo. Um laço que nunca termina poderia ser facilmente criado com while assim: while (1<2){ .... }
Que tal tentar desenvolver o resto do código? Invés de ler um sensor, leia um valor dado pelo usuário e invés de tocar um alarme exiba uma mensagem qualquer quando for maior que 18. No próximo post faremos esse exemplo e introduziremos um pouco de lógica booleana no código.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.