Circuits with PIC micro's & analog IC's

Electronic design, PIC micro, analog circuit, Arduino projects



Some time ago I decoded to make a simple general purpose Data Logger with the following parameters for the project.

  • it should have very simple design that should be doable by most amateurs
  • the Data Logger should write the data in a SD memory card in simple text files
  • minimum 2 ADC channels
  • simple to use and simple settings
  • energy efficient
  • low cost
  • Click here for more info

PIC micro simulator SimmulIDE

Free simulator with many IC's and many PIC-micro.

Click here to download

PIC12F1822 with USB

Use google translate to read the text, Program is in english

click here for more info

Low power temperature data logger using PIC18F27J53

One of the design goals is to use the fewest parts need to accomplish the other goals. The reference design uses an EEPROM to store the logged data. The 24AA1025 is a rather expensive part for 128 k bytes of storage. Using a microcontroller with a large internal writeable non-volatile memory may allow this part to be eliminated. That would reduce parts cost and build time. The Microchip parametric parts selector was used to display 8 bit PIC microcontrollers in a 28 pin or smaller package. The displayed list of parts was then sorted by memory size. The highest capacity flash memory shown was 128 k bytes. That is the same capacity as the EEPROM, but some space will be taken by the firmware. The PIC18F27J53 look like a good choice. It is available in a DIP package so the logger can be easily built on solderless breadboard. It also features a real time clock (RTC) that will allow time stamps and a precise sample rate. The analog to digital converter (ADC) is 12 bits – an improvement over the 10 bits of the reference design. It also has USB that could be used to eliminate the need for the FTDI USB to serial cable. Click here for more info


USB thermometer DS18B20 temperature sensor. Included Visual Basic 6 software, Visual Studio 2005 C# code, PIC C code and a circuit diagram. The PIC interface to the PC is HID class.
The DS18B20 sensor has a range of -55 to 125 centigrade in accuracy of 0.5 degree and resolution of 9 to 12 bits. The interface to the pic is via one digital line, the 1 and 0 is determined by pulse duration. The code includes the commands to read temperature and set the resolution. Click here for more info


Using PIC18F2550 for connecting analogue and digital signals to USB port . Included Visual Basic 6 code, Visual Studio 2005 C# code, PIC ASM code, PIC C code and a circuit diagram. The PIC microcontroller has 10 bit analogue to digital converter, by selecting 8 bits conversion the 2 LSB are ignored. The circuit is powered by the USB. The interface to the PC is HID class.
The frequency counter has a range of up to 4MHz (24bits). Inputs samplings can be done at rates of 1 per second and 1 every 0.1 second. Click here for more info

Versatile Voltage-to-Pulse Train Converter Supports Sensor Data I/O using PIC12F683

The design uses an 8-pin PIC 12F683 to provide a pulse train that’s proportional to the sensed input voltage. This is useful, for example, when transforming a sensor signal into a format that’s compatible with a basic digital or GPIO input. The output operating range ranges between 0 to 500 pulses for an input voltage of 0 to 5.00 V dc. Click here for more info

PIC12F675: Generates Analog Gaussian Waveform Without Need for a DAC

Laboratory data often appears as Gaussian curves, and today's laboratory data-acquisition software is designed to analyze these data to determine such things as peak location, amplitude, area, and width.  A good test signal is useful in developing such software, and it is best when the test signal resembles actual analog data including noise. Click here for more info

PIC12F683: Bicolor LED Indicates Voltage Readings Via Visual Pulses

The circuit is based on the 8-pin MCU PIC 12F683. It requires only two I/O lines to display a voltage reading with a resolution of 0.1 V. The period of the LED pulses can be adjusted from 1 to 255 ms with the trimming potentiometer (trimpot) connected on AN3. With this trimmer, users can set the refresh rate to suit their needs. The software program occupies only 280 words out of the 2 kB of available program memory. Click here for more info

Temperature and relative humidity meter using an inexpensive DHT11 sensor

DHT11 is the most inexpensive sensor currently available in the market that provides calibrated digital outputs for temperature and relative humidity. It is available in a single row 4-pin package and operates from 3.5 to 5.5V power supply. It can measure temperature from 0-50 °C with an accuracy of ±2°C and relative humidity ranging from 20-95% with an accuracy of ±5%, thus making it suitable for indoor applications. The sensor has got its own proprietary 1-wire protocol to communicate with a host microcontroller. The Pic is programmed in mikroC Pro. Click here for more info.


  • Battery powered
  • USB
  • No docking station
  • Configurable period of acquisition
  • Time stamped temperature
  • Cheap
  • At least 30 000 temperature acquisitions

See more here

Serial Data Logger using PIC16F688

The data logger consists of a simple op-amp amplifier circuit that amplifies the signal and sends it to be digitized by a PIC16F688 microcontroller, serialized, and sent to the computer's serial port via a MAX232 serial driver. Click here for more info

Monitor 15 contacts with one PIC input on PIC12F683

