Book Image

DIY Microcontroller Projects for Hobbyists

By : Miguel Angel Garcia-Ruiz, Pedro Cesar Santana Mancilla
Book Image

DIY Microcontroller Projects for Hobbyists

By: Miguel Angel Garcia-Ruiz, Pedro Cesar Santana Mancilla

Overview of this book

We live in a world surrounded by electronic devices, and microcontrollers are the brains of these devices. Microcontroller programming is an essential skill in the era of the Internet of Things (IoT), and this book helps you to get up to speed with it by working through projects for designing and developing embedded apps with microcontroller boards. DIY Microcontroller Projects for Hobbyists are filled with microcontroller programming C and C++ language constructs. You'll discover how to use the Blue Pill (containing a type of STM32 microcontroller) and Curiosity Nano (containing a type of PIC microcontroller) boards for executing your projects as PIC is a beginner-level board and STM-32 is an ARM Cortex-based board. Later, you'll explore the fundamentals of digital electronics and microcontroller board programming. The book uses examples such as measuring humidity and temperature in an environment to help you gain hands-on project experience. You'll build on your knowledge as you create IoT projects by applying more complex sensors. Finally, you'll find out how to plan for a microcontroller-based project and troubleshoot it. By the end of this book, you'll have developed a firm foundation in electronics and practical PIC and STM32 microcontroller programming and interfacing, adding valuable skills to your professional portfolio.
Table of Contents (16 chapters)

Coding your clap switch sketch

In this section, we will develop the program to identify a clap sound from a microphone. This sound will turn an LED on and off. Let's get started:

  1. As a first step, we need to define which pins of the Blue Pill card pins will be used for input and output. Then, we need to assign the sound threshold level for the microphone to detect the sound; this value is in the range 0-1023. We are using a value of 300, so the sound captured by the microphone is loud enough to identify a clap and not any background noise (we will show how to select an appropriate threshold in the Improving the project performance section).

    As can be seen in the following code snippet, the analog reading pin will be 0 (labeled A0 on the Blue Pill), and the digital output pin will be PC13 (labeled C13 on the Blue Pill):

    const int MicAnalogPin = 0; 
    const int LedDigitalPin = PC13;
    const int ClapThreshold = 300;

    Constant value variables are being used with the const keyword...