funzionamento un motore

Dependencies:   X_NUCLEO_IHM01A1 mbed Motori_ultrasuoni_prova

Fork of HelloWorld_IHM01A1_2Motors by ST

Committer:
Ghilardi
Date:
Thu Mar 16 13:55:26 2017 +0000
Revision:
31:1a64d3e86c03
Parent:
30:f3d8978c68d4
prova ostacoli

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ghilardi 31:1a64d3e86c03 1 #include "hcsr04.h"
Davidroid 0:e6a49a092e2a 2
Davidroid 0:e6a49a092e2a 3
Davidroid 0:e6a49a092e2a 4 /* mbed specific header files. */
Davidroid 0:e6a49a092e2a 5 #include "mbed.h"
Davidroid 0:e6a49a092e2a 6
Davidroid 0:e6a49a092e2a 7 /* Helper header files. */
Davidroid 0:e6a49a092e2a 8 #include "DevSPI.h"
Davidroid 0:e6a49a092e2a 9
Davidroid 0:e6a49a092e2a 10 /* Component specific header files. */
Davidroid 29:526970c1d998 11 #include "L6474.h"
Davidroid 0:e6a49a092e2a 12
Davidroid 0:e6a49a092e2a 13
Davidroid 24:8cb3c4ad055f 14 /* Number of steps. */
Davidroid 9:a9e51320aee4 15 #define STEPS 3200
Davidroid 0:e6a49a092e2a 16
Davidroid 24:8cb3c4ad055f 17 /* Delay in milliseconds. */
Davidroid 24:8cb3c4ad055f 18 #define DELAY_1 2000
Davidroid 24:8cb3c4ad055f 19 #define DELAY_2 6000
Davidroid 24:8cb3c4ad055f 20 #define DELAY_3 8000
Davidroid 24:8cb3c4ad055f 21
Davidroid 24:8cb3c4ad055f 22 /* Speed in pps (Pulses Per Second).
Davidroid 24:8cb3c4ad055f 23 In Full Step mode: 1 pps = 1 step/s).
Davidroid 24:8cb3c4ad055f 24 In 1/N Step Mode: N pps = 1 step/s). */
Davidroid 24:8cb3c4ad055f 25 #define SPEED_1 2400
Davidroid 24:8cb3c4ad055f 26 #define SPEED_2 1200
Davidroid 24:8cb3c4ad055f 27
Davidroid 0:e6a49a092e2a 28
Davidroid 0:e6a49a092e2a 29
Davidroid 0:e6a49a092e2a 30 /* Motor Control Component. */
Ghilardi 31:1a64d3e86c03 31
Davidroid 3:02d9ec4f88b2 32 L6474 *motor1;
Ghilardi 31:1a64d3e86c03 33 HCSR04 sensor(PB_8, PB_9);
Ghilardi 31:1a64d3e86c03 34 int distanza;
Davidroid 0:e6a49a092e2a 35
Davidroid 0:e6a49a092e2a 36
Ghilardi 31:1a64d3e86c03 37 /* Initializing SPI bus. */
Ghilardi 31:1a64d3e86c03 38 DevSPI dev_spi(D11, D12, D13);
Ghilardi 31:1a64d3e86c03 39 DigitalOut led(D11);
Ghilardi 31:1a64d3e86c03 40 /* Initializing Motor Control Components. */
Davidroid 0:e6a49a092e2a 41
Ghilardi 31:1a64d3e86c03 42
Davidroid 0:e6a49a092e2a 43
Ghilardi 31:1a64d3e86c03 44 void thread(void const *args) {
Davidroid 8:cec4c2c03a27 45
Ghilardi 31:1a64d3e86c03 46 while (1)
Ghilardi 31:1a64d3e86c03 47 {
Ghilardi 31:1a64d3e86c03 48
Ghilardi 31:1a64d3e86c03 49 // Avvia un impulso della durata di 10us sul pin di trigger
Ghilardi 31:1a64d3e86c03 50 sensor.start();
Ghilardi 31:1a64d3e86c03 51
Ghilardi 31:1a64d3e86c03 52 // Aspetta prima della prossima lettura
Ghilardi 31:1a64d3e86c03 53 wait_ms(100);
Ghilardi 31:1a64d3e86c03 54
Ghilardi 31:1a64d3e86c03 55 // Stampa sulla seriale la misura della distanza in cm
Ghilardi 31:1a64d3e86c03 56 distanza = sensor.get_dist_cm();
Ghilardi 31:1a64d3e86c03 57 }
Ghilardi 31:1a64d3e86c03 58 if(distanza > 10)
Ghilardi 31:1a64d3e86c03 59 motor1->run(StepperMotor::FWD);
Ghilardi 31:1a64d3e86c03 60 else
Ghilardi 31:1a64d3e86c03 61 led = 0;
Ghilardi 31:1a64d3e86c03 62 }
Ghilardi 31:1a64d3e86c03 63
Ghilardi 31:1a64d3e86c03 64
Ghilardi 31:1a64d3e86c03 65
Ghilardi 31:1a64d3e86c03 66
Ghilardi 31:1a64d3e86c03 67
Ghilardi 31:1a64d3e86c03 68
Ghilardi 31:1a64d3e86c03 69
Ghilardi 31:1a64d3e86c03 70
Ghilardi 31:1a64d3e86c03 71
Ghilardi 31:1a64d3e86c03 72
Ghilardi 31:1a64d3e86c03 73
Ghilardi 31:1a64d3e86c03 74
Ghilardi 31:1a64d3e86c03 75
Ghilardi 31:1a64d3e86c03 76
Ghilardi 31:1a64d3e86c03 77
Ghilardi 31:1a64d3e86c03 78
Ghilardi 31:1a64d3e86c03 79