Я недавно обещал рассказать о недорогом ИК датчике препятствий.
Начну с пары ссылок:
http://myrobot.ru/wiki/index.php...rojects.MyTSOPer
http://chipenable.ru/index.php/p...i-ik-bamper.html
Еще ИК бампер можно сделать на микроконтроллере. Если в проекте уже есть МК, то можно использовать его. На прикрепленной к сообщению картинке показана схема такого ИК бампера. Его можно подключить к Arduino Uno.
Пример скетча:
////////////////////////
//
// Arduino Uno
//
////////////////////////
//
// Sketch: IR Sensor
//
// D13 - IR LED
// D12 - TSOP
volatile unsigned char count1 = 0;
volatile unsigned char count2 = 0;
// Timer/Counter 2 overflow interrupt service routine
ISR( TIMER2_OVF_vect )
{
TCNT2 += 45;
if ( count1 < 80 )
PORTB ^= (1<<PORTB5);
if ( count1 == 250 )
TCCR2B = 0;
count1 += 1;
if ( (PINB & (1<<PINB4)) == 0 )
count2 += 1;
}
unsigned char IR_Sensor( unsigned char base )
{
count1 = 0;
count2 = 0;
TCCR2B = (1<<CS20);
while ( TCCR2B );
if ( count2 < base )
return 0;
else
return 1;
}
void IR_Sensor_Init( void )
{
// Global disable interrupts
cli();
// Input/Output Ports initialization
// IR LED
DDRB |= (1<<DDB5); // OUTPUT
PORTB &= ~(1<<PORTB5); // LOW
// TSOP
DDRB &= ~(1<<DDB4); // INPUT
PORTB |= (1<<PORTB4); // PULLUP
// Timer/Counter 2 initialization
TCNT2 = 45;
// Bits: COM2A1 COM2A0 COM2B1 COM0B0 - - WGM21 WGM20
TCCR2A = 0;
// Bits: FOC2A FOC2B - - WGM22 CS22 CS21 CS20
TCCR2B = 0;
// Bits: - - - - - OCIE2B OCIE2A TOIE2
TIMSK2 = (1<<TOIE2);
// Bits: - - - - - OCF2B OCF2A TOV2
TIFR2 = (1<<TOV2);
// Global enable interrupts
sei();
}
void setup()
{
// IR Sensor initialization
IR_Sensor_Init();
// LED
pinMode(11, OUTPUT);
digitalWrite(11, HIGH);
}
void loop()
{
if ( IR_Sensor( 20 ) )
{
digitalWrite(11, LOW); // LED on
}
else
{
digitalWrite(11, HIGH); // LED off
}
}
//
// End
//
////////////////////////
Посчитаем стоимость ИК бампера.
TSOP2136 --- 27 p.
LED1 L-53F3C --- 7 p.
C1 10 мкФ x 50 В --- 1 p.
R1 100 Ом (0.25 Вт) --- 1 p.
R2 220 Ом (0.25 Вт) --- 1 p.
R3 5 КОм --- 9 p.
В сумме получается 46 р. Можно еще немного сэкономить заменив R2 и R3 на постоянный резистор номиналом в 1 КОм (примерно). Получится 37 р. На самом деле получится дороже, т. к. некоторые компоненты в интернете не продаются поштучно. Еще доставка обычно не бесплатна.
И пара ссылок на недорогие магазины:
http://chipnn.ru/
http://chipster.ru Прикреплено изображение
(Отредактировано автором: 09 Мая, 2013 - 01:27:14) |