logica-bitbloq

Se é igual e/ou diferente de não verdadeiro…

Hoje vamos aprender como funcionam os blocos da aba Lógica.

Existem quatro blocos com opções distintas. Vejamos em que consistem! Para construir os exemplos de hoje, necessitarás:

  • 1 x ZumBloq LED
  • 1 x ZumBloq Potenciómetro
  • 1 x ZumBloq Buzzer
  • 1 x ZumBloq Botão
  • 1 x ZumBloq Sensor de luz
  • Uma placa controladora ZUM BT 328 ou compatível com Arduino UNO
  • Um cabo USB

O bloco de comparação

bloquecomparacion

Faz-te lembrar alguma coisa? Já usámos este bloco em muitas ocasiões, em conjunto com o bloco de controlo Se…executar . Este bloco devolve verdadeiro ou falso, conforme os dois valores sejam:

  • = iguais.
  • ≠ diferentes.
  • < a primeira for menor que a segunda.
  • ≤ a primeira for menor ou igual que a segunda.
  • > a primeira for maior que a segunda.
  • ≥ a primeira maior ou igual que a segunda.

Desta forma, em conjunto com o bloco Se…executar podemos estabelecer condições para que o nosso programa faça umas ou outras coisas, consoante as condições de teste que escolhermos. Vejamos um exemplo:

Exemplo com o bloco de comparação

Fazer com que se acenda um LED quando o valor do potenciómetro for menor que 500

Em caso do valor do potenciómetro for menor que 500, ou seja, um valor compreendido entre 0 e 499, o LED irá acender. Em caso contrário, se o valor for de 500 a 1023 (lembra-te que o potenciómetro varia os seus valores entre 0 e 1023), o LED apaga-se.

O bloco e/ou

Este bloco serve para testar varias condições em simultâneo:

  • Opção e : Devem confirmar-se que ambas as condições para que o valor seja verdadeiro a a acção se execute.
  • Opção ou : Pelo menos uma das duas condições deve confirmar-se para que o valor seja verdadeiro e a acção se execute.

Vamos ver um exemplo para que entendas a diferença entre a opção e e a opção ou:

Exemplo com o bloco e/ou

Fazer com que soe o buzzer quando se confirmem as seguintes condições:

Neste caso, o buzzer soará apenas se se confirmarem as duas condições, ou seja, se a variável luz for menor ou igual a 300 e pressionamos o botão, então, o buzzer soará. Se qualquer das duas não se cumprirem, a condição não será verdadeira e o buzzer não soará. Façamos uma experiência: modifica o programa anterior, e em vez da opção e, usa uma opção ou. O que achas que vai acontecer agora?

Agora, o teu buzzer soará com mais frequência, já que estamos a dizer ao programa o seguinte: se a variável luz for menor ou igual a 300 o pressionarmos o botão, o buzzer deve soar. É igual a dizer que qualquer uma das condições é válida. Vês a diferença?

O bloco verdadeiro/falso

Este bloco devolve-nos um valor verdadeiro ou falso. Para entende melhor, vamos fazer um exemplo:

Exemplo com o bloco verdadeiro/falso

Criar um programa que faça com que, quando a luz for maior ou igual a 300, deve acender-se o LED. Em caso contrário, deve apagar-se.

Lembras-te deste programa, certo?. Hoje vamos fazê-lo, mas um pouco diferente:

A variável muita_luz irá ler o valor do sensor de luz, e se este for maior ou igual a 300, a variável terá um valor de verdadeiro. Caso contrário, será falso.
Desta forma podemos comparar o valor da variável, directamente, usando o bloco verdadeiro. Se for verdadeiro significará que existirá muita luz e o LED vai acender-se.

O bloco não

Este bloco permite-nos negar uma variável ou estado. Por exemplo, a um bloco verdadeiro, conectarmos um bloco não:

Dizer não verdadeiro é o mesmo que dizer que algo é falso. Vejamos um pequeno exemplo:

Exemplo com o bloco não

Criar um programa que faça soar o buzzer se o botão estiver pressionado, utilizando o bloco não.

Este programa é uma versão modificada de outro que realizamos anteriormente:

A variável botão_sem_pressionar será verdadeiro sempre que o botão não estiver pressionado. Se quisermos que o buzzer soe, a nossa condição é:

Se não variável botão_sem_pressionar

Isto significa que, se a negação do “botão não pressionado” for verdadeiro (o mesmo que dizer que o botão está pressionado), então o buzzer soará. Como te deves recordar, existem forma mais simples de criar este programa. Este é apenas um exemplo para que possas entender o funcionamento do bloco não. Algumas vezes, negar o valor de uma variável será de grande utilidade. A lógica á fundamental para que o teu programa funcionar bem. Se te habituares a raciocinar logicamente, as coisas começarão a funcionar como por magia. A diferença será que tu serás o mago, e saberás exactamente onde está e como funciona o truque de magia. Portanto, sempre que começares um projecto, lembra-te:

“Existe algo mais importante que a lógica: a imaginação” Alfred Hitchcock