Você está na página 1de 4

/*=================================================================================================================

PROGRAMAO PARA ACIONAMENTO BIMANUAL COM SIMULTANEIDADE, AJUSTE DE TEMPERATURA, TEMPORIZADOR e CONTADOR DE
PEAS DE UMA MQUINA DE MOLDAR FLOR (CONCLUDO)
=================================================================================================================*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
void setup(){
/* PINOS DO ARDUINO USADOS PARA O LCD: 12, 11, 5, 4, 3, 2 */
pinMode(0, INPUT); // Entrada: pull-up do boto 1
pinMode(1, INPUT); // Entrada: pull-up do boto 2
pinMode(13,OUTPUT);// sada rel que aciona a carga
pinMode(9, OUTPUT);// sada: led que indica que o boto 1 est funcionando
pinMode(10,OUTPUT);// sada: led que indica que o boto 2 est funcionando
pinMode(8, OUTPUT);// sada rel de temperatura
pinMode(A0,INPUT); // pot. do temporizador
pinMode(A1,INPUT); // pot. da temperatura desejada
pinMode(A2,INPUT); // pot. da temperatura atual
pinMode(6, INPUT); // entrada pull-up do boto de emergncia
pinMode(7, INPUT); // entrada pull-up do sinal do sensor indutivo
Serial.begin(9600);
lcd.begin(20,4);
}
/*=====================================================================================================================*/
float temperatura1 = 0; // Ajuste da temperatura desejada
float temperatura2 = 0; // Temperatura Atual
float segundos = 0; // Tempo de ao do cilindro pneumtico
int cont = 0;
// Contador de peas
/*FUNO QUE ATIVA ATIVA SADA PARA O REL DE ACIONAMENTO DO CILINDRO=================================================*/
void ativa(){
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(13,HIGH);
delay(analogRead(A0)*(30000/1023));
if(digitalRead(7)==LOW){
cont = cont + 1;
lcd.setCursor(12,3);
lcd.print(cont);
}
digitalWrite(13,LOW);
}

/*=====================================================================================================================*/
void calculos(){
temperatura1 = (analogRead(A1)*(250.00/1023.00));
temperatura2 = (analogRead(A2)*(250.00/1023.00));
segundos = ((analogRead(A0)*(30000.00/1023.00))/1000.00);
}
/*=====================================================================================================================*/
void analiseTemp(){
if(temperatura2 < (temperatura1)){
digitalWrite(8,HIGH);
}
if(temperatura2 > temperatura1){
digitalWrite(8,LOW);
}
if(temperatura2 == temperatura1){
digitalWrite(8,LOW);
}
}
/*=====================================================================================================================*/
void escritas(){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("T. Config: ");
lcd.setCursor(12,0);
lcd.print(temperatura1);
lcd.setCursor(17,0);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("T. Real: ");
lcd.setCursor(12,1);
lcd.print(temperatura2);
lcd.setCursor(17,1);
lcd.print("C");
lcd.setCursor(0,2);
lcd.print("Tempo: ");
lcd.setCursor(11,2);
lcd.print(segundos);
lcd.setCursor(15,2);
lcd.print("seg");
lcd.setCursor(0,3);
lcd.print("Quantidade: ");

lcd.setCursor(12,3);
lcd.print(cont);
}
/*=====================================================================================================================*/
void mostraTeste(){
if((digitalRead(0)==HIGH)&&(digitalRead(1)==HIGH)){
digitalWrite(9,LOW);
digitalWrite(10,LOW);
}
if((digitalRead(0)==HIGH)&&(digitalRead(1)==LOW)){
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
}
if((digitalRead(0)==LOW)&&(digitalRead(1)==HIGH)){
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
}
if((digitalRead(0)==LOW)&&(digitalRead(1)==LOW)){
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
}
}
void serial(){
if(Serial.available()>0){
if(Serial.read() == 65){
Serial.print("Temperatura Desejada: ") + Serial.print(temperatura1) + Serial.print(" Temperatura Atual: ") + Serial.println(temperatura2) +Serial.print("Tempo de
acao do cilindro: ") + Serial.println(segundos) + Serial.print("Quantidade pecas: ")+Serial.print(cont);
}
}
}
/*=====================================================================================================================*/
void loop(){
int i = 0;
calculos();
analiseTemp();
escritas();
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(13,LOW);

if(digitalRead(0)==LOW){//Teste de boto 1
while(digitalRead(0)==LOW){
i = i+1;
digitalWrite(9,HIGH);//Sada de teste de boto 1
if(digitalRead(1)==LOW){//Teste de boto 2
digitalWrite(10,HIGH);//Sada de teste de boto 2
}
delay(20);
if(i<8){
if((digitalRead(1)==LOW)&&(digitalRead(0)==LOW)){
ativa();
}
}
mostraTeste();
}
}
/*=====================================================================================================================*/
if(digitalRead(1)==LOW){//Teste de boto 2
//i = 0;
while(digitalRead(1)==LOW){
i = i+1;
digitalWrite(10,HIGH);//Teste de boto 2
if(digitalRead(0)==LOW){//Teste de boto 1
digitalWrite(9,HIGH);//Sada de teste de boto 1
}
delay(20);
if(i<8){
if((digitalRead(1)==LOW)&&(digitalRead(0)==LOW)){
ativa();
}
}
mostraTeste();
}
}
delay(90);
serial();
}
//*======================================================================================================================
FIM DO PROGRAMA
======================================================================================================================*/

Você também pode gostar