sábado, 4 de outubro de 2014

Projeto Calorímetro: Esquema Elétrico e Algoritmo.

Turma 126;
Engenharia da Computação;
II/ semestre/ 2014;
Integrantes:
Henrique klumb; Michel Madruga; Morgana Macedo; Rociele Silveira; Tibiriçá dos Santos.

Materiais Utilizados:
- Dois sensores de temperatura LM 35;
- Protoboard;
- Aduino UNO;
- Display LCD 16 X 2 (QC1602A);
- Dois potenciômetros.

Esquema Elétrico:



DISPLAY LCD (QC1602A)
PORTAS ARDUINO UNO
VSS
GND
VDD
5V
V0
PORTA X DO PRIMEIRO POTENCIÔMETRO
RS
PORTA DIGITAL 9 DO ARDUINO
RW
GND
E
PORTA DIGITAL 8 DO ARDUINO
D4
PORTA DIGITAL 5 DO ARDUINO
D5
PORTA DIGITAL 4 DO ARDUINO
D6
PORTA DIGITAL 3 DO ARDUINO
D7
PORTA DIGITAL 2 DO ARDUINO
A
PORTA X DO SEGUNDO POTENCIÔMETRO
K
GND

 
POTENCIÔMETRO
PORTAS ARDUINO UNO
PRIMEIRO POTENCIÔMETRO - PORTA ESQUERDA
GND
PRIMEIRO POTENCIÔMETRO - PORTA CENTRAL
V0 DISPLAY LCD
PRIMEIRO POTENCIÔMETRO - PORTA DIREITA
5V
SEGUNDO POTENCIÔMETRO - PORTA ESQUERDA
GND
SEGUNDO POTENCIÔMETRO - PORTA CENTRAL
A DISPLAY LCD
SEGUNDO POTENCIÔMETRO - PORTA DIREITA
5V

 
LM 35
PORTAS ARDUINO UNO
PRIMEIRO SENSOR - PORTA ESQUERDA
5V
PRIMEIRO SENSOR - PORTA CENTRAL
PORTA ANALOGICA A0 DO ARDUINO  
PRIMEIRO SENSOR - PORTA DIREITA
GND
SEGUNDO SENSOR - PORTA ESQUERDA
5V
SEGUNDO SENSOR - PORTA CENTRAL
PORTA ANALOGICA A1 DO ARDUINO
SEGUNDO SENSOR - PORTA DIREITA
GND








Algoritmo:


#include <LiquidCrystal.h> //incluir as bibliotecas nativas do arduino - a do display
#include <Boards.h>
#include <Firmata.h>// a dos sensores

int pinoLM35 = 0; // Pino Analogico onde vai ser ligado a porta do meio do LM35
int pino2LM35=1;// pino analogico onde será ligadaa porta do meio do segundo LM35
int valorLido = 0;// Variavel onde se ira guardar o valor lido pelo primeiro LM53
int ValorLido2=0; // Variavel onde se ira guardar o valor lido pelo segundo LM53
int LED = 13; // Pino Do LED da Board Do Arduino
float temperatura = 0; //Variavel onde vai ser guardada a Temperatura
float temperatura2=0;
LiquidCrystal lcd(9, 8, 5, 4, 3, 2);//portas operantes do display como dito no esquema acima

void setup() {
  //Inicializando o LCD e informando o tamanho de 16 colunas e 2 linhas
  //que é o tamanho do LCD QC1602A usado neste projeto.
  lcd.begin(16, 2);
}

void loop() {
if(CheckTemp() > 22){ //Verifica se a temperatura é maior que 20, e se for acende o Led Da Board do Arduino.
digitalWrite(LED, HIGH); //Acende o led da board do Arduino
}
if(CheckTemp() <= 21){ //Verifica se a temperatura é menor ou igual a 19, e se for apaga o Led Da Board do Arduino.
digitalWrite(LED, LOW); //Apaga o led da board do Arduino
}

}
float CheckTemp(){
lcd.clear();
valorLido = analogRead(pinoLM35); //Coloca na Variável valorLido o que está a ser lido pelo sensor.
temperatura = (valorLido * 0.0048); /// conversão através de cálculos das entradas do LM 35
temperatura = temperatura * 100; /// Conversão do valor obtido através da porta analógica para um valor “usavel”
lcd.print("1) ºc: ");// coloca no display "1) ºc"
lcd.println(temperatura); // Imprime no Serial monitor o valor da variável temperatura

lcd.setCursor(0,1); //muda a linha do display
ValorLido2=analogRead(pino2LM35);
temperatura2=(ValorLido2 * 0.0048);
temperatura2=temperatura2 * 100;
lcd.print("2) ºc: ");
lcd.println(temperatura2);
delay(1000);
return temperatura;

return temperatura2; // Retorna A temperatura
}