Breadboard
A few hacks to make bread boarding easier…
1. Hacking the power buses
The power buses on a breadboard are constructed in multiple pieces. To get continuity down the length of the bus Continue reading “8 Breadboard Hacks” »
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…
Continue reading “Analogue to Digital Conversion Interrupts on an ATmega168A” »
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.
Continue reading “Analogue to Digital Conversion on an ATmega168” »
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.
Continue reading “Reading and writing Atmega168 EEPROM” »
Recently a friend asked me, “What do I buy if I’m just starting out with embedded systems and want to learn?”. I told him a breadboard solution would be best and started rattling off all the bits that he would need. Then I got thinking, what if we made this a kit? So here it is…
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. The phone rings and you answer it. After you hang up the phone (it was a telemarketer trying to sell you a timeshare), you get back to the awesomeness of the post, picking up where you left off.
Microcontroller interrupts are just like that.
- The microcontroller is executing it’s main routine
- An event occurs, which raises an interrupt
- The Interrupt Service Routine (ISR) is run
- On termination of the ISR, the microcontroller returns to it’s main routine, at the point where it left off
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 (PC0 to PC6)
- Port D (PD0 to PD7)
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 the storage register. The storage register then controls 8 output lines. Continue reading “Introduction to 74HC595 shift register – Controlling 16 LEDs” »
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 it.
We will be reusing the circuit from the ATmega8 breadboard circuit tutorial. Continue reading “Debouncing a switch” »




