Leitura de um botão e acionamento de um LED no Arduino com a Franzininho C0

Este post faz parte da série Franzininho C0 com Arduino

Introdução

Uma das funcionalidades básicas de um microcontrolador é a capacidade de ler entradas e controlar saídas digitais. Entender como controlar entradas e saídas é fundamental para criar diversos projetos. 

Neste artigo, vamos explorar como isso é feito utilizando a Franzininho C0.

Materiais necessários

Importante
Se ainda não configurou sua Franzininho C0 para usar no Arduino, confira o tutorial: Franzininho C0 – Primeiros passos com Arduino

Código

Vamos abordar a leitura de entradas e o controle de saídas com um código simples, onde pressionar um botão acende um LED. Para esse exemplo usaremos o botão e um dos LEDs já disponíveis na placa. 

Abaixo temos o código para a Franzininho C0:

#define LED PB6
#define BOTAO 8

void setup() {
  // Configura os pinos
  pinMode(LED, OUTPUT);
  pinMode(BOTAO, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(BOTAO) == LOW) {
    // apertou o botão = acende o LED
    digitalWrite(LED, HIGH);
  } else {
    // soltou o botão = apaga o LED
    digitalWrite(LED, LOW);
  }
}

Primeiro definimos os pinos do LED e do botão de acordo com o PINOUT da placa:

Franzininho C0: Entradas e saídas digitais com Arduino

Acesse a documentação completa em: https://docs.franzininho.com.br/docs/franzininho-c0/franzininho-c0-board

Explicação do Código

Confira a seguir a explicação dos principais trechos do código.

Na IDE do Arduino, comece definindo os pinos que serão utilizados.

#define LED PB6
#define BOTAO 8

O sketch conta com as duas funções: setup para definir as configurações principais e loop que contém o código principal do programa e é continuamente executado.

No setup, configuramos o pino para entrada ou saída usando a função pinMode. O LED é definido como saída (OUTPUT) e o botão como entrada (INPUT_PULLUP). A opção INPUT_PULLUP além de configurar o pino como entrada, habilita o resistor de pull-up, um resistor interno que garante que o pino será lido em nível alto quando estiver desconectado.

void setup() {
  // Configura os pinos
  pinMode(LED, OUTPUT);
  pinMode(BOTAO, INPUT_PULLUP);
}

No loop, utilizamos a estrutura condicional if-else para verificar se o botão foi pressionado. Se sim, o LED é aceso; caso contrário, é apagado. Para alterar um pino de saída é usado a função digitalWrite(), é assim que alteramos o estado do LED. E para ler o nível em um pino de entrada é usado digitalRead().

Veja que quando o botão é pressionado, ele muda para o estado LOW. Isso ocorre porque, devido ao uso do PULLUP, o botão está em estado HIGH quando não está sendo pressionado.

void loop() {
  if (digitalRead(BOTAO) == LOW) {
    // apertou o botão = acende o LED
    digitalWrite(LED, HIGH);
  } else {
    // soltou o botão = apaga o LED
    digitalWrite(LED, LOW);
  }
}

Como pode ser visto no vídeo, a cada vez que o botão é pressionado o LED acende:

Conclusão

Neste artigo, exploramos um exemplo prático de como utilizar a Franzininho C0 para realizar a leitura de um botão e o acionamento de um LED. Através de um código simples, mostramos como configurar os pinos de entrada e saída, ler o estado de um botão e controlar o estado de um LED. Compreender esses conceitos básicos é fundamental para quem deseja desenvolver projetos mais complexos com microcontroladores, possibilitando uma infinidade de aplicações em eletrônica e automação.

Desafio

Como próximo passo, proponho um desafio para você aprofundar seus conhecimentos: modifique o código para que o LED pisque em intervalos regulares quando o botão for pressionado, e permaneça apagado quando o botão não estiver sendo pressionado. Essa alteração requer a introdução de temporização no loop principal, o que pode ser feito utilizando a função delay() ou outros métodos de controle de tempo. Boa sorte!

Saiba mais

Franzininho C0: Nova placa brasileira baseada no STM32C0

Bancada do Embarcados sobre a Franzininho C0

Compre a Franzininho C0 – Robocore

Compre a Franzininho C0 – Casa da Robótica

Franzininho C0 com Arduino

Franzininho C0: Blink LED com Delay e com Interrupção no Arduino Controle de intensidade de um LED com PWM no Arduino usando a Franzininho C0
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 » Leitura de um botão e acionamento de um LED no Arduino com a Franzininho C0

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: