#1 2019-04-01 17:25:06

Romanovskiy
Учасник
Зареєстрований: 2017-07-04
Повідомлень: 12

Не могу сделать общение в Мониторе порта

Здравствуйте друзья.Пробую написать скетч,хочу управлять шаговиком через монитор порта.
Если с библиотекой и работой с ней уже разобрался то с монитором порта всё туго...А дело в том что хочу сделать такое себе меню с несколькими вариантами работы.Но ничего не получается.Помогите понять что сделал не так?
КОД:

#include <Arduino.h>

//Параметры двигателя
#define MOTOR_STEPS 200
#define RPM 120
#define DIR 8
#define STEP 9

//Инициализация параметров драйвера
#include "DRV8825.h"
#define MODE0 10
#define MODE1 11
#define MODE2 12
DRV8825 stepper(MOTOR_STEPS, DIR, STEP, MODE0, MODE1, MODE2);

//Переменные
int Mode = 0;
int Impulses = 0;
int Speed = 0;
int Angle1 = 0;
int Angle2 = 0;

void setup() {
    Serial.begin(115200);
    stepper.begin(RPM);
    stepper.enable();
    Serial.println("Выберите режим 1-4:");
    doMode();
}

void loop() {
    doMode();   
}

void doMode(){
  if (Serial.available() > 0) {  //если есть доступные данные
    Mode = Serial.parseInt();  // считываем байт
    Serial.print("Выбран режим: ");   // отсылаем то, что получили
    Serial.println(Mode);}
    else if (Mode > 4){
       Mode = 0;
       Serial.println("Выбран несуществующий режим!");
    }
   
  switch (Mode){
 
//Логика режима 1:
    case 1:
          Serial.println("Количество шагов и направлеие(для влево введите количество шагов со знаком -(минус): ");
          if (Serial.available()) {  //если есть доступные данные
           
           Impulses = Serial.parseInt();
             Serial.print("Количество шагов и направлеие:");
             Serial.println(Impulses);
          if (Serial.available()) {  //если есть доступные данные
            Serial.print("Установите скорость: ");
           Speed = Serial.parseInt();
             Serial.print("Cкорость:");
             Serial.println(Speed);}}
          break; 
         
//Логика режима 2:
     case 2:
     
          Serial.println("Установите скорость: ");
          if (Serial.available() > 0) {  //если есть доступные данные
          Speed = Serial.parseInt();
          Serial.print("Cкорость:");
          Serial.println(Speed);}
          stepper.setMicrostep(4);  // Set microstep mode to 1:1
          stepper.rotate(Impulses);
          break;   

Вся проблема в том что после выбора например 1 режима начинается цикличная прокрутка фразы "Количество шагов и направлеие(для влево введите количество шагов со знаком -(минус): " и всё,не реагирует больше.

Остання редакція Romanovskiy (2019-04-01 18:07:31)

Неактивний

#2 2019-04-01 20:41:38

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Не могу сделать общение в Мониторе порта

много чего не так сделано.

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму