Android Oscilloscope
OBD2 Engine Rev Counter
OBD2 Diagnostic app
TFT Clock and Thermometer
WiFi, Ethernet
WiFi Thermometer
WiFi ESP8266
Doorbell with SD / EEPROM
SD FAT16/32 for .bmp
PETIT FAT bmp Display
TFT Timer, Thermometer
TFT Oscilloscope
SD Talking Clock
Android Talking Clock
SD Sound Recorder
SD FAT32 wav Player
SD Arduino Recorder
LED Thermometer
LED Timer
LCD Timer
TFT 10MHz Counter
100KHz Counter For PC
1MHz Counter For PC
8 Digits LED Counter
Scope Screen Counter
LCD Module Counter
LCD Arduino Counter
6MHz Android Counter
NIXIE Android Counter
Bluetooth Counters
USB Counter
USB TFT display BMP
USB DS18B20 Sensor
USB Thermometer
USB Meter
USB Oscilloscope
USB Input-Output
USB Input-Output Android
USB 16x2 LCD
Serial TFT Text
Serial Inputs Outputs
Serial Port LCD
MCP3201 on Serial Port
Serial Thermometer
Analogue Signal to Serial
Serial Thermostat
MCP3201 on LPT
Analogue Signal to LPT
LCD Display on LPT
Water Softener
HP Stream 7 docking
3.7V to 5V
Solar Charger
Infrared Decoder
PIC Music
Code Lock
Code Lock with LCD
HOME   Technical Tips


Project for connecting analogue signal to serial port. Included Visual Basic VS2010 software and a circuit diagram. The MCP3201 is a micro-power 12 bit analogue to digital converter. The conversion selector reads all the 12 bits, the 10 or 8 MSB and ignores the LSB. With less resolution the reading is more stable. The supply to the circuit is via the 12V at pin 7 that are switched to logic high by the software.
The communication to the PC is bit banging the Hardware Controls, the DTR is used for clocking the ADC and the CTS is used for data input.

You can read more about serial interface in
Datasheet for the MCP3201 can be downloaded from here
You are free to use the circuit diagram and VB code with no limitations.

The VS2010 application is a combined digital and analogue voltmeter.

Circuit Description
See also Technical Tips

Input at pin 2 of the ADC is 0 to 5 volts full range positive voltage only. The chip over voltage protection is 5V max.
Pin 8 is the 5 V supply to the IC.
Pin 1 is reference voltage for the ADC , it's connected to the 5V and can be connected to an external reference voltage. The reference voltage determents the input voltage span.
Pin 6 is the serial data out of the ADC, BC237 and BC327 are a level shift from 0-5V to -8 to +8V which is the voltage required for the serial connector.
Pin 7 is the clock for reading the data and pin 5 is the Chip Select. The 22K resistors are for lowering the 12V out of the serial port to 5V level of the ADC.


07.03.2013 - 08:48
Name: paolo
Comment: Oh.. something useful!!

10.12.2011 - 19:33
Name: Moty
Comment: Hi Lutz, The weakness of this project is in the VB6, there is no time base of less than 10ms in VB. For the clock of about 2 KHz I have the 'Private Sub clock()' that counts to 4000. On my new computer the count needs to be 20000 because the computer is faster (4000 counts gives a clock of 10 KHz which is too fast for the ADC). I assume that your computer is as fast as my new PC. In case that you can't correct the VB source code then you can use the modified 'ser3201fast.exe' attached. If you can change the VB code then try doubling the count until the reading is stable. I hope that this is a useful remedy. I'm afraid that this project will never meet the standard German renowned reliability.

10.12.2011 - 16:30
Name: Lutz
Comment: Hello, I build a MCP3201 AGC, in general it works. But fom time to time reading on PC will change to exactly half of the voltage. This means wehn connecting a good charged Li-Batt it will schow 4,16V but then reading will drop to 2,08V from time to time, but then it quickly return to 4,16 V. This will happen al the time but in a unregular timespace. Any hints what could be the reason for this behavior would be welcome !!  2008-2020