Skip to main content
Mod Moved Comments To Chat
Explanation of set-up
Source Link

Transmitter

An ATTINY, using a MOSFET to drive the LED near max. capacity despite the limit on the pin, drives the LED. It uses this code to get 36kHz and send bursts as not to overload the TSOP:

// ATMEL ATTINY45 / ARDUINO // // +-\/-+ // Ain0 (D 5) PB5 1| |8 VCC // Ain3 (D 3) PB3 2| |7 PB2 (D 2) INT0 Ain1 // Ain2 (D 4) PB4 3| |6 PB1 (D 1) pwm1 // GND 4| |5 PB0 (D 0) pwm0 // +----+ void setup(){ DDRB |= (1<<PB0); //Set pin PB0 as output DDRB |= (1<<PB1); //Set pin PB1 as output TCNT0 = 0; TCCR0A = 0; TCCR0B = 0; TCCR0A |=(1<<COM0A0); //Timer in toggle mode Table 11-2 - PB0 TCCR0A |=(1<<COM0B0); //PB1 TCCR0A &=~(1<<COM0A1); TCCR0A &=~(1<<COM0B1); TCCR0A |=(1<<WGM01); //Start timer in CTC mode Table 11.5 TCCR0B |= (1 << CS00); //Prescaler Table 11.6 OCR0A = 12; //CTC compare value, 36kHz } void loop(){ //cycle = 1/36 = 28μs TCCR0A |=(1<<COM0A0); //burst on for 10+ cycles TCCR0A |=(1<<COM0B0); delayMicroseconds(500); TCCR0A &=~(1<<COM0A1); //off for 14+ cycles TCCR0A &=~(1<<COM0B1); delayMicroseconds(1000); } 

Receiver

The receiver is an active-low TSOP that, via a comparator, is connected to an Arduino calling the attachInterrupt() function. There are two LEDs and two receivers to determine direction. The C code calculates direction and spits out the result.

enter image description here

enter image description here

Transmitter

An ATTINY, using a MOSFET to drive the LED near max. capacity despite the limit on the pin, drives the LED. It uses this code to get 36kHz and send bursts as not to overload the TSOP:

// ATMEL ATTINY45 / ARDUINO // // +-\/-+ // Ain0 (D 5) PB5 1| |8 VCC // Ain3 (D 3) PB3 2| |7 PB2 (D 2) INT0 Ain1 // Ain2 (D 4) PB4 3| |6 PB1 (D 1) pwm1 // GND 4| |5 PB0 (D 0) pwm0 // +----+ void setup(){ DDRB |= (1<<PB0); //Set pin PB0 as output DDRB |= (1<<PB1); //Set pin PB1 as output TCNT0 = 0; TCCR0A = 0; TCCR0B = 0; TCCR0A |=(1<<COM0A0); //Timer in toggle mode Table 11-2 - PB0 TCCR0A |=(1<<COM0B0); //PB1 TCCR0A &=~(1<<COM0A1); TCCR0A &=~(1<<COM0B1); TCCR0A |=(1<<WGM01); //Start timer in CTC mode Table 11.5 TCCR0B |= (1 << CS00); //Prescaler Table 11.6 OCR0A = 12; //CTC compare value, 36kHz } void loop(){ //cycle = 1/36 = 28μs TCCR0A |=(1<<COM0A0); //burst on for 10+ cycles TCCR0A |=(1<<COM0B0); delayMicroseconds(500); TCCR0A &=~(1<<COM0A1); //off for 14+ cycles TCCR0A &=~(1<<COM0B1); delayMicroseconds(1000); } 

Receiver

The receiver is an active-low TSOP that, via a comparator, is connected to an Arduino calling the attachInterrupt() function. There are two LEDs and two receivers to determine direction. The C code calculates direction and spits out the result.

enter image description here

edited body
Source Link

I built a beam breaker set-up, with the transmitter and receiver next to each other, and a reflector about two meters out. Basically, the transmitter is an IR LED and the receiver a TSOP. Between the two components, I placed cardboard. I am constantly getting readings from the Arduino terminal on the alignment of the beams (HIGH or LOW).

I believe the set-up or individual devices are not faulty and all is working as should, including range, after extensive testing. When I place a retroreflector in front of the devices, up to about a meter, it works. Further, not so much.

It really comes down to having the IR LEDSLEDs pointing the same way, in the same angle. They don't now, and if I move the reflector further away, there logically comes a point that one beam 'falls off' the reflector.

After an entire afternoon of fidgeting, I finally managed to aim, using trail and error, only one IR LED at the reflector two meters further.

Methods I tried, include plain measuring on flat surfaces against straight walls, using a laser pointer, bending and cutting the legs of the LEDs the exact same way, moving the reflector up, down, left and right and finally, keeping the reflector in place but move the IR LEDs up, down, left and right.

The problem is that, even if I manage to align a LED, all it takes is a small accidental nudge to have to start all over.

Does anyone have practical tips on how to aim IR LEDs?

enter image description here

I built a beam breaker set-up, with the transmitter and receiver next to each other, and a reflector about two meters out. Basically, the transmitter is an IR LED and the receiver a TSOP. Between the two components, I placed cardboard. I am constantly getting readings from the Arduino terminal on the alignment of the beams (HIGH or LOW).

I believe the set-up or individual devices are not faulty and all is working as should, including range, after extensive testing. When I place a retroreflector in front of the devices, up to about a meter, it works. Further, not so much.

