Praticamente todos os equipamentos eletrônicos terão pelo menos um botão para ligar. O botão é usado para permitir interação do usuário com a máquina, seja para a operação direta ou para realizar ajustes.

Os botões ou chaves como são chamados em eletrônica, funcionam como um contato que abre e fecha, sendo assim, uma chave possui dois valores, 0 ou 1, aberto ou fechado. Conectando uma chave a uma porta da placa Raspberry Pi Pico W podemos ler o valor 0 ou 1 da chave e assim tomar uma ação, como por exemplo acionar um LED.
O botão, quando pressionado, faz contato entre um lado e outro dele. Quando esse contato é fechado, essa corrente elétrica “entra” na placa e ela percebe que o botão foi pressionado. Ao escrevermos o programa, decidimos o que fazer com essa informação.

Ligando uma luminária com botão
Neste projeto, precisamos dos seguintes componentes:
Placa Raspberry Pi Pico W
Cabo USB
Protoboard 400 pontos
Jumper macho-macho
Jumper macho-fêmea
Anel de LED RGB
Sensor de Toque Capacitivo TTP224
Circuito

Script
# Codigo 6.2 - Ligando luminária com botão
# Bibliotecas necessárias para o código
import machine
import utime
# Importação das bibliotecas customizadas
from ws2812 import WS2812
# Declaração do Anel de LEDs
ws = WS2812(machine.Pin(28), 12)
# Declaração dos botões
botao_1 = machine.Pin(18, machine.Pin.IN)
botao_2 = machine.Pin(19, machine.Pin.IN)
botao_3 = machine.Pin(20, machine.Pin.IN)
botao_4 = machine.Pin(21, machine.Pin.IN)
# Declaração das variáveis do código
estado_botao_1 = 0
estado_botao_2 = 0
estado_botao_3 = 0
estado_botao_4 = 0
# Laço de execução
while True:
estado_botao_1 = botao_1.value()
estado_botao_2 = botao_2.value()
estado_botao_3 = botao_3.value()
estado_botao_4 = botao_4.value()
if estado_botao_1 == 1:
ws.write_all(0x444444) # Cor para o botão 1 (cinza escuro)
elif estado_botao_2 == 1:
ws.write_all(0x888888) # Cor para o botão 2 (cinza)
elif estado_botao_3 == 1:
ws.write_all(0xFF00FF) # Cor rosa para o botão 3 (pink)
elif estado_botao_4 == 1:
ws.write_all(0x000000) # Cor para o botão 4 (desligado)
utime.sleep(0.01)
Script v02
# Codigo 6.3 - Teclado de Cores
# Importacao das bibliotecas padrao
import machine
import utime
# Importacao das bibliotecas customizadas
from ws2812 import WS2812
# Declaracao do Anel de LEDs
ws = WS2812(machine.Pin(28), 12)
# Declaracao dos botoes
botao_1 = machine.Pin(18, machine.Pin.IN)
botao_2 = machine.Pin(19, machine.Pin.IN)
botao_3 = machine.Pin(20, machine.Pin.IN)
botao_4 = machine.Pin(21, machine.Pin.IN)
# Declaracao das variaveis
estado_botao_1 = 0
estado_botao_2 = 0
estado_botao_3 = 0
estado_botao_4 = 0
azul_ligado = False
branco_ligado = False
verde_ligado = False
vermelho_ligado = False
# Laco de execucao
while True:
estado_botao_1 = botao_1.value()
estado_botao_2 = botao_2.value()
estado_botao_3 = botao_3.value()
estado_botao_4 = botao_4.value()
if estado_botao_1 == 1:
if not vermelho_ligado:
ws.write_all(0xFF0000)
azul_ligado = False
branco_ligado = False
verde_ligado = False
vermelho_ligado = True
else:
ws.write_all(0x000000)
azul_ligado = False
branco_ligado = False
verde_ligado = False
vermelho_ligado = False
elif estado_botao_2 == 1:
if not verde_ligado:
ws.write_all(0x00FF00)
azul_ligado = False
branco_ligado = False
verde_ligado = True
vermelho_ligado = False
else:
ws.write_all(0x000000)
azul_ligado = False
branco_ligado = False
verde_ligado = False
vermelho_ligado = False
elif estado_botao_3 == 1:
if not azul_ligado:
ws.write_all(0x0000FF)
azul_ligado = True
branco_ligado = False
verde_ligado = False
vermelho_ligado = False
else:
ws.write_all(0x000000)
azul_ligado = False
branco_ligado = False
verde_ligado = False
vermelho_ligado = False
elif estado_botao_4 == 1:
if not branco_ligado:
ws.write_all(0xFFFFFF)
azul_ligado = False
branco_ligado = True
verde_ligado = False
vermelho_ligado = False
else:
ws.write_all(0x000000)
azul_ligado = False
branco_ligado = False
verde_ligado = False
vermelho_ligado = False
utime.sleep(0.2)