Let's Make Robots!

Help with 555 circuit.

Well, I have got the 38khz distance sensor working in picaxe form.



Now I am trying to wire-up a stand-alone unit with a 556. Now I know this is a RTF(data sheet) moment and I know the resistor/resistor*cap/2 (or whatever) equation, but the final circuit is still above my head. Are there any of you circuit guys out there that can do a little drawing for me? Maybe with a couple pots for fine adjustment? I plan on the final output going into a picaxe using the pulse-in command.

Thanks in advance.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Nope Travis,

I (some of us) are working on distance sensing using a 38khz receiver. In terms of IR beacons, the picaxe chips are capable of outputing sony remote codes so when I did my "beacons" I simply had each one put out a different signal based on these sony codes.

Link YO!

Ah, alright I thought you were looking for a cheaper 555 version of the beacons (Though with a cheap 8pin uC it would only be in the range of a couple dollars less)


I don't know if you've read the Parallax BOE-Bot manual, but it covers this pretty well, and back when I was messing with my BOE I had no problems with short range distance detection.


Here's a link to the manual if you haven't already seen it: http://www.parallax.com/dl/docs/books/edu/Roboticsv2_2.pdf

The IR range detection starts on page 269, which is actually page 283 of the PDF.  If the picaxe is anything like the BS was this method should be a piece of cake. (And even if it's not the idea is simple)  It might not be extremely accurate though as different objects will reflect the IR better than others.


Sorry if this is all has been discussed before.

You're trying to make something like this, right?




One 555 is sending out a 38khz signal to the IR LED the other 555 pulses a much slower signal to turn on and off the "carrier wave generator" 555, the timing is varied by one of the blue trim pots (the other is for adjusting the 38khz carrier wave)

I had a BS2 hooked up to an IR receiver and would have it count the pulses per 50ms, that would be the beacon's "value".  It might be better to time the pulse width of the beacon, 50ms is a lot of time to waste, still trying to get it all figured out.  (The stamp was used just because it's so easy to send debug data back to the computer, I usually run AVRs)

I intended on making a few of them and putting them around like waypoints (each having a different "value")


This circuit itself is much like OddBot's (without the transistor, that's a good idea- and with different r/c values). I made this a few months back and I never really make schematics (I'm dumb, I know), but if you're still looking for info I can write one up.  (It may not be perfect, as i'm just learning, but it works for me)




First post here by the way, been lurking for a while though!  This site is great. =)

I'm sorry, it's been a couple days and I didn't pass you a proper thank you...

Thank you.

I've been that busy lately I didn't notice. Give me a holla if it isn't working.
I've been doing my initial tests with the pulses generated from a picaxe. The 555/556 thing is so I can make an easy/cheap stand alone unit.


Have yoiu considered using a PICAXE 08M to generate the pulses? Should be much smalller, and pretty straighforward. 

found this as well, though it's only for the 555, you can figure out the connections.


I am guessing that this is what you want. The first timer generates a roughly triangular wave form at about 4Hz that causes the second timers output frequency to shift. The second timer drives the LED at a 50% duty cycle with a centre frequency of 38KHz.

The output pin is used to charge/discharge the timing capacitor as this is the easiest way to generate a 50% duty cycle.
I have not built and tested this circuit so component values are based on the 555 data sheet.


 The speed that the frequency varies at can also be adjusted by changing the value of the 10uF capacitor.

I guess I was not so clear. I added the two "here" links but I guess I should have been more specific.

I am trying to build a distance sensor using the 38khz 3-pin IR sensor as described in the above "here" links. I simply don't know what values of resistors and caps I should be using. In terms of the concept, I am working off of the ideas of others on the subject. I am posting below some comments from other posts which should make more clear what I am wanting to do.

OK, it seems I have generated some interest and more than a few questions with my post about IR distance measurment. I haven't found my old notebooks yet, (still packed away after the move), so I'm going from memory here.

As I explained in the previous post, the transmitter produces 40Khz bursts with a 50/50 duty cycle because that is what the Sharp GP1U52X IR receiver module expects to see. The module was used extensively in the 80's as the IR remote receiver module in many TV's & VCR's. It was also sold by numerous outlets like Radio Shack, Electronic Goldmine, All Electronics, etc, for a couple bucks. It is a 3-pin device that has ground, VCC, and output, (open collector needs a pull-up resistor).

The module consists of a detector, (pin diode I believe), PLL, and output section. Sony sold a similar module and both were available in 38Khz and 40Khz versions. Implementation is very simple and exploits a characteristic of PLL's in order to work.

Lets say, for example, that the PLL in the Sharp module requires 5 cycles of a 40Khz signal to lock and output a signal. This is a constant. The signal we are producing with our 567 circuit is also a constant with the same number of cycles produced in each burst, (let's say 1000). At zero distance, the output switches for the period of 995 pulses and would appear to be "on" 100% of the time.

As the distance increases, some of those pulses are "lost" due to refraction, absorbion, etc. It still takes the same 5 cycles to turn on the PLL but now there are fewer cycles to keep it turned on. The output remains switched for a shorter period. So, the output period is inversely proportionally to the distance measured.

If you just need simple proximity detection, you can feed the output to a simple window comparator to give you an output at any specified distance.

Or,you can use an integrating capacitor and measure the average DC developed accross it.

For more exact distance measurements, you can use a processor to measure the pulse width and compare that with your custom "look-up" table. The custom table is necessary because due to the particular LED you use, placement, driver current, etc, measurements can varry from circuit to circuit.

Hopefully I have given you enough to play with the circuit on your own.




It is possible to build ir distance sensor from 38kHz sensor. You need the sensor and IR led. Sensor's output goes to input pin and IR led's one leg goes to output leg so your controller is able to flicker it.

If the LED pulses at 38kHz (and 1kHz too if just pure 38kHz doesn't work) then the sensor is able to detect LED about 10 meters avay. If you mount them side by side then sensor sees things what are closer than some X range (lets say, 2m) and if there is no things closer then sensor sees nothing. Sounds pretty useless.. But now, lets look at the following graph:


Bingo. So if robot sees something when using 38kHz modulation then robot can increase modulation frequency until it sees nothing. Then it is possible to calculate(look up from table) distance by modulation frequency.


This sounds like something very complicated. But it doesn't have to be. It is possible to use just one modulation frequency. Then it is possible to say if there is an object closer than 20 cm or some other random distance.


And, the width of beam equals led's beam width. More than one sensor can be used but then they should be in shrinktubes or something so random ir light from other sensors couldn't shine at/in them.

Select ratingPoorOkayGoodGreatAwesome