It really comes down to having the IR LEDS pointing the same way, in the same angle. They don't now, and if I move the reflector further away, there logically comes a point that one beam 'falls off' the reflector.

After an entire afternoon of fidgeting, I finally managed to aim, using trail and error, only one IR LED at the reflector two meters further.

Methods I tried, include plain measuring on flat surfaces against straight walls, using a laser pointer, bending and cutting the legs of the LEDs the exact same way, moving the reflector up, down, left and right and finally, keeping the reflector in place but move the IR LEDs up, down, left and right.

The problem is that, even if I manage to align a LED, all it takes is a small accidental nudge to have to start all over.

Does anyone have practical tips on how to aim IR LEDs?

enter image description here

I built a beam breaker set-up, with the transmitter and receiver next to each other, and a reflector about two meters out. Basically, the transmitter is an IR LED and the receiver a TSOP. Between the two components, I placed cardboard. I am constantly getting readings from the Arduino terminal on the alignment of the beams (HIGH or LOW).

I believe the set-up or individual devices are not faulty and all is working as should, including range, after extensive testing. When I place a retroreflector in front of the devices, up to about a meter, it works. Further, not so much.

It really comes down to having the IR LEDs pointing the same way, in the same angle. They don't now, and if I move the reflector further away, there logically comes a point that one beam 'falls off' the reflector.

After an entire afternoon of fidgeting, I finally managed to aim, using trail and error, only one IR LED at the reflector two meters further.

Methods I tried, include plain measuring on flat surfaces against straight walls, using a laser pointer, bending and cutting the legs of the LEDs the exact same way, moving the reflector up, down, left and right and finally, keeping the reflector in place but move the IR LEDs up, down, left and right.

The problem is that, even if I manage to align a LED, all it takes is a small accidental nudge to have to start all over.

Does anyone have practical tips on how to aim IR LEDs?

enter image description here

added 3 characters in body
Source Link

I built a beam breaker set-up, with the transmitter and receiver next to each other, and a reflector about two meters out. Basically, the transmitter is an IR LED and the receiver a TSOP. Between the two components, I placed cardboard. I am constantly getting readings from the Arduino terminal on the alignment of the beams (HIGH or LOW).

I believe the set-up or individual devices are not faulty and all is working as should, including range, after extensive testing. When I place a retroreflector in front of the devices, up to about a meter, it works. Further, not so much.

It really comes down to having the IR LEDS pointing the same way, in the same angle. They don't now, and if I move the reflector further away, there logically comes a point that one beam 'falls off' the reflector.

After an entire afternoon of fidgeting, I finally managed to aim, using trail and error, only one IR LED at the reflector two meters further.

Methods I tried, include plain measuring on flat surfaces against straight walls, using a laser pointer, bending and cutting the legs of the LEDs the exact same way, moving the reflector up, down, left and right and finally, keeping the reflector in place but move the IR LEDs up, down, left and right.

The problem is that, even if I manage to align a LED, all it takes is a small accidental nudge to have to start all over.

Does anyone have practical tips on how to aim IR LEDs?

enter image description here

I built a beam breaker set-up, with the transmitter and receiver next to each other, and a reflector about two meters out. Basically, the transmitter is an IR LED and the receiver a TSOP. Between the two components, I placed cardboard. I am constantly getting readings from the Arduino terminal on the alignment of the beams (HIGH or LOW).

I believe the set-up or individual devices are not faulty and all working as should, including range, after extensive testing. When I place a retroreflector in front of the devices, up to about a meter, it works. Further, not so much.

It really comes down to having the IR LEDS pointing the same way, in the same angle. They don't now, and if I move the reflector further away, there logically comes a point that one beam 'falls off' the reflector.

After an entire afternoon of fidgeting, I finally managed to aim, using trail and error, only one IR LED at the reflector two meters further.

Methods I tried, include plain measuring on flat surfaces against straight walls, using a laser pointer, bending and cutting the legs of the LEDs the exact same way, moving the reflector up, down, left and right and finally, keeping the reflector in place but move the IR LEDs up, down, left and right.

The problem is that, even if I manage to align a LED, all it takes is a small accidental nudge to have to start all over.

Does anyone have practical tips on how to aim IR LEDs?

enter image description here

I built a beam breaker set-up, with the transmitter and receiver next to each other, and a reflector about two meters out. Basically, the transmitter is an IR LED and the receiver a TSOP. Between the two components, I placed cardboard. I am constantly getting readings from the Arduino terminal on the alignment of the beams (HIGH or LOW).

I believe the set-up or individual devices are not faulty and all is working as should, including range, after extensive testing. When I place a retroreflector in front of the devices, up to about a meter, it works. Further, not so much.

It really comes down to having the IR LEDS pointing the same way, in the same angle. They don't now, and if I move the reflector further away, there logically comes a point that one beam 'falls off' the reflector.

After an entire afternoon of fidgeting, I finally managed to aim, using trail and error, only one IR LED at the reflector two meters further.

Methods I tried, include plain measuring on flat surfaces against straight walls, using a laser pointer, bending and cutting the legs of the LEDs the exact same way, moving the reflector up, down, left and right and finally, keeping the reflector in place but move the IR LEDs up, down, left and right.

The problem is that, even if I manage to align a LED, all it takes is a small accidental nudge to have to start all over.

Does anyone have practical tips on how to aim IR LEDs?

enter image description here

deleted 1 character in body
Source Link
Loading
Source Link
Loading