Nikola Cvetković
/
19E042PIM_V5_Z3
19E042PIM DC motor
Revision 0:9e09213d299d, committed 2022-01-04
- Comitter:
- tzwell
- Date:
- Tue Jan 04 14:36:43 2022 +0000
- Commit message:
- First publish, first commit.
Changed in this revision
diff -r 000000000000 -r 9e09213d299d main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Jan 04 14:36:43 2022 +0000 @@ -0,0 +1,67 @@ +/* + * An example of DC motor control, using NUCLEO-L476RG. + * + * Katedra za Elektroniku i digitalne sisteme + * Elektrotehnicki fakultet + * Beograd + * + * Decembar 2021. + * + */ + +/* + * Biblioteke za uvoz: + */ +#include "mbed.h" +#include "mb_pins.h" + +/* + * Definisanje makroa: + */ +#define DEBOUNCE_DELAY_MS 50 +#define MOTOR_PERIOD_MS 100 + +/* + * Globalne promenljive: + */ +InterruptIn motor_ctrl (MB_SW1); +AnalogOut motor_out(PA_5); //SCK/D13 +AnalogIn pot(MB_POT1); +// spin = 1 motor spins, spin = 0 motor stops: +char spin = 0; + +/* + * Deklaracija funkcija: + */ +void ISR_ctrl(void); + + +/* + * Glavna funkcija: + */ +int main() +{ + motor_ctrl.fall(&ISR_ctrl); + while(1) + { + if (spin) + { + motor_out.write(pot.read()); + } + else + { + motor_out.write(0); + } + wait_ms(MOTOR_PERIOD_MS); + } +} +/* + * Definicija funkcija: + */ +void ISR_ctrl(void){ + if(!motor_ctrl.read()) + { + wait_ms(DEBOUNCE_DELAY_MS); + if (!motor_ctrl.read()) spin = !spin; + } +} \ No newline at end of file
diff -r 000000000000 -r 9e09213d299d mb_pins.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mb_pins.h Tue Jan 04 14:36:43 2022 +0000 @@ -0,0 +1,59 @@ +/* + * This file contains all the pin names neccessary + * for easy interaction with the EDS-MB for NUCLEOL476RG. + * + * University of Belgrade - School of Electrical Engineering + * Department of Electronics + * Bulevar Kralja Aleksandra 73, 11120 Belgrade, Serbia + * + * November 2021. + * + */ + +// LEDs, 560R in series, cathode to GND; left - red LED1; right - blue LED2: +#define MB_LED1 PA_11 +#define MB_LED2 PB_15 +// Switches, DPST, pulled up with 10k resistor; left SW1, right SW2: +// SW_EXT connector, from left to right: +#define MB_SW1 PC_9 +#define MB_SW2 PC_8 +// Potentiometers; left POT1, right POT2: +#define MB_POT1 PA_0 +#define MB_POT2 PA_1 +// Common anode, two digit seven-segment display. All signals active at '0': +#define MB_SEL1 PB_6 +#define MB_SEL2 PC_7 +#define MB_A PA_10 +#define MB_B PA_9 +#define MB_C PA_8 +#define MB_D PB_10 +#define MB_E PB_5 +#define MB_F PB_4 +#define MB_G PB_3 +// Piezoelectric buzzer, 10k in parallel; Active at '0': +#define MB_BUZZ PA_11 +// SDD1306-based OLED display; Uses I2C_2 to communicate with NUCLEO: +#define MB_OLED_SDA PB_14 +#define MB_OLED_SCL PB_13 +// ESP-WROOM-02 WiFi microcontroller; Uses UART_3 to communicate with NUCLEO: +#define MB_ESP_RST PA_12 +#define MB_ESP_TX PC_4 +#define MB_ESP_RX PC_5 +#define MB_ESP_EN RESET +// mikroBUS pinout, upper leftmost pin is no. 1: +#define MB_MIKRO_AN PB_1 +#define MB_MIKRO_RST PB_12 +#define MB_MIKRO_CS PD_2 +#define MB_MIKRO_SCK PC_10 +#define MB_MIKRO_MISO PC_11 +#define MB_MIKRO_MOSI PC_12 +#define MB_MIKRO_SDA PB_14 +#define MB_MIKRO_SCL PB_13 +#define MB_MIKRO_TX PB_11 +#define MB_MIKRO_RX PB_7 +#define MB_MIKRO_INT PB_2 +#define MB_MIKRO_PWM PC_6 +// ANALOG_EXT connector, from left to right: +#define MB_AI1 PC_3 +#define MB_AI2 PC_2 +#define MB_A0 PA_4 \ No newline at end of file
diff -r 000000000000 -r 9e09213d299d mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Jan 04 14:36:43 2022 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file