Шаговый двигатель

kabalichi
Offline
Зарегистрирован: 16.04.2021

Всем здравствуйте! Имеется скетч управления шаговиком. Нажимаешь на одну кнопку крутится по часовой стрелке, нажимаешь на другую крутится против часовой стрелки. Но он работает - нажимаешь кнопку по часовой, он отработал свой алгоритм, останавливается. Нажимаешь опять эту же кнопку, он опять отрабатывает и останавливается и так можно до бесконечности. Также и с кнопкой против часовой. Надо, чтобы нажал на кнопку по часовой, двигатель отработал цикл и все, сколько бы не жали на эту кнопку. а начал работать только при нажатии кнопки против часовой. и тоже только один раз, пока не нажмешь кнопку по часовой. Мне подсказали, что надо вставить две переменные - для переключения направления и для отслеживания, было ли перемещение. Как и где их вставить не подсказали. Бьюсь больше недели и ума не приложу как и куда их вставить. Мне 65 лет, и начиная читать статьи по программированию, как будто начал изучать Китайский язык ))). Помогите пожалуйста справится с это проблемой. Если что не так то извините. Вот скетч для ардуино. Куда чего здесь прописывать? Просто крутить вправо и влево он работает.

#define DISTANCE 3200
 
int StepCounter = 0;
int Stepping = false;
 
void setup() {
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
 
  pinMode(2, INPUT);
  pinMode(3, INPUT);
}
 
void loop() {
  if (digitalRead(3) == LOW && Stepping == false)
  {
    digitalWrite(8, LOW);
    Stepping = true;
  }
  if (digitalRead(2) == LOW && Stepping == false)
  {
    digitalWrite(8, HIGH);
    Stepping = true;
  }
 
  if (Stepping == true)
  {
    digitalWrite(9, HIGH);
    delay(1);
    digitalWrite(9, LOW);
    delay(1);
 
    StepCounter = StepCounter + 1;
 
    if (StepCounter == DISTANCE)
    {
      StepCounter = 0;
      Stepping = false;
    }
  }
}
b707
Offline
Зарегистрирован: 26.05.2017

идите вы... читать правила форума.

Задолбали уже новички. что сразу лезуть постить какие-то тупые проблемы.

kabalichi
Offline
Зарегистрирован: 16.04.2021

Умный человек просто проигнорирует вопрос, если для него он тупой. Заострит на нем внимание только высокомерный и невоспитанный человек.

b707
Offline
Зарегистрирован: 26.05.2017

kabalichi пишет:

высокомерный и невоспитанный человек.

с вашей тонкой организацией вам тут ловить нечего.

а захотите вопрос задать - прочитайте в правилах, как это делается.

Logik
Offline
Зарегистрирован: 05.08.2014

Ну запомни в булевской переменной последнее направление вращения и при проверке нажатий проверь ещё на повтор.

kabalichi
Offline
Зарегистрирован: 16.04.2021

Спасибо конечно, но пока из переменных, я кое как осилил int и то со шпаргалкой)))) Ну все равно спасибо, полезу узнавать, что такое булевая переменная)))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

kabalichi пишет:

пока ... я кое как осилил int и то со шпаргалкой

...полезу узнавать, что такое булевая переменная)))

Если раньше никогда этим не занимался, то и не лезь, ниасилишь. 

kabalichi
Offline
Зарегистрирован: 16.04.2021

Тогда помоги мне мил человек. Какие поставить мне эти переменные.)))) Христом богом прошу, если знаете как.

Morroc
Offline
Зарегистрирован: 24.10.2016

kabalichi пишет:
Мне 65 лет, и начиная читать статьи по программированию, как будто начал изучать Китайский язык )))

http://code.org (внизу переключалка на русский)

А скетч то кто писал ? Спросили бы его )

kabalichi
Offline
Зарегистрирован: 16.04.2021

Вот адрес сайта http://www.schmalzhaus.com/EasyDriver/Examples/EasyDriverExamples.html, но на нем нет обратной связи и спросить не у кого. 

Feofan
Offline
Зарегистрирован: 28.05.2017

kabalichi

Цитата:
5. Здесь помогают тем, кто пытается что-то сделать сам, имеет самописный скетч и задает вопросы по нему. Самописный скетч от скопипащенного отличается тем, что вы можете объяснить, что и где в нем происходит.
6. Если вас не устраивают требования пункта 5, есть чудесный раздел: "Ищу исполнителя".

http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/pesochnitsa-no...

Logik
Offline
Зарегистрирован: 05.08.2014

kabalichi пишет:

Вот адрес сайта http://www.schmalzhaus.com/EasyDriver/Examples/EasyDriverExamples.html, но на нем нет обратной связи и спросить не у кого. 

Ладно, выдавил слезу...

void loop() {
  static bool Fl3;
  if (digitalRead(3) == LOW && Stepping == false && Fl3 == false)
  {
    Fl3 = true;
    digitalWrite(8, LOW);
    Stepping = true;
  }
  if (digitalRead(2) == LOW && Stepping == false && Fl3)
{
 Fl3 = false;
 
 
Дальше оставляй как было все. Не компилировал, может где по мелочи чего описался, так извеняй...
kabalichi
Offline
Зарегистрирован: 16.04.2021

Огромное спасибо мил человек.  Все заработало сразу. Дай вам бог здоровья за доброту вашу. Еще раз благодарю за помощь деду. Всех благ вам.   P.S  Извините за назойливость. Fl3 и есть та самая переменная? Уж очень интересная эта штука ардуино)))) Еще раз огромное спасибо!

kabalichi
Offline
Зарегистрирован: 16.04.2021

Спасибо всем за советы! Вопрос решен. Огромная благодарность  Logik за помощь.

Logik
Offline
Зарегистрирован: 05.08.2014

kabalichi пишет:

Огромное спасибо мил человек.  Все заработало сразу. Дай вам бог здоровья за доброту вашу. Еще раз благодарю за помощь деду. Всех благ вам.   P.S  Извините за назойливость. Fl3 и есть та самая переменная? Уж очень интересная эта штука ардуино)))) Еще раз огромное спасибо!

Она самая.

kabalichi
Offline
Зарегистрирован: 16.04.2021

Скажите, а можно с вами связаться минуя форум? Слезу выбивать не буду)))) Есть еще одна проблема. Я оплачу. Мой адрес почты kabalichi@mail.ru.

sadman41
Offline
Зарегистрирован: 19.10.2016

Делаю ставку на проблему, связанную с недостачей INPUT_PULLUP

kabalichi
Offline
Зарегистрирован: 16.04.2021

Я в этом практически ничего не смыслю и INPUT_PULLUP для меня ни о чем не говорит)))) Хотя знаю INPUN - вход, PULLUP - остановка, вот и все мои знания.)))))

kabalichi
Offline
Зарегистрирован: 16.04.2021

Сколько будет стоить решить проблему?

b707
Offline
Зарегистрирован: 26.05.2017

kabalichi пишет:

Сколько будет стоить решить проблему?

зависит от проблемы. очевидно...

хотя то, что можно решить за деньги - это не проблемы. это расходы :)

sadman41
Offline
Зарегистрирован: 19.10.2016

Любую абстрактную или определённую?

kabalichi
Offline
Зарегистрирован: 16.04.2021

Давайте перейдем в личку и там обсудим. Адрес мое почты kabalichi@mail.ru Здесь как то некрасиво это обсуждать.