#1 2020-02-27 14:41:10

OverlordLSBeam
Участник
Зарегистрирован: 2020-02-27
Сообщений: 3

Ввод задержки с клавиатуры

Всем привет, у меня тут такая задача, но что-то пока не разобрался как это сделать.
У меня есть DC - моторчик, и мне нужно чтобы он работал в две стороны с какой-то частотой, но её нужно задать вводом с сериал порта с клавиатуры, ну и например, чтобы эта задержка росла с каждым тиком на 500мс. Я с ардуино не так давно знаком, еще не понял как это реализировать. Это через Serial.read ()?
Вот что я накидал, ну очевидно, что оно не работает, но если убрать эти сериал, моторчик тикает.

#include <L298N.h> //library l298n
int in1 = 8;
int in2 = 9;
int i;
void setup()
{
  pinMode(in1, OUTPUT); //in1,in2 as outputs
  pinMode(in2, OUTPUT);
  Serial.begin(9600);
}
void loop()
{
  Serial.read(i); //Ввести значение задержки i начальное
  Serial.write("delayClose=")//Пишет на экране текст и значение
  for (i; i<20000; i+500) // От заданого i увеличивается на 500мс
   {
    digitalWrite(in1, HIGH); //on in1 +, on in2 -
    digitalWrite(in2, LOW);
    delay(i);             //delay after 5s
   if (i == 20000) break; // Когда задержка 20с заканчиватся работа
    }
  Serial.read(k);//Ввести значение задержки k начальное
  Serial.write("delayOpen=")//Пишет на экране текст и значение
  for (k; k<20000; k+500)// От заданого k увеличивается на 500мс
   {
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
    delay(k);
    if (i == 20000) break;// Когда задержка 20с заканчиватся работа
   }
  }
}

#2 2020-02-27 15:35:12

YK
Участник
Зарегистрирован: 2020-02-26
Сообщений: 21

Re: Ввод задержки с клавиатуры

Ну так оно точно нормально работать не будет.
В коде не должно быть задержек delay()....
И не надо замораживать поток Serial.Read....

Почитай что то типа https://www.instructables.com/id/Coding-Timers-and-Delays-in-Arduino/


Ну или обратись к кому то чтобы нормально написали

#3 2020-02-27 15:42:01

OverlordLSBeam
Участник
Зарегистрирован: 2020-02-27
Сообщений: 3

Re: Ввод задержки с клавиатуры

YK пишет:

Ну так оно точно нормально работать не будет.
В коде не должно быть задержек delay()....
И не надо замораживать поток Serial.Read....

Почитай что то типа https://www.instructables.com/id/Coding-Timers-and-Delays-in-Arduino/


Ну или обратись к кому то чтобы нормально написали

Спасибо, буду с этим что-то крутить smile
Если бы у меня был кто-то, кто разбирается в этом xD

#4 2020-02-27 16:51:58

г0сть
Гость

Re: Ввод задержки с клавиатуры

OverlordLSBeam пишет:

  Serial.read(i); //Ввести значение задержки i начальное
  ...
  Serial.read(k);//Ввести значение задержки k начальное

Это что за ересь?

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела