MCO018703 2025 1 AULA13
1 Lista de Exercícios
- OBJETIVO
- Se preparar para a segunda avaliação que será prática.
1.1 Questão 1
Faça um programa em Arduíno que utilize push-button e LED de modo que quando a chave for pressionada o estado do LED mude. Por exemplo, uma vez pressionado a chave o LED ascende, outra vez, o LED apaga.
- Código fonte
int guarda_estado = LOW; // variável para armazenar valores do pushbutton
void setup() {
pinMode(5, OUTPUT);
pinMode(10, INPUT);
}
void loop(){
int estado = digitalRead(10);
if (estado == LOW) {
guarda_estado = !guarda_estado; // inverte valor da variável variable_buttonEstado
delay(200); //esperera o tempo de 200ms para evitar que haja várias vezes alterações
}
if (guarda_estado == HIGH) {
digitalWrite(5, HIGH);
}
else {
digitalWrite(5, LOW);
}
}
1.2 Questão 2
Faça um programa em Arduíno que leia dados do potenciômetro para temporizar o LED. O potenciômetro no máximo, pisca devagar e no mínimo, pisca mais rápido. (3 pontos)
- Código fonte
void setup()
{
Serial.begin(9600);
pinMode(5, OUTPUT);
}
void loop()
{
float valor;
int val = analogRead(0);
valor = (val*5.0)/1023;
Serial.println(valor);
digitalWrite(5, HIGH);
delay(val);
digitalWrite(5, LOW);
delay(val);
}
1.3 Questão 3
Faça um programa em Arduíno que leia dados de sensor NTC e acione o LED no caso de a temperatura em graus Celsius esteja maior que setup de temperatura. Por exemplo, aciona o LED quando passar de 30°C e apaga quando for menor 30°C. Acompanhe os valores lidos no monitor serial do Arduíno. (3)
- Código Fonte
#include <math.h>
const int sensor = A0;
double tempCelsius(int valorNTC)
{
double temp;
temp = log(((10240000/valorNTC)-10000)); // para NTC de 10k
temp = 1/(0.001129148+(0.000234125+(0.0000000876741*temp*temp))*temp);
temp=temp-273.15; // Coonverte Kelvin para Cesius
return temp;
}
void setup()
{
Serial.begin(9600);
pinMode(5, OUTPUT);
}
void loop()
{
int valor=analogRead(sensor);
double c=tempCelsius(valor);
Serial.println(c);
if (c>30)
digitalWrite(5, HIGH);
else
digitalWrite(5, LOW);
delay(250);
}
2 Questões da Avaliação Prática 1 - AP1
2.1 Questão 1
Utilizando o kit Arduíno com protoboard e um conjunto de componentes contendo: dois botões, um LED e três resistores adequados, faça um programa em Arduino que ao clicar no botão 1 acenda o LED e ao clicar no botão 2 apague o mesmo LED. (1/3)
void setup(){
pinMode(X, INPUT);
pinMode(Y, INPUT);
pinMode(Z, OUTPUT);
}
void loop(){
int botao1=digitalRead(X);
digitalWrite(Z, HIGH);
int botao2=digitalRead(Y);
digitalWrite(Z, LOW);
}
2.2 Questão 2
Utilizando o kit Arduíno com protoboard e um conjunto de componentes contendo: um LM35 (sensor de temperatura), um LED e um resistor adequado. Faça um programa em Arduino que leia dados do sensor LM35 e acione o LED quando a temperatura em graus Celsius for maior que o setup de temperatura. Por exemplo, aciona o LED quando passar, por exemplo, de 24°C e apaga quando for menor 24°C. Acompanhe os valores lidos no monitor serial do Arduino e altere o valor de setup com a referência da temperatura na sala no momento do experimento. (1/3)
void setup() {
pinMode(X, OUTPUT);
Serial.begin(bps);
}
void loop() {
int valor=analogRead(Y);
float temp=(5.0*valor*100)/1024;
Serial.println(temp);
if (temp>24)
digitalWrite(X, HIGH);
else
digitalWrite(X, LOW);
delay(ms);
}
2.3 Questão 3
Utilizando o kit Arduíno com protoshield e um conjunto de componentes contendo: um potenciômetro, um LED e um resistor adequado. Faça um programa em Arduino que leia dados do potenciômetro para alterar a luminosidade (o brilho) do LED. O potenciômetro no máximo fica totalmente aceso e no mínimo, fica apagado. Lembrando que você deve usar uma porta PWM para isso e que o valor lido pelo potenciômetro varia de 0 até 1023. (1/3)
void setup()
{
pinMode(X, OUTPUT);
Serial.begin(bps);
}
void loop()
{
int val=analogRead(Y);
Serial.println(val);
int novovalor=map(val,0,1023,0,255);
analogWrite(pin_pwm, novovalor);
delay(10);
}