Mudanças entre as edições de "MCO018703 2018 2 AULA12"
Ir para navegação
Ir para pesquisar
Linha 63: | Linha 63: | ||
exemplo, aciona o LED quando passar de 30°C e apaga quando for menor 30°C. | 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) | Acompanhe os valores lidos no monitor serial do Arduíno. (3) | ||
+ | |||
+ | ;Código Fonte | ||
+ | |||
+ | <syntaxhighlight lang=c> | ||
+ | #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); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
Edição das 17h23min de 19 de novembro de 2018
Exercícios - Avaliação Teórica de 2017-2
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. (4 pontos)
- 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(500); //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);
}
}
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);
}
void loop()
{
float valor;
int val = analogRead(0);
valor = (val*5.0)/1023;
Serial.println(valor);
}
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);
}