Electronica / Mbed OS Proyecto2

Dependencies:   Adafruit_GFX

Committer:
agat
Date:
Wed Dec 15 08:47:04 2021 +0000
Revision:
0:e3755f5769fe
Child:
1:1d515eb7abf3
lol

Who changed what in which revision?

UserRevisionLine numberNew contents of line
agat 0:e3755f5769fe 1 #include "mbed.h"
agat 0:e3755f5769fe 2 #include "math.h"
agat 0:e3755f5769fe 3 //#include "hcsr04.h"
agat 0:e3755f5769fe 4 Serial pc(USBTX, USBRX); // tx, rx
agat 0:e3755f5769fe 5 Ticker tickerMideDistancia;
agat 0:e3755f5769fe 6 unsigned distancia=1000;
agat 0:e3755f5769fe 7
agat 0:e3755f5769fe 8
agat 0:e3755f5769fe 9 DigitalIn final1(D9);
agat 0:e3755f5769fe 10 DigitalIn final2(D10);
agat 0:e3755f5769fe 11 DigitalOut step(D2);
agat 0:e3755f5769fe 12 DigitalOut dir(A4);
agat 0:e3755f5769fe 13 DigitalOut enableMotor(D11);
agat 0:e3755f5769fe 14 DigitalIn boton_inicial(D3);
agat 0:e3755f5769fe 15
agat 0:e3755f5769fe 16 enum estados {reset, apagado, encendido, motorpalante };
agat 0:e3755f5769fe 17 estados estado;
agat 0:e3755f5769fe 18
agat 0:e3755f5769fe 19 //HCSR04 usensor(D7,D8); //(PinName TrigPin,PinName EchoPin):
agat 0:e3755f5769fe 20 void paso(int d)
agat 0:e3755f5769fe 21 {
agat 0:e3755f5769fe 22 dir=d;
agat 0:e3755f5769fe 23 step=1;
agat 0:e3755f5769fe 24 wait_us(100);
agat 0:e3755f5769fe 25 step=0;
agat 0:e3755f5769fe 26 wait_us(900);
agat 0:e3755f5769fe 27 }
agat 0:e3755f5769fe 28 void estadoreset()
agat 0:e3755f5769fe 29 {
agat 0:e3755f5769fe 30 if (final1!=1) {
agat 0:e3755f5769fe 31 paso(0);
agat 0:e3755f5769fe 32 } else if (final1 ==1) {
agat 0:e3755f5769fe 33 estado = apagado;
agat 0:e3755f5769fe 34 step=0;
agat 0:e3755f5769fe 35 enableMotor =0;
agat 0:e3755f5769fe 36 }
agat 0:e3755f5769fe 37 }
agat 0:e3755f5769fe 38
agat 0:e3755f5769fe 39 void estadoapagado()
agat 0:e3755f5769fe 40 {
agat 0:e3755f5769fe 41 if (boton_inicial==1) {
agat 0:e3755f5769fe 42 enableMotor=1;
agat 0:e3755f5769fe 43 step = 1;
agat 0:e3755f5769fe 44 //paso(1);
agat 0:e3755f5769fe 45 estado= encendido;
agat 0:e3755f5769fe 46
agat 0:e3755f5769fe 47 }
agat 0:e3755f5769fe 48 }
agat 0:e3755f5769fe 49
agat 0:e3755f5769fe 50 void estadoencendido()
agat 0:e3755f5769fe 51 {
agat 0:e3755f5769fe 52 if (boton_inicial==0 && final1==1) {
agat 0:e3755f5769fe 53 enableMotor=1;
agat 0:e3755f5769fe 54 step = 1;
agat 0:e3755f5769fe 55 paso(1);
agat 0:e3755f5769fe 56 estado = motorpalante;
agat 0:e3755f5769fe 57
agat 0:e3755f5769fe 58 }
agat 0:e3755f5769fe 59 }
agat 0:e3755f5769fe 60
agat 0:e3755f5769fe 61 void estadomotorpalante(){
agat 0:e3755f5769fe 62 //if (final2)
agat 0:e3755f5769fe 63 if (final1!=1){
agat 0:e3755f5769fe 64 enableMotor=1;
agat 0:e3755f5769fe 65 step =1;
agat 0:e3755f5769fe 66 paso(1);
agat 0:e3755f5769fe 67 //rele=1;
agat 0:e3755f5769fe 68 //Encender el motor de arriba
agat 0:e3755f5769fe 69 }}
agat 0:e3755f5769fe 70
agat 0:e3755f5769fe 71
agat 0:e3755f5769fe 72 //void mideDistancia()
agat 0:e3755f5769fe 73 //{
agat 0:e3755f5769fe 74 // usensor.start();
agat 0:e3755f5769fe 75 //}
agat 0:e3755f5769fe 76
agat 0:e3755f5769fe 77
agat 0:e3755f5769fe 78
agat 0:e3755f5769fe 79 //void estadoCerrada(){
agat 0:e3755f5769fe 80 //{
agat 0:e3755f5769fe 81 // if(distancia<10) {
agat 0:e3755f5769fe 82 // enable=1;
agat 0:e3755f5769fe 83 // estado=abriendose;
agat 0:e3755f5769fe 84 // pc.printf("Estado Abriendose, distancia %d\n",distancia);
agat 0:e3755f5769fe 85 // }
agat 0:e3755f5769fe 86 //}
agat 0:e3755f5769fe 87
agat 0:e3755f5769fe 88 //void estadoAbriendose()
agat 0:e3755f5769fe 89 //{
agat 0:e3755f5769fe 90 // if((final1==1)&&(distancia<10)) {
agat 0:e3755f5769fe 91 // estado=abierta;
agat 0:e3755f5769fe 92 // enable=0;
agat 0:e3755f5769fe 93 // } else if((final1==1)&&(distancia>=10)) {
agat 0:e3755f5769fe 94 // enable=1;
agat 0:e3755f5769fe 95 // estado=cerrandose;
agat 0:e3755f5769fe 96 // } else {
agat 0:e3755f5769fe 97 // paso(1);
agat 0:e3755f5769fe 98 // pc.printf("paso\n");
agat 0:e3755f5769fe 99
agat 0:e3755f5769fe 100 // }
agat 0:e3755f5769fe 101 //}
agat 0:e3755f5769fe 102
agat 0:e3755f5769fe 103 //void estadoCerrandose()
agat 0:e3755f5769fe 104 //{
agat 0:e3755f5769fe 105 // if(distancia<10) {
agat 0:e3755f5769fe 106 // estado=abriendose;
agat 0:e3755f5769fe 107 // enable=1;
agat 0:e3755f5769fe 108 // } else if(final2==1) {
agat 0:e3755f5769fe 109 // estado=cerrada;
agat 0:e3755f5769fe 110 // enable=0;
agat 0:e3755f5769fe 111 // } else {
agat 0:e3755f5769fe 112 // paso(0);
agat 0:e3755f5769fe 113 // pc.printf("paso\n");
agat 0:e3755f5769fe 114 // }
agat 0:e3755f5769fe 115 //}
agat 0:e3755f5769fe 116
agat 0:e3755f5769fe 117 //void estadoAbierta()
agat 0:e3755f5769fe 118 //{
agat 0:e3755f5769fe 119 // if (distancia>=10) {
agat 0:e3755f5769fe 120 // enable=1;
agat 0:e3755f5769fe 121 // estado=cerrandose;
agat 0:e3755f5769fe 122 // }
agat 0:e3755f5769fe 123 //}
agat 0:e3755f5769fe 124
agat 0:e3755f5769fe 125 int main()
agat 0:e3755f5769fe 126 {
agat 0:e3755f5769fe 127 pc.baud(115200);
agat 0:e3755f5769fe 128 //tickerMideDistancia.attach(&mideDistancia, 0.5);
agat 0:e3755f5769fe 129 estado=reset;
agat 0:e3755f5769fe 130 step=1;
agat 0:e3755f5769fe 131 enableMotor =1;
agat 0:e3755f5769fe 132 pc.printf("Estado cerrada\n");
agat 0:e3755f5769fe 133 while(1) {
agat 0:e3755f5769fe 134 //distancia=usensor.get_dist_cm();
agat 0:e3755f5769fe 135 switch ( estado ) {
agat 0:e3755f5769fe 136 case reset:
agat 0:e3755f5769fe 137 estadoreset();
agat 0:e3755f5769fe 138 break;
agat 0:e3755f5769fe 139 case apagado:
agat 0:e3755f5769fe 140 pc.printf("HOLI");
agat 0:e3755f5769fe 141 estadoapagado();
agat 0:e3755f5769fe 142 break;
agat 0:e3755f5769fe 143 case encendido:
agat 0:e3755f5769fe 144 pc.printf("HOLI2");
agat 0:e3755f5769fe 145 estadoencendido();
agat 0:e3755f5769fe 146 break;
agat 0:e3755f5769fe 147 case motorpalante:
agat 0:e3755f5769fe 148 pc.printf("ALANTE");
agat 0:e3755f5769fe 149 // estadomotorpalante();
agat 0:e3755f5769fe 150 break;
agat 0:e3755f5769fe 151 /*case cerrada:
agat 0:e3755f5769fe 152 estadoCerrada();
agat 0:e3755f5769fe 153 break;
agat 0:e3755f5769fe 154 case abriendose:
agat 0:e3755f5769fe 155 estadoAbriendose();
agat 0:e3755f5769fe 156 break;
agat 0:e3755f5769fe 157 case abierta:
agat 0:e3755f5769fe 158 estadoAbierta();
agat 0:e3755f5769fe 159 break;
agat 0:e3755f5769fe 160 case cerrandose:
agat 0:e3755f5769fe 161 estadoCerrandose();
agat 0:e3755f5769fe 162 break;
agat 0:e3755f5769fe 163 default:
agat 0:e3755f5769fe 164 break;
agat 0:e3755f5769fe 165 }*/
agat 0:e3755f5769fe 166 }
agat 0:e3755f5769fe 167 }
agat 0:e3755f5769fe 168 }