Аналоговый датчик линии

Содержание

Слайд 2

Аналоговый датчик линии Напряжение питания: 3–5 В Потребляемый ток: менее 10

Аналоговый датчик линии

Напряжение питания: 3–5 В
Потребляемый ток: менее 10 мА
Основной фотоэлемент

работает в инфракрасном спектре. Дополнительно на сенсоре установлен светодиод, который загорается когда поверхность под датчиком светлая. Это удобно для диагностики и настройки.
Слайд 3

Аналоговый датчик линии Переменный резистор, установленный на сенсоре, позволит регулировать чувствительность

Аналоговый датчик линии

Переменный резистор, установленный на сенсоре, позволит регулировать чувствительность сенсора

в широких пределах. Это позволяет откалибровать датчик под вашу конструкцию, материал покрытия и различные условия внешнего освещения.
Выходным результатом работы сенсора является аналоговый сигнал. Чем светлее поверхность под сенсором — тем меньше его выходное напряжение.
Слайд 4

Аналоговый датчик линии

Аналоговый датчик линии

Слайд 5

Пример работы релейного алгоритма Определяем пины — пины необходимо определять только

Пример работы релейного алгоритма

Определяем пины — пины необходимо определять только таким

образом. E1 и H1 для одного мотора, E2 и H2 для другого: #define E1 5 #define H1 4 #define E2 6 #define H2 7 Определяем аналоговые пины для датчиков линии: #define LEFT_LIN A0 #define RIGHT_LIN A1 Определяем константы для датчиков линии — 1 левый датчик, 0 — правый датчик #define LEFT 1 #define RIGHT 0
Слайд 6

Пример работы релейного алгоритма Определяем пороговое значение между чёрным и белым:

Пример работы релейного алгоритма

Определяем пороговое значение между чёрным и белым: #define BLACK

700 Определяем скорость вращения колёс вперёд: #define FRW 150 Определяем скорость вращения колёс назад: #define BCK -100 setup() Определяем режим работы пинов — режимы работы пинов необходимо определять только таким образом: pinMode(E1, OUTPUT); pinMode(H1, OUTPUT); pinMode(E2, OUTPUT); pinMode(H2, OUTPUT);
Слайд 7

Пример работы релейного алгоритма loop() if (lineSensor(LEFT) == true && lineSensor(RIGHT)

Пример работы релейного алгоритма

loop() if (lineSensor(LEFT) == true && lineSensor(RIGHT) == true)

drive(FRW, FRW); else if (lineSensor(LEFT) == true && lineSensor(RIGHT) == false) drive(FRW, BCK); else if (lineSensor(LEFT) == false && lineSensor(RIGHT) == true) drive(BCK, FRW); else drive(0, 0);
Слайд 8

Пример работы релейного алгоритма boolean lineSensor(int sensor) // Для левого датчика

Пример работы релейного алгоритма

boolean lineSensor(int sensor) // Для левого датчика if

(sensor == LEFT) { // Если текущее значение левого датчика больше порогового if(analogRead(LEFT_LIN) > BLACK) return false; else return true; } // Для правого датчика else if (sensor == RIGHT) { // Если текущее значение левого датчика больше порогового if(analogRead(RIGHT_LIN) > BLACK) return false; else return true; }
Слайд 9

Пример работы релейного алгоритма void drive(int left, int right) //Ограничиваем значения

Пример работы релейного алгоритма

void drive(int left, int right) //Ограничиваем значения left

= constrain(left, -255, 255); right = constrain(right, -255, 255); // Выбираем направление левого двигателя if (left > 0) { digitalWrite(H1, HIGH); } else { digitalWrite(H1, LOW); }