Nikola Cvetković
/
19E042PIM_V5_Z2
19E042PIM Stepper motor 28BYJ-48
Revision 0:ebdf9583ef95, committed 2022-01-04
- Comitter:
- tzwell
- Date:
- Tue Jan 04 14:35:48 2022 +0000
- Commit message:
- FIrst publish, first commit
Changed in this revision
diff -r 000000000000 -r ebdf9583ef95 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Jan 04 14:35:48 2022 +0000 @@ -0,0 +1,78 @@ +/* + * An example of motor control, using step 28BYJ-48 motor and 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 5 + +/* + * Globalne promenljive: + */ +InterruptIn clkwise (MB_SW1); +// D11 - D10 - D9 - D8 +// blue - pink - yellow - orange +BusOut motor_out(PA_7, PB_6, PC_7, PA_9); +int step = 0; +int dir = 0; // direction + +/* + * Deklaracija funkcija: + */ +void ISR_clkwise(void); + + +/* + * Glavna funkcija: + */ +int main() +{ + clkwise.fall(&ISR_clkwise); + while(1) + { + switch(step) + { + // Half-step control: + case 0: motor_out = 0x1; break; // 0001 + case 1: motor_out = 0x3; break; // 0011 + case 2: motor_out = 0x2; break; // 0010 + case 3: motor_out = 0x6; break; // 0110 + case 4: motor_out = 0x4; break; // 0100 + case 5: motor_out = 0xC; break; // 1100 + case 6: motor_out = 0x8; break; // 1000 + case 7: motor_out = 0x9; break; // 1001 + + default: motor_out = 0x0; break; // 0000 + } + + if(dir) step++; else step--; + if(step>7)step=0; + if(step<0)step=7; + wait_ms(MOTOR_PERIOD_MS); // speed + } +} +/* + * Definicija funkcija: + */ +void ISR_clkwise(void){ + if(!clkwise.read()) + { + wait_ms(DEBOUNCE_DELAY_MS); + if (!clkwise.read()) dir = !dir; + } +} \ No newline at end of file
diff -r 000000000000 -r ebdf9583ef95 mb_pins.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mb_pins.h Tue Jan 04 14:35:48 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 ebdf9583ef95 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Tue Jan 04 14:35:48 2022 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400 \ No newline at end of file