
Explore the fundamentals and applications of embedded systems, define core components, and gain hands-on experience interfacing development boards with a PC by installing drivers using PWM, ADC, and serial communication.
Explore the components of an embedded system, including the embedded computer with a processor and peripherals, analog and digital sensors, inputs, outputs to actuators and displays, controlled by software.
Compare microprocessors and microcontrollers: microprocessors need external RAM and ROM, while microcontrollers integrate them on chip. Explore Harvard and von Neumann architectures in embedded single-function systems.
Explore the STM32 family of ARM Cortex-M4 microcontrollers, their internal flash and data memory, interfaces with sensors, displays, cameras, motors, and options up to 400 MHz with floating point units.
Explore the STM32F401RE nucleo board, its memory, USB connectivity, and Arduino-compatible headers, enabling easy prototyping and hands-on embedded development with STM32 peripherals.
Install the ST link driver for your stm32 development board by downloading the correct 32- or 64-bit package, completing the license, and verifying the device in device manager.
Create an mbed account, verify your email, and log in to the compiler on mbed. Then prepare to add your development board to the platform and begin writing programs.
Understand the importance of current limiting resistor
Calculate appropriate Current Limiting Resistor Value
Interface the onboard user button on stm32 using mbed c, reading a digital input to drive an led based on button presses.
Interface an external pushbutton to STM32 using pull-up resistors to avoid floating inputs. Enable internal pull-ups on the pin to reliably detect open and closed switch states.
Explore how interrupts in embedded systems suspend a main program to handle events, illustrated by a smoke sensor triggering an interrupt service routine and returning to the main task.
Learn how pulse width modulation converts digital signals to analog-like outputs by varying the on-time duty cycle, controlling average voltage for motors, buzzers, audio signaling, and telecommunications.
Learn how PWM is generated with a timer, auto reload register, and capture/compare register, adjusting duty cycle via CCR and frequency via ARR on STM32 and mbed platforms.
Learn to generate PWM on STM32 using Mbed C, creating PWM objects, setting duty cycles from 0 to 1, and configuring periods in seconds, milliseconds, or microseconds.
Demonstrates producing an ambulance-like sound on a buzzer via pwm on stm32 with mbed c, switching between 455 Hz and 333 Hz at 50% duty to create the effect.
Control a DC motor with an STM32 microcontroller using PWM to adjust speed. Use a half-bridge circuit to switch motor direction with driver ICs and transistors.
Control two dc motors with the L293D motor driver IC using pwm to set speed and direction, by adjusting the duty cycle through enable and input pins.
Wire a stm32 arm cortex m4 to control a dc motor's speed and direction using a direction button, a speed-increment switch, and pwm duty-cycle output.
Develop and demonstrate control of a dc motor's speed and direction using a hybrid circuit and Lunine, with two buttons adjusting direction and a 10 percent speed step via PWM.
Learn to use a serial port terminal to view microcontroller values and sensor data over USB. Configure Fooldom, set 9600 baud, and connect your development board via device manager.
Bridge analog physical quantities to digital form so the CPU can process them via an analog-to-digital converter, enabling sensor data and actuator control.
Explore analog to digital converters, focusing on resolution and step size in STM32 microcontrollers. See how input voltage maps to binary values via step size and how resolution affects circuitry.
Explore the STM32 adc capabilities: a 16-channel analog multiplexer, 3.3 V reference, 8-bit resolution, and single-channel reads returning a 0–1 float, with practical Mbed C usage.
Learn to interface a potentiometer with an stm32 microcontroller via adc, wire 3.3v, ground, and the wiper to an analog input, and read a 0–1 value printed over serial.
Convert ADC readings of a potentiometer to voltage by multiplying 0–1 values by the reference voltage. Demonstrates adding two code lines and testing on STM32 hardware.
Connect the LM35 temperature sensor to a microcontroller’s analog input with 5 V supply and ground, then read an output voltage proportional to ambient temperature with no external calibration.
read the LM35 temperature sensor via the stm32 adc, convert millivolts to degrees celsius by dividing by ten, and print results through usb using the Beezy communication library.
Explore liquid crystal displays and learn to display numbers, characters, special characters, and graphics on lcds, highlighting seven-segment limitations and easy programming.
explore hd44780 lcd pin description, including ground, data lines, rs, rw, and enable, with 4-bit or 8-bit modes and backlight control, plus contrast adjustment via potentiometer for readability.
Connect the hd44780 lcd to the stm32 board by wiring the rw line, ground, and v0 contrast control, then define the display interface in the object to drive it.
This lecture demonstrates driving an lcd with the TextLCD.h library, configuring the constructor and pins, printing characters and strings, and using locate and clear to control the display.
Learn Embedded C with Arm® Cortex M4 Microcontrollers!!
5 Hours of Video Content.
15 Hands-on Practicals
All Codes are available in the resources
Lecture Material (PDF / PPTs) are available in the resources
Description
This course Demystifies the development of Embedded Systems. You will learn Mbed™ C programming to use inbuilt peripherals on the microcontroller to interface sensors, actuators, and Liquid Crystal Displays (LCD). You will learn to generate Pulse Width Modulation (PWM) Waveforms with variable duty cycle and frequency. Learn to use analog to digital converter (ADC) to gather data from analog sensors and display it to LCDs.
All the codes (C Programs) are available in resources along with the lecture material.
Major Topics Covered
GPIOs: Learn to manipulate (Set/Reset) a particular bit of STM32 Microcontroller and also use it as an input pin.
Pull-up Register: Learn the importance of pull-up resistors, enabling and disabling them, also learn to use them in interfacing digital sensors.
Interrupts: Learn, how interrupts are handled in CPU? Also learn to write ISR and call them in an event of an interruption.
Pulse Width Modulation: Learn to generate PWM waves with variable duty cycles and variable frequencies.
Project 1: Learn to interface DC Motor using L293D Motor drive IC and control the speed and direction.
Liquid Crystal Display: Learn to interface LCDs with MCU using GPIOs.
Analog to Digital Converter: Learn to interface analog sensors such as a potentiometer and LM35 Temperature sensor.
Temperature Monitoring System: Learn to interface LM35 temperature sensor IC to read ambient temperature and display the same on LCD.