Breadboards are invaluable for experimenting with electronic circuits. They allow you to create temporary circuits that can be easy changed. This tutorial explains the basics of how breadboards work and how to use them. A typical breadboard consists of 100's of holes called tiepoints. These tiepoints are aligned on a...
Basics
-
-
Board stacking is simply the process of taking 2 or more prototyping boards and fixing them into a vertical stack. The main reason for doing this is to build systems that are bigger than just 1 board. All the Protostack Large, Medium and Small boards have a common form factor....
-
How do you bring power to a AVR 28 pin Development Board? The first method is to use the power supply block and a wall wart. The AVR 28 pin Development Board includes a dedicated power supply block. Simply mount the components from a 5V power supply kit and 2.1...
AVR Microcontrollers
-
This is the 1st of a 3 part series where I will describe how to build a basic ATmega8 circuit and program it with a simple program. This tutorial is ideal for first timers, so read on... Breadboards usually have a break or two in the bus strips, so the...
-
This tutorial continues on from ATmega8 Breadboard Circuit - Part 1 where we build a small power supply on the breadboard. In this part we will add the ATmega8 microcontroller and an interface to allow it to be programmed. The first step is to orient yourself with the ATMEGA8 microcontroller....
-
This tutorial continues on from ATmega8 breadboard circuit Part 1 and ATmega8 breadboard circuit Part 2. So far we've built a power supply, added the microcontroller, added some plumbing to make it work and added the ISP interface, but it really doesn't do anything. The next step is to add...
-
This tutorial will teach you how to use the I/O ports on an AVR microcontroller. I will be using an Atmega8 but the general principles apply to any AVR microcontroller. Introduction The Atmega8 has 23 I/O ports which are organised into 3 groups: Port B (PB0 to PB7) Port C...
-
This tutorial will teach you how to use external and pin change interrupts on an AVR microcontroller. I will be using an ATmega168. The general principles apply to other AVR microcontrollers, but the specific vary greatly. What is an Interrupt? Imagine your are sitting at your computer, reading this post....
-
This tutorial will teach you about the 8 and 16 bit timers on an ATmega168 microcontroller. Because the ATmega168 is very similar to the ATmega48, ATmega88 and ATmega328, the examples should also work on these. For other AVR microcontrollers the general principles will apply but the specifics may vary. What...
-
The AVR family of microcontrollers use a modified Harvard Architecture which uses 3 types of memory, most of which are on chip. Flash RAM EEPROM Flash Flash is non volatile memory, which means it perisists when power is removed. Its purpose is to hold intructions that the microcontroller executes. The...
-
In this tutorial we will show you how to setup an AVR Eclipse development environment on Windows. Installing the AVR-GCC toolchain The AVR-GCC toolchain is a collection of tools which are used to compile and upload firmware to AVR microcontrollers. The toolchain comprises of: GCC - The C/C++ Compiler GNU...
-
EEPROM (Electrically Erasable Programmable Read Only Memory) Is non-volatile memory, meaning it persists after power is removed. The ATmega168 microcontroller has 512 bytes of EEPROM which can be used to store system parameters and small amounts of data. This tutorial shows you how to read and write EEPROM. Overview Our...
-
Many AVR microcontrollers are capable of doing Analogue to Digital Conversion. The ATmega168 has 6 ports (8 ports on the SMD packages) that can be used for analogue input. This tutorial shows you how. The circuit We'll be building the following circuit on a breadboard. The Breadboard layout is based...
-
Back in February, we wrote a post on Analogue to Digital Conversion. Many people mentioned that it was a bit light and they would like a more advanced tutorial. Well here it is... In this tutorial we add a second analogue input and use the ADC Conversion Complete interrupt. The...
-
Dimming an incandescent bulb is easy. Simply adjust the current down using a potentiometer and you are done. Dimming an LED is another story entirely. When you reduce current through an LED there are unintended consequences like color shifts and dropouts. A better way is to use Pulse Width Modulation...
Input/Output Devices
-
In this tutorial I will describe how to drive a 7 segment module using a 4511 - BCD to 7 Segment Latch/Decoder/Driver. First we need to familiarize ourselves with the 7 segment module. These modules are made up of 8 LEDs, 7 of which make an "8" pattern and 1...
-
Introduction LCD character displays can be found in espresso machines, laser printers, children's toys and maybe even the odd toaster. The Hitachi HD44780 controller has become an industry standard for these types of displays. This tutorial will teach you the basics of interfacing with a HD44780 compatible display using some...
-
Mechanical switches do not make or break a connection cleanly due to microscopic conditions on the contact surface. This is referred to as "Switch Bounce" and can cause problems in digital circuits. In this tutorial we will build a circuit that demonstrates this problem, then modify it slightly to resolve...
-
Introduction This tutorial continues from Character LCD Displays - Part 1. In this part we will connect the LCD module to an Atmega8 microcontroller, then write some code to drive it. The Circuit Our first task is to build the circuit. We will be using an AVR 28 pin Development...
-
This tutorial shows you how to control 16 LEDs with just 3 control lines. We do this by daisy chaining 74HC595 shift registers The 74HC595 shift register has an 8 bit storage register and an 8 bit shift register. Data is written to the shift register serially, then latched onto...
Projects
-
For this post I thought I'd try something a little different. I've created 3 videos which together describe how to create a severed hand in a jar display for halloween. My daughter TJ helped with this one by doing the voice over for the first 2 videos. Each of the...