Kingsman писал(а):
Спасибо за советы, попробую в ближайшее время учесть.
Из совета насчет временного разделения - я так понял, лучше всего отправлять пачку на один датчик, ждать с него ответ, затем отправлять сигнал на другой, также ждать ответ и так по кругу?
Я неправильно выразился. Не то чтобы "ждать" ответ. Это не звук, скорость велика, отклик мгновенен.
Я делал так - формировал пачку из 25-100 импульсов. В цикле, или по таймеру, неважно. А после каждого отправленного импульса в пачке проверял выход TSOP. И суммировал полученные ответы.
Код:
// Reinitialize Timer 0 value
TCNT0=0x15;
for (x=1;x<=51;x++) // 50 импульсов с частотой 38 кГц на передний правый IR светодиод
{
IROUTFR = !IROUTFR;
if (BUMP_FR==0) {count_bump_fr++;}; // счетчик правого переднего IR бампера
delay_us(12);
};
delay_us(450);
for (x=1;x<=51;x++) // 50 импульсов с частотой 38 кГц на передний левый IR светодиод
{
IROUTFL = !IROUTFL;
if (BUMP_FL==0) {count_bump_fl++;}; // счетчик левого переднего IR бампера
delay_us(12);
};
delay_us(450);
Получалось, допустим, так - отправил 100, получил 75. Значит, с вероятностью большей или равной 75% перед датчиком есть препятствие. Полученные отсчеты также можно суммировать и вычислять среднее, фильтровать и т.д.
В остальном все совершенно верно - по кругу, формирование пачки и опрос следующего TSOP.
Цитата:
Походу пора покупать какой-нибудь логический анализатор, Протеусом много не померяешь...
Анализатор штука хорошая и тоже нужен, но гораздо полезнее для робототехника будет любой недорогой цифровой осциллограф типа RIGOL, OWON и т.д.
А светодиоды отлично помещаются в корпуса из по электролитических конденсаторов. Крышка стачивается, "кишочки" с ножками извлекаются, светодиод вставляется внутрь корпуса, в резиновых уплотнителях уже есть отверстия под выводы.