Teach lesson
STM32 com a API do Arduino (1/4): primeiro LED piscando
Os estudantes usam o STM32 CodeIDE e a API do Arduino para escrever setup() e loop(), fazer uma saída real piscar e registrar evidências de compilação e upload.
New to LabsLand? Create your teacher account
Learning Outcomes
Escrever um sketch Arduino mínimo para uma placa STM32.
Distinguir o código que prepara a placa do código que se repete.
Registrar evidências observáveis de uma saída digital real.
Student activity preview
Activity Content
Preview only. In a class session, students can fill in responses and submit their work to the teacher.
Antes de abrir o laboratório
8 min
Um microcontrolador não “entende” sentenças: ele executa
instruções. Hoje precisamos apenas de uma saída digital, um LED e duas pausas.
Em um sketch Arduino:
- setup() é executado uma vez e prepara a placa.
- loop() se repete enquanto a placa está ligada.
- pinMode(pin, OUTPUT) declara que um pino será uma saída.
- digitalWrite(pin, HIGH) define uma saída alta; LOW desliga.
O ciclo principal terá este formato:
digitalWrite(BLUE_LED, HIGH);
delay(1000);
digitalWrite(BLUE_LED, LOW);
delay(1000);Se o LED ficar aceso por 1000 ms e apagado por 1000 ms dentro de loop(), qual
padrão deverá se repetir?
Crie e teste a piscada
24 min
Esta foto ajuda você a reconhecer a placa STM32 Nucleo WB55RG. A foto mostra
apenas a placa; no laboratório remoto, ela faz parte de uma montagem pré-cabeada,
com LEDs e outros componentes já conectados. Você não precisa ligar nenhum fio:
usará um LED que já está disponível nessa montagem remota.
Foto de referência da placa STM32 Nucleo WB55RG. No laboratório remoto, a placa
faz parte de uma montagem pré-instalada; nesta primeira sessão você a programará
como uma placa Arduino baseada em texto: escrever, compilar, fazer upload e observar.
Inicie o laboratório a partir deste bloco. Em CodeIDE, selecione a guia do editor
main.ino.Substitua seu conteúdo pelo programa inicial abaixo.
Substitua os itens TODO 1 a 4. Cada comentário informa o tipo de código necessário, sem fornecer o token. Procure
TODOemmain.ino; nenhum TODO pode permanecer antes da compilação.Salve
main.ino, escolha Compile e aguarde uma mensagem de compilação bem-sucedida. Compile verifica e traduz o código; isso ainda não altera a placa real.Somente após a compilação ser bem-sucedida, escolha Upload e aguarde o processo terminar com sucesso. Upload instala essa versão compilada na placa.
Observe o LED azul por pelo menos três ciclos completos de acender e apagar. Registre esse comportamento inicial, sem alterações, na linha 1.
Altere apenas
BLINK_MSpara um intervalo visível diferente de250 mspara2000 ms. Salve, compile, carregue, observe três ciclos e registre a linha 2.
#include <Arduino.h>
const int BLUE_LED = PB5;
const int BLINK_MS = TODO_BLINK_INTERVAL; // TODO 1: intervalo de um segundo, em ms
void setup() {
pinMode(BLUE_LED, TODO_LED_DIRECTION); // TODO 2: modo que permite que o pino acione o LED
}
void loop() {
digitalWrite(BLUE_LED, TODO_LED_ON_LEVEL); // TODO 3: nível para acender o LED
delay(BLINK_MS);
digitalWrite(BLUE_LED, TODO_LED_OFF_LEVEL); // TODO 4: nível oposto para apagar o LED
delay(BLINK_MS);
}
Preencha a tabela após testar o programa na placa. Use apenas duas linhas e
deixe as demais em branco se o TEACH mostrar mais:
- Linha 1: versão inicial concluída com intervalo 1000 ms.
- Linha 2: sua versão modificada.
- Em Padrão observado, escreva o que você viu na placa real.
- Em Ajuste ou problema, escreva nenhum se funcionou; caso contrário, indique o que você verificaria.
| Versão testada | Valor de atraso (ms) | Padrão observado | Corresponde à previsão? | Ajuste ou problema |
|---|---|---|---|---|
Descreva evidências concretas de que seu programa foi executado na placa real. Identifique a
saída, informe os dois valores de delay em ms e compare pelo menos três ciclos
iniciais com pelo menos três ciclos após a alteração.
Envie seu código
8 min
Antes de enviar, deixe o código final salvo em main.ino. Seu professor deveria
ser capaz de ver o pino que você usou, pinMode, as duas chamadas digitalWrite e
o valor delay que você testou. Procure mais uma vez por TODO; o arquivo enviado
não deve conter nenhum.
Envie seu main.ino final
Salve main.ino antes de anexá-lo. A captura deve mostrar o programa final que você compilou, enviou para a placa e deseja que o professor revise.
Bilhete de saída
10 min
Explique a diferença entre setup() e loop() usando seu programa de piscada como exemplo. Acrescente por que é útil alterar apenas uma coisa de cada vez durante a depuração.