Partilhar: Classroom Teams WhatsApp
aulify
UC UC00670 · T. Sist. Comp. Redes, T. Eletrónica e mais 2 cursos

Ficha 01 · Arduino e I/O

Arquitetura, setup/loop, digital, analógico, PWM, fluxogramas e registos
Versão · Aluno
Tempo · 90 minutos
Cotação · 100 pontos
Aluno(a)
Turma
Nº
Data
Objectivos da ficha

Parte I · Conceitos

Exercício 1 · µC vs µP (8 pts)

Indica 3 diferenças entre um microcontrolador e um microprocessador.

Exercício 2 · Plataforma (7 pts)

Indica a plataforma mais adequada:

a) Projeto IoT que envia dados por Wi-Fi para a nuvem. ___

b) Aprender o básico, ecossistema enorme de tutoriais. ___

c) Programar em MicroPython, hardware moderno. ___

Parte II · Estrutura

Exercício 3 · setup/loop (8 pts)

a) O que corre em setup() e o que corre em loop()? (4 pts)

b) Como se vê o valor de uma variável durante a execução (não há ecrã)? (4 pts)

Exercício 4 · Sinalizador (10 pts)

Escreve o sketch completo de um sinalizador: um LED no pino 10 fica aceso 2 s e apagado 1 s, em repetição.

Parte III · Entradas

Exercício 5 · Botão (12 pts)

a) Para que serve INPUT_PULLUP? (4 pts)

b) Escreve um sketch que acende o LED (pino 4) enquanto um botão (pino 7, ligado a GND) está premido. (8 pts)

Exercício 6 · Debounce (8 pts)

Porque é necessário "debounce" num botão? Como se faz por software (ideia)?

Parte IV · Analógico/PWM

Exercício 7 · ADC e PWM (12 pts)

a) analogRead(A0) devolve que gama de valores e a que correspondem? (4 pts)

b) Uma luz de presença: um LDR num divisor de tensão com 10 kΩ (LDR ligado a Vcc, resistência a GND) dá a tensão em A0; quanto mais escuro, mais brilho deve ter um LED no pino 5 (PWM). Escreve o sketch. (8 pts)

Parte V · Fluxogramas e registos

Exercício 8 · Fluxograma (15 pts)

Um reservatório tem um sensor de nível analógico (A1, 0 a 100 %) e uma bomba de enchimento de baixa tensão comandada por um módulo de relé. A bomba liga quando o nível desce abaixo de 20 % e só desliga quando passa de 80 %. Desenha o fluxograma do programa, com os símbolos corretos, e diz qual a vantagem de usar dois limiares.

Exercício 9 · Registos (20 pts)

a) Para que servem os registos DDRx, PORTx e PINx? (6 pts)

b) Um registo REG de 8 bits vale 0b1001 0110. Indica o valor em binário depois de cada instrução, executadas em sequência: (8 pts)

REG |= (1 << 0) | (1 << 3);
REG &= ~(1 << 7);
REG ^= (1 << 4);

Nota: usa-se aqui um registo genérico, e não o PORTC, porque no ATmega328P o PORTC só tem os bits 0 a 6 implementados.

c) O pino 12 do UNO é o bit 4 da porta B (PB4). Escreve, com registos, o equivalente a pinMode(12, OUTPUT); digitalWrite(12, HIGH); sem alterar os outros bits. (6 pts)