0% acharam este documento útil (0 voto)
13 visualizações5 páginas

Projeto1 Copy 20231025173602

O código é um programa para Arduino que controla um motor com base em condições de temperatura e interlocks. Ele utiliza um LCD para exibir mensagens sobre o estado do motor e possui funções para ligar e desligar o motor, além de monitorar a temperatura. O sistema inclui segurança contra superaquecimento e um buzzer para sinalização.

Enviado por

Cleiton Resende
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
13 visualizações5 páginas

Projeto1 Copy 20231025173602

O código é um programa para Arduino que controla um motor com base em condições de temperatura e interlocks. Ele utiliza um LCD para exibir mensagens sobre o estado do motor e possui funções para ligar e desligar o motor, além de monitorar a temperatura. O sistema inclui segurança contra superaquecimento e um buzzer para sinalização.

Enviado por

Cleiton Resende
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato TXT, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 5

#include <EEPROM.

h>
#include <elapsedMillis.h>

//Biblioteca para o LCD no arduino


#include <LiquidCrystal.h>

//Pinos de comunicação LCD e Arduino


const int rs = 8, e = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;

LiquidCrystal lcd(rs, e, d4, d5, d6, d7);

//declaração das variáveis

int RA = 5+1+2+9+7+4+3;
int LED_Interlock = 29;
int Chave_ON_OFF = 21;
int LED_Falha = 30;
int Chave_INTERLOCK = 20;
int BUZZER = 25;
int Rele_k1 = 26;
int Rele_k2 = 27;
int Rele_k3 = 28;

bool Bloqueio_Temperatura;
bool Motor_Bloqueado;
bool Motor_Ligado;
bool Chave_Bloqueio;
bool botaoPressionado;

float TMANCAL;
float TMOTOR;
float TMAXMANCAL = 80;
float TMAXMOTOR = 60;

unsigned long tempo = 0;

// saídas digitais
void setup(){

pinMode(LED_Interlock, OUTPUT);
pinMode(LED_Falha, OUTPUT);
pinMode(Chave_ON_OFF, INPUT);
pinMode(Chave_INTERLOCK, INPUT);
pinMode(BUZZER, OUTPUT);
pinMode(Rele_k1, OUTPUT);
pinMode(Rele_k2, OUTPUT);
pinMode(Rele_k3, OUTPUT);

Chave_Bloqueio = false;
Motor_Bloqueado = false;
Motor_Ligado = false;
botaoPressionado = false;

//configuração pontos LCD


lcd.begin(16, 2);
//configuração das paralizações de contatores
attachInterrupt(digitalPinToInterrupt (20), Interlock , CHANGE);

//Apresentação do aluno
Apresentacao();

//Entrada dos sensores de temperatura


TMANCAL = analogRead(A8)/2.10;
TMOTOR = analogRead(A9)/2.10;

//função de espera
void espera(int msegundos){
tempo=millis();
while(millis() < tempo + msegundos){}
}

//função de interlock
void Interlock()
{
Chave_Bloqueio = !Chave_Bloqueio;
delay (10);
}

void loop()
{

if (Chave_Bloqueio || Bloqueio_Temperatura)

{
Motor_Bloqueado = true;
}

if (!Chave_Bloqueio && !Bloqueio_Temperatura)

{
Motor_Bloqueado = false;
digitalWrite (LED_Interlock, LOW);
digitalWrite (LED_Falha, LOW);

//bloqueio temperatura

if (TMANCAL > TMAXMANCAL || TMOTOR > TMAXMOTOR)


{
Bloqueio_Temperatura = true;
}
if (TMANCAL < TMAXMANCAL && TMOTOR < TMAXMOTOR)
{
Bloqueio_Temperatura = false;
}

if (digitalRead(Chave_ON_OFF))
{
if (!botaoPressionado)
{
botaoPressionado = true;

if (Motor_Ligado)
{
Desliga_Motor();

} else if (!Motor_Bloqueado && !Bloqueio_Temperatura)


{
Liga_Motor();
}
}
} else {
botaoPressionado = false;
}

//partida do motor

if (!Motor_Ligado && !Motor_Bloqueado)


{
lcd.setCursor(0, 0);
lcd.print(" Motor Desligado ");
lcd.setCursor(0, 1);
lcd.print(" ");

digitalWrite (LED_Interlock, LOW);


digitalWrite (LED_Falha, LOW);

}
//Mansagem bloqueio

if (Motor_Bloqueado)
{
lcd.setCursor(0, 0);
lcd.print(" Motor Bloqueado ");
lcd.setCursor(0, 1);
lcd.print(" ");
digitalWrite(LED_Interlock, HIGH);
Desliga_Motor();
}

// Mensagem Bloqueio temperatura


if (Bloqueio_Temperatura)
{
lcd.setCursor(0, 0);
lcd.print(" Motor Bloqueado ");
lcd.setCursor(0, 1);
lcd.print(" ");
digitalWrite(LED_Falha, HIGH);

Desliga_Motor();
}
//Leitura de temperatura

TMANCAL = analogRead(A8)/2.06;
TMOTOR = analogRead(A9)/2.06;

if (Motor_Ligado)
{
lcd.setCursor(9, 0);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print(" T.MANCAL ");
lcd.print(TMANCAL);
lcd.setCursor(9, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" TMOTOR ");
lcd.print(TMOTOR);
}
}

void Liga_Motor()
{
digitalWrite(Rele_k1, HIGH);
digitalWrite(Rele_k3, HIGH);

for (int i=0; i<=RA; i++)

{
lcd.setCursor(0, 0);
lcd.print("PARTINDO O MOTOR");
lcd.setCursor(0, 1);
lcd.print("EM ESTRELA");
lcd.setCursor(11, 1);
lcd.print(" ");
lcd.setCursor(11, 1);
lcd.print(RA - i);
delay(1000);
}

lcd.setCursor(0, 0);
lcd.print("FECHANDO O MOTOR");
lcd.setCursor(0, 1);
lcd.print("EM TRIANGULO");
digitalWrite(Rele_k3, LOW);
delay(1000);
digitalWrite(Rele_k2, HIGH);
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");

Motor_Ligado = true;
}

void Desliga_Motor()
{
digitalWrite(Rele_k1, LOW);
digitalWrite(Rele_k2, LOW);
digitalWrite(Rele_k3, LOW);
Motor_Ligado = false;

void Apresentacao()
{
digitalWrite(BUZZER, HIGH);
delay(50);
digitalWrite(BUZZER, LOW);
delay(50);
digitalWrite(BUZZER, HIGH);
delay(50);
digitalWrite(BUZZER, LOW);
delay(50);

lcd.setCursor(0, 0);
lcd.print(" UNIUBE ");
lcd.setCursor(0, 1);
lcd.print("Proj.Integrado I");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" ENG. ELETRICA ");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" SAMUEL PACHECO ");
lcd.setCursor(0, 1);
lcd.print(" RA 5129743 ");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" RELE ELETRONICO");
lcd.setCursor(0, 1);
lcd.print("PART. EST-TRIANG");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" SEJA BEM VINDO ");
delay(2000);
lcd.setCursor(0, 0);
digitalWrite(BUZZER, HIGH);
delay(50);
digitalWrite(BUZZER, LOW);
delay(50);
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
}

Você também pode gostar