The number of pins is often limited on microcontrollers, and when we have a significant number of outputs to control, we can quickly run out of pins. An easy solution to fix this problem is to use a shift register. In this tutorial we’re going to learn how to use a 74HC595 shift register, to output 8 bits of data with only 3 bits from the PIC.
As we’ve seen in the tutorial about creating a distance sensor for your garage, it’s important to have a convenient method to debug the systems we’re developing. This allows us to quickly access the values of variables, and lets us know the state of our program. In the distance sensor tutorial we used a LCD display, which is very user-friendly, but not the most efficient as it uses many pins of the PIC, and a lot of space on the board. In this tutorial, we’ll learn how to use one of the easiest and most lightweight embedded communication interface, the UART interface.
We learned in the first part of this tutorial how to measure a distance with a HC-SR04 ultrasonic sensor. In this second part, we’ll get rid of the LCD display, and instead show the distance on a custom meter made with LEDs. The idea is to turn colored LEDs ON/OFF depending on how close the car is from the wall.
If you don’t have a reverse backup radar system in your car, or if you park forward in your garage, you probably know this feeling of “am I too close, am I gonna hit the wall??”. Well, in this 2 part tutorial, we’re going to create a simple system to detect how close to the wall your car is.
In this tutorial we’ll learn how to control a LCD display from a PIC microcontroller. LCD displays are one of the most used devices to display information. It allows an electronic system to show text and is easily programmable using a microcontroller. We’ll use a PIC16F88 from Microchip. This tutorial can be used to control any LCD display based on a HD44780 controller. Let’s create a little library to control a LCD display!
As we’ve seen in the previous tutorial, it’s pretty easy to display a single digit number on a seven segment display. If you want to display two digits though, you’ll quickly see it’s a bit more complicated. Today we’ll learn how to multiplex two 7-segment displays in order to display a 2-digit number.
One of the key elements in embedded systems is the user interface. A good user interface will feature visual elements to communicate with the user, such as LEDs or a screen for example. Seven segment displays are widely used in electronic devices, as they can display information in an easy way. We find 7 segment displays everywhere in our homes: our alarm clocks, microwave ovens or even the screens of some devices. Let’s see how to use this component in an embedded system! We’ll start simple, with a single 7 segment display.
When I build a circuit on a breadboard, the first problem I always have is to create the 5V that will power the components. Of course there are a lot of pre-made power-supplies that you fit perfectly on the power rails of the breadboard, but I wanted something that I built myself and I can use with all my circuits. In this article I will present the power supply I came up with, as well as a step by step explanation of the circuit.
So we’ve completed the first part of this tutorial, and are now ready to start doing interesting things. It’s time to build a simple circuit and put some life in it with a program. We’ll start with something very basic, and program our microcontroller to blink a LED blink.
In this series of tutorials we’re going to learn how to create our first embedded program for PIC microcontrollers. They are built by Microchip, and massively used in the industry. There are several other big actors in the world of microcontroller, such as Atmel with their AVR products (although they’ve recently been bought by Microchip), NXP, Freescale and much more. I decided to present Microchip’s microcontrollers because they are one of the most used brand of microcontrollers, and because the tools are easy to set up. They’re also relatively cheap and available on Windows, Mac and Linux, making it accessible to most people.