Space / Mbed 2 deprecated DORA-myTest

Dependencies:   mbed

Committer:
pinofal
Date:
Tue Aug 25 07:16:44 2020 +0000
Revision:
1:762bbfe2fc71
Parent:
0:aaeeba6e02f5
Test dell'OpenDrain e del PWM

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pinofal 0:aaeeba6e02f5 1 // Test motore CC, pilotato in PWM
pinofal 1:762bbfe2fc71 2 // test interruttore simulato con un output OpenDrain
pinofal 1:762bbfe2fc71 3 // testato su F070RB, F401
pinofal 0:aaeeba6e02f5 4
pinofal 0:aaeeba6e02f5 5 #include "mbed.h"
pinofal 0:aaeeba6e02f5 6 #include<stdlib.h>
pinofal 0:aaeeba6e02f5 7
pinofal 0:aaeeba6e02f5 8 // Definizione periferica USB seriale del PC
pinofal 0:aaeeba6e02f5 9 Serial pc(USBTX, USBRX, 921600); // seriale di comunicazione con il PC. Associati a PA_11 e PA_12
pinofal 0:aaeeba6e02f5 10
pinofal 0:aaeeba6e02f5 11 // Definizione periferica seriale del Modulo BLE ELETT114A
pinofal 0:aaeeba6e02f5 12 Serial myBLE(PA_9, PA_10, 9600); //Tx, Rx, bps
pinofal 0:aaeeba6e02f5 13
pinofal 0:aaeeba6e02f5 14
pinofal 0:aaeeba6e02f5 15 // User Button, LED
pinofal 0:aaeeba6e02f5 16 DigitalIn myButton(USER_BUTTON); // pulsante Blu sulla scheda. Associato a PC_13
pinofal 0:aaeeba6e02f5 17 DigitalOut myLed(LED2); // LED verde sulla scheda. Associato a PA_5
pinofal 0:aaeeba6e02f5 18
pinofal 0:aaeeba6e02f5 19 // Output per pilotaggio di un motore PWM
pinofal 1:762bbfe2fc71 20 PwmOut OutPWM (PB_8);
pinofal 1:762bbfe2fc71 21
pinofal 1:762bbfe2fc71 22 // Output Open Drain No Pull
pinofal 1:762bbfe2fc71 23 DigitalInOut SwitchRouter (PB_9, PIN_OUTPUT, OpenDrain, 0);
pinofal 1:762bbfe2fc71 24
pinofal 1:762bbfe2fc71 25 // digital Out di Prova
pinofal 1:762bbfe2fc71 26 DigitalOut Prova (PA_6);
pinofal 0:aaeeba6e02f5 27
pinofal 0:aaeeba6e02f5 28 /**********/
pinofal 0:aaeeba6e02f5 29 /* MAIN */
pinofal 0:aaeeba6e02f5 30 /**********/
pinofal 0:aaeeba6e02f5 31 int main()
pinofal 0:aaeeba6e02f5 32 {
pinofal 0:aaeeba6e02f5 33
pinofal 0:aaeeba6e02f5 34 // messaggio di benvenuto
pinofal 1:762bbfe2fc71 35 pc.printf("\r\n************ Hallo ************** \r\n");
pinofal 0:aaeeba6e02f5 36 pc.printf("*********** Test PWM *************\r\n");
pinofal 1:762bbfe2fc71 37
pinofal 1:762bbfe2fc71 38 // out di prova
pinofal 1:762bbfe2fc71 39 Prova = 1;
pinofal 1:762bbfe2fc71 40 // inizializza OpenDrain
pinofal 1:762bbfe2fc71 41 SwitchRouter.mode(PullNone);
pinofal 1:762bbfe2fc71 42
pinofal 0:aaeeba6e02f5 43 // inizializza il PWM
pinofal 0:aaeeba6e02f5 44 OutPWM.period_ms(50); // periodo del PWM
pinofal 0:aaeeba6e02f5 45 OutPWM.write(0.0); // inizializza duty cycle del PWM
pinofal 0:aaeeba6e02f5 46
pinofal 0:aaeeba6e02f5 47 // Ciclo principale
pinofal 0:aaeeba6e02f5 48 while(true)
pinofal 0:aaeeba6e02f5 49 {
pinofal 1:762bbfe2fc71 50 // accende il motore se è premuto lo User Button
pinofal 0:aaeeba6e02f5 51 if(myButton == 0)
pinofal 0:aaeeba6e02f5 52 {
pinofal 0:aaeeba6e02f5 53 // accendi LED su scheda
pinofal 0:aaeeba6e02f5 54 myLed = 1;
pinofal 0:aaeeba6e02f5 55 // regola velocità del motore modificando duty cycle del PWM
pinofal 0:aaeeba6e02f5 56 OutPWM.write(0.4); // velocità massima = 1.0
pinofal 1:762bbfe2fc71 57
pinofal 1:762bbfe2fc71 58 // accendi/spegni il router
pinofal 1:762bbfe2fc71 59 SwitchRouter = 1;
pinofal 0:aaeeba6e02f5 60 }
pinofal 0:aaeeba6e02f5 61 else
pinofal 0:aaeeba6e02f5 62 {
pinofal 0:aaeeba6e02f5 63 // spegni LED su scheda
pinofal 0:aaeeba6e02f5 64 myLed = 0;
pinofal 0:aaeeba6e02f5 65 // ferma il PWM
pinofal 0:aaeeba6e02f5 66 OutPWM.write(0.0); // motore fermo = 0.0
pinofal 1:762bbfe2fc71 67 // disattiva l'OpenDrainper il Router
pinofal 1:762bbfe2fc71 68 SwitchRouter = 0;
pinofal 0:aaeeba6e02f5 69 } // if(myButton==0)
pinofal 0:aaeeba6e02f5 70 } // while(true) Principale
pinofal 0:aaeeba6e02f5 71 }