Академический Документы
Профессиональный Документы
Культура Документы
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
void setup();
void loop();
void leer_gap();
int led_star=7;
int led_stop=6;
int opto_star=5;
int opto_pausa=4;
int opto_stop=3;
int opto_retro=2;
int tensor_hilo=8;
///////////////////////////////////////////////////////////////////////////////////
//////////////
////////////////////////////// SETUP
////////////////////////////////
Página 1
Control gap arduino 555
///////////////////////////////////////////////////////////////////////////////////
/////////////
void setup()
{
lcd.begin();
lcd.setCursor(0,0);
lcd.print("CONTROL DE ESPAC");
lcd.setCursor(0,1);
lcd.print("GAP DE ELECTROER");
delay(4000);
pinMode(boton_menu,INPUT);
pinMode(boton_subir,INPUT);
pinMode(boton_bajar,INPUT);
pinMode(led_star,OUTPUT);
pinMode(led_stop,OUTPUT);
pinMode(opto_star,OUTPUT);
pinMode(opto_pausa,OUTPUT);
pinMode(opto_stop,OUTPUT);
pinMode(opto_retro,OUTPUT);
pinMode(tensor_hilo,INPUT);
}
///////////////////////////////////////////////////////////////////////////////////
//////////////////////
//////////////////////// LOOP
//////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
///////////////////////
void loop()
{
//////////////// STOP
///////////////////////////////////////////////////////////////////////
while(estado==1)///
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("STOP CONT.GAP");
lcd.setCursor(0,1);
lcd.print("V GAP=");
Página 2
Control gap arduino 555
lcd.setCursor(6,1);
lcd.print(vgap);
digitalWrite(opto_pausa, HIGH);
delay(50);
digitalWrite(opto_stop, HIGH);
delay(50);
////estado
while(estado==1)///
{ digitalWrite(opto_star, LOW);
digitalWrite(opto_pausa, LOW);
digitalWrite(opto_stop, LOW);
digitalWrite(opto_retro, LOW);
lcd.setCursor(0,0);
lcd.print("star gap ");
lcd.setCursor(0,1);
lcd.print("SP= VG=");
lcd.setCursor(11,1);
lcd.print(vgap);
Página 3
Control gap arduino 555
digitalWrite(led_star, HIGH);
digitalWrite(led_stop,LOW);
delay(500);
Página 4
Control gap arduino 555
if(cca>40) //tencion de hi detectar ------------------boton1||
{lcd.setCursor(0,0);
lcd.print("STOP POR CA");
lcd.setCursor(0,1);
lcd.print("****************");
digitalWrite(opto_pausa, HIGH); /////PARA MACH3
digitalWrite(opto_stop, HIGH); /////PARA MACH3
delay(50);
digitalWrite(opto_pausa, LOW);
digitalWrite(opto_stop, LOW);
digitalWrite(led_stop,HIGH); //////ENSENDER LED STOP ROJO
delay(4000);
estado=1;
}
}
if(digitalRead(boton_bajar)== HIGH) ////INGRESAR AL MENU DE
PROGRAMACION/////
{delay(500);
menu=1;
lcd.clear();
}
///////////////////////////////////////////////////////////////////////////////////
//////
//////////////// MENU DE PROGRAMACION
///////////////////////////
///////////////////////////////////////////////////////////////////////////////////
///
Página 5
Control gap arduino 555
while(menu==1)//////////////// MODIFICAR VARIABLE SET
POINT/////////////////MMMMMMMMMMMMMMM
{
lcd.setCursor(0,0);
lcd.print("SP= MM= ");//// MODIFICAR SETPOINT Y
MAS MENOS POINT
lcd.setCursor(0,1);
lcd.print("VS= VI= "); ////MODIFICAR VOLTAGE
SUPERIOR Y VOLTAGE INFERIOR
lcd.setCursor(3,0);
lcd.print(sp,1);/////////////////// VARIAR EL SETPOINT
/////////////////////////////////////////////////////////////////////////////////
while(menu==2)////////////////////modificar
variable mas meno////MMMMMMMMMMMMMMM
{
lcd.setCursor(11,0);
lcd.print(mm,1);
//////////////////VARIAR MAS MENOS
if(digitalRead(boton_subir)== HIGH)
/////// BOTON SUVIR mas menos
{delay(500);
mm=mm+1;
}
if(digitalRead(boton_bajar)== HIGH)
////// BOTON BAJAR mas menos
{delay(500);
mm=mm-1;
}
if(digitalRead(boton_menu)== HIGH)
Página 6
Control gap arduino 555
///////BOTON MENU MODIFICAR SIGUIENTE VARIABLE
{delay(500);
menu=3;
}
//////////////////////////////////////////////////////////////////////
while(menu==3)////////////MENU
3////////////////////////////////////
{
lcd.setCursor(3,1);
lcd.print(vmax,1);////
MODIFICAR VOLTAGE SUPERIOR
//////////////////////////////////////////////////////
while(menu==4)
///////////MENU4 /////////////////////
{
lcd.setCursor(11,1);
lcd.print(vmin,1);
////MODIFICAR VOLTAGE INFERIO
while(menu==5)
{
lcd.setCursor(0,0);
lcd.setCursor(0,0);
lcd.setCursor(0,1);
{delay(500);
menu=0;
estado=3;
}
}
}/////llave menu 4
}/////llave menu 3
}/////llave menu 2
} /////llave menu 1
}/////llave estado 2
/////////////////////////////////////////////////////////////////////////////
/////////// FUNCION LEER GAP //////////////////////////////////
////////////////////////////////////////////////////////////////////////////
void leer_gap()
{
gap= analogRead(sensor_gap);
vgap=((gap*5)/1023)*20;
Página 8
Control gap arduino 555
//////////// ZONA 1 ////////////// corto sircuito
if (vgap>=(sp+vmax))
{
digitalWrite(opto_star, HIGH);
delay(50);
digitalWrite(opto_star, LOW);
digitalWrite(opto_stop, HIGH);
i=4;// ca
cca=cca+1;
delay(50);
}
//////////// ZONA 2 //////////////
}
//////////// ZONA 3 //////////////
if ((vgap<=(sp+mm))&&(vgap>=sp))
{
digitalWrite(opto_pausa,HIGH);
delay(50);
digitalWrite(opto_pausa,LOW);
digitalWrite(opto_stop, HIGH);
i=2;//0k
ccc=0;
delay(50);
}
//////////// ZONA 4 //////////////
if ((vgap<sp)&&(vgap>=(sp-mm)))
{
digitalWrite(opto_pausa, HIGH);
delay(50);
digitalWrite(opto_pausa, LOW);
digitalWrite(opto_stop, HIGH);
i=2;//ok
ccc=0;
ccc=0;
delay(50);
Página 9
Control gap arduino 555
}
//////////// ZONA 5 //////////////
if ((vgap<(sp-mm))&&(vgap>(sp-vmin)))
{
digitalWrite(opto_pausa, HIGH);
delay(50);
digitalWrite(opto_pausa, LOW);
digitalWrite(opto_stop, HIGH);
delay(50);
digitalWrite(opto_stop, LOW);
digitalWrite(opto_retro, HIGH);
i=1;//<-
ccc=0;
delay(50);
}
//////////// ZONA 6 //////////////retro coto sircuito
if (vgap<=vmin)
{
digitalWrite(opto_pausa, HIGH);
delay(50);
digitalWrite(opto_pausa, LOW);
digitalWrite(opto_stop, HIGH);
delay(50);
digitalWrite(opto_stop, LOW);
digitalWrite(opto_retro, HIGH);
i=4;//cc
ccc=ccc+1;
delay(50);
}
///////////////// APAGAR TODO /////////////////////
digitalWrite(opto_star, LOW);
digitalWrite(opto_pausa, LOW);
digitalWrite(opto_stop, LOW);
digitalWrite(opto_retro, LOW);
Página 10