The following Design Idea shows another simple way to use up to 15 pushbuttons with only one I/O. The microcontroller chosen must contain an internal comparator with selectable values for the internal voltage reference VREF. The majority of 8-bit PIC microcontrollers in the mid-range family feature one or two internal comparators with just this. Click here for more info

Freezer Alarm using PIC12F508 or similar

Very simple Freezer alarm, using PIC12F series microprocessor. Click here for more info.

Many great books about PIC microcontrollers

The goal of this project is to construct a simple 0-9999 seconds count down timer with an alarm and a display. Click here for more info


Windmill controler with PIC12F675


Please support us by clicking on some ads on this page - thanks

Click here for more info

PIC programmer - good price

Buy a good value PIC programmer, click here.

A fun project with the 12F675 and mikroC


Here is a small example that should get you going with the PIC 12F675 microcontroller and mikroC PRO.

Click here for more info

Meter showing reading on oscilloscope using  PIC12F683

This project shows how to do a direct reading on an oscillocope to build a frequency meter and a voltmeter  with a PIC and only 4 resistors.
Click here for more info.
This project describes a motion sensor alarm based on a Passive Infra-Red (PIR) sensor module. Click here for more info

433 MHz Super Remote with PIC12F683

Using a PIC12F683 and a few transistors, it is theoretically possible to boost the power to a standard 433 MHz remote transmitter module. Click here for more info

Simple timer using PIC12F683

Dual 4-digit seven segment LED display with SPI interface, using PIC12F683  and MAX7219

PAL Videro SuperImposer using PIC12F683

This project shows how to superimpose a text on a PAL composite video signal * with a PIC and only 4 resistors.

Click here for more info

PIC Programmer

Pic programmer

Flood Detector using PIC12F683

LC-meter with PIC16F628

Rainbow LED indicates voltage with color

Using a minimal number of components, this voltage-to-color converter uses a single rainbow LED
to monitor an analog voltage level.  Click here for more info

Battery monitor also enables constant-power-boost converter Using PIC12F683

 Voltmeter with PIC12F683

LED ambient light sensor with PIC12F629

LED candle with PIC12F675

Camera switch with servo Activated shutter, PIC12F675

Tracking transmitter with PIC12F675

Brushed Motor control esc with PIC12F675

Voltage prog. square wave generator with PIC12F675

 TV IR remote controler with PIC16F628

 Measure analog voltage on your RS232 port with PIC12F675

 Learn how to use Pulse Width Modulation in PIC12F683

 Programs in C.

 PIC12F683 PWM.pdf

 LED RGB light effects with PIC12F629

LED dimmer with PIC12F629, assembler code.

Inductively Coupled Thermistor using PIC12C671 or similar

This temperature
sensor is unique because it can work through non-ferromagnetic
walls. Interfacing to a thermistor is normally
a very straightforward task. Interfacing to a thermistor
on the other side of a wall gets a little more complicated.
Interfacing through walls can be a very valuable
feature in certain applications, notably temperature
sensing for refrigerators or sensing inside of a hazardous
gas environment where an isolation barrier is a
safety issue.
Click here for more info.

Home alarm with PIC16F877A

 Windmill Controler with PIC12F675

 Singel chip datalogger with PIC12F683

Anemometer using PIC12F683 micro

 Ultra-low-cost Logging Anemometer for Wind
 Power Generation Feasibility Surveys

 Using PIC12F683 microcontroller.

 Anemometer .pdf

 Temperature datalogger with PIC12F683


  Click here 

 Security system with PIC12675

  Build this simple system for your home.


  Click here for more information

 Metal detector with PIC 12F683 and C program

4 channel temperature online logger with sensor DS1820 and   PIC12C509

 4 channel ADC for serialport with PIC12F683 or PIC12C671

 Dice with PIC10F200

 Turn TV remote into RF with PIC10F200

 Remote controler with PIC10F200

 AC dimmer with PIC10F200

Slave flash trygger with PIC12F675

Free book about PIC microcontrollers

The purpose of this book is not to make a microcontroller expert out of you, but to make you equal to those who had someone to go to for their answers. Great book!

 Download the free book here.

 Wind gauge with PIC16F873

PIC12F675 based TV remote conrol

The Supermute is a TV remote that turns the TV on or off, mutes the sound and varies the volume up or down, using only three buttons. The mute/on/off button is an industrial emergency stop button which makes it easy to kill pesky adverts.

The circuit comprises a Microchip PIC12F675 8-pin microcontroller, FET Q1, infrared LED1, the emergency stop button and two small pushbutton switches for the volume control. Holding the emergency stop button down for a second or more alternatively turns the television on or off.

A quick slap of the emergency stop button with an open hand (or closed fist!) or a prod with the foot mutes or un-mutes the TV. The pushbutton switches raise or lower the volume.

It is set for a Sony TV which has a simple IR protocol – a 5-bit address to identify the device being controlled (TV, DVD player, VCR, etc) and 7-bit commands. The carrier frequency is 40kHz. The PIC program uses the SLEEP function to limit the off-state current to less than 1mA and is woken from SLEEP with any change on input ports 1, 2 or 3.

