Table of Contents

Cover image

Title page


About the Author



Chapter 1: Introduction


1.1 Overview

1.2 Example Microcontroller-Based Control System

1.3 Summary

1.4 Exercises

Chapter 2: Microcontroller-Based Project Development Cycle


2.1 Overview

2.2 Program Development Tools

2.3 Examples

2.4 Summary

2.5 Exercises

Chapter 3: The ARM Microcontrollers


3.1 Overview

3.2 Brief History of ARM Processors

3.3 The ARM Processor Architecture

3.4 ARM Processor-Based Microcontroller Development Boards

3.5 Summary

3.6 Exercises

Chapter 4: STM32 Nucleo Development Boards


4.1 Overview

4.2 STM32 Nucleo Development Boards

4.3 STM32 Nucleo Expansion Boards

4.4 Summary

4.5 Exercises

Chapter 5: The Nucleo-F411RE Development Board


5.1 Overview

5.2 The Nucleo-F411RE Development Board

5.3 The Demo Software

5.4 Summary

5.5 Exercises

Chapter 6: Architecture of the STM32F411RET6 Microcontroller


6.1 Overview

6.2 Key Features of the STM32F411RET6 Microcontroller

6.3 Summary

6.4 Exercises

Chapter 7: Using the Mbed With Simple Projects


7.1 Overview

7.2 Registering to Use Mbed

7.3 Nucleo-F411RE Development Board Pin Names

7.4 Project 1—Flashing LED

7.5 Project 2—LED Flashing as Morse Code SOS

7.6 Project 3—Flashing an External LED

7.7 Project 4—Rotating LEDs

7.8 Project 5—Binary Counting LEDs

7.9 Project 6—Random Flashing LEDs

7.10 Project 7—LED Control With Push-button

7.11 Project 8—Changing LED Flashing Rate

7.12 Project 9—Binary Event Counting With LEDs

7.13 Project 10—Using an External Button

7.14 Project 11—RGB LED Control

7.15 Project 12—Random Colored LED Display

7.16 Project 13—7-Segment LED Display

7.17 Project 14—Powering Large Loads—DC Motor Control

7.18 Summary

7.19 Exercises

Chapter 8: Intermediate Level Projects


8.1 Overview

8.2 Project 1—Two-Digit Multiplexed 7-Segment LED

8.3 Project 2—Four-Digit Multiplexed 7-Segment LED

8.4 Polling and Interrupts

8.5 Project 3—Four-Digit 7-Segment LED Counter

8.6 Project 4—Four-Digit 7-Segment LED Event Counter

8.7 Project 5—7-Segment LED Dice

8.8 PC Serial Interface

8.9 Project 6—Volume of a Cylinder

8.10 Project 7—Calculator

8.11 Project 8—Learn Your Times Tables

8.12 Project 9—Improving Your Multiplication Skills

8.13 Project 10—Loop Execution Times

8.14 Project 11—Reaction Timer

8.15 Project 12—Event Counter

8.16 Project 13—Hi-Lo Game

8.17 Project 14—Serial Interrupt

8.18 Project 15—Euro Millionaire Lottery Numbers

8.19 Using the Analog-to-Digital Converter

8.20 Project 16—Digital Voltmeter

8.21 Project 17—Analog Temperature Sensor (Digital Thermometer)

8.22 Project 18—Digital Thermostat

8.23 Project 19—ON/OFF Temperature Controller

8.24 Project 20—Light Level Meter

8.25 Project 21—Changing LED Flashing Rate With a Potentiometer

8.26 Project 22—Sound Level Meter

8.27 Using the Digital-to-Analog Converter

8.28 Project 23—Generating Fixed Voltage

8.29 Project 24—Sawtooth Waveform

8.30 Project 25—Triangular Waveform

8.31 Project 26—Sine Waveform

8.32 Project 27—Arbitrary Periodic Waveform

8.33 Project 28—Waveform Generator

8.34 Using the PWM

8.35 Project 29—Melody Maker

8.36 Project 30—Electronic Organ

8.37 Project 31—Varying the LED Brightness

8.38 Summary

8.39 Exercises

Chapter 9: Motor Control Projects


9.1 Overview

9.2 Project 1—Simple Brushed DC Motor Control

9.3 Project 2—Changing the Motor Rotation Direction

9.4 Project 3—Simple Servo Motor Control

9.5 Project 4—Simple Stepper Motor Control

9.6 Summary

9.7 Exercises

