Implementando Grafcet en Arduino


hola tod@s!

soy estudiante de automatización y robótica industrial, en junio tengo que entregar un proyecto (maqueta)  y decidido automatizarlo con arduino modo de plc.
el caso es que el programa querría basarlo en grafcet pero mirando en internet poco encontrado, por no decir nada... sobre como implementar grafcet en codigo c,  y menos en arduino...
todavía no estoy muy familiarizado con las particularidades del código arduino, os pongo un sckech de prueba que hice ayer ver si podéis decirme si lo veis bien y que cambiaríais.
básicamente primero hago un registro de entradas, después voy  activando etapas cuando se cumplen sus condiciones de transición y al final está la parte combinacional en la que según estén activas unas variable u otras, se activarán las correspondientes salidas.
también querría saber si las variables están bien declaradas o si hay algo mal hecho... (es solo una primera parte del programa) falta mucho por hacer , solo es un borrador... pero si vale para hacerse una idea de lo que quiero hacer y que me podáis corregir si algo es incoherente o está en mal sitio...
code: [select]
const int final_1=21, final_2=22, final_3=23, final_4=24, boton_1=25, boton_2=26, boton_3=27, boton_4=28, boton_5=29; // pines de entrada*************
const int led_1=31,led_2=32,led_3=33,led_4=34,led_5=35; // pines salida****************

int estado_final_1=0, estado_final_2=0, estado_final_3=0, estado_final_4=0, estado_final_5=0;
int estado_boton_1=0, estado_boton_2=0, estado_boton_3=0, estado_boton_4=0, estado_boton_5=0;

boolean etapa_0=true, etapa_1=false, etapa_2=false, etapa_3=false, etapa_4=false, etapa_5=false, etapa_6=false, etapa_7=false, etapa_8=false, etapa_9=false, etapa_10=false;


void setup() {
 
  pinmode(led_1, output), (led_2, output), (led_3, output), (led_4, output),(led_5, output);
  pinmode(final_1,input), (final_2,input), (final_3,input), (final_4,input), (boton_1,input), (boton_2,input), (boton_3,input), (boton_4,input), (boton_5,input);
}


void loop(){
 
   estado_final_1= digitalread(final_1); estado_final_2= digitalread(final_2); estado_final_3= digitalread(final_3); estado_final_4= digitalread(final_4);
   estado_boton_1= digitalread(boton_1); estado_boton_2= digitalread(boton_2); estado_boton_3= digitalread(boton_1); estado_boton_4= digitalread(boton_4); estado_boton_5= digitalread(boton_5);
   
   //*******************
   
   // etapa 1
   if (etapa_0 == true && estado_boton_1==high ) {     
        etapa_1=true; etapa_0=false; }
 
  // etapa 2   
   if (etapa_1 == true && final_1==high ) {     
        etapa_2=true; etapa_1=false; }
   
   // etapa 3
   if (etapa_2 == true && estado_boton_2==high ) {     
        etapa_3=true; etapa_2=false;
      }
 
  // etapa 4   
   if (etapa_3 == true && final_2==high ) {     
        etapa_4=true; etapa_3=false; }
       
   // etapa 5
   if (etapa_4 == true && estado_boton_3==high ) {     
        etapa_5=true; etapa_4=false;
      }
 
  // etapa 0   
   if (etapa_5 == true && final_3==high ) {     
        etapa_0=true; etapa_5=false; }     
       
   //************************

   if (etapa_1== true)
   digitalwrite(led_1,high);
   else
     digitalwrite(led_1,low);
   
   if (etapa_2== true)
   digitalwrite(led_2,high);
   else
     digitalwrite(led_2,low);
     
   if (etapa_3== true)
   digitalwrite(led_3,high);
   else
     digitalwrite(led_3,low);
   
   if (etapa_4== true)
   digitalwrite(led_4,high);
   else
     digitalwrite(led_4,low);
     
    if (etapa_5== true)
   digitalwrite(led_5,high);
   else
     digitalwrite(led_5,low);
   
}
     

como digo  más arriba, solo es un sckech de prueba para ver si es viable la cosa. iré poniendo aquí el progreso
un saludo

he cambiado el código, ahora es "más decente"  xd


Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > Implementando Grafcet en Arduino


arduino

Comments

Popular posts from this blog

VIDIOC_S_FMT error 16, Device or resource busy - Raspberry Pi Forums

using a laptop skeleton to build a pi laptop - Raspberry Pi Forums

Forum for Joomla? - Joomla! Forum - community, help and support