Electronica / Mbed OS Proyecto2

Dependencies:   Adafruit_GFX

main.cpp

Committer:
agat
Date:
2021-12-15
Revision:
0:e3755f5769fe
Child:
1:1d515eb7abf3

File content as of revision 0:e3755f5769fe:

#include "mbed.h"
#include "math.h"
//#include "hcsr04.h"
Serial pc(USBTX, USBRX); // tx, rx
Ticker tickerMideDistancia;
unsigned distancia=1000;


DigitalIn final1(D9);
DigitalIn final2(D10);
DigitalOut step(D2);
DigitalOut dir(A4);
DigitalOut enableMotor(D11);
DigitalIn boton_inicial(D3);

enum estados {reset, apagado, encendido, motorpalante };
estados estado;

//HCSR04  usensor(D7,D8); //(PinName TrigPin,PinName EchoPin):
void paso(int d)
{
    dir=d;
    step=1;
    wait_us(100);
    step=0;
    wait_us(900);
}
void estadoreset()
{
    if (final1!=1) {
        paso(0);
    } else if (final1 ==1) {
        estado = apagado;
        step=0;
        enableMotor =0;
    }
}

void estadoapagado()
{
    if (boton_inicial==1) {
        enableMotor=1;
        step = 1;
        //paso(1);
        estado= encendido;

    }
}

void estadoencendido()
{
    if (boton_inicial==0 && final1==1) {
        enableMotor=1;
        step = 1;
        paso(1);
        estado = motorpalante;

    }
}

void estadomotorpalante(){
//if (final2)
if (final1!=1){
    enableMotor=1;
    step =1;
    paso(1);
    //rele=1;
    //Encender el motor de arriba
}}


//void mideDistancia()
//{
// usensor.start();
//}



//void estadoCerrada(){
//{
//  if(distancia<10) {
//      enable=1;
//       estado=abriendose;
//       pc.printf("Estado Abriendose, distancia %d\n",distancia);
//   }
//}

//void estadoAbriendose()
//{
//  if((final1==1)&&(distancia<10)) {
//      estado=abierta;
//       enable=0;
//  } else if((final1==1)&&(distancia>=10)) {
//      enable=1;
//      estado=cerrandose;
//   } else {
//        paso(1);
//       pc.printf("paso\n");

//   }
//}

//void estadoCerrandose()
//{
//   if(distancia<10) {
//      estado=abriendose;
//      enable=1;
//   } else if(final2==1) {
//      estado=cerrada;
//      enable=0;
//  } else {
//       paso(0);
//       pc.printf("paso\n");
//  }
//}

//void estadoAbierta()
//{
//   if (distancia>=10) {
//      enable=1;
//       estado=cerrandose;
//   }
//}

int main()
{
    pc.baud(115200);
    //tickerMideDistancia.attach(&mideDistancia, 0.5);
    estado=reset;
    step=1;
    enableMotor =1;
    pc.printf("Estado cerrada\n");
    while(1) {
        //distancia=usensor.get_dist_cm();
        switch ( estado ) {
            case reset:
                estadoreset();
                break;
            case apagado:
                pc.printf("HOLI");
                estadoapagado();
                break;
            case encendido:
                pc.printf("HOLI2");
                estadoencendido();
                break;
            case motorpalante:
                pc.printf("ALANTE");
                // estadomotorpalante();
                break;
                /*case cerrada:
                    estadoCerrada();
                    break;
                case abriendose:
                    estadoAbriendose();
                    break;
                case abierta:
                    estadoAbierta();
                    break;
                case cerrandose:
                    estadoCerrandose();
                    break;
                default:
                    break;
                }*/
        }
    }
}