This project is based on a probe logic states, capable of measuring levels from TTL (5v) to state levels of PLCβs (24v). For this we have employed the use of the PIC 12F683 microcontroller, which by its nature is capable of operating at low voltages, in this case 3vcc, besides having analog inputs and internal oscillator.
The circuit is supplemented by an input stage which will adapt the signal to the levels between the microprocessor is able to work and another output stage that will visually show the state in which the point is measured.
The input stage to include a voltage divider between R3 D5 and D1, their role is to establish a fixed value (/ β 2.80) for the input of the microcontroller which means that is in a state of high impedance, ie without input signal. When we apply the input signal DATA IN this will vary the voltage drop at point H so that the reading as we discriminate if this is higher or lower than the reference voltage.
The output stage is made up 3 LED (yellow = high impedance, Green = Red = logic 1 and logic 0).
The program also has an internal timer to approximately 3 minutes between the microcontroller in sleep mode in which consumption will be minimal, to save the battery. And it will reactivate the program until you press the button, starting over allowing timing and take readings we require.
Focusing on the program of the microprocessor, this is configured to work with internal oscillation 4Mhz and configuring its pin so that analog reading take from point H by the GP1 pin, which is defined for a resolution of 10 bits, pin GP2 will also be defined as input and will be connected through a resistor (PULL UP) and a secondary switch to ground, which will be responsible for collecting the press that forced the interruption level change in GP2 While the interruption occurs loads a value (2000) as a timer to make a loop past work and this time will be placed the microcontroller in sleep mode.
For more detail: Logic Probe Plus using PIC12F683