Оформи код соответствующим тэгом
Всем привет. Делаю макет сортировщика металла. Имеется тележка, два двигателя управляемые через l298n и электромагнит подключенный через реле к ардуино. Хочу сделать управление в Blynk через джойстик(управление тележкой и двигателем, который поднимает магнит) и кнопку(вкл/выкл контакта на реле). Джойстик у меня получился, помогите дописать код для кнопки пожалуйста.
код:
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
// Код авторизации в приложений Blynk (Auth Token).
// Приходит на почту при создании нового устройства в приложении.
char auth[] = "LV6OXtzcqwKZ2ynA_eQ65G2nZUsruAAI";
// Логин и пароль вашего Wifi.
// оставьте поле пустым если у вашей сети нет пароля "" .
char ssid[] = "IPhone";
char pass[] = "123456789";
// Расшифровка подключений к L298
// Мотор A отвечающий за ускорение
#define MOTORA_1 D7 //IN1
#define MOTORA_2 D6 //IN2
#define ENA D8 //ENA
// Мотор B отвечающий за повороты
#define ENB D3 //ENB
#define MOTORB_1 D4 //IN3
#define MOTORB_2 D5 //IN4
//Переменные моторов вперед\назад - влево\вправо.
int motor_FB = 0;
int motor_LR = 0;
// Основная часть
void setup()
{
// Настройка пинов
pinMode(ENA, OUTPUT);
pinMode(MOTORA_1, OUTPUT);
pinMode(MOTORA_2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(MOTORB_1, OUTPUT);
pinMode(MOTORB_2, OUTPUT);
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
// Запуск serial порта
Serial.begin(9600);
// Подключение к приложению
Blynk.begin(auth, ssid, pass);
}
// Считываем данные джойстика V0 (обязательно в приложении выбрать "MERGE" в настройках джойстика).
BLYNK_WRITE(V0) {
int nJoyY = map(param[0].asInt(), 0, 1024, 0, 252);
int nJoyX = map(param[1].asInt(), 0, 1024, 0, 252);
//Отображение через Serial показателей джойстика
Serial.print("X = ");
Serial.print(nJoyX);
Serial.print("; Y = ");
Serial.println(nJoyY);
// Переменные
int motor_FB; //Мотор отвечающий за движение вперед-назад
int motor_LR; //Мотор отвечающий за движение влево-вправо
// Переменная скоросоти двигателя при движении вперед
int MotorSpeed = map(nJoyX, 0, 255, 0, 500); //500 - меняете в зависимости от вашего двигателя
// Отображение через Serial показателей скорости двигателя
Serial.print("MotorSpeed = ");
Serial.println(MotorSpeed);
motor_FB = nJoyX;
motor_LR = nJoyY;
if (motor_FB > 140) {
digitalWrite(MOTORA_1,HIGH);
digitalWrite(MOTORA_2,LOW);
analogWrite(ENA,MotorSpeed);
Serial.println("Двигаюсь вперед");
}
else if (motor_FB < 100) {
digitalWrite(MOTORA_1,LOW);
digitalWrite(MOTORA_2, HIGH);
analogWrite(ENA,350); // "350" Скорость движения назад, меняется в зависимоти от ваших двигателей.
Serial.println("Двигаюсь назад");
}
else {
digitalWrite(MOTORA_1, LOW);
digitalWrite(MOTORA_2, LOW);
Serial.println("Стоп");
}
if (motor_LR > 140) {
digitalWrite(MOTORB_1, LOW);
digitalWrite(MOTORB_2, HIGH);
digitalWrite(ENB,HIGH);
Serial.println("Двигаюсь вправо");
}
else if (motor_LR < 90) {
digitalWrite(MOTORB_1, HIGH);
digitalWrite(MOTORB_2, LOW);
digitalWrite(ENB,HIGH);
Serial.println("Двигаюсь влево");
}
else {
digitalWrite(MOTORB_1, LOW);
digitalWrite(MOTORB_2, LOW);
Serial.println("Прямо");
}
}
// MAIN CODE
void loop()
{
Blynk.run();
}
код:
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
// Код авторизации в приложений Blynk (Auth Token).
// Приходит на почту при создании нового устройства в приложении.
char auth[] = "LV6OXtzcqwKZ2ynA_eQ65G2nZUsruAAI";
// Логин и пароль вашего Wifi.
// оставьте поле пустым если у вашей сети нет пароля "" .
char ssid[] = "IPhone";
char pass[] = "123456789";
// Расшифровка подключений к L298
// Мотор A отвечающий за ускорение
#define MOTORA_1 D7 //IN1
#define MOTORA_2 D6 //IN2
#define ENA D8 //ENA
// Мотор B отвечающий за повороты
#define ENB D3 //ENB
#define MOTORB_1 D4 //IN3
#define MOTORB_2 D5 //IN4
//Переменные моторов вперед\назад - влево\вправо.
int motor_FB = 0;
int motor_LR = 0;
// Основная часть
void setup()
{
// Настройка пинов
pinMode(ENA, OUTPUT);
pinMode(MOTORA_1, OUTPUT);
pinMode(MOTORA_2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(MOTORB_1, OUTPUT);
pinMode(MOTORB_2, OUTPUT);
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
// Запуск serial порта
Serial.begin(9600);
// Подключение к приложению
Blynk.begin(auth, ssid, pass);
}
// Считываем данные джойстика V0 (обязательно в приложении выбрать "MERGE" в настройках джойстика).
BLYNK_WRITE(V0) {
int nJoyY = map(param[0].asInt(), 0, 1024, 0, 252);
int nJoyX = map(param[1].asInt(), 0, 1024, 0, 252);
//Отображение через Serial показателей джойстика
Serial.print("X = ");
Serial.print(nJoyX);
Serial.print("; Y = ");
Serial.println(nJoyY);
// Переменные
int motor_FB; //Мотор отвечающий за движение вперед-назад
int motor_LR; //Мотор отвечающий за движение влево-вправо
// Переменная скоросоти двигателя при движении вперед
int MotorSpeed = map(nJoyX, 0, 255, 0, 500); //500 - меняете в зависимости от вашего двигателя
// Отображение через Serial показателей скорости двигателя
Serial.print("MotorSpeed = ");
Serial.println(MotorSpeed);
motor_FB = nJoyX;
motor_LR = nJoyY;
if (motor_FB > 140) {
digitalWrite(MOTORA_1,HIGH);
digitalWrite(MOTORA_2,LOW);
analogWrite(ENA,MotorSpeed);
Serial.println("Двигаюсь вперед");
}
else if (motor_FB < 100) {
digitalWrite(MOTORA_1,LOW);
digitalWrite(MOTORA_2, HIGH);
analogWrite(ENA,350); // "350" Скорость движения назад, меняется в зависимоти от ваших двигателей.
Serial.println("Двигаюсь назад");
}
else {
digitalWrite(MOTORA_1, LOW);
digitalWrite(MOTORA_2, LOW);
Serial.println("Стоп");
}
if (motor_LR > 140) {
digitalWrite(MOTORB_1, LOW);
digitalWrite(MOTORB_2, HIGH);
digitalWrite(ENB,HIGH);
Serial.println("Двигаюсь вправо");
}
else if (motor_LR < 90) {
digitalWrite(MOTORB_1, HIGH);
digitalWrite(MOTORB_2, LOW);
digitalWrite(ENB,HIGH);
Serial.println("Двигаюсь влево");
}
else {
digitalWrite(MOTORB_1, LOW);
digitalWrite(MOTORB_2, LOW);
Serial.println("Прямо");
}
}
// MAIN CODE
void loop()
{
Blynk.run();
}