Повторно не запускает шаговый двигатель при включенной кнопке то есть одно нажатие один оборот а нужно постоянно

IKSBOKS
Offline
Зарегистрирован: 28.07.2022
Доброго времени суток подскажите пожалуйста как настроить 
Проблема такая повторно не запускает шаговый двигатель при включенной кнопке то есть одно нажатие один оборот а нужно 
постоянное вращение при нажатой кнопке 

#define dirPin 8
#define stepPin 9
#define stepsPerRevolution 1600
#include <SoftwareSerial.h>
#include <Nextion.h>

SoftwareSerial nextion(10, 11);// Nextion TX к контакту 10 и RX к контакту 11 Arduino
Nextion myNextion(nextion, 9600); // создаем объект Nextion с именем myNextion, используя последовательный порт nextion @ 9600 бит / с

// отправка на Nextion (номер экрана, название переменной) + данные


void setup() {
  Serial.begin(9600);
  myNextion.init();
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}

void loop() 
  {

  String message = myNextion.listen(); // проверяем наличие сообщения
  if(message == "65 0 5 1 ffff ffff ffff")
 
    {
  digitalWrite(dirPin, LOW); // Устанавливаем направление вращения по часовой стрелке: 
  for (int i = 0; i < 5 * stepsPerRevolution; i++) // Быстрое вращение шагового двигателя на 5 оборотов: 
      {
         // Эти четыре строки приводят к 1 шагу:
          digitalWrite(stepPin, HIGH);
          delayMicroseconds(100);
          digitalWrite(stepPin, LOW);
          delayMicroseconds(100);
           
      }
      
    }   
}
Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Может нажатие и удержание это разные коды ?

IKSBOKS
Offline
Зарегистрирован: 28.07.2022

Включение происходит с Nextion кнопкой Dual-state-button при нажатии она отправляет сигнал на ардуино один раз и по этому двигатель делает вращение только один раз а нужен постоянный цыкл 

IKSBOKS
Offline
Зарегистрирован: 28.07.2022

IKSBOKS пишет:

Включение происходит с Nextion кнопкой Dual-state-button при нажатии она отправляет сигнал на ардуино один раз и по этому двигатель делает вращение только один раз а нужен постоянный цыкл 

надо сделать так раз на кнопку нажал он работает второй раз нажал на эту кнопку он престает работать 

IKSBOKS
Offline
Зарегистрирован: 28.07.2022

я новичок в этой теме ребята нужна помощь 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

IKSBOKS пишет:

я новичок в этой теме ребята нужна помощь 

может так?
 

#define dirPin 8
#define stepPin 9
#define stepsPerRevolution 1600
#include <SoftwareSerial.h>
#include <Nextion.h>

SoftwareSerial nextion(10, 11);// Nextion TX к контакту 10 и RX к контакту 11 Arduino
Nextion myNextion(nextion, 9600); // создаем объект Nextion с именем myNextion, используя последовательный порт nextion @ 9600 бит / с

// отправка на Nextion (номер экрана, название переменной) + данные

bool but_nextion = false;

void setup() {
  Serial.begin(9600);
  myNextion.init();
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}

void loop() 
  {

  String message = myNextion.listen(); // проверяем наличие сообщения
  if(message == "65 0 5 1 ffff ffff ffff") but_nextion = !but_nextion;
  if(but_nextion)
    {
  digitalWrite(dirPin, LOW); // Устанавливаем направление вращения по часовой стрелке: 
  for (int i = 0; i < 5 * stepsPerRevolution; i++) // Быстрое вращение шагового двигателя на 5 оборотов: 
      {
         // Эти четыре строки приводят к 1 шагу:
          digitalWrite(stepPin, HIGH);
          delayMicroseconds(100);
          digitalWrite(stepPin, LOW);
          delayMicroseconds(100);
           
      }  
    }   
}

 

IKSBOKS
Offline
Зарегистрирован: 28.07.2022

ua6em пишет:

IKSBOKS пишет:

я новичок в этой теме ребята нужна помощь 

может так?
Спасибо друг помог 

#define dirPin 8
#define stepPin 9
#define stepsPerRevolution 1600
#include <SoftwareSerial.h>
#include <Nextion.h>

SoftwareSerial nextion(10, 11);// Nextion TX к контакту 10 и RX к контакту 11 Arduino
Nextion myNextion(nextion, 9600); // создаем объект Nextion с именем myNextion, используя последовательный порт nextion @ 9600 бит / с

// отправка на Nextion (номер экрана, название переменной) + данные

bool but_nextion = false;

void setup() {
  Serial.begin(9600);
  myNextion.init();
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}

void loop() 
  {

  String message = myNextion.listen(); // проверяем наличие сообщения
  if(message == "65 0 5 1 ffff ffff ffff") but_nextion = !but_nextion;
  if(but_nextion)
    {
  digitalWrite(dirPin, LOW); // Устанавливаем направление вращения по часовой стрелке: 
  for (int i = 0; i < 5 * stepsPerRevolution; i++) // Быстрое вращение шагового двигателя на 5 оборотов: 
      {
         // Эти четыре строки приводят к 1 шагу:
          digitalWrite(stepPin, HIGH);
          delayMicroseconds(100);
          digitalWrite(stepPin, LOW);
          delayMicroseconds(100);
           
      }  
    }   
}

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

IKSBOKS пишет:

Спасибо друг помог 

библиотеку Nextion.h откуда брал?

IKSBOKS
Offline
Зарегистрирован: 28.07.2022

Ребят доброго времени суток подскажите пожалуйста возможно задать скорость вращения мотора с помощью Slider c nextion 

print "h0"
print h0.val
IKSBOKS
Offline
Зарегистрирован: 28.07.2022

библиотеку Nextion.h откуда брал?

честно говоря не помню пол года назад занимался 

вроде стандартная nextion-master других нету

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

IKSBOKS пишет:

библиотеку Nextion.h откуда брал?

честно говоря не помню пол года назад занимался 

вроде стандартная nextion-master других нету

пришли на  мыло