← Mundo bit Byte

Sistemas Embarcados e IoT

Professor Ronaldo Lavestein
1. Fundamentos2. Entrada/Saída3. Sensores4. Atuadores/Automação5. Programação Aplicada6. Conectividade7. Internet das Coisas8. RTOS e Protocolos9. Proteção e Segurança10. Projeto IoT11. Projetos Práticos99. Exercícios
Projetos Práticos · Mundo bit Byte

Controle de Ventilador por Bluetooth

Como um toque no celular pode mudar uma escolha no Arduino? Aprenda esse caminho com três LEDs, entenda a comunicação Bluetooth e crie seu aplicativo no App Inventor.

Comece pelos LEDs. Esta atividade usa o Uno por USB e três LEDs para representar as velocidades. O HC-05 precisa de alimentação e sinais conferidos pelo professor. Relés e ventilador ficam fora dessa montagem; a etapa de 220 V depende de projeto e avaliação profissional. A simulação funciona apenas na tela.

Começar o percurso →

Etapa 1 de 8

Entender o desafio

Ao terminar: Explicar como um toque pode virar um comando no Arduino.

Antes de começar: Reconheça o Uno, o LED, o resistor e o GND; retome os fundamentos do curso se necessário.

Imagine que você está estudando e quer mudar a velocidade do ventilador sem sair do lugar. O celular parece resolver isso com quatro botões: três velocidades e Desligar. Mas como esse toque chega ao Arduino? E como saber se a mensagem foi entendida?

Vamos descobrir esse caminho em partes. Primeiro, três LEDs vão representar as velocidades: LED 1 para baixa, LED 2 para média e LED 3 para alta. Assim podemos observar as escolhas sem conectar o ventilador. Nenhum LED representa uma medição do motor.

ParteO que fazO que você observa
AplicativoTransforma o toque em um texto: 0, 1, 2 ou 3.O comando escolhido pelo usuário.
HC-05Leva as mensagens por Bluetooth entre celular e Arduino.A comunicação, quando testada com o módulo real.
Arduino UnoLê o comando e escolhe qual LED deve acender.A resposta do programa.
Três LEDsRepresentam baixa, média e alta.Somente um aceso por vez; todos apagados em 0.
Ventilador realÉ o objetivo futuro do projeto.Depende de identificação, projeto elétrico e testes profissionais.

Combine o significado dos comandos

O aplicativo e o Arduino precisam seguir o mesmo combinado, chamado protocolo. Aqui, o texto 0 pede para apagar os LEDs; 1, 2 e 3 escolhem um deles. Depois de aplicar a escolha, o Arduino responde com o mesmo caractere. Essa resposta confirma o que o programa fez; não confirma rotação nem contato elétrico de um ventilador.

Antes de começarSuas marcações ficam neste navegador e ajudam a organizar o estudo. Elas não autorizam ligações elétricas.

Confira o que aprendeu

Se o Arduino respondeu “2”, o que você pode afirmar?

Conferir o raciocínio

Que o programa informou a seleção 2. Com LEDs, você ainda pode observar se o LED correspondente acendeu. Isso não permite afirmar que um ventilador está girando.

Antes de montar qualquer peça, vamos entender por que os cuidados mudam quando saímos dos LEDs e pensamos no ventilador.

Etapa 2 de 8

Preparar a atividade com segurança

Ao terminar: Separar o exercício com LEDs dos cuidados exigidos pelo ventilador.

Antes de começar: Conclua a etapa 1 e retome o estudo de tensão, corrente e LEDs.

Agora você sabe o que cada comando significa. Antes de colocar esse comando em um circuito, precisamos responder outra pergunta: o que acontece se uma ligação ou uma escolha estiver errada? No exercício, usamos LEDs e alimentação USB. Um ventilador de 220 V envolve outros riscos e exige outra preparação.

Abra a aula Eletricidade e cuidados com os equipamentos. Ela explica as grandezas elétricas no contexto do projeto e a diferença entre pedir “Desligar” e retirar a alimentação com segurança. Depois, use o link de retorno para continuar nesta etapa.

Exercício com LEDs separado do projeto elétrico do ventilador de 220 V.
O exercício desta sequência usa LEDs. As ligações do ventilador precisam de projeto e avaliação próprios.

