Шилд L293D
- Войдите на сайт для отправки комментариев
Чт, 04/02/2021 - 20:56
Здравствуйте. Пожалуйста подскажите в чем проблема.
Имеется задача: необходимо осуществить управление 4 двигателей постоянного тока с 3 кнопок, через шилд L293D.
const int buttonPin1 = 32;
const int ledPin1 = 33;
const int buttonPin2 = 34;
const int ledPin2 = 35;
const int buttonPin3 = 36;
const int ledPin3 = 37;
#include <AFMotor.h>
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(buttonPin1, INPUT);
pinMode(ledPin2, OUTPUT);
pinMode(buttonPin2, INPUT);
pinMode(ledPin3, OUTPUT);
pinMode(buttonPin3, INPUT);
motor1.setSpeed(255);
motor1.run(RELEASE);
motor2.setSpeed(255);
motor2.run(RELEASE);
motor3.setSpeed(255);
motor3.run(RELEASE);
motor4.setSpeed(255);
motor4.run(RELEASE);
}
void loop() {
int buttonState1 = digitalRead(buttonPin1);
if (buttonState1 == HIGH) {
digitalWrite(ledPin1, HIGH);
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
else {
digitalWrite(ledPin1, LOW);
motor1.run(FORWARD);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
motor1.setSpeed(255);
motor2.setSpeed(255);
motor1.setSpeed(255);
motor4.setSpeed(255);
}
int buttonState2 = digitalRead(buttonPin2);
if (buttonState2 == HIGH); {
digitalWrite(ledPin2, HIGH);
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
else {
digitalWrite(ledPin2, LOW);
motor1.run(BACKWARD);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
motor1.setSpeed(255);
motor2.setSpeed(255);
motor1.setSpeed(255);
motor4.setSpeed(255);
}
int buttonState3 = digitalRead(buttonPin3);
if (buttonState3 == HIGH) {
digitalWrite(ledPin3, HIGH);
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
else {
digitalWrite(ledPin3, LOW);
motor1.run(RELEASE);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
motor1.setSpeed(255);
motor2.setSpeed(255);
motor1.setSpeed(255);
motor4.setSpeed(255);
}
}
При проверке данного кода, программа выдает ошибку "'else' without a previous 'if'"
При проверке данного кода, программа выдает ошибку "'else' without a previous 'if'"
Что делать?
Проблема в том, что правил форума не читаете. И то, что компилятор пишет - тоже. А он, между прочим, строку указывает, на которой ошибку нашел.
Сорян, за не чтение правил. Данный вопрос задать на форуме "Ишу исполнителя"? Ошибка в 56 строке
Значит смотрите в 56ю строку. В вашем коде нумерация отсутствует, а считать пальцем никто не будет.
Ошибку увидел, где не надо стоит ';'.
но сначала , все же, нужно выложить код как положено.
const int buttonPin1 = 32; const int ledPin1 = 33; const int buttonPin2 = 34; const int ledPin2 = 35; const int buttonPin3 = 36; const int ledPin3 = 37; #include <AFMotor.h> AF_DCMotor motor1(1); AF_DCMotor motor2(2); AF_DCMotor motor3(3); AF_DCMotor motor4(4); void setup() { pinMode(ledPin1, OUTPUT); pinMode(buttonPin1, INPUT); pinMode(ledPin2, OUTPUT); pinMode(buttonPin2, INPUT); pinMode(ledPin3, OUTPUT); pinMode(buttonPin3, INPUT); motor1.setSpeed(255); motor1.run(RELEASE); motor2.setSpeed(255); motor2.run(RELEASE); motor3.setSpeed(255); motor3.run(RELEASE); motor4.setSpeed(255); motor4.run(RELEASE); } void loop() { int buttonState1 = digitalRead(buttonPin1); if (buttonState1 == HIGH) { digitalWrite(ledPin1, HIGH); motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } else { digitalWrite(ledPin1, LOW); motor1.run(FORWARD); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); motor1.setSpeed(255); motor2.setSpeed(255); motor3.setSpeed(255); motor4.setSpeed(255); } int buttonState2 = digitalRead(buttonPin2); if (buttonState2 == HIGH); { digitalWrite(ledPin2, HIGH); motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } else { digitalWrite(ledPin2, LOW); motor1.run(BACKWARD); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); motor1.setSpeed(255); motor2.setSpeed(255); motor3.setSpeed(255); motor4.setSpeed(255); } int buttonState3 = digitalRead(buttonPin3); if (buttonState3 == HIGH) { digitalWrite(ledPin3, HIGH); motor1.run(RELEASE); motor2.run(RELEASE); motor3.run(RELEASE); motor4.run(RELEASE); } else { digitalWrite(ledPin3, LOW); motor1.run(RELEASE); motor2.run(FORWARD); motor3.run(FORWARD); motor4.run(FORWARD); motor1.setSpeed(255); motor2.setSpeed(255); motor3.setSpeed(255); motor4.setSpeed(255); } }В строке 49, после блока if, стоит лишняя ';'
Спасибо большое. Не заметил