Доброго времени суток. Имеется машина с сервоприводом на рулевое. Нужно заставить кататься по чёрной линии при помощи датчиков линии (аналоговых), что-то вроде чем больше черного видит датчик_1 тем больше отклоняется серва в одну сторону и так же со вторым, чем больше оттенок черного видит датчик_2 нем больше серва отклоняется в другую сторону. Если два датчика на белом серва на 90 (посередине) Может кто писал, подскажите с скетчем P.S. Такое не прокатит, сам умею Код (C++): #define lineSens1 A9 #define lineSens2 A11 #include <Servo.h> Servo myservo; void setup() { myservo.attach(38); } void loop() { if(analogRead(lineSens1)<analogRead(lineSens2)) myservo.write(180); if(analogRead(lineSens1)>analogRead(lineSens2)) myservo.write(0); if(analogRead(lineSens1)== analogRead(lineSens2)) myservo.write(90); }
Т.е. руль бывает только в трех положениях? Далеко вы уедете по городу на машине, у которой руль может быть только в крайних положениях, и в среднем? Да, и в среднем-то положении вы руль не фиксируете - постоянная перекладка руля из крайности в крайность. Прямо ехать ваша машина не сможет!
Код (C++): #define SENSOR_LEFT A9 #define SENSOR_RIGHT A11 #include <Servo.h> Servo myservo; void setup() { myservo.attach(38); } void loop() { unsigned int left = analogRead(SENSOR_LEFT); unsigned int right = analogRead(SENSOR_RIGHT); unsigned int angle = map(abs(left - right), 0, 1023, 90, 180); myservo.write(angle - 90); }
Вопрос (в стиле матрешка-заданий): что нужно изменить в скетче, чтобы оно ехало по белой линии на черном фоне (белым мелом черта на асфальте)?