Hi, currently in my final years and I'm on an deadline for my project.

I'm currently building a photovore robot using PIC 16F877Aas the brain and will follow light wherever it goes. I would like to know is how does the Microcontroller pick up on the signal sent by the 2 photoresistor? Like how does it compare which light source is more?

In some guides I read about a device called ADC (Analog to Digital Conversion). Is it relevant for my project?In practically as well, Does the leg of the LDR directly connects to the pins of the PIC?

Currently referencing my project with the step-by-step 50$ robot tutorial here with some luck. As I do not see them use any ADC so I'm somewhat confused.

I think that on the $50 bot the LDR's just go into a digital port on the processor and are detected as high or low.I don't find and source code for the $50 bot the confirm this but in the $50 bot Sharp IR add-on there is some code for initializing the ADC. Do understand that the $50 bot uses an AVR processor and not a PIC processor. The $50 bot could easily be built with a PIC but the wiring diagram and code would be different.

The LDR circuits could go into an port set-up as an ADC (on an AVR or a PIC). In this manner the code would then start a conversion then read a binary value that represents the voltage on the input pin of the ADC.

Since the way you worded the question on ADC's and the PIC16F877 I'd guess you are just beginning to use PICs. The Data sheet is vital to know how to do this. In addition do down load the Mid-Range Family Reference Manual from Microchip as this gives some better explanations on how the PIC works. For a good tutorial check:http://www.gooligum.com.au/tutorials.htmland do start at the beginning with the Base-line PICs as later lessons build on the earlier lessons. To work through these use the MPLAB SIMulator instead of buying PICs. There are lessons on using the PIC's ADC.

Good luck, have fun and come back here if you have difficulty understanding something.

If you want to compare two LDR's, you could put them in series like a voltage divider and measure the node where they connect, opting for half the A/D-C reference voltage.This will need LDR's with a sufficiently high resistance (in the brightest light they see) to keep the current to manageable levels, or they'll die when brightly lit!

Logged

Regards,Søren

A rather fast and fairly heavy robot with quite large wheels needs what? A lot of power?Please remember...Engineering is based on numbers - not adjectives

If you want to compare two LDR's, you could put them in series like a voltage divider and measure the node where they connect, opting for half the A/D-C reference voltage.This will need LDR's with a sufficiently high resistance (in the brightest light they see) to keep the current to manageable levels, or they'll die when brightly lit!

Hi, I decided to dump the whole idea of a/d-c in my microcontroller as in the first place, I don even know where to start! It was a mistake for me to choose microcontroller at the 1st place so I planned to keep my programming really simple.

in the end, I decided to use 3 LDR connected in different parts of the robot( ie: left, right ,middle) and the programming in the Microcontroller is right.

I tested it out with LED's and it worked fine like the steps mention above. but when I replace the motor( with H-bridge) directly with the LED's, the "move right" works fine, the "move forward" moves surprisingly slow, and the "move left" doesnt work at all!!

So I am wondering if there's anything else I could add.. Is LM339 a vaiable option.

Could you post a schematic (wiring diagram) of how you have the LDR's and motors connected. Then we should be able to help.

Don't give up on a microcontroller completely. Do more reading to learn how to program but continue working on the LDR controlled Bot.

Quote

I don even know where to start

Start with the tutorial I posted a link to. If you do a couple of lessons a week then you will be ready to use the ADC in the PIC in a few months time. I spent 6 months learning PICs before using the first one in a project. Just don't give up.