You can determine the bit pattern by a web search or by measurement with the device’s original remote, an IR detector on a breadboard and an oscilloscope.

The emergency stop button is an industrial Allen Bradley unit. Jaycar have a cheap latching button emergency stop (Jaycar SP-0786) that can be converted easily to non-latching but it is not as robust. Jaycar also have a number of large momentary contact pushbutton switches.

More information and program for this remote controler


Free compilers for PIC microcontrollers

C-compiler, Pascal-compiler and Basic-compiler.

Choice the programming language you like to use. The compilers are easy to use, just try it  for your self.

Down load your free PIC microcontroller compiler here


Online  Pic 12F675 Temperature Sensor Transmit Uart RS-232

This design rests on the capabilities of the PIC 12F675. The PIC averages 100 analog readings of the LM335 and converts this data to a string representation of a floating point number and sends it via the UART process. The PC would then receives and manipulates the 8 bit data so it can be displayed using LabView. The temperature that is displayed is accurate to within 2 degree Celsius and will display a temperature range from 0 to 130 degrees Fahrenheit.

More informations on this design


In Circuit PIC programmer


Anemometer with PIC12F683

Ultra low cost logging  anemometer for wind power generating studies.Down load the paper here

433 MHz transmitter with PIC12F683

Monitor alarm and indicator with PIC12F675

Use PIC12F683 to control gain with digital potentiometer

Metal detector with PIC12F683

BAT detector


  Only 3 components. PIC12F683 and two piezo.

  C code and more information

 Laser projector with PIC12F683

 Door lock opener with PIC12C509 or similar

PIC12F629 Captures infrared signals from remote controls

Click here for more information




PIC12F675 control brushless DC motor

This project documents how to build and construct your own Brushed Motor ESC for Cars and Boats.

 For more info, click here

Solar panel controler using PIC12F675

Bluetooth termometer with PIC12F675

A Cheap Ultrasonic Range Finder

Simple UltraSonic Range Finder measuring from 30 to 200 centimeters, using PIC16F877A.

 Click here for more circuit and program


PIC16F84 and JFET form a low cost millivoltmeter

USB Thermometer with PIC18F2550

Smart temperature meter Click here for more info


Logic probe with PIC12F683

Make your own PIC12F683 development board

Electronic Load Controller for microhydro system using PIC16F628

Expand microcontroller input capacity using ternary logic


 Need more input for your PIC12F675 or similar?

Click here for more info


PIC12F510 controles voltage multiplier

 Boast 3V to 12V with this simple circuit.

 Clck here for more info

USB Temerature logger using PIC12F675

Low cost temperature datalogger using PIC12F1822

This project describes an easy and inexpensive way of adding a digital thermometer and data logging feature to a PC. It involves a PIC microcontroller that gets the surrounding temperature information from the Microchip MCP9701 sensor, and sends it to a PC through an USB-UART interface. The USB port of the PC is also used to power the device. The open-source Processing  programming platform is used to develop a PC application that displays the temperature in a graphics window on the computer screen. The PC application also records the temperature samples plus date and time stamps on an ASCII file. Click here for more info


PIC18F4520 Data logger with MMC/SD card

LCR meter using PIC16F628

Measure C, L and f with this simple meter.  Click here for more info



Heart rate measurements from fingertips using PIC16F628A

Heart rate measurement indicates the soundness of the human cardiovascular system. This project demonstrates a technique to measure the heart rate by sensing the change in blood volume in a finger artery while the heart is pumping the blood. It consists of an infrared LED that transmits an IR signal through the fingertip of the subject, a part of which is reflected by the blood cells. The reflected signal is detected by a photo diode sensor 

Click here for more info

Soundmeter using PIC16F628

Very simple soundmeter.

 Click here for more info



RPM meter for wind generators using PIC12F675

The RPM Meter measures and displays the RPM of a wind generator based on the AC output of one of the phases of the generator.  The RPM meter must be programmed with the number of magnetic poles used in the generator construction to calculate the RPM of the wind generator. Click here for more info


Solar energy is rapidly advancing as an important means of
renewable energy resource. More energy is produced by tracking
the solar panel to remain aligned to the sun at a right angle to the
rays of light.  Click here for more info

Tamper sensor using PIC12F683

Here is a device designed to detect interference
(vandalism or tampering) by acoustic means.

 Click here for more info

Humidity circuit and Fan control using PIC12F683 and 555 timer

PIC precision thermo- and humidity meter using STH15 and PIC16F631

Solar Panel controller by 12F675

 The purpose of this project is to realize a Solar panel controller. Initially developed for a sailing boat, the target to reach was to control the level of charge and discharge and to protect a 12 volts lead battery connected to a 32 watts solar panel.  Click here for more info



Higher voltage can be measured with resistor voltage divider.

 Click here for more info

GPS to SD card datalogger using PIC16F819

This project combines a GPS receiver module, a Microchip PIC microcontroller and a Secure Digital memory card to make a GPS data logger.  Click here for more info