[Вставьте код правильно]
#include <Servo.h>
#define ML_Ctrl 4 // определите направляющий штифт двигателя B
#define ML_PWM 5 //определите вывод управления ШИМ двигателя B
#define MR_Ctrl 2 //определите направление управляющего штифта двигателя
#define MR_PWM 6 //определите вывод управления ШИМ двигателя
#define PIN_TRIG 12
#define PIN_ECHO 13
long duration, cm, inches;
int a180=0;
int a90=0;
int a0=0;
Servo s1;
void setup()
{
pinMode(ML_Ctrl, OUTPUT); //определите вывод управления направлением двигателя B в качестве выходного сигнала
pinMode(ML_PWM, OUTPUT); //определите вывод управления ШИМ двигателя B в качестве выходного сигнала
pinMode(MR_Ctrl, OUTPUT); //определите контакт управления направлением вращения двигателя в качестве выходного сигнала.
pinMode(MR_PWM, OUTPUT); //определите вывод управления ШИМ двигателя в качестве выходного сигнала
s1.attach(10);
Serial.begin (9600);
//Определяем вводы и выводы
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
}
void front(int time)
{
digitalWrite(ML_Ctrl,1); //установи/те штифт управления направлением вращения двигателя B в положение HIGH
analogWrite(ML_PWM,150); //установите скорость ШИМ-управления двигателем B на 150
digitalWrite(MR_Ctrl,1); //установите штифт управления направлением вращения двигателя в положение HIGH
analogWrite(MR_PWM,150); //установите скорость ШИМ-управления двигателем на 150
delay(time/8);
}
void down(int time)
{
digitalWrite(ML_Ctrl,0); //установите штифт управления направлением вращения двигателя B в положение LOW
analogWrite(ML_PWM,150); //установите скорость ШИМ-управления двигателем B на 150
digitalWrite(MR_Ctrl,0); //установите штифт управления направлением вращения двигателя в положение LOW
analogWrite(MR_PWM,150); //установите скорость ШИМ-управления двигателем на 150
delay(time/8);
}
void left(int time)
{
digitalWrite(ML_Ctrl,1); //установите штифт управления направлением вращения двигателя B в положение LOW
analogWrite(ML_PWM,50); //установите скорость ШИМ-управления двигателем B на 50
digitalWrite(MR_Ctrl,0); //установите штифт управления направлением вращения двигателя в положение HIGH
analogWrite(MR_PWM,50); //установите скорость ШИМ-управления двигателем на 50
delay(time/8);
}
void right(int time)
{
digitalWrite(ML_Ctrl,0); //установите штифт управления направлением вращения двигателя B в положение HIGH
analogWrite(ML_PWM,50); //установите скорость ШИМ-управления двигателем B на 50
digitalWrite(MR_Ctrl,1); //установите штифт управления направлением вращения двигателя в положение LOW
analogWrite(MR_PWM,50); //установите скорость ШИМ-управления двигателем на 50
delay(time/8);
}
void stap(int time)
{
digitalWrite(ML_Ctrl,0);
analogWrite(ML_PWM,0);
digitalWrite(MR_Ctrl,0);
analogWrite(MR_PWM,0);
delay(time/8);
}
void dist180(int time)
{
// Сначала генерируем короткий импульс длительностью 2-5 микросекунд.
digitalWrite(PIN_TRIG, LOW);
delayMicroseconds(5);
digitalWrite(PIN_TRIG, HIGH);
// Выставив высокий уровень сигнала, ждем около 10 микросекунд. В этот момент датчик будет посылать сигналы с частотой 40 КГц.
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
// Время задержки акустического сигнала на эхолокаторе.
duration = pulseIn(PIN_ECHO, HIGH);
// Теперь осталось преобразовать время в расстояние
cm = (duration / 2) / 29.1;
a180==cm;
Serial.print(a180);
Serial.print(cm);
Serial.println(" см.");
// Задержка между измерениями для корректной работы скеча
delay(250);
}
void dist90(int time)
{
// Сначала генерируем короткий импульс длительностью 2-5 микросекунд.
digitalWrite(PIN_TRIG, LOW);
delayMicroseconds(5);
digitalWrite(PIN_TRIG, HIGH);
// Выставив высокий уровень сигнала, ждем около 10 микросекунд. В этот момент датчик будет посылать сигналы с частотой 40 КГц.
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
// Время задержки акустического сигнала на эхолокаторе.
duration = pulseIn(PIN_ECHO, HIGH);
// Теперь осталось преобразовать время в расстояние
cm = (duration / 2) / 29.1;
a90==cm;
Serial.print(a90);
Serial.print(cm);
Serial.println(" см.");
// Задержка между измерениями для корректной работы скеча
delay(250);
}
void dist0(int time)
{
// Сначала генерируем короткий импульс длительностью 2-5 микросекунд.
digitalWrite(PIN_TRIG, LOW);
delayMicroseconds(5);
digitalWrite(PIN_TRIG, HIGH);
// Выставив высокий уровень сигнала, ждем около 10 микросекунд. В этот момент датчик будет посылать сигналы с частотой 40 КГц.
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
// Время задержки акустического сигнала на эхолокаторе.
duration = pulseIn(PIN_ECHO, HIGH);
// Теперь осталось преобразовать время в расстояние
cm = (duration / 2) / 29.1;
a0==cm;
Serial.print(a0);
Serial.print(cm);
Serial.println(" см.");
// Задержка между измерениями для корректной работы скеча
delay(250);
}
void loop()
{
{
front(4000);
stap(2000);
delay(1000);
s1.write(180);
delay(1000);
dist180(200);
delay(1000);
s1.write(0);
delay(1000);
dist0(200);
delay(1000);
s1.write(90);
delay(1000);
dist90(200);
delay(1000);
}
{
{
if (a180 < 20){
digitalWrite(9, HIGH);
right(2000);
stap(2000);
delay(3000);
}
else {
stap(2000);
delay(2000);
}
}
}
{
if (a0 <= 20)
{
digitalWrite(9, HIGH);
left(2000);
stap(2000);
delay(3000);
}
else
{
stap(2000);
delay(2000);
}
}
{
if (a90 > 20)
{
digitalWrite(9, HIGH);
front(2000);
stap(2000);
delay(3000);
}
else if (a90 < 20)
{
digitalWrite(9, HIGH);
down(3000);
stap(2000);
delay(3000);
}
else
{
stap(2000);
delay(2000);
}
}
}
Теперь номера строк где ардуино не работает можно указывать.
спасибо
@Katy вставить код у вас опять не вышло, скажите спасибо @lilik
Если бы не он, вас бы просто забанили на форуме.
Теперь по коду
Обьясните, что, по вашему, делает вторая строка в этом фрагменте:
присваивает значение cm
неправильно
Найдите книжку по С и прочитайте, для чего используется “==” и “=” и какая между ними разница.
Почему, кстати, вы сразу не приравняли результат в первой строке нужной переменной?
половину кода брала с сайта сборки робота, половину дописывала. а ещё походу когда изучаешь ещё и второй язык программирования можно запутаться
Сочувствую. Но ошибки все равно придется исправлять
а как правильно её написать
Ну наверное вместо == шмякнуть =. А вдруг прокатит?
спасибо всё работает
идиотизм… Не находите?
Вы пробовали вникнуть в то, что пишете? Или вам просто нужно зачет сдать?
@lilik мне не понятны твои мотивы, ну если ты уж так делаешь, просьба, форматируй код перед вставкой, невозможно читать.
Скорее всего чтоб робот колёсный выполнял задание.
Дочь 21 год, она гуманитарий, а тут девочка и программирование…трудно ведь им.
Это называется по…фигизм. “Ну я же читаю”.
И ошибки исправляй
девочки все время топят за равноправие. Вот пусть и доказывают.
Почему мальчику лентяю мы отказываем, а девочке нет?
да ну, я знаю одну которую приняли в солидную контору программером на 1C-BITRIX )))
PS она конечно жаловалась…“Вы не понимаете …это очень очень очень…сложно”
Нет. Просто не отработан автоматизм…Человек искренне не понимает, что доставляет дискомфорт окружающим своими действиями.
Супруга так и говорит - невоспитанный.