руху. Повна схема пристрою наведена нижче:
В
Алгоритм програми. Блок-схема
Розглянемо програму, яка включатиме мотори, якщо датчик знаходиться над білою поверхнею, і вимикати - якщо над чорною.
На перший погляд алгоритм такого пристрою дуже простий. Ми повинні перевірити стан фотодатчика. За умови, що на Фотодатчик 1 (перебіг струму в еммітерной ланцюга до мікроконтролера) починається рух моторів. Якщо робот перебувати на чорній лінії, то обертання моторів має припинитися. Блок-схема для даної частини роботи:
В
Програма для даної частини
/***************************************** ******************************
ПРИКЛАД 3 :: обертання мотора З ВИКОРИСТАННЯМ Фотодатчик:
****************************************** ******************************/
# include main (void)// початок основної програми
{= 0xff;// всі висновки порту C конфігурувати як виходи = 0x00;// всі висновки порту D конфігурувати як входи = 0xff;// встановити "1" на всіх висновках порту D,
// включаємо підтягують резистори (1) {//Нескінченний цикл
// ПЕРЕВІРЯЄМО СИГНАЛ НИЗЬКОЇ утрати від Фотодатчик
if (! (PIND & (1 <
{
// ---------- вращаем мотори вперед ----------
PORTC | = _BV (PC1);// встановити "1" на лінії 1 порту C
PORTC & = ~ _BV (PC2);// встановити "0" на лінії 2 порту C
PORTC | = _BV (PC3);// встановити "1" на лінії 3 порти C
PORTC & = ~ _BV (PC4);// встановити "0" на лінії 4 порту C
// ---------------------------------------- ----------
}
else
{
// ---------- вращаем мотори тому ---------- & = ~ _BV (PC1);// встановити "0" на лінії 1 порту C | = _BV (PC2);// встановити "1" на лінії 2 порту C & = ~ _BV (PC3);// встановити "0" на лінії 3 порти C | = _BV (PC4); // встановити "1" на лінії 4 порту C
// ---------------------------------------- ----------
}
}// закриває дужка нескінченного циклу
}// закриває дужка основної програми
Домігшись впевненого спрацьовування датчика, напишемо програму для пошукових роботів по лінії. Алгоритм руху робота будується на наступному принципі. Коли датчик знаходиться над білим полем, то робот повертається в праву сторону у напрямку до чорної лінії. Коли датчик знаходиться над чорною лінією, то робот повертається в ліву сторону, з'їжджаючи з чорної лінії. Чергуючи повороти у напрямку до лінії і від неї, робот рухає...