Prepare o exercício

  1. Separe Uno, cabo USB, três LEDs e um resistor de 330 Ω para cada LED. Ω é o símbolo de ohm, a unidade de resistência.
  2. Confira a montagem com o professor, sem alimentação. Não troque fios com o circuito ligado.
  3. Para acrescentar o HC-05 mais adiante, peça a identificação da placa, a conferência da alimentação e dos níveis dos sinais.
  4. Mantenha relés, motor e fios da tomada fora desta montagem.
Cuidados para esta atividadeSuas marcações ficam neste navegador e ajudam a organizar o estudo. Elas não autorizam ligações elétricas.

Confira o que aprendeu

Por que começar com LEDs se o objetivo é controlar um ventilador?

Conferir o raciocínio

Porque eles tornam visível a escolha feita pelo programa e permitem estudar os comandos sem acrescentar os riscos do motor e da rede elétrica. Depois, o equipamento real precisa de uma avaliação específica.

Com esse limite entendido, vamos conhecer a peça que aparece com frequência no controle de equipamentos: o relé.

Etapa 3 de 8

Entender os contatos do relé

Ao terminar: Explicar COM, NA e NF e reconhecer o que conferir na placa real.

Antes de começar: Conclua as etapas 1 e 2 e recorde como uma saída digital acende um LED.

O Arduino consegue indicar uma escolha com um LED. Para um aparelho que exige mais corrente, uma ordem de controle precisa acionar um circuito adequado. O relé ajuda a entender essa separação: uma parte recebe a ordem e outra abre ou fecha contatos.

Na aula Relés: como uma ordem muda um contato, observe a bobina e experimente os contatos no desenho. Você vai entender COM, NA e NF antes de usar essas marcações em uma peça real.

Bobina e contatos do relé: funções diferentes na mesma peça.
Um desenho de funcionamento não indica os terminais nem os limites de uma placa comercial.

O que precisamos descobrir sobre a placa real?

Registre modelo, alimentação, corrente exigida e forma de acionamento. Uma placa de quatro relés não é definida apenas pela inscrição “10 A”. O tipo de motor, sua partida, os contatos, a placa e a fonte também precisam de avaliação.

Confira o que entendeu sobre o reléSuas marcações ficam neste navegador e ajudam a organizar o estudo. Elas não autorizam ligações elétricas.

Confira o que aprendeu

O que a simulação dos contatos ensina e o que ela não comprova?

Conferir o raciocínio

Ela mostra qual caminho abre ou fecha quando a bobina muda de estado. Não comprova isolamento, capacidade para um motor, qualidade da montagem nem comportamento de um contato com defeito.

Agora já sabemos separar uma ordem de controle da ligação de um aparelho. Falta descobrir como essa ordem pode chegar sem o cabo USB.

Etapa 4 de 8

Levar mensagens pelo Bluetooth

Ao terminar: Diferenciar pareamento, conexão e resposta do Arduino.

Antes de começar: Conclua a etapa 3 e saiba abrir o Monitor Serial da IDE Arduino.

No começo, o comando pode sair do computador pelo cabo USB. Para sair do celular sem esse cabo, ele precisa atravessar o Bluetooth. O HC-05 recebe a mensagem sem fio e a entrega ao Uno pelos pinos de comunicação.

Abra a aula HC-05: levar mensagens do celular ao Uno. Confira o significado de TX e RX, a velocidade serial e a diferença entre parear, conectar e receber uma resposta.

O TX de um dispositivo envia para o RX do outro, com adaptação elétrica quando necessária.
Este mapa explica a troca de dados. A alimentação e os sinais precisam ser conferidos para o HC-05 usado.

Antes de ligar o HC-05

Peça ao professor que confira a placa e sua documentação. Não presuma que VCC e RX aceitam a mesma tensão. O programa espera comunicação serial a 9600 bit/s no modo de dados. Só monte a ligação aprovada, com a alimentação removida.

Como descobrir em que ponto surgiu o problema

Se o Android reconhece o HC-05, houve pareamento. Se o aplicativo abre a comunicação, houve conexão. Se o Arduino recebe e responde corretamente, houve troca de mensagens. Conferir nessa ordem ajuda a localizar a dificuldade, sem mudar vários fios ou configurações ao mesmo tempo.

Confira a troca de mensagensSuas marcações ficam neste navegador e ajudam a organizar o estudo. Elas não autorizam ligações elétricas.

Confira o que aprendeu

