/**
Exemplo para demonstração uso do GDB
https://wokwi.com/projects/331909293817201235
O objetivo do código é acender o LED interno do Uno quando a temperatura
passar de 37℃. Erros foram introduzidos propositalmente para demonstrar
o uso do GDB:
- A comparação da temperatura em loop() está invertida
- O for em leTemperatura faz 4 ao invés de 5 leituras
Baseado no exemplo de Uri Shaked
https://wokwi.com/arduino/projects/299330254810382858
Assumes a 10K@25℃ NTC thermistor connected in series with a 10K resistor.
Copyright (C) 2022, Daniel Quadros
*/
const float BETA = 3950; // should match the Beta Coefficient of the thermistor
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
}
void loop() {
float temperatura = leTemperatura();
if (temperatura < 37.0) {
digitalWrite(LED_BUILTIN, HIGH);
} else {
digitalWrite(LED_BUILTIN, LOW);
}
delay (300);
}
// Rotina para ler o sensor, faz 5 leituras e tira a média
float leTemperatura() {
float soma = 0.0;
for (int i = 1; i < 5; i++) {
soma += converte(analogRead(A0));
delay(20);
}
return soma/5;
}
// Converte leitura do ADC em graus celsius
// Fórmula copiada de https://docs.wokwi.com/pt-BR/parts/wokwi-ntc-temperature-sensor
float converte (int leitura) {
return 1 / (log(1 / (1023.0 / leitura - 1)) / BETA + 1.0 / 298.15) - 273.15;
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
ntc1:GND
ntc1:VCC
ntc1:OUT