
Microcontroller Tutorials with Code from Scratch
Controllerstech.com is dedicated to teaching STM32, ESP32, and embedded systems through practical, hands-on tutorials. All examples are built from scratch using datasheets and reference manuals, and every project is tested on real hardware to ensure accuracy and reliability. The goal is to help you gain complete control, deep understanding, and the confidence to build real-world embedded applications.
Learn how to use STM32 ADC in differential mode to measure voltage differences between two…
This tutorial explains the concept of ADC reference voltage in STM32. You’ll learn why it…
Discover how to port the U8G2 monochrome graphics library to STM32 with hardware SPI, I2C,…
Boost STM32 ADC resolution with hardware oversampling. Step-by-step guide for STM32, including CubeMX config, VM…
Master STM32 ADC injected conversions for high‑priority sampling. Covers triggered & auto‑injection modes, CubeMX setup,…
Learn to configure STM32 ADC external trigger using timers for precise sampling control. Includes CubeMX…
Uncover how to calculate and measure STM32 ADC conversion time. Includes sampling, resolution, ADC clock…
Master STM32 ADC reading on multiple channels without DMA. Includes CubeMX setup and HAL C…
This beginner-friendly guide explains how PWM (Pulse Width Modulation) works in Arduino and how to…
Master microsecond delays in Arduino using delayMicroseconds(). Discover how to create precise timing for pulses,…
Learn how to use I2C communication in Arduino. Understand master-slave setup, Wire library functions, I2C…
Understand how Arduino converts analog signals into digital values using the ADC and analogRead(). Learn…
This Arduino UART tutorial teaches you step-by-step how to use serial communication. Learn to send…
A quick guide to using digitalWrite() and digitalRead() in Arduino to control LEDs, read buttons,…