O HC-05 aparece na lista do celular. Já podemos dizer que o Arduino recebeu um comando?

Conferir o raciocínio

Ainda não. Aparecer na lista ou estar pareado não comprova a troca de mensagens. É preciso conectar pelo aplicativo, enviar o texto e conferir a resposta do Arduino.

Na próxima etapa, vamos testar os programas em uma ordem que permite descobrir o que funciona antes de acrescentar a próxima parte.

Etapa 5 de 8

Programar e testar os LEDs

Ao terminar: Testar os comandos em três versões do programa.

Antes de começar: Conclua as etapas 2 a 4; retome listas de pinos, repetições, funções e condições no bloco Programação Aplicada.

Vamos construir a solução em três versões. Na primeira, você testa apenas Uno e LEDs. Na segunda, acrescenta mensagens por Bluetooth. Na terceira, o Arduino também verifica se o celular continua enviando mensagens. Cada programa é completo: abra sua pasta na IDE Arduino, o programa usado para editar e gravar o código na placa, e escolha a placa Uno.

Experimente primeiro na tela

Toque em Conectar, escolha uma velocidade e observe o LED. Depois toque em Parar os sinais de presença e aguarde: o LED deve apagar. Esta simulação não usa Bluetooth real nem envia comandos a equipamentos.

BaixaMédiaAlta

Monte os três indicadores

Com a alimentação retirada, ligue cada saída a seu próprio resistor de 330 Ω e LED, conforme o desenho. O ânodo é o terminal positivo do LED; o cátodo vai ao GND, a referência do circuito. Confira os terminais do componente, sem depender apenas do comprimento das pernas. Peça ao professor que confira antes de conectar o USB.

D5, D6 e D7: cada pino aciona seu próprio resistor de 330 ohms e LED até o GND.
Montagem de LEDs para o Uno. O desenho não inclui HC-05, relés nem ventilador.

Programa 1 — faça os comandos funcionar pelo USB

Baixe o arquivo abaixo, abra-o na IDE e grave no Uno. Abra o Monitor Serial a 9600 bit/s. Envie um caractere de cada vez: 1, 2, 3 e 0. Somente o LED escolhido deve acender; 0 apaga todos. O Monitor também mostra o caractere de confirmação. Se enviar uma letra como X, o programa apaga os LEDs e responde 0.

01_serial_leds.inoBaixar .ino
// Mundo bit Byte — checkpoint 1: somente LEDs; nenhum motor ou rele.
// Uno: D5, D6 e D7 -> cada um a seu resistor de 330 ohms -> anodo LED.
// Os tres catodos vao ao GND. Monitor Serial: 9600, sem fim de linha.
const byte LEDS[] = {5, 6, 7};
byte velocidade = 0;

void selecionar(byte nova) {
  // Primeiro apaga todos; depois acende, no maximo, um indicador.
  for (byte i = 0; i < 3; i++) digitalWrite(LEDS[i], LOW);
  velocidade = nova <= 3 ? nova : 0;
  if (velocidade > 0) digitalWrite(LEDS[velocidade - 1], HIGH);
}

void setup() {
  for (byte i = 0; i < 3; i++) {
    digitalWrite(LEDS[i], LOW);
    pinMode(LEDS[i], OUTPUT);
  }
  Serial.begin(9600);
  selecionar(0);
}

void loop() {
  if (!Serial.available()) return;
  char comando = Serial.read();
  if (comando == '\r' || comando == '\n') return;
  selecionar(comando >= '0' && comando <= '3' ? comando - '0' : 0);
  Serial.write('0' + velocidade); // Confirmacao logica de um caractere.
}

Entenda o código antes de avançar

Na lista LEDS estão os pinos 5, 6 e 7. A função selecionar, um trecho que realiza uma tarefa definida, apaga os três LEDs antes de acender o escolhido. A repetição for percorre a lista; as condições if decidem se o comando é válido. Se vetor, função ou condição forem novos para você, retome esses assuntos no bloco Programação Aplicada antes de continuar.

Programa 2 — troque o cabo de mensagens pelo Bluetooth

Conclua o teste USB antes de acrescentar o HC-05. Depois de conferir sua ligação e configuração com o professor, grave este programa. Use um aplicativo de teste serial Bluetooth que envie texto, sem acrescentar mensagens automáticas. Envie 0, 1, 2 e 3 e compare os LEDs com as respostas. Essa versão mantém a última escolha enquanto não chega outro comando.

