require($_SERVER["DOCUMENT_ROOT"]."/interactive/interactive.php"); =====BeamBOT учится ездить по линии. Датчик на плате===== В предыдущем уроке мы научили нашего робота доезжать до черной линии и останавливаться, но это было не слишком интересно. Давай соберем схему благодаря которой робот сможет ездить по краю черной линии? pinlab_draw_picture("beambot/uchitsya_ezdit_po_linii/scheme1"); ~~NOCACHE~~ pinlab_bom("beambot/uchitsya_ezdit_po_linii/scheme1.mont");   pinlab_draw_instruction("beambot/uchitsya_ezdit_po_linii/scheme1.mont"); Если ты поставишь робота на край черной линии он будет ехать вдоль нее поворачивая то правым, то левым колесом. Правда выглядит завораживающе? Как же работает наша схема? С правым колесом все просто: на вход первого канала (транзистора Дарлингтона) микросхемы ULN2003A подключен датчик линии «В», а на его выход собственно мотор правого колеса. Следовательно когда датчик "видит" белую поверхность правое колесо поворачивается вперед. С левым колесом все интереснее: его мотор подключен к выходу второго канала, а вот вход к выходу первого. Когда канал ULN2003A "выключен" (на его входе «В»), его выход "висит в воздухе", то есть ни к чему не подключен. Что бы это исправить мы добавили резистор R1, который "подтягивает" выход первого канала к «+» питания и вход второго тоже, так как они соединены. Этим мы добились того, что когда на входе первого канала «-», на входе второго «+», и наоборот. Следовательно и моторы с колесами включаются по очереди. Кстати если ты уберешь резистор R1 из схемы, то робот все также будет ездить по краю линии. Почему так? Все дело в том, что функцию резистора будет R1 выполнять правый мотор. Экспериментируй: * Попробуй сделать так, чтобы робот ехал задом наперед. * Попробуй использовать задний датчик «З» в место переднего «В».