
A general introduction to embedded systems. We will have a look at what is a microcontroller and a microprocessor. The section will end with alternative platforms to Arduino and on how to select a microcontroller.
Embedded systems add intelligence to a device by combining hardware and software to perform a specific task on a single chip, reducing hardware complexity and cost.
Identify a microcontroller as a compact unit combining CPU, memory, peripherals, and a system clock for specific control tasks, such as LED control, motor speed, or temperature display.
Compare alternatives to microcontrollers, including microprocessors, ASICs, FPGAs, DSPs, and PLCs, and assess architectures, I/O, power, and application differences using Arduino Uno and Raspberry Pi 3 as examples.
Select a microcontroller by weighing dip vs smt packages, memory needs (program, data, ram, rom), and peripherals including i/o pins, adc, dac, ethernet, can, usb, timers, pwm, spi, and i2c.
Explore the open source Arduino platform for rapid prototyping, learn about diverse boards from Arduino Uno to Arduino Due, and understand shields that add Ethernet, Wi-Fi, sensors, and peripherals.
Explore the Arduino Uno R3 board, its ATmega328 MCU, power options via USB or 7–21V DC, and essential I/O features including digital and PWM pins, analog inputs, and ICSP headers.
Explore alternative development boards beyond Arduino, including Raspberry Pi 3, BeagleBone Black, Intel Galileo and Edison, Freescale Freedom, ARM mbed, TI TIVA, and ST STM32 Discovery Series.
Assemble essential hardware for course: a computer with Arduino IDE on Windows, Mac, or Linux, an Arduino Uno R3, USB A to B cable, breadboard, LEDs, resistors, switches, and wires.
Install the Arduino IDE on Windows, macOS, or Linux by downloading from arduino.cc and choosing the installer or non-admin option, then install the USB driver for board recognition.
Connect the Arduino board via USB, verify its detection in the device manager and Arduino IDE, and learn about Arduino Uno and genuino boards, boot loader, and IDE installation.
Explore the Arduino IDE layout, how to upload programs to an Arduino UNO, and the program structure with basic Arduino functions and LED connections on a breadboard.
Explore Arduino sketches saved as .ino files and structured around setup and loop. Implement setup to run once after reset and loop to execute repeatedly, with comments and port detection.
Enable digital output on the Arduino Uno by configuring pins with pinMode, driving pins high or low with digitalWrite, and using delay to time LED signals.
Explore light emitting diodes (LEDs), including anode and cathode terminals, forward voltage and current, RGB options, and driving LEDs with an Arduino using a current-limiting resistor.
Blink an LED on an Arduino Uno using pin 6, pinMode, digitalWrite HIGH/LOW, and delay in milliseconds, and compare setup versus loop for controlling blink rate.
Explore how pulse width modulation lets an Arduino Uno vary LED brightness and motor speed without a DAC, using 8-bit duty cycles (0–255) on PWM pins via analogWrite.
Control the led brightness with pwm using analogWrite from 0 to 255, fading in and out on an Arduino Uno pin 5.
Explore how a 4-pin rgb led works, comparing common anode and common cathode configurations, using Arduino with pins and resistors to light red, green, blue and mixed colors.
Connect a common anode rgb led to an Arduino Uno using 150-ohm resistors on pins 3, 5, and 6. Use pwm analogWrite to vary brightness and mix colors.
Learn to read digital input on the Arduino Uno using switches and the digitalRead function. Explore pull-up and pull-down resistors that define HIGH or LOW and prevent floating inputs.
Wire a pull-up switch to 5V with a pull-up resistor, connect an LED to pin 4, and read the switch on pin 10 in Arduino to light LED when pressed.
Learn to toggle an LED with a pushbutton on Arduino Uno, using debouncing (software and hardware) and a pull-up resistor to reliably update ledstate via digitalRead and digitalWrite.
Explore serial communication basics for microcontrollers, including UART protocols, baud rate, TX/RX wiring, and using Arduino serial functions (begin, print, println) to send data to a serial monitor.
Print numbers 1 to 50 from the Arduino Uno to the computer via the serial monitor, using Serial.begin(9600), Serial.print, and Serial.println, with a for loop and a 500 ms delay.
Receive serial data from the computer by using Serial.available() and Serial.read(), then turn the LED on pin 5 on or off based on the input 1 or 0.
Understand how analog signals are converted to digital with the ATmega328’s 10-bit ADC mapping 0–5 V to 0–1023, read via analogRead and via potentiometers and voltage dividers.
Read a potentiometer's voltage with an Arduino by wiring 5V, GND, and analog input, then read, map 0-1023 to 0-5, and display values on the serial monitor.
Explore how an LDR's resistance changes with light and wire it to an Arduino analog input (A4) using a 10 kOhms pull-down to read values.
Read temperature with LM35 on Arduino A4, convert analog value to Celsius, and display it in the serial monitor. The demo shows temperature rising as a soldering iron nears.
Demonstrates a three-led temperature indicator using an LM35 sensor on analog pin A4, with red, yellow, and green LEDs on pins 11, 10, and 9 to show thresholds.
Explore analog signals, use Arduino analogRead to read potentiometer voltage, connect an LDR to control a LED, and read LM35 temperature while varying temperature with a soldering iron.
Are you looking for a start into the world of embedded systems? Do you want to work with both hardware and software, to get an understanding into world of embedded control? If yes, then let us get started with the course which introduces embedded systems in a step by step manner. The course is aimed at guiding the learner to level of proficiency where the person can go into more advanced topics on their own.
The topics covered in the course are
Introduction to Arduino Uno
Digital Output
Analog Output
Digital Input
Analog Input
Serial Communication