02_bluetooth_leds.inoBaixar .ino
// Mundo bit Byte — checkpoint 2: HC-05 com LEDs, sem motor ou rele.
// Identifique e valide alimentacao, niveis e baud rate do HC-05 antes da ligacao.
// Uno D2 (RX software) recebe TX do modulo com niveis compativeis.
// Uno D3 (TX software) envia ao RX do modulo por adaptacao de nivel validada.
// A alimentacao do modulo e o adaptador nao sao definidos por este codigo.
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(2, 3); // RX, TX do Arduino.
const byte LEDS[] = {5, 6, 7};
byte velocidade = 0;

void selecionar(byte nova) {
  for (byte i = 0; i < 3; i++) digitalWrite(LEDS[i], LOW);
  velocidade = nova <= 3 ? nova : 0;
  if (velocidade > 0) digitalWrite(LEDS[velocidade - 1], HIGH);
}

void setup() {
  for (byte i = 0; i < 3; i++) {
    digitalWrite(LEDS[i], LOW);
    pinMode(LEDS[i], OUTPUT);
  }
  bluetooth.begin(9600); // Confirmar esta velocidade na variante real.
  selecionar(0);
}

void loop() {
  if (!bluetooth.available()) return;
  char comando = bluetooth.read();
  if (comando == '\r' || comando == '\n') return;
  selecionar(comando >= '0' && comando <= '3' ? comando - '0' : 0);
  bluetooth.write('0' + velocidade);
}

Programa 3 — perceba quando as mensagens param

Imagine que o LED 3 está aceso e o celular para de enviar dados. Precisamos que o Uno perceba essa ausência por conta própria. O aplicativo envia ? a cada 500 milissegundos, ou meio segundo, como um sinal de “continuo aqui”. Essa verificação periódica também é conhecida como heartbeat.

Grave o programa 3. Se passarem 2000 milissegundos, ou 2 segundos, sem uma mensagem válida para essa verificação, ele apaga os LEDs. O sinal ? não escolhe velocidade e não recebe resposta. Depois de apagados pelo prazo, somente voltar a enviar ? não reacende os LEDs: é preciso um novo comando 1, 2 ou 3. Esses tempos servem ao exercício; não dimensionam a proteção de um motor.

03_bancada_supervisionada.inoBaixar .ino
// Mundo bit Byte — checkpoint 3: prototipo didatico SOMENTE COM LEDs.
// Nao conectar estas saidas a reles ou a qualquer circuito de 220 V.
// Uno: LEDs/resistores em D5,D6,D7; Bluetooth software em D2(RX),D3(TX).
// Alimentacao/niveis do HC-05: verificar a variante e a interface antes de montar.
// Protocolo: textos '0'..'3'; '?' a cada 500 ms mantem o enlace supervisionado.
// Retorno: um caractere '0'..'3' confirma somente o estado logico dos LEDs.
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(2, 3);
const byte LEDS[] = {5, 6, 7};
const uint32_t PRAZO_MS = 2000UL; // Escolha didatica, nao parametro de seguranca de motor.
byte velocidade = 0;
uint32_t ultimaMensagem = 0;

void selecionar(byte nova) {
  for (byte i = 0; i < 3; i++) digitalWrite(LEDS[i], LOW);
  velocidade = nova <= 3 ? nova : 0;
  if (velocidade > 0) digitalWrite(LEDS[velocidade - 1], HIGH);
}

void confirmar() {
  bluetooth.write('0' + velocidade);
}

void verificarPrazo(uint32_t agora) {
  // Subtracao sem sinal tambem funciona quando millis() volta a zero.
  if (velocidade > 0 && (uint32_t)(agora - ultimaMensagem) >= PRAZO_MS) {
    selecionar(0);
    confirmar();
  }
}

void receber(char comando, uint32_t agora) {
  if (comando == '\r' || comando == '\n') return;
  // Uma mensagem de supervisao atrasada nao deve esconder um prazo ja expirado.
  verificarPrazo(agora);
  ultimaMensagem = agora;
  if (comando == '?') return; // Mantem comunicacao; nunca liga os LEDs.
  selecionar(comando >= '0' && comando <= '3' ? comando - '0' : 0);
  confirmar();
}

