Disciplina · ISPS
Informática Aplicada
Introdução à programação de computadores e microcontroladores — da lógica de algoritmos ao controlo de hardware com Arduino.
Ficha da disciplina
Informação Geral
Cursos
- Engenharia Eléctrica
- Engenharia de Energias Renováveis
- Engenharia Electrónica e Telecomunicações
Docente
- Isac Daniel
Objectivos
Compreender os fundamentos da plataforma Arduino através do simulador Tinkercad, integrando a montagem de circuitos virtuais à lógica de programação em framework Wiring.
Avaliação
3 testes (2 escritos + 1 prático) · 2 trabalhos individuais.
Mf = ⅗ Mt + ⅖ Tr
NF = ⅗ Mf + ⅖ NE
Índice
Módulos da Disciplina
Módulo 01
Lógica de Programação e Algoritmos
Objectivos
- Compreender o conceito de lógica de programação
- Identificar os pilares fundamentais dos algoritmos
- Aplicar estruturas de controlo em problemas reais
- Reconhecer tipos de dados e variáveis
- Desenvolver algoritmos em pseudocódigo e fluxogramas
Conceitos-chave
A lógica de programação é a técnica de organizar pensamentos de forma estruturada para que um computador execute uma tarefa específica. Não é uma linguagem — é a capacidade universal de resolver problemas computacionalmente.
Instrução + Sequência Lógica = Algoritmo
Os 3 Pilares
1. Algoritmo
Sequência finita de passos lógicos, com clareza, finitude e ordenação.
2. Estruturas de Controlo
Sequência, condicional (SE/SENÃO) e repetição (ENQUANTO).
3. Variáveis e Tipos
Inteiro, real, string e booleano — espaços na memória para armazenar dados.
Formas de Representação
Fluxogramas (representação gráfica com símbolos geométricos) e Pseudocódigo / Portugol (estrutura próxima de uma linguagem real, sem rigor sintáctico).
Exemplo em Pseudocódigo
Algoritmo Soma
Var
a, b, resultado : inteiro
Início
Escreva("Introduz o primeiro número: ")
Leia(a)
Escreva("Introduz o segundo número: ")
Leia(b)
resultado ← a + b
Escreva("Soma = ", resultado)
Fim
Módulo 02
Noções de Microcontroladores
Um microcontrolador é um computador completo num único chip: CPU, memória (RAM/ROM) e periféricos de entrada/saída. É o cérebro de qualquer sistema embebido — desde electrodomésticos a sistemas industriais.
Aplicações típicas
- Automação industrial e residencial
- Sistemas de monitorização e controlo
- Robótica e IoT (Internet das Coisas)
- Instrumentação e aquisição de dados
Arquitectura Básica
CPU
Unidade Central de Processamento — executa as instruções do programa.
Memória
RAM (dados temporários) + Flash/ROM (programa armazenado).
Periféricos I/O
Pinos digitais, analógicos, UART, SPI, I²C para comunicação externa.
Módulo 03
Linguagem Arduino
Origem
O Arduino é uma plataforma de prototipagem electrónica open-source, baseada em hardware e software flexíveis. Foi concebido para baixo custo e curva de aprendizagem reduzida, permitindo criar sistemas físicos que "sentem" e "respondem" ao ambiente.
Ciclo de Vida de um Projecto
Partes da Placa UNO R3
- Microcontrolador: ATmega328P (o "cérebro")
- Pinos Digitais (0–13): entrada/saída HIGH/LOW · os marcados com
~suportam PWM - Pinos Analógicos (A0–A5): leitura de variação de tensão (sensores)
- Conector USB: programação e comunicação serial
- Entrada de Alimentação: 7 V a 12 V (recomendado)
- Botão de Reset: reinicia a execução do programa
Estrutura de um Programa
void setup() {
// Executado UMA vez ao ligar
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Executado CONTINUAMENTE
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Sintaxe Básica
;— finaliza cada comando{ }— delimita blocos de código//— comentário de uma linha/* ... */— comentário em bloco
Bibliotecas
Colecções de código prontas que expandem as capacidades do Arduino (displays LCD, servomotores, sensores complexos). O IDE inclui bibliotecas padrão e permite adicionar bibliotecas de terceiros.
#include <LiquidCrystal.h>
para controlar displays LCD, ou #include <Servo.h> para servomotores.
Módulo 04
Variáveis, Tipos e Operadores
Tipos de Dados
| Tipo | Descrição | Exemplos | Uso típico |
|---|---|---|---|
int | Inteiro | -5, 0, 42 | Contagem, idade |
float | Real com decimais | 3.14, 99.99 | Preços, medidas |
char | Caractere único | 'A', '7' | Letras, símbolos |
String | Texto | "Olá Mundo" | Nomes, mensagens |
bool | Valores lógicos | true, false | Flags, condições |
Operadores Aritméticos
+adição-subtracção*multiplicação/divisão%resto (módulo)
Operadores Relacionais
==igual a!=diferente de>maior ·<menor>=maior ou igual ·<=menor ou igual
Operadores Lógicos
- E (AND): todas as condições verdadeiras
- OU (OR): pelo menos uma condição verdadeira
- NÃO (NOT): inverte o estado lógico
Ordem de Precedência
ligar_rega = solo_seco AND NOT(esta_chovendo)
Módulos 05–06
Comandos e Funções Reservadas
Entrada e Saída
void setup() {
Serial.begin(9600); // inicia comunicação
pinMode(13, OUTPUT); // LED como saída
pinMode(2, INPUT_PULLUP); // botão como entrada
}
void loop() {
int estado = digitalRead(2); // lê botão
digitalWrite(13, !estado); // LED reflecte o botão
Serial.println(estado); // envia para o PC
delay(50);
}
Funções Essenciais
pinMode(pino, modo)
Define se um pino é INPUT, OUTPUT ou INPUT_PULLUP.
digitalRead(pino)
Lê o estado digital do pino (HIGH ou LOW).
digitalWrite(pino, valor)
Escreve HIGH ou LOW no pino digital.
analogRead(pino)
Lê valor analógico (0–1023) de um pino A0–A5.
analogWrite(pino, valor)
Escreve PWM (0–255) em pinos marcados com ~.
Serial.begin(baud)
Inicia comunicação serial (ex.: 9600 bps).
Módulos 07–08
Selecção e Repetição
Estrutura IF / IF-ELSE
if (temperatura > 80) {
disparar_alarme();
} else if (temperatura > 60) {
ligar_ventilador();
} else {
manter_normal();
}
Estrutura Switch/Case
switch (estado) {
case 1: ligar_motor(); break;
case 2: desligar_motor(); break;
case 3: modo_emergencia();break;
default: erro();
}
Ciclo FOR
for (int i = 0; i < 10; i++) {
digitalWrite(pinos[i], HIGH);
delay(200);
digitalWrite(pinos[i], LOW);
}
Ciclo WHILE
while (sensor_activo()) {
ler_sensor();
delay(100);
}
Ciclo DO-WHILE
int valor;
do {
valor = analogRead(A0);
Serial.println(valor);
delay(100);
} while (valor < 512);
Tens dúvidas sobre Informática Aplicada?
Envia-me uma mensagem — respondo a estudantes e colegas.
Contactar