Ficha 01 · Arquitetura, ferramentas, C/C++ e entradas
Exercício 1 · Blocos internos do microcontrolador
Um sistema lê um sensor de humidade a cada minuto, guarda o valor máximo da semana numa memória que tem de sobreviver a um corte de energia, e usa variáveis temporárias durante os cálculos. Identifica que bloco interno do microcontrolador (CPU, RAM, Flash ou EEPROM) trata cada uma destas necessidades e justifica.
Exercício 2 · Critérios de seleção de microcontrolador
Um cliente pede um sistema de rega automática a bateria, com 4 sensores de humidade e 2 válvulas a controlar, que deve durar meses sem trocar a bateria. Indica 3 critérios de seleção do microcontrolador que são especialmente importantes neste projeto e explica porquê.
Exercício 3 · Manipulação de bits
PORTD está atualmente em 00001010 (bits 1 e 3 ligados). Escreve a instrução em C que liga o bit 5 sem alterar os restantes, e indica o valor final de PORTD em binário.
Exercício 4 · Tipos de dados e memória
Um programa precisa de guardar: (a) se um relé está ligado ou desligado; (b) um contador de eventos que nunca passa de 200; (c) a temperatura lida em graus Celsius com casas decimais. Indica o tipo de dados mais adequado para cada caso e justifica em termos de poupança de memória.
Exercício 5 · Debouncing de um botão
Um contador de peças incrementa entre 2 e 4 unidades sempre que um sensor de fim de curso (tipo botão) é ativado por uma única peça a passar. Explica a causa do problema e corrige o trecho de código.
void loop() {
if (digitalRead(SENSOR) == LOW) {
contador++;
}
}
Exercício 6 · Conversão de uma leitura ADC
Um ADC de 10 bits, com referência de tensão de 3,3 V, devolve o valor leitura = 450. O sensor ligado entrega 33 mV por grau Celsius, com 0 V a 0°C. Calcula a tensão lida e a temperatura correspondente.
Exercício 7 · Pull-up interno vs resistência externa
Um colega liga um botão diretamente entre um pino digital e GND, sem qualquer resistência, e configura o pino como INPUT simples (sem pull-up). Explica o que vai correr mal e como corrigir.
Exercício 8 · Ferramentas de desenvolvimento
Descreve, por ordem, as 5 etapas do ciclo de desenvolvimento embebido, desde escrever o código até depurar um problema no hardware, e indica uma ferramenta associada a cada etapa.