Seguilinea KP Taratura Ultrasuoni di Paolo Giovanni
Dependencies: HCSR04 X_NUCLEO_IHM12A1 mbed
Fork of Ilfunzionante by
main.cpp
- Committer:
- PaoloGiovanni99
- Date:
- 2018-02-17
- Revision:
- 0:9bd4730782f9
- Child:
- 1:0226a8d3c0d3
File content as of revision 0:9bd4730782f9:
#include "mbed.h" #include "MotorShieldIHM12A1.h" #include "hcsr04.h" #define SPEED 50 float DIR; float mediaB = 0; float mediaN = 0 ; float MediaT = 0; #define Kp 50 #define offset 0 #define C 5 HCSR04 sensor(D10, D11); // Serial Serial pc(USBTX, USBRX); //PwmOut mypwm(A0); MotorShieldIHM12A1 ms; AnalogIn lineaD(A5); DigitalIn pulsante(PC_13); int main() { pc.baud(9600); pc.printf("Here I am!\r\n"); //ms.MotorStart(); printf("start \r\n"); // Main loop printf ("Val \r\n "); while (pulsante) { wait (0.1); } wait(0.1); for (int i=0; i<5; i++) { mediaB += lineaD.read(); wait(0.1); } mediaB /= C; printf ("%f \n\r", mediaB); printf("Bianco \r\n"); while (pulsante) { wait (0.1); } wait(0.1); for (int i=0; i<C; i++) { mediaN += lineaD.read(); wait(0.1); } mediaN /= C; printf ("%f \n\r", mediaB); printf("Nero \r\n"); MediaT =(mediaB+mediaN) / 2; while (pulsante) { wait (0.1); } wait(0.1); while(true) { // Avvia un impulso della durata di 10us sul pin di trigger sensor.start(); // Aspetta prima della prossima lettura wait_ms(300); // Stampa sulla seriale la misura della distanza in cm pc.printf("%dcm\r\n", sensor.get_dist_cm()); if (sensor.get_dist_cm() > 20) { ms.turn((lineaD.read()-MediaT)*Kp,40); } else { ms.turn(0,0); } } }