wss
Dependencies: mbed Adafruit_GFX DS1820
main.cpp
- Committer:
- daniferca
- Date:
- 2021-12-10
- Revision:
- 1:1e68e882342d
- Parent:
- 0:8a1a447db446
- Child:
- 2:828e6ac4800a
File content as of revision 1:1e68e882342d:
#include "mbed.h" #include "hcsr04.h" Serial pc(USBTX, USBRX); // tx, rx Ticker tickerMideDistancia; unsigned distancia=1000;; HCSR04 usensor(D7,D8); //(PinName TrigPin,PinName EchoPin): DigitalIn final1(D2); DigitalIn final2(D3); DigitalOut step(D13); DigitalOut dir(D12); DigitalOut enable(D11); enum estados {cerrada, abriendose, cerrandose, abierta}; estados estado; HCSR04 usensor(D7,D8); //(PinName TrigPin,PinName EchoPin): void mideDistancia() { usensor.start(); } void paso(int d) { dir=d; step=1; wait_us(100); step=0; wait_us(900); } void estadoCerrada() { if(distancia<5)&&(final1 == 1) { enable=1; estado=abriendose; pc.printf("Estado Abriendose, distancia %d\n",distancia); pc.printf("Final1 pulsado\r\n"); } } void estadoAbriendose() { if((final2==1)) { estado=abierta; enable=0; } else { dir = 1; step=1; } } void estadoCerrandose(){ if((final1==1)) { estado=cerrada; enable=0; } else { dir = 0; step=1; } } void estadoAbierta() { if (final2==1) { wait(1.0); enable=1; estado=cerrandose; pc.printf("Final2 pulsado\r\n"); } } int main() { pc.baud(115200); tickerMideDistancia.attach(&mideDistancia, 0.5); estado=cerrada; pc.printf("Estado cerrada\n"); while(1) { distancia=usensor.get_dist_cm(); switch ( estado ) { case cerrada: estadoCerrada(); break; case abriendose: estadoAbriendose(); break; case abierta: estadoAbierta(); break; case cerrandose: estadoCerrandose(); break; default: break; } } }