Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Adafruit_GFX
main.cpp@0:e3755f5769fe, 2021-12-15 (annotated)
- Committer:
- agat
- Date:
- Wed Dec 15 08:47:04 2021 +0000
- Revision:
- 0:e3755f5769fe
- Child:
- 1:1d515eb7abf3
lol
Who changed what in which revision?
User | Revision | Line number | New 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 | } |