void setup() {
  for (byte i = 0; i < 3; i++) {
    digitalWrite(LEDS[i], LOW);
    pinMode(LEDS[i], OUTPUT);
  }
  selecionar(0);
  bluetooth.begin(9600); // Requer HC-05 configurado para 9600 em modo de dados.
  ultimaMensagem = millis();
}

void loop() {
  verificarPrazo(millis());
  // Processa um caractere por volta; nao bloqueia esperando texto ou delimitador.
  if (bluetooth.available()) receber(bluetooth.read(), millis());
}

Confira as trocas, não só a sequência crescente

Teste cada escolha a partir das outras: de 0 para 1, de 1 para 0, de 3 para 2 e assim por diante. Há 12 trocas entre estados diferentes, além das quatro repetições do mesmo comando. Registre o LED observado e a resposta recebida. No programa 3, teste também a falta de mensagens e confirme que o retorno apenas de ? não religa um LED.

Confira seus testes com a placaSuas marcações ficam neste navegador e ajudam a organizar o estudo. Elas não autorizam ligações elétricas.

Confira o que aprendeu

Por que testar de 3 para 1 se de 1 para 3 já funcionou?

Conferir o raciocínio

Porque a ordem anterior pode revelar uma dificuldade diferente. Cada troca precisa apagar a escolha anterior antes de acender a nova. Com LEDs, observe o resultado; para um motor, outros testes e proteções continuam necessários.

Os comandos já têm significado e um caminho de comunicação. Agora vamos colocar esses comandos nos botões do nosso aplicativo.

Etapa 6 de 8

Criar e testar o aplicativo

Ao terminar: Relacionar botões, mensagens, respostas e tratamento de falhas.

Antes de começar: Faça os testes da etapa 5; use a aula de apoio para construir a tela e os blocos.

Você já viu o comando chegar ao Uno e mudar um LED. Agora o usuário precisa fazer isso sem digitar caracteres: tocar em Velocidade 2 deve enviar o texto 2. A tela também precisa indicar quando ainda está esperando a resposta.

Siga a aula Crie o aplicativo Ventilador MbB no App Inventor. Ela explica a tela, os blocos e os cuidados com conexão e respostas. Se quiser testar a versão disponível antes de construir a sua, baixe o APK, o arquivo de instalação para Android:

Baixar Ventilador MbB para Android (.apk) · Conferir a versão do arquivo

ATENÇÃO — use o programa 3. Grave 03_bancada_supervisionada.ino, apresentado na etapa anterior. Ele reconhece os sinais ? enviados pelo aplicativo. Mantenha o exercício apenas com LEDs.

Ventilador MbB

Ilustração da tela — botões sem ação

Desconectado. Sem confirmação física.

Protótipo somente com LEDs.

Instalei o app, mas os botões não aceitam toque. É defeito?

Sem o Arduino respondendo, as velocidades ficam bloqueadas de propósito. O aplicativo precisa do HC-05 ligado ao Uno com o programa 3. Ao conectar, envia 0 e espera a resposta 0. Se ela não chega, encerra a tentativa; não basta ligar o Bluetooth do celular ou escolher qualquer aparelho da lista.

Para experimentar os comandos sem equipamento, use o simulador da etapa 5. Para testar o APK, prepare a montagem com LEDs e confira a resposta do Uno. Não retire a confirmação do código para liberar os botões.

Essa figura mostra a organização da tela; seus botões não comandam o Arduino. No aplicativo instalado, as velocidades só são liberadas depois da conexão e da resposta inicial do programa. Quando ele diz “confirmação lógica”, está informando a resposta do Arduino, sem medir movimento.

Como o aplicativo passa da conexão à espera e à confirmação dos comandos.
O desenho explica as decisões do programa. A confirmação informa um comando recebido, sem medir rotação ou contatos.
Confira o aplicativoSuas marcações ficam neste navegador e ajudam a organizar o estudo. Elas não autorizam ligações elétricas.

Confira o que aprendeu

O app mostrou uma mensagem de desconexão. Por que o Arduino também precisa verificar a falta de mensagens?

Conferir o raciocínio

Porque o aviso na tela não muda sozinho os pinos do Arduino. No programa 3, a falta de mensagens faz o próprio Uno apagar os LEDs. Isso demonstra uma decisão local, sem substituir proteções elétricas de um equipamento.

Etapa 7 de 8

