Микроэлектроника и Робототехника

...мы делаем сложные вещи простыми

  • Increase font size
  • Default font size
  • Decrease font size

РАБОТА С ЭНКОДЕРАМИ

E-mail Print PDF

Для того, что бы можно было считать путь, пройденный роботом, определять его скорость или просто определять факт вращения колес, робот оборудован двумя устройствами, называемыми энкодерами. Они состоят из двух открытых оптопар, расположенных под платой со стороны моторов и дисков с отверстиями, насаженных на оси мотор-редукторов.

На рисунке фрагмент схемы, поясняющий работу энкодера:

Когда свет, излучаемый инфракрасным светодиодом, через отверстия диска попадает на фоторанзистор оптопары, фототранзистор переходит в проводящее состоянии и замыкает вывод микроконтроллера на землю. Когда свет не попадает через отверстие, фототранзистор заперт и на входе микроконтроллера высокий уровень напряжения, поскольку внутри микроконтроллера включены подтягивающие резисторы. То есть есть свет - порт в состоянии логического нуля, нет света - порт в состоянии логической единицы.

Теперь попробуем отразить работу энкодера. Для начала объявим необходимые переменные:

var

LED : sbit at PORTB.0;   // светодиод

SWL : sbit at PORTB.3;  // датчик вращения левого колеса от английского sensor wheel left (сенсор вил лефт)

SWR : sbit at PORTB.2;  // датчик вращения правого  колеса от английского sensor wheel right (сенсор вил райт)

Теперь добавим код в основную часть программы:

while TRUE do // выполняем в бесконечном цикле

begin

if SWL = 0 then LED := 1     // если датчик левого колеса засвечен - включаем светодиод

else LED := 0;                  // иначе выключаем его

end;

 

Теперь загрузим программу в робота и включим его. Если мы будем рукой вращать левое колеса, то светодиод будет зажигаться и гаснуть в зависимости от скорости вращения! Если в программе SWL изменить на SWR, то теперь зажигание светодиода будет реакцией на вращение правого колеса.

 
Яндекс.Метрика