Chapter 10: Using Liquid Crystal Displays (LCDs)


10.1 Overview

10.2 Project 1—Displaying Text on the LCD

10.3 Project 2—External Interrupt-Driven Event Counter

10.4 Project 3—Ultrasonic Height Measurement

10.5 Project 4—Calculator Using a Keypad

10.6 Summary

10.7 Exercises

Chapter 11: I2C Bus Projects


11.1 Overview

11.2 Nucleo-F411RE I2C GPIO Pins

11.3 Project 1—TMP102 Temperature Sensor

11.4 Summary

11.5 Exercises

Chapter 12: SPI Bus Projects


12.1 Overview

12.2 Nucleo-F411RE SPI GPIO Pins

12.3 Project 1—Generating Square Wave

12.4 Summary

12.5 Exercises

Chapter 13: UART Projects


13.1 Overview

13.2 Nucleo-F411RE UART GPIO Pins

13.3 Project 1—Two Nucleo Boards Communicating Through UART

13.4 Summary

13.5 Exercises

Chapter 14: Advanced Projects


14.1 Overview

14.2 Wi-Fi

14.3 Project 1—Android—Nucleo Board Communication Using the Wi-Fi Expansion Board

14.4 Project 2—Android—Nucleo Board Communication Using the ESP-01

14.5 Project 3—Android—Nucleo Board Communication Using Bluetooth

14.6 Summary

14.7 Exercises

Chapter 15: Mbed RTOS Projects


15.1 Overview

15.2 Task Scheduling

15.3 Mbed RTOS Implementation

15.4 Project 1—Different Flashing a Pair of LEDs—Using Mbed Thread

15.5 Project 2—Refreshing a 7-Segment Display

15.6 Mbed Task Synchronization—Mutex, Semaphore, and Signals

15.7 Project 3—Car Park Controller—Using Signals

15.8 Mbed Queue and MemoryPool

15.9 Mbed Mail

15.10 Mbed RTOS Timer

15.11 Summary

15.12 Exercises

Chapter 16: Internet of Things (IoT)


16.1 Overview

16.2 Internet of Things (IoT)

16.3 Project 1—Home IoT Project

16.4 Summary

16.5 Exercises

Chapter 17: STM32 Nucleo Expansion Boards


17.1 Overview

17.2 High-Power Stepper Motor Board (X-NUCLEO-IHM03A1)

17.3 Two-Axis Stepper Motor Board (X-NUCLEO-IHM02A1)

17.4 Low-Voltage Three-Phase Brushless DC Motor Board (X-NUCLEO-IHM11M1)

17.5 Motion MEMS and Environmental Sensor Expansion Board (X-NUCLEO-IKS01A2)

17.6 Project 1—Measuring and Displaying the Humidity, Temperature, Atmospheric Pressure, and Dew Point Using the X-NUCLEO-IKS01A2 Expansion Board

17.7 Multifunctional Expansion Board (X-NUCLEO-IKA01A1)

17.8 Bluetooth Low-Energy Expansion Board (X-NUCLEO-IDB04A1)

17.9 Three-Phase Brushless DC Motor Board (X-NUCLEO-IHM07M1)

17.10 Bipolar Stepper Motor Driver Board (X-NUCLEO-IHM05A1)

17.11 Low-Voltage Stepper Motor Driver Expansion Board (X-NUCLEO-IHM06A1)

17.12 Brushed DC Motor Driver Expansion Board (X-NUCLEO-IHM13A1)

17.13 Project 2—Brushed DC Motor Speed Control Using the X-NUCLEO-IHM13A1 Expansion Board

17.14 Project 3—Brushed DC Motor Speed Control Using a Potentiometer With the X-NUCLEO-IHM13A1 Expansion Board

17.15 Industrial Digital Output Expansion Board (X-NUCLEO-OUT01A1)

17.16 Project 4Controlling LEDs With the X-NUCLEO-OUT01A1 Expansion Board

17.17 CR95HF NFC Card Reader Expansion Board (X-NUCLEO-NFC03A1)

17.18 M24LR Dynamic Tag Expansion Board (X-NUCLEO-NFC02A1)

17.19 Ranging and Gesture Detection Sensor Expansion Board (X-NUCLEO-53L0A1)

17.20 Project 5Measuring Distance to an Object Using the X-NUCLEO-53L0A1 Expansion Board

17.21 Summary

17.22 Exercises

Appendix: STM32 Nucleo-F411RE Pin Layout



..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.