This repository preserves and reconstructs my college Mbed work on the NUCLEO-F446RE / STM32F446RET6.
The project sequence is inspired by Dogan Ibrahim's ARM-based Microcontroller Projects Using mbed (2019). The book mostly uses the NUCLEO-F411RE; these files are independently rewritten for my F446RE and for the Mbed OS 5-era programming style.
This is a learning/archive portfolio, not a recommendation to start a new production product with Mbed OS today.
Every project is intentionally simple:
Project XX - Name/
├── main.cpp
├── README.md
└── images/
└── .gitkeep
After rebuilding a project on real hardware, add your own photo as images/breadboard.jpg.
- Target board:
NUCLEO_F446RE. - Code intentionally follows Mbed OS 5.x-era APIs such as
DigitalOut,AnalogIn,PwmOut,Serial,Ticker,Timer, and classic RTOS APIs. - The book itself mostly targets NUCLEO-F411RE, so pin assignments are not copied blindly; Arduino/Nucleo aliases are used where practical.
- Some LCD, Wi-Fi, and X-NUCLEO projects require historical external libraries. Those projects are clearly marked instead of pretending a current library API is identical.
- The random-number exercise from the source book is kept as a neutral Unique Random Number Generator programming exercise.
Project 01 - Flashing LEDProject 02 - LED Flashing as Morse Code SOSProject 03 - Flashing an External LEDProject 04 - Rotating LEDsProject 05 - Binary Counting LEDsProject 06 - Random Flashing LEDsProject 07 - LED Control with Push-ButtonProject 08 - Changing LED Flashing RateProject 09 - Binary Event Counting with LEDsProject 10 - Using an External ButtonProject 11 - RGB LED ControlProject 12 - Random Colored LED DisplayProject 13 - 7-Segment LED DisplayProject 14 - Powering Large Loads - DC Motor ControlProject 15 - Two-Digit Multiplexed 7-Segment LEDProject 16 - Four-Digit Multiplexed 7-Segment LEDProject 17 - Four-Digit 7-Segment LED CounterProject 18 - Four-Digit 7-Segment LED Event CounterProject 19 - 7-Segment LED DiceProject 20 - Volume of a CylinderProject 21 - CalculatorProject 22 - Learn Your Times TablesProject 23 - Improving Your Multiplication SkillsProject 24 - Loop Execution TimesProject 25 - Reaction TimerProject 26 - Event CounterProject 27 - Hi-Lo GameProject 28 - Serial InterruptProject 29 - Unique Random Number GeneratorProject 30 - Digital VoltmeterProject 31 - Analog Temperature Sensor - Digital ThermometerProject 32 - Digital ThermostatProject 33 - ON-OFF Temperature ControllerProject 34 - Light Level MeterProject 35 - Changing LED Flashing Rate with a PotentiometerProject 36 - Sound Level MeterProject 37 - Generating Fixed VoltageProject 38 - Sawtooth WaveformProject 39 - Triangular WaveformProject 40 - Sine WaveformProject 41 - Arbitrary Periodic WaveformProject 42 - Waveform GeneratorProject 43 - Melody MakerProject 44 - Electronic OrganProject 45 - Varying the LED BrightnessProject 46 - Simple Brushed DC Motor ControlProject 47 - Changing the Motor Rotation DirectionProject 48 - Simple Servo Motor ControlProject 49 - Simple Stepper Motor ControlProject 50 - Displaying Text on the LCDProject 51 - External Interrupt-Driven Event CounterProject 52 - Ultrasonic Height MeasurementProject 53 - Calculator Using a KeypadProject 54 - TMP102 Temperature SensorProject 55 - Generating Square Wave with SPI DACProject 56 - Two Nucleo Boards Communicating Through UARTProject 57 - Android-Nucleo Communication Using the Wi-Fi Expansion BoardProject 58 - Android-Nucleo Communication Using the ESP-01Project 59 - Android-Nucleo Communication Using BluetoothProject 60 - Different Flashing a Pair of LEDs Using Mbed ThreadProject 61 - Refreshing a 7-Segment Display with RTOSProject 62 - Car Park Controller Using SignalsProject 63 - Home IoT ProjectProject 64 - Environmental Measurements with X-NUCLEO-IKS01A2Project 65 - Brushed DC Motor Speed Control with X-NUCLEO-IHM13A1Project 66 - Potentiometer Motor Speed Control with X-NUCLEO-IHM13A1Project 67 - Controlling LEDs with X-NUCLEO-OUT01A1Project 68 - Measuring Distance with X-NUCLEO-53L0A1