Ошибка 'digitalWrite' cannot be used as a function

Никак не получается исправить все ошибки, может кто может помочь?

#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;
Servo servo6;
//Пины для подключения сервоприводов
const int pinServo1 = 4;
const int pinServo2 = 5;
const int pinServo3 = 6;
const int pinServo4 = 7;

//Пины для подключения управления сервоприводами
#define Port1  A11
#define Port2  A12
#define Port3  A13
#define Port4  A14
//Объявление переменных для работы с сервоприводами
int data1,data2,data3,data4;
int angleServo1 = 0;
int angleServo2 = 0;
int angleServo3 = 0;
int angleServo4 = 0;

//Пин с пищалкой
#define buzzer_pin  12
//Пины для подключения УЗ-дальномера
#define echoPin  2
#define trigPin  3
#define button_pin 15
//Переменная для хранения скорости
//вращения двигателя постоянного тока
int movspeed;
//Пин для подключения регулятора скорости
#define pot_pin A10
//Переменная для хранения
//значений потенциометра
int analog_data;
//Пины с кнопками старта и паузы программы
#define start_button_pin 35
#define pause_button_pin 35

//M1_Speed управляет скоростью вращения первого двигателя
//M1_dir управляет направлением вращения двигателя
//M2_Speed M2_dir вторым даигателем соответственно
#define M1_dir 45
#define M1_Speed 44

#define M2_dir 47
#define M2_Speed 46


void setup(){
//Объявление пинов, работающих на выход
pinMode(button_pin, INPUT);
pinMode(buzzer_pin, OUTPUT);
pinMode( trigPin, OUTPUT);
pinMode( echoPin, INPUT);
pinMode(M1_dir,OUTPUT);
pinMode(M1_Speed,OUTPUT);
pinMode(M2_dir, OUTPUT);
pinMode(M2_Speed,OUTPUT);
//Инициализация сервоприводов
servo1.attach(pinServo1);
servo2.attach(pinServo2);
servo3.attach(pinServo3);
servo4.attach(pinServo4);
//Цикл, считывающий состояние кнопки start
// и прерывающийся, если значение кнопки равно HIGH
 while(digitalRead(start_button_pin) == LOW){}
}

void loop(){
//Объявление вспомогательных переменных
 int duration, cm;
 int pulseln,
 //Установка низкого уровня на trigPin для увеличения точности
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  //Отправка  высокого уровня на trigPin в течение 10 миллисекунд
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin,LOW);
  //Приём отражённого сигнала на echoPin
  duration = pulseln(echoPin, HIGH);
  //Пересчёт полученных данных в сантиметры
   cm = duration / 58;
   //Считывание показаний потенциометра для установки скорости
   analog_data = analogRead ( pot_pin);
   //Считывание показаний регуляторов для управления
   //сервоприводами
   data1 = analogRead(Pot1);
   data2 = analogRead(Pot2);
   data3 = analogRead(Pot3);
   data4 = analogRead(Pot4);
   //Масштабирование данных  с потенциометра в диапазон от 0 до 255
   movspeed = map ( analog_data, 0, 1023, 0, 250);
   //Масштабирование значений регуляторов к интервалу 0-180
   angleServo1=map(data1, 0, 1023, 0, 180);
   angleServo2=map(data2, 0, 1023, 0, 180);
   angleServo3=map(data3, 0, 1023, 0, 180);
   angleServo4=map(data4, 0, 1023, 0, 180);
   //Поворот сервоприводов на полученные углы
   servo1.write(angleServo1);
   servo2.write(angleServo2);
   servo3.write(angleServo3);
   servo4.write(angleServo4);
   //Запуск функции движения вперёд
   fwd();
   //Если расстояние до препятствия меньше 15 см, то срабатывает 
   //условие 
   if( cm < 15){
    //Остановка платформы
    stp();
    //Включение звукового сигнала на 100 миллисекунд
    tone (buzzer_pin ,4000,100);
    //Запуск функции движения назад на 3 секунды
    bwd();
    delay(3000);
    //Поворот платформы влево в течение 1 секунды
    lft();
    delay(1000);
    //Остановка платформы
    stp();
   }
   }

   //Функция движения вперёд
   void fwd(){
//Установка скорости движения первого двигателя
   analogWrite(M1_Speed, movspeed);
   //Установка направления движения второго двигателя
   digitalWrite(M2_dir, LOW);
   //Установка скорости движения второго двигателя
   analogWrite(M2_Speed, movspeed);
   }
   //Функция движения назад
   void bwd(){
    //Установка направления движения первого двигателя
    digitalWrite(M1_dir, HIGH);
    //Установка скорости движения первого двигателя
    analogwrite(M1_Speed, movspeed); 
   //Установка направления движения второго двигателя
   digitalWrite(M2_dir, HIGH);
   //Установка скорости движения второго двигателя
   analogWrite(M2_Speed, movspeed);
   }
   //Функция поворота влево
   void lft(){
    //Установка направления движения первого двигателя
    digitalWrite(M1_dir, LOW);
    //Установка скорости движения первого двигателя
    analogWrite(M1_Speed, movspeed);
    //Установка направления движения второго двигателя
    digitalWrite(M2_dir, HIGH);
    //Установка скорости движения второго двигателя
    analogWrite(M2_Speed, movspeed);
   }
   //Функция движения направо
   void rgt(){
    //Установка направления движения первого двигателя
    digitalWrite(M1_dir, HIGH);
    //Установка скорости движения первого двигателя
    analogWrite(M1_Speed, movspeed);
    //Установка направления движения второго двигателя
    digitalWrite(M2_dir, LOW);
    //Установка скорости движения второго двигателя
    analogWrite(M2-Speed, movspeed);
   }
   //Функция остановки платформы
   void stp(){
    //Установка направления движения первого двигателя
    digitalWrite(M1_dir, HIGH);
    //Установка скорости движения первого двигателя
    analogWrite(M1_Speed, 0);
    //Установка направления движения второго двигателя
    digitalWrite(M2_dir, LOW);
    //Установка скорости движения второго двигателя
    analogWrite(M2_Speed, 0);
   }
   }

Ответы (1 шт):

Автор решения: Chorkov

Здесь:

    int pulseln,
    //Установка низкого уровня на trigPin для увеличения точности
      digitalWrite(trigPin, LOW);

пропущена ; после объявления переменной. Поэтому, далее компилятор считает что объявлена переменная digitalWrite, а не функция.

→ Ссылка