Planejar a etapa do ventilador real

Ao terminar: Reunir as informações que o profissional precisa para avaliar o ventilador.

Antes de começar: Revise os resultados e limites das seis etapas anteriores.

Com os LEDs, você consegue observar a seleção feita pelo Arduino. Um motor acrescenta corrente de partida, movimento e componentes que podem falhar. Por isso, a etapa de 220 V ainda exige um projeto elétrico específico. O objetivo continua sendo um ventilador real com três velocidades, mas este material não fornece suas ligações à tomada.

Não substitua os LEDs por relés para completar o projeto. Antes de prosseguir, reúna com o profissional responsável as informações abaixo.

O que precisa ser conhecido sobre o equipamento

Informação ou verificaçãoPor que é necessária
Modelo, manual, placa de identificação e estado do ventiladorIdentificar exatamente o equipamento que será avaliado.
Ligações das velocidades, motor, capacitor e proteção contra aquecimentoEntender quais combinações são permitidas e preservar as proteções.
Relés, fonte, fios e proteções adequados ao motorConsiderar a partida e as condições reais de funcionamento.
Impedimento de velocidades incompatíveis, inclusive com falhasNão depender apenas da escolha feita no aplicativo.
Isolamento, caixa de proteção, fixação e desligamento da alimentaçãoEvitar acesso a partes perigosas e permitir intervenção adequada.
Inspeções e testes registrados pelo profissionalDecidir em que condições o equipamento pode ser liberado.

Esses registros precisam corresponder ao ventilador usado. Trocar o modelo pode exigir rever o circuito e as proteções, mesmo que os botões do aplicativo continuem iguais.

Confira o que aprendeu

Os LEDs responderam corretamente em todos os testes. O ventilador já está pronto para ligar?

Conferir o raciocínio

Não. Ainda faltam o projeto elétrico para o modelo real, a avaliação das falhas, as proteções e os testes profissionais. LEDs ajudam a estudar comandos, mas não reproduzem o comportamento de um motor.

Etapa 8 de 8

Conferir e explicar os resultados

Ao terminar: Mostrar o que aprendeu com seus registros de teste.

Antes de começar: Reúna seus arquivos, desenho e registros das etapas anteriores.

Volte à pergunta inicial: como um toque no celular chega a uma escolha no Arduino? Agora você deve conseguir explicar cada parte desse caminho e apresentar o resultado dos seus testes. Separe o que viu na tela, o que observou na placa e o que ainda não foi realizado.

Organize os resultados

TesteO que conferirOnde testar
Comandos 0, 1, 2 e 3Todos apagados em 0; somente o LED escolhido nos demais.Simulador e montagem com LEDs, em registros separados.
12 trocas e quatro repetiçõesNenhuma escolha mantém dois LEDs acesos.Programa e placa com LEDs.
Letra inválida, como XO Arduino apaga os LEDs e responde 0.Programa e placa com LEDs.
Reiniciar o Uno ou restaurar sua alimentaçãoComeçar com os LEDs apagados.Placa real.
Parar os sinais de presença no programa 3Apagar após o prazo; somente ? não reacende.Simulador e comunicação real, em testes separados.
Negar permissão, perder conexão e reconectarInformar a falha; nova conexão começa enviando 0.Aplicativo instalado no Android.
Ventilador e suas proteçõesCumprir os critérios e testes do projeto específico.Etapa conduzida pelo profissional responsável.
O que você já consegue demonstrarSuas marcações ficam neste navegador e ajudam a organizar o estudo. Elas não autorizam ligações elétricas.

Uma última decisão

O Arduino respondeu “3”. Qual frase descreve o que sabemos?

Apresente o que aprendeu

Entregue os arquivos usados, o desenho da montagem com LEDs e seus registros de teste. Para cada resultado, escreva o que esperava, o que observou e o que ainda precisa verificar. As marcações desta página ficam neste navegador; não alteram o progresso do Meu MbB.

Baixar orientações dos três programas · Baixar roteiro de testes · Baixar projeto editável do aplicativo

Confira o que aprendeu

O que você consegue explicar agora que não conseguia no início?

Conferir o raciocínio

Como um comando percorre o sistema, por que precisamos de resposta e prazo, como testar escolhas com LEDs e por que a ligação de um ventilador exige outras verificações. Use exemplos dos seus testes para sustentar a explicação.