Você está na página 1de 20

Sistemas

microcontrolados
µC
Aula 6

1
Ambiente de desenvolvimento
• Acessar o site abaixo e criar uma conta:
https://www.tinkercad.com/

2
Atividade 1

3
Digital x Analógico
relembrando...
• O Arduino trabalha com entradas e saídas de sinais;

• Funções em C:
– digitalRead(pino);
– digitalWrite(pino, estado); LOW ou HIGH
– analogRead(pino);
– analogWrite(pino, valor); 0 até 255

4
Tipos de variáveis
Tipo Definição
void Indica tipo indefinido. Usado geralmente para informar
que uma função não retorna nenhum valor.
boolean Os valores possíveis são true (1) e false (0). Ocupa um byte
de memória.
char Ocupa um byte de memória. Pode ser uma letra ou um
número. A faixa de valores válidos é de -128 a 127.
unsigned O mesmo que o char, porém a faixa de valores válidos é de
char 0 a 255.
int Armazena números inteiros e ocupa 16 bits de memória (
2bytes). A faixa de valores é de -32.768 a 32.767.
unsigned O mesmo que o int, porém a faixa de valores válidos é de 0
int a 65.535.
5
word O mesmo que um unsigned int.
Tipos de variáveis
Tipo Definição
long Armazena números de até 32 bits (4 bytes). A faixa de
valores é de -2.147.483.648 até 2.147.483.647.
unsigned O mesmo que o long, porém a faixa de valores é de 0 até
long 4.294.967.295.
short Armazena número de até 16 bits (2 bytes). A faixa de
valores é de -32.768 até 32.767.
float Armazena valores de ponto flutuante (com vírgula) e
ocupa 32 bits (4 bytes) de memória. A faixa de valores é
de -3.4028235E+38 até 3.4028235E+38
double O mesmo que o float.

6
Variáveis
Declaração de uma variável do tipo
int pino13 = 13;
inteiro que concatena o pino 13
int tempo = 500;
void setup()
{
// comentário em linha única
pinMode(pino13, OUTPUT);
}
void loop()
{
/* comentário em bloco (início)
executar um programa que faça o LED oscilar
usando a variável tempo
*/ comentário em bloco (fim)
} 7
Serial Monitor

void setup() Função de


{ configuração da porta
Serial.begin(9600); de comunicação serial
Serial.println(“Ola Mundo!”);
} Função de impressão
void loop() no serial monitor
{
// em branco
}

8
Atividade 2

• Um carro se desloca de Florianópolis – SC a


Curitiba – PR. Sabendo que a distância entre as
duas cidades é de 300 km e que o percurso
iniciou as 7 horas e terminou ao meio dia, calcule
a velocidade média do carro durante a viagem:
• Imprima na variável vm.

9
Operador Operação
+ Adição

Operadores aritméticos, - Subtração

relacionais e lógicos
* Multiplicação
/ Divisão
% Resto da divisão inteira
> Maior que
< Manor que
>= Maior ou igual a
<= Menor ou igual a
== Igual a
!= Diferente a
&& E
|| OU
10
! NÃO
Comandos – IF ELSE

11
Header

if / else if / else if / else

if(input <= 500) if(input <= 500)


{ {
fazer A fazer A
} }
else else if(input >= 1000)
{ {
fazer B fazer B
} }
else
{
fazer C
} 12
Atividade 3

• Desenvolva um
programa que se o
botão for pressionado
o LED acende e apaga
quando o botão for
solto.

13
Push Button - Chave Táctil

14
Configuração: pull-up e pull-down

15
Atividade 3 – PULLDOWN (hardware)
int pino2 = 2;
int pino3 = 3;
void setup()
{
pinMode(pino2, INPUT); // pino 2 configurado como entrada
pinMode(pino3, OUTPUT); // pino 3 configurado como saída
}
void loop()
{
if(digitalRead(pino2) == HIGH) // botão pressionado
{
digitalWrite(pino3, HIGH);
}
else
{
digitalWrite(pino3, LOW);
}
}

16
Atividade 3 – PULLUP (software)
int pino2 = 2;
int pino3 = 3;
void setup()
{
pinMode(pino2, INPUT_PULLUP); // pino 2 configurado como entrada
pinMode(pino3, OUTPUT); // pino 3 configurado como saída
}
void loop()
{
if(digitalRead(pino2) == HIGH) // botão pressionado
{
digitalWrite(pino3, HIGH);
}
else
{
digitalWrite(pino3, LOW);
}
}

17
Desafio 1
• Desenvolver um programa para simular um semáforo.
• Considerar um semáforo para o veículo e um semáforo para o
pedestre.
• O LED verde para o veículo fica sempre aberto.
• Quando o pedestre pressiona o botão, então depois de 5 seg o LED
amarelo acende por 2 seg e na sequência o LED verde do pedestre
fica ligado por 3 seg, assim como o LED vermelho do veículo. Depois
de encerrar este ciclo, o semáforo do veículo deve voltar ao ciclo
inicial.

18
Desafio 2
• Desenvolver um programa para simular um semáforo.
• Considerar o cruzamento da figura abaixo. No entanto, utilizar apenas um
semáforo para o veículo e um semáforo para o pedestre para simplificar a
programação.
• O semáforo do veículo funciona com os seguintes tempos. 5 seg para o LED
verde, 2 seg para o LED amarelo e 5 seg para o LED vermelho.
• O semáforo do pedestre fica sempre fechado. Caso o pedestre pressione o
botão, então no próximo ciclo, deve-se liberar o LED verde para o pedestre
por 3 seg.

19
Lembrete...

• Os desafios são para entregar!

20

Você também pode gostar