A instrução if-else é talvez uma das instruções mais utilizadas em projetos eletrônicos que utilizam a linguagem Python. Além disso, a lógica bit a bit é amplamente utilizada, especialmente nas entradas e saídas digitais da placa Raspberry PI4B. daí a importância de saber utilizá-los na linguagem Python. Neste capítulo, estudaremos a instrução if-else e a lógica bit a bit.

Como visto no capítulo anterior, com a linguagem Python podemos controlar as entradas/saídas digitais da placa Raspberry Pi4B. Além disso, podemos controlar periféricos de comunicação como: porta serial, porta I2C e porta SPI. É necessário conhecer a instrução "if-else" e a lógica bit a bit da linguagem Python, para ler as entradas digitais e controlar as saídas digitais e periféricos. Observe a figura a seguir, onde a partir do Python controlamos a CPU e a partir da CPU controlamos as entradas/saídas da placa Raspberry Pi4B.

 


| Clique na imagem para ampliar |

 

 

Normalmente as instruções que estão dentro da memória de instruções de um microcontrolador são executadas sequencialmente, ou seja, são executadas uma após a outra e assim sucessivamente. Mas na maioria dos circuitos que utilizam microcontroladores, é preciso quebrar essa sequência, para tornar os projetos inteligentes. As declarações: "if", "else" e "elif", nos permitem quebrar a sequência de execução das instruções como veremos neste capítulo.

A lógica de programação é muito semelhante ao comportamento humano perante a vida. Por exemplo, se estiver chovendo, é muito provável que a maioria das pessoas leve um guarda-chuva, se for sair de casa. Ou se uma pessoa está com sede, encontre água para beber. Nos microcontroladores a lógica é bem parecida, como veremos neste capítulo. Para o desenvolvimento dos exemplos e práticas deste capítulo, utilizei o editor: "Visual Studio Code", conforme figura a seguir:

 


| Clique na imagem para ampliar |

 

 

Existem muitos editores e ambientes de desenvolvimento para Python. Você pode usar qualquer um deles, pois os exemplos mostrados neste capítulo são compatíveis com esses ambientes.

A seguir está uma lista das instruções usadas para testar uma condição:

if

elif

else

A figura a seguir mostra as partes do processador Raspberry Pi4B afetadas por estas instruções:

 

 


| Clique na imagem para ampliar |

 

 

 

A SENTENÇA: if.

 

A declaração ou instrução “if” pode ser entendida como: “se algo acontecer, faça isso”. Por exemplo, vejamos o seguinte programa Python:

 

temperature = 23

if temperature > 17:

print(“hot environment”)

 

 

Esta declaração condicional está dizendo: se a temperatura for maior que 17 graus Celsius, execute o bloco de código:

 

print(“hot environment”)

 

 

O programa anterior dará no console de saída, o seguinte resultado:

 

hot environment

 

 

Com este exemplo, podemos ver as infinitas possibilidades de testar os valores de variáveis ​​numéricas. A imagem a seguir mostra um fluxograma para a instrução: “se”.

 

 


 

 

 

 

A DECLARAÇÃO: if….else.

 

Esta instrução permite executar um "bloco de código" se a "condição" for atendida e outro "bloco de código" se a "condição" não for atendida. Por exemplo, o seguinte programa imprime no console: "ambiente quente", se a temperatura for superior a 17 graus centígrados. Se a temperatura for: menor ou igual a 17, está impresso no console: “ambiente frio”. Essa frase pode ser entendida como: “Se a condição for atendida, faça isso, caso contrário, faça outra coisa”.

temperature = 23

if temperature > 17:

  print(“hot environment”)

else :

  print(“cold environment”)

 

O programa anterior dará no console de saída, o seguinte resultado:

 

hot environment

 

 

No programa a seguir, podemos observar que a afirmação: "se temperatura > 17" não é atendida, pois a variável: "temperatura" não é maior que 17.

temperature = 17

if temperature > 17:

  print(“hot environment”)

else :

  print(“cold environment”)

 

O programa anterior dará no console de saída, o seguinte resultado:

hot environment 

 

 

 

O programa anterior dará no console de saída, o seguinte resultado:

cold environment

 

 

A imagem a seguir mostra um fluxograma para a instrução: “if-else”.

 


 

 

 

 

A DECLARAÇÃO: if….elif….else.

 

Esta instrução permite executar um "bloco de código" se a "condição" for atendida e descartar os outros "blocos de código" se a "condição" não for atendida. Por exemplo, o seguinte programa imprime no console: "ambiente normal", se a temperatura for maior ou igual a 12 e menor que 20 graus Celsius:

temperature = 17

if temperature < 5:

  print(“very cold environment”)

elif temperature < 12:

  print(“very cold environment”)

elif temperature < 20: 

  print(“normal environment”)

else :

  print(“hot environment”)

 

 

O programa anterior dará no console de saída, o seguinte resultado:

normal environment

 

 

 

OPERADORES LÓGICOS BIT A BIT (BITWISE).

Os tipos de operadores lógicos bit a bit em Python são: Lógico “OR”, Lógico “AND” e Lógico “XOR”. A lógica e o bom senso são usados ​​diariamente, seja por sistemas eletrônicos ou por pessoas. Neste capítulo veremos a lógica: “e”, “ou” e “xor”. Quase todos os equipamentos eletrônicos utilizam a lógica digital para seu funcionamento e funcionamento, daí a importância de conhecer este tema. As operações lógicas que o cérebro faz podem ser conscientes ou subconscientes. Quando você consente, tomamos conhecimento da operação, ação ou decisão que estamos tomando. Quando subconsciente, não temos consciência disso, mas mesmo assim o executamos. A lógica e o bom senso ou forma de pensar de cada pessoa, tem muita semelhança.

Por isso a semelhança entre um cartão como o Raspberry Pi4B e a mente ou cérebro humano, já que ambos podem realizar processos lógicos. Na eletrônica, muitas operações lógicas são realizadas, a tal ponto que todos os sistemas eletrônicos modernos o utilizam. Neste artigo estudaremos essas operações ou instruções.

As operações que veremos OR, AND e XOR são do tipo bit a bit ou bit a bit. Isso significa que essas operações lógicas são executadas nos bits individuais dos operandos. A imagem a seguir mostra quais partes do processador são afetadas quando essas instruções são executadas:

 


| Clique na imagem para ampliar |

 

 

 

A LÓGICA BIT A BIT: “OU”.

A instrução de lógica OU segue o princípio de funcionamento do circuito mostrado na figura a seguir.

 


 

 

 

Podemos notar que, fechando o circuito com qualquer um dos 2 interruptores, a lâmpada acenderá. Mesmo que ambos os interruptores estejam fechados, a lâmpada acenderá. Essa é a lógica OR. A única maneira de a lâmpada não acender é se os dois interruptores estiverem abertos. Assim, tabelas de verdade foram criadas para cada instrução lógica. Na figura a seguir podemos ver a tabela verdade para a instrução OR lógica.

 

 


 

 

 

Esta tabela simplifica o que foi dito anteriormente sobre a lógica OR. A figura a seguir mostra o esquema usado para a lógica OR.

 

 


 

 

 

O símbolo utilizado na linguagem Python, para a lógica OR, é a barra vertical (||). O seguinte programa define 2 variáveis ​(“s” e “t”) e então executa uma instrução: OU sobre estas variáveis, deixando o resultado na variável: “r”, então imprime o resultado em formato hexadecimal: 

 


 

 

 

O programa anterior dará no console de saída, o seguinte resultado:

 

 

A LÓGICA BIT A BIT: “E”

A figura a seguir mostra o circuito elétrico que representa a instrução AND lógica. Observe que somente quando os 2 interruptores estiverem fechados, a lâmpada acenderá.

 

 


 

 

 

Caso contrário, a lâmpada não acenderá. É como se disséssemos: "A lâmpada acende, somente se os interruptores A e B estiverem fechados." A figura a seguir mostra a tabela verdade para a lógica AND.

 

 


 

 

 

A figura a seguir mostra o símbolo lógico:

 

 


 

 

 

O seguinte programa define 2 variáveis ​​(“s” e “t”) e então executa uma instrução: “AND” sobre estas variáveis, deixando o resultado na variável: “r”, então imprime o resultado em formato hexadecimal:

 


 

 

 

O programa anterior dará no console de saída, o seguinte resultado:

 

0xf

 

 

O programa a seguir é o mesmo visto acima, mas utiliza a função: “bin()” para imprimir os valores da variável em formato hexadecimal para o console:

 


 

 

 

O programa anterior dará no console de saída, o seguinte resultado:

 

 


 

 

 

Como visto anteriormente em outro capítulo, também podemos fazer esses tipos de operações em linguagem assembly. O seguinte é um programa que executa a instrução: "AND" no montador:

 

 


| Clique na imagem para ampliar |

 

 

 

A LÓGICA BIT A BIT: “XOR”.

 

A lógica "XOR" também é conhecida como OU EXCLUSIVO, ou seja, somente quando uma das entradas estiver em "um" (1), a saída também estará em "um" (1). Veja a tabela verdade na figura a seguir.

 

 


 

 

 

Se as 2 entradas forem altas (1), a saída será baixa (0). Além disso, se ambas as entradas forem baixas (0), a saída será baixa (0). O diagrama esquemático da lógica XOR pode ser visto na figura a seguir:

 

 


 

 

 

O símbolo usado para representar a instrução XOR na linguagem Python é o símbolo circunflexo (^). Na figura a seguir podemos ver um exemplo de XOR no nível de byte.

 


 

 

 

Vejamos o seguinte programa em Python:

 


 

 

 

O programa anterior dará no console de saída, o seguinte resultado:

 


 

 

 

Conclusão

Como podemos ver, fazer uso da instrução “if-else” é muito simples na linguagem Python. Além disso, o uso da lógica bit a bit é fácil de entender. A lógica é uma linguagem universal e segue princípios simples de entender. Em microcontroladores e sistemas digitais, a lógica digital é amplamente utilizada. Você pode testar e verificar os resultados na saída do console do editor Python que está usando. O uso da função: “bin()”, é muito útil para imprimir dados em formato binário e o uso da função: “hex()” para imprimir dados em formato hexadecimal.