Bom dia leitores, e um ótimo ano novo á todos!. Com este calor que tem feito no verão (e sabendo que tem muito mais por vir) eu decidi que queria ter um termômetro barato e simples sempre á mão; e o melhor: feito por mim!. Por isso decidi fazer um termômetro somente com led’s e o chip do Arduino Pro Mini ou UNO (ATMEGA328P), para que fique barato e ainda me lembre do sistemas de numeração binária, toda vez que eu olhar para ele.
Porque um termômetro binário? por dois motivos: é muito legal ter um equipamento feito por você mesmo, e que funciona! e também porque eu já havia feito um projeto similar para um concurso da SeeedStudio láaá em 2014: veja aqui. Uma imagem do protótipo de relógio binário que fiz naquela época está abaixo.
Desta vez eu resolvi ensinar a montagem deste termômetro utilizando um Arduino Pro Mini, pois é bem menor que o UNO (só em tamanho, mas não em capacidade), perfeito para esta pequena montagem.
O circuito completo deste artigo pode ser visto na imagem abaixo, e contém 6 LED’s (conectados ao Port B do Arduino) com um resistor em série com cada LED e um sensor de temperatura KTY81-110 com um resistor de 1k ohm em série. Obviamente qualquer outro sensor de temperatura pode ser utilizado (LM35, DHT11, DS18B20, LM75AD), bastando para isso adaptar a parte do código que faz a leitura analógica do sensor.
Como o Arduino Pro Mini não tem conversor USB para Serial embutido, vou utilizar um Arduino UNO (sem o chip) para fazer a gravação do Pro mini. Veja imagem abaixo a forma de conexão para gravação do código.
A pinagem utilizada na imagem acima foi a seguinte:
– Fio Vermelho: 5V do UNO para o 5V do Pro mini
– Fio Preto: GND do UNO para o GND do Pro mini
– Fio Verde: Reset do UNO para o Reset do Pro mini
– Fio Amarelo: TX(1) do UNO para o TX0 do Pro mini
– Fio Laranja: RX(0) do UNO para o RX1 do Pro Mini
O processo de gravação do código não tem segredo, basta escolher a placa “Arduino Pro Mini” na IDE do Arduino (ao invés de escolher Arduino UNO). Lembre de retirar o chip ATMEGA328P da placa do Arduino UNO antes de ligar a placa, conforme a imagem acima. O código é pequeno e simples, pois faz uso de manipulação direta das portas do portB do Arduino.
#include <avr/io.h>
#include <avr/interrupt.h>
int sensorPin = A0; // Porta analogica para conexao do sensor KTY81
int sensorValue = 0; // Variavele para calculo da temperatura ambiente
byte binaryValue= B00000000; // Valor binario que sera passado aos leds
void setup()
{
Serial.begin(9600); // inicia comunicacao serial com o PC, para debugging
DDRB = DDRB | B00111111; // seta 6 portas do portB como saida
}
void loop()
{
sensorValue = (analogRead(sensorPin)*0.0048875*111.2)-256.025; // equacao para calculo da temperatura do KTY81
binaryValue= byte(sensorValue);
PORTB = binaryValue;
Serial.println(sensorValue); // visualiza temperatura na porta serial
delay(2000); // espera 2 segundos
}
Explicando o código:
– A linha “DDRB = DDRB | B00111111;” defique que os ultimos 6 pinos do portB são saídas, onde vamos conectar os LED’s.
– A linha “sensorValue = (analogRead(sensorPin)*0.0048875*111.2)-256.025;” calcula a temperatura em graus Celsius, a partir da leitura da tensão sobre o sensor KTY81.
– A linha “binaryValue= byte(sensorValue);” transforma o valor da temperatura em informação binário (0’s e 1’s).
– A linha “PORTB = binaryValue;” é a parte mais importante do programa, pois joga o valor da temperaratura (já em binário) nos LED’s.
Funcionamento do circuito: cada LED aceso tem um “peso” em binário, sendo:
– 1 para o primeiro LED
– 2 para o segundo LED
– 4 para o terceiro LED
– 8 para o quarto LED
– 16 para o quinto LED
– 32 para o sexto LED
Sendo assim, a temperatura do ambiente será a soma dos valores atribuídos aos LED’s ACESOS. Exemplos:
Para resumir a experiência de hoje: utilizando apenas um sensor de temperatura (KTY81), 6 LED’s e um Arduino Pro Mini é possível criar um simpres termômetro binário. Um ótimo projeto para feiras de ciências ou até mesmo para ter na mesa ou na bancada!.
– Para comprar o Arduino Pro Mini em nosso Parceiro ICStation (da China), clique no texto: ICStation ATmega328 Pro Mini Compatible Arduino
– Para comprar os cabinhos coloridos (jumpers) em nosso Parceiro ICStation (da China), clique no texto: 1pcs Dupont Wire 10CM 2.54MM Female to Male 1P-1P Jumper Cable For Arduino
Termômetro binário com Arduino Pro Mini (ATMEGA328P)
Olá!
Estou aprendendo agora a fazer programação de arduino.
Se eu quizesse instalar um potenciometro de 10K no lugar do termostato, e usar somente 4 leds, que irão contar de 1 a 8 em binário, como ficaria a programação?
Abraço!!