Microcontroller projects

Within this section of the website, all the micro-controller projects that I have developed are presented.
In common with other design information on this website, all information is provided under a distributable license, so please learn from and use the examples here.
Creative Commons License
Micro controller projects by Ian Stedman is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Some projects are source code only, others include schematics and assembly information.
On each webpage is a summary of the project and the current status.

Conversion of PIC16F84 designs to newer parts
A couple of designs presented on this page use the old and expensive PIC16F84 microcontroller. The PIC16F84 is 3.42, PIC16F84A is 2.71 but the newer, pin compatible, PIC16F627A is only 1.23 and importantly is supported by modern programmers, like the PICKIT2, PICKIT3 and the ICD3, the earlier PIC16F84 devices are not.

To convert the code should be minimal, though I have not tried it the minimum code changes using MPLAB  are:

        LIST        p=16F628                ;tell assembler what chip we are using
        include "P16F628.inc"                ;include the defaults for the chip
__config       _LVP_OFF & _BOREN_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC              
               org     0x000   ;reset vector
               goto    START
START          movlw   0x07                ;disable on chip comparator
               movwf   CMCON
               rest of code follow here

The main change to convert to the PIC16F627/628 is to disable the onboard comparators, hence the write to the CMCON register. You can also remove the external crystal or resonator and use the 4 MHz internal oscillator, thus freeing up two I/O pins and saving a couple of components.

Projects available

Game Timer   
A microcontroller based, easy to use 30 & 60 second timer for those board games that require such a time delay. It is a low power design, using 25uA in standby and uses the Wake on interrupt features of the PIC 16F84 micro-controller.

A PIC programmer for the Amiga and a program/circuit to allow a PC-Keyboard to be used with an Amiga

Edge detector
This was built to detect pulses from a Radio control receiver and act upon them, as a servo or Electronic Speed Controller (ESC) would. It uses a PIC12F675 to detect and measure the pulse widths.

Servo Tester
There are two variants of a Radio Control servo tester here, one uses the PIC12F675 development board with a variable resistor to set the pulse width, for a real analogue feel, the other is a rewrite of the software for the design published in the Elektor Electronics July/August 2006 edition, using a PIC16F84A/

FTDI USB to PIC microcontroller
This design uses the PIC16F88 microcontroller with the FTDI FT232 USB to UART interface device. Example code to interface between the PIC micro-controller and the FTDI USB device is available, for the PC, Eeither Hyperterminal or PuTTY software is used to communicate with the PIC.

Tone detector
This was test software for my solar lighting system, to detect a >400Hz tone and if detected, turn on an indicator LED. It makes use of the capture block of the PIC16F627A and the onboard comparators, which shape the distorted audio signal.

Solar lighting controller
This describes the control electronics and associated software to control a number of LED light clusters, powered by 12V and re-charged via solar panels. The charging is not controlled by this system, off the shelf charge controllers are used for this, this module works with sensors and switches to activate the lights when required.

Updated 14 April 2021