funzionamento un motore

Dependencies:   X_NUCLEO_IHM01A1 mbed Motori_ultrasuoni_prova

Fork of HelloWorld_IHM01A1_2Motors by ST

Revision:
31:1a64d3e86c03
Parent:
30:f3d8978c68d4
--- a/main.cpp	Mon Mar 13 16:07:17 2017 +0000
+++ b/main.cpp	Thu Mar 16 13:55:26 2017 +0000
@@ -1,44 +1,6 @@
-/**
- ******************************************************************************
- * @file    main.cpp
- * @author  Davide Aliprandi, STMicroelectronics
- * @version V1.0.0
- * @date    October 14th, 2015
- * @brief   mbed test application for the STMicroelectronics X-NUCLEO-IHM01A1
- *          Motor Control Expansion Board: control of 2 motors.
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *   1. Redistributions of source code must retain the above copyright notice,
- *      this list of conditions and the following disclaimer.
- *   2. Redistributions in binary form must reproduce the above copyright notice,
- *      this list of conditions and the following disclaimer in the documentation
- *      and/or other materials provided with the distribution.
- *   3. Neither the name of STMicroelectronics nor the names of its contributors
- *      may be used to endorse or promote products derived from this software
- *      without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
+#include "hcsr04.h"
 
 
-/* Includes ------------------------------------------------------------------*/
-
 /* mbed specific header files. */
 #include "mbed.h"
 
@@ -49,8 +11,6 @@
 #include "L6474.h"
 
 
-/* Definitions ---------------------------------------------------------------*/
-
 /* Number of steps. */
 #define STEPS 3200
 
@@ -66,35 +26,54 @@
 #define SPEED_2 1200
 
 
-/* Variables -----------------------------------------------------------------*/
 
 /* Motor Control Component. */
+
 L6474 *motor1;
-L6474 *motor2;
+HCSR04 sensor(PB_8, PB_9);
+int distanza;
 
 
-/* Main ----------------------------------------------------------------------*/
+/* Initializing SPI bus. */
+ DevSPI dev_spi(D11, D12, D13);
+ DigitalOut led(D11);
+  /* Initializing Motor Control Components. */
 
-int main()
-{
-    /*----- Initialization. -----*/
-
-    /* Initializing SPI bus. */
-    DevSPI dev_spi(D11, D12, D13);
+   
 
-    /* Initializing Motor Control Components. */
-    motor1 = new L6474(D2, D8, D7, D9, D10, dev_spi);
-    motor2 = new L6474(D2, D8, D4, D3, D10, dev_spi);
-    if (motor1->init() != COMPONENT_OK) {
-        exit(EXIT_FAILURE);
-    }
-    if (motor2->init() != COMPONENT_OK) {
-        exit(EXIT_FAILURE);
-    }
+ void thread(void const *args) {
     
-    while(true){
-        /* Moving N steps in the forward direction. */
-        motor1->run(StepperMotor::FWD);
-        //motor2->run(StepperMotor::FWD);
-    }
-}
+while (1)
+    {
+          
+        // Avvia un impulso della durata di 10us sul pin di trigger
+        sensor.start();
+        
+        // Aspetta prima della prossima lettura
+        wait_ms(100); 
+        
+        // Stampa sulla seriale la misura della distanza in cm
+        distanza = sensor.get_dist_cm();
+        }
+          if(distanza > 10)
+            motor1->run(StepperMotor::FWD);
+        else
+            led = 0;
+        }
+           
+    
+
+
+
+
+
+
+
+    
+
+    
+   
+
+   
+   
+