Projeto de instrumentação emmanuele e marcos programa

Page 1

/*Projeto de Instrumentação Emmanuele e Marcos Esse programa lê a entrade de temperatura de um NTC e controla a temperatura de uma caldeira, atuando em uma resistência de aquecimento.

O circuito: Um transdutor de entrada do sinal no pino A3, e saída digital PWM 6, com resultados mostrados em um LCD e atuaçao humana através dos botões desse shield.

Projeto feito para a Disciplina de Instrumentação do Professor Márlio Bonfin Criado 2013 Marcos C Matos

*/

#include <LiquidCrystal.h>

// Funciona o LCD

#include <LCDKeypad.h>

// Funciona os botões

// LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // ativa o lcd LCDKeypad lcd;

const int sensor = A1; const int saida = 9; const int aliment = A2;

// sensor NTC // Saida PWM // alimentaçao


int sens1 = 0;

// variavel sensor

int sens2 = 0; int sens3 = 0; int sens4 = 0; int sens5 = 0; int sensFinal = 0;

float tensao = 0; float temperatura = 0;

// variavel tensao // variavel da temperatura

//criando os caracteres especiais

byte c_up[8] = { B00100, B01110, B10101, B00100, B00100, B00100, B00100, B00100, };


byte c_down[8] = { B00100, B00100, B00100, B00100, B00100, B10101, B01110, B00100, };

byte c_select[8] = { B00000, B01110, B11111, B11111, B11111, B11111, B01110, B00000, };

byte c_left[8] = { B00001, B00110, B01100, B11111,


B11111, B01000, B00110, B00001, }; byte c_right[8] = { B10000, B01100, B00010, B11111, B11111, B00010, B01100, B10000, };

// fim dos caracteres

void setup () { set.pinMode (A1,INPUT); set.pinMode (A2,OUTPUT);

lcd.createChar(1,c_select); lcd.createChar(2,c_up); lcd.createChar(3,c_down);


lcd.createChar(4,c_left); lcd.createChar(5,c_right); lcd.begin(16, 2); lcd.clear (); lcd.setCursor (3,0); lcd.print ("Projeto de"); lcd.setCursor (1,2); lcd.print ("Instrumentacao"); delay (3000); lcd.clear (); lcd.setCursor(2,0); lcd.print ("Emmanuele L."); lcd.setCursor (3,1); lcd.print ("& Marcos C."); delay (3000); lcd.clear ();

lcd.setCursor (3,0); lcd.print ("Calibracao?"); lcd.setCursor (3,1); lcd.print ("Sim ou Nao"); lcd.setCursor (1,1); lcd.write (4); lcd.setCursor (14,1); lcd.write (5); int buttonPressed; waitButton();


waitReleaseButton(); do { buttonPressed=waitButton(); } while(!(buttonPressed==KEYPAD_LEFT || buttonPressed==KEYPAD_RIGHT )); lcd.setCursor(0,1); lcd.write(buttonPressed==KEYPAD_LEFT?4:' '); lcd.write(' '); lcd.write(buttonPressed==KEYPAD_RIGHT?5:' '); lcd.write(' '); delay(50); waitReleaseButton(); if (buttonPressed==KEYPAD_LEFT) { lcd.clear (); lcd.print(" Calibrando"); lcd.setCursor (10,1); lcd.print ("V"); lcd.setCursor (1,1); calibracao();

} else if (buttonPressed==KEYPAD_RIGHT); { lcd.clear (); lcd.print ("ATUAL OBJET ER");


if (buttonPressed==KEYPAD_SELECT); { lcd.setCursor(3,1); lcd.write (223); lcd.print ("C"); lcd.setCursor(10,1); lcd.write (223); lcd.print ("C"); } }

// botão pra esquerda, entra na calibraçao // calibracao > le o analog 2 e coloca na tela o valor em tensao lido. botao seleciona finaliza e termina o setup +//botão pra direita, acaba o void setup ok

}

void loop () // aonde ele lê a temperatura atual, pede a temperatura objetivo e através de controle, finalmente alcança

{ lcd.setCursor (0,1); lcd.print(millis()/1000);


lcd.setCursor (7,1); lcd.print(millis()/2000);

}

int waitButton() // rotina de esperar o bot達o { int buttonPressed; waitReleaseButton; lcd.blink(); while((buttonPressed=lcd.button())==KEYPAD_NONE) { } delay(50); lcd.noBlink(); return buttonPressed; }

void calibracao() // nao funcionando direito, verificar pq { int buttonPressed; do { LeSensor(); tensao = sensFinal; lcd.setCursor (3,1);


lcd.write (tensao); delay (100); } while(buttonPressed=lcd.button()!=KEYPAD_SELECT); {

} } int LeSensor()

// rotina para ler o sensor, é puxada toda vez que precisa

{ sens1 = analogRead (sensor); delayMicroseconds(150); sens2 = analogRead (sensor); delayMicroseconds(150); sens3 = analogRead (sensor); delayMicroseconds(150); sens4 = analogRead (sensor); delayMicroseconds(150); sens5 = sens1+sens2+sens3+sens4; sensFinal = sens5 << 1; }

void waitReleaseButton() // acho que é para esperar soltar o botão { delay(100); while(lcd.button()!=KEYPAD_NONE) {


} delay(100); }


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.