Відповісти

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

Назад

Огляд теми (нові повідомленні вгорі)

г0сть
2020-02-27 16:51:58
OverlordLSBeam пише:

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

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

OverlordLSBeam
2020-02-27 15:42:01
YK пише:

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

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


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

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

YK
2020-02-27 15:35:12

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

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


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

OverlordLSBeam
2020-02-27 14:41:10

Всем привет, у меня тут такая задача, но что-то пока не разобрался как это сделать.
У меня есть 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с заканчиватся работа
   }
  }
}

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