Добрый день, нужна помощь с кодом. Задание такое: лодка стартует с точки, где не виден световой сигнал от маяка; – лодка движется вперёд, сканируя окрестности световым датчиком в поисках маяка; – лодка находит маяк и поворачивается так, чтобы двигаться точно на свет; – лодка останавливается перед маяком и ожидает цветного светового сигнала для выбора маршрута; – лодка получает и интерпретирует сигнал и огибает центральный «остров» соответственно справа или слева; – лодка прибывает на финиш и останавливается. Световой сигнал от маяка в режиме поиска — яркий белый свет, состояние «включен» — 0,5 с, «выключен» — 0,5 с. Продолжительность работы в этом режиме — 1 минута. По истечении этого времени маяк переходит в режим указания трассы. Световой сигнал от маяка в режиме указания трассы — яркий красный («налево») или яркий зелёный («направо») свет, непрерывно включен. Продолжительность работы в этом режиме — 1 минута. По истечении этого времени маяк переходит в режим поиска. В течение всего времени одной попытки указание трассы не изменяется. На лодке установлено 3 ультразвуковых дальномера (2 по бокам, 1 спереди), и датчик цвета и света (tcs34725) который направлен вперед. ошибку выдает в строчке "ДАТЧИК цвета???" (stray '\320' in program) файл прикрепил ниже, скорее всего ошибка не только в этом) буду благодарен за любую помощь)
82 if ДАТЧИК цвета??? красный то стоп ... 90 ДАТЧИК цвета??? Не заданы пины где где дачики висят. Добавьте строки типа #define Red_sensor N1 #define Green_sensor N2 Ну и 82 if (Red_sensor == 0, 1 ???) {...} ... 90 if (Green_sensor == 0, 1 ???) {...}
тогда вот так) #include <Adafruit_CircuitPlayground.h> #include <Servo.h> #include <NewPing.h> Servo myservo; // сервопривод D6 #define motor_1 9 #define motor_2 10 // скорость лодки 0..255 int speed = 50; // частоты цвета int redFrequency = 0; int greenFrequency = 0; int blueFrequency = 0; int red = 0; int green = 0; int blue = 0; int light = 0; // использующийся путь до маяка: 0 - не найден, 1 - нужен поворот, 2 - повернули, 3 - остановились у маяка, 4 - END int find_light = 0; //использующийся путь от маяка: 0 - не найден, 1 - вправо, 2 - влево, 3 - END int way = 0; // левый датчик расстояния #define L_TRIG 11 #define L_ECHO 12 #define L_TIMEOUT 30000 NewPing L_D (L_TRIG, L_ECHO, L_TIMEOUT); // правый датчик расстояния #define R_TRIG 4 #define R_ECHO 5 #define R_TIMEOUT 30000 NewPing R_D(R_TRIG, R_ECHO, R_TIMEOUT); // передний датчик расстояния #define F_TRIG 2 #define F_ECHO 3 #define F_TIMEOUT 30000 NewPing F_D(F_TRIG, F_ECHO, F_TIMEOUT); void setup() { myservo.attach(6); pinMode(L_TRIG, OUTPUT); pinMode(L_ECHO, INPUT); pinMode(R_TRIG, OUTPUT); pinMode(R_ECHO, INPUT); pinMode(F_TRIG, OUTPUT); pinMode(F_ECHO, INPUT); } void loop() { // 1 действие: едем вперед пока справа или слева исчезнет стена while L_D.ping_cm < 3 or R_D.ping_cm < 3 myservo.digitalWrite(90); motor_1.write (HIGH); motor_2.write (LOW); delay (500); // 2 поворот в свободную зону if L_D.ping_cm > 3 myservo.digitalWrite(150); motor_1.write (HIGH); motor_2.write (LOW); delay (700); else myservo.digitalWrite(30); motor_1.write (HIGH); motor_2.write (LOW); delay (700); if ДАТЧИК цвета??? красный то стоп motor_1.write (LOW); motor_2.write (LOW); else if myservo.digitalWrite(150); motor_1.write (HIGH); motor_2.write (LOW); else if ДАТЧИК цвета??? myservo.digitalWrite(30); motor_1.write (HIGH); motor_2.write (LOW); motor_1 (LOW); motor_2(LOW);
Вы хоть ответы читаете ? Как определяется - датчик сработал ? Он изменил напряжение где-то. Как изменил ? : 0 --> 1 или 1 --> 0 - мы не знаем. Мы их не видели. Вы - видели. Где изменил ? - не знает Ардуина. Вот и "объявите" ей - где и как. Вы же их куда-то подсоединяли?!