Raspberry Pi Pico: Timer Periódico com MicroPython

Este post faz parte da série Raspberry Pi Pico com MicroPython

Introdução

Os timers de hardware lidam com a temporização de períodos e eventos. Uma das funcionalidades da Raspberry Pi Pico é a capacidade de configurar timers periódicos, que são timers que disparam em intervalos regulares. Esses timers podem ser utilizados para controlar temporizadores precisos em aplicações diversas.

Neste artigo veremos como usar o timer periódico para controlar LEDs na Raspberry Pi Pico usando o MicroPython.

Materiais necessários

Para esse projeto vamos precisar de:

  • 1 x Raspberry Pi Pico
  • 1 x Protoboard
  • 1 x Led
  • 1 x Resistor de 1KΩ
  • 1 x botão de pressão (push-button)
  • 1 x Cabo micro USB
  • Jumper

Circuito

E a montagem será a mesma explicada no artigo GPIO | Entradas Digitais, cuja configuração pode ser observada na figura abaixo.

Figura 1 – Montagem do projeto no Fritzing
Figura 2 – Montagem do projeto com componentes físicos.

Programa para blink LED com Timer Periódico

Como nos demais programas feitos, vamos começar com from machine import Pin. Para poder ser acessado os pinos da placa. Além disso, vamos adicionar a biblioteca Timer.

É importante enfatizar que o Micropython é case-sensitive, isso significa que se você digitar timer ou pin a biblioteca não será reconhecida, então preste atenção nas letras maiúsculas e minúsculas.

A definição do timer foi feita através da variável temporizador e a sua configuração foi feita setando a frequência em 1Hz, o modo do timer como periódico e chamando a função de callback, nomeada de “tempo”.

A função callback é chamada quando um evento específico ocorre ou quando uma determinada condição é atendida. No programa que estamos construindo “tempo” é a função callback que é chamada a cada intervalo de 1 segundo e no corpo dessa função, tem uma lógica que inverte o estado do pino GPIO15 para controlar o LED.

from machine import Pin, Timer

led_red= Pin(15,Pin.OUT) #definindo o pino 15 como saída
temporizador = Timer() #definindo timer

def tempo (timer): #definindo função callback
    global led_red
    led_red.toggle()

temporizador.init(freq = 1, mode = Timer.PERIODIC, callback = tempo)
# configurando timer com frequência de 1Hz e no modo periódico

Se você não possui os componentes físicos para o projeto, é possível testar o programa utilizando o simulador Wokwi. Abaixo temos a simulação virtual:

Outra forma de escrever o código é ao invés de usar “freq” (frequência), usar “period” (período). Nesse caso, o período é dado em milissegundos, então para ser equivalente a 1 Hz precisamos substituir por 1000 ms.

from machine import Pin, Timer

led_red= Pin(15,Pin.OUT) #definindo o pino 15 como saída
temporizador = Timer() #definindo timer

def tempo (timer): #definindo função callback
    global led_red
    led_red.toggle()

temporizador.init(period = 1000, mode = Timer.PERIODIC, callback = tempo)
# configurando timer com frequência de 1Hz e no modo periódico

É possível criar diversos timers para controlar componentes diferentes. Assim, vamos criar um novo timer para controlar o LED embutido na placa. O procedimento será o mesmo: setar o timer em uma variável, definir suas configurações e a função callback.

from machine import Pin, Timer

led_red= Pin(15,Pin.OUT) #definindo o pino 15 como saída
led_pico= Pin(25,Pin.OUT) #definindo o led da placa como saída
temporizador1 = Timer() 
temporizador2 = Timer() #definindo timers

def tempo1 (timer): #definindo função callback
    global led_red
    led_red.toggle()
    
def tempo2 (timer): #definindo função callback
    global led_pico
    led_pico.toggle()

temporizador1.init(period = 1000, mode = Timer.PERIODIC, callback = tempo1)
temporizador2.init(period = 500, mode = Timer.PERIODIC, callback = tempo2)

Se você não possui os componentes físicos para o projeto, é possível testar o programa utilizando o simulador Wokwi. Abaixo temos a simulação virtual:

Com o uso dos timers não precisamos mais ficar presos às rotinas de loop, o que fornece maior eficiência aos projetos.

Conclusão

Nesse artigo exploramos a criação de timers periódicos no Raspberry Pi Pico. Os timers periódicos são ferramentas poderosas para adicionar funcionalidades temporizadas, garantindo maior controle sobre eventos e permitindo a criação de aplicações mais eficientes aos projetos com o Raspberry Pi Pico.

Raspberry Pi Pico com MicroPython

Introdução ao MicroPython no Raspberry Pi Pico
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Software » Raspberry Pi Pico: Timer Periódico com MicroPython

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: