#1 Re: Програмування Arduino » Для меня сложно, а для вас нет) » 2018-03-21 13:40:46

и тут великий страх перед переполнением... lol
на великах никто не ездит? только начали придумывать?
http://arduino.ru/forum/programmirovanie/velikoe-perepolnenie-millis
первый пост ну или так: если "по-домашнему"

uint16_t period = 2000; // заданый интервал 2сек.
void loop()
if ((currentMillis = millis()) - startTime > period)

{
  тута будет все делатса аш больше 50ти дней подряд! интервалом через 2 секунды
  startTime = millis(); //  сброс, чтоб отсчет пошел после выполнения последнего вкл лампы ато мало ли что, вдруг затяжное
   //действие
  }

#2 Re: Апаратні питання » Во время работы 3d принтера перестаёт работать. » 2018-03-21 13:02:10

Romanton пише:

а на принтере ограничение в 14 мм/с и с етого может быть сбой?

с этого начать и следует cool

#3 Re: Апаратні питання » Во время работы 3d принтера перестаёт работать. » 2018-03-21 13:00:03

при настройке прошивки там скорость меняется, и вообще понятие скорость относительная. Можно настроить по разному.
Но тут явно что-то тянется из-за скоростей, раз в сложных комбинациях начинается потеря. По- идее "холостой" прогон покажет что если затык в "мозгах" происходит без влияния "наводок"  ибо сам марлин построен практически по односторонней связи- за исключением обогрева. Все остальное не контролируемо, тоисть шаговики. Солько они ходят на самом деле - проц не понимает. Это я к тому что движение мех-частей никак на логику не должно влиять кроме наводок.
Или марлин так сконфигурирован или слайсер, можно проверять по отдельности. Беда конечно что нет SD, на порядок легче было бы smile

#4 Re: Апаратні питання » Доброго дня допоможіть скнопкою » 2018-03-21 12:43:27

земляк, уж больно ты серчавый smile
- смотри в сторону того как будто ты отвечаешь на подобные вопросы но не для ТС. Другой зайдет, прочтет и намотает на ус, пойдет на пользу. Ну а что конкретно ТС то если ему не дойдет то это его проблемы. Единственная реальная проблема это
долб..ебс..кие темы ! форум переваливает в очередную помойку, потому что на тему "помогите чайнику.."  даже открывать не охота, хрен знает чего там ТС надобно, мож просто на душе неспокойно, попиз...еть охота. это я к тому что в теме надо указывать причину ее создания, чтоб второй такой же "мытець" не завел зеркало с такой же точно проблемой. sad

#6 Re: Апаратні питання » Во время работы 3d принтера перестаёт работать. » 2018-03-21 11:32:07

реле на 220 при выкл дает выброс, хотя при резистивной нагрузке как стол то выброс небольшой. вообще правильное направление- передача данных, затык при микрошаге, скорость порта, параллельные программы которые могут в порт лезть и.т.д
кабель не меняли? можно от принтера попробовать, там серьезные обычно стоят. Может сама длинна кабеля рубить. На лазере у меня такой косяк напимер - при высоком разрешении начинает косячить именнно из-за того что инфа по кабелю, в МК практически ничего не варится тупо движками дрыгает и TTL лазера. Но из-за того что поток перегружен начинается говнопляс. Выявлено точно.
Так что может и сам слайсер перегибать палку, при таких симптомах при чем

#7 Re: Апаратні питання » Во время работы 3d принтера перестаёт работать. » 2018-03-21 11:23:12

автономно печатает? или экрана нет?
я бы на холодную "мнимо" погонял. стол 20грд/ сопло тоже. без материала. убрать лишнюю нагрузку, можно вообще без шаговиков(вынуть драйвера). тоисть обездвижить кинематику но мозг чтоб печатал. Возможно и вправду наводки бьют по кабелю COM, раз он у вас на "цепи" бегает. Если будет нормально работать (виртуально) то скорость на максимум!- тут тоже затык покажет если что.
У самого есть принтер и лазер, было когда-то подобное но закончилось тем что кабель на стол коротил. Но раз у вас 220! КЗ  уже бы себя показало big_smile
CH прекрасный бутлодер, ничем не хуже меговского, даже лучше!- можно перепаять самому если что.

#8 Re: Апаратні питання » Доброго дня допоможіть скнопкою » 2018-03-21 11:00:10

вот вам заготовка для отладки:
подставляете переменную (любую) и следите за ее изменениями
////////////для отладки на порт
uint32_t PortPreviosMil = 0;
void setup(){
  Serial.begin(9600);




}
void loop(){




/////Отладка на порт

if (millis() - PortPreviosMil > 100) //вместо 100 любой интервал на ваш вкус
{
  PortPreviosMil = millis();
  Serial.println(любая переменная);
  }
}

#9 Re: Апаратні питання » Доброго дня допоможіть скнопкою » 2018-03-21 10:54:39

ув. stels
надеюсь языкового барьера не возникнет? wink
ужасно неудобно на форуме сделан "вставка кода" много минусов- неудобно читать, много времени на проверку...
Ладно, по сути вопроса:
Если честно то такой способ для совсем новичка немного странный big_smile
Для начала просто бы поработать с кнопкой научиться использовать разные методы.
В самом коде немного не ясно: butt_flag = 0; когда butt_flag есть переменная boolean и к ней привычно два состояние либо false либо true. Хотя я далеко не умнила ниепичесский и могу неправильно думать. дальше pinMode(light1_pin, OUTPUT); в loop тоже странновато, хотя ничего особо криминального нету cool  Вообще в такой ситуации очень полезно сделать вывод на порт и смотреть за каждой переменно как она меняется, это действие очень сильно и быстро подтолкнет вас на правильный путь

вот попробуйте для начала:
int LEDpin = 5;       // светодиод подключен к выводу 5
int switchPin = 13;   // ключ подключен к выводу 13, другой вывод подключен к земле

boolean running = false;

void setup()
{
  pinMode(LEDpin, OUTPUT);
  pinMode(switchPin, INPUT);
  digitalWrite(switchPin, HIGH);      // включить подтягивающий резистор тоисть при нормальном раскладе у вас HIGH это выкл
}

void loop()
{
  if (digitalRead(switchPin) == LOW)
  {  // ключ нажат - вывод подтянут к высокому уровню сигнала
    delay(100);                        // задержка для устранения дребезга контактов ключа
    running = !running;                // инвертирование переменной running
    digitalWrite(LEDpin, running)      // индикация светодиодом
  }
}

#10 Re: Програмування Arduino » Помогите с нажатием на кнопку (удержание) » 2018-03-21 10:37:01

завести счетчик, он накручивается пока нажата кнопка, при достижении выполняется код. после выполнения кода обнуляется счетчик.
Ну а если правильно big_smile то лучше взять готовый велосипед и изваять типа:
if ((millis() - buttonTimer > longPressTime) && (longPressActive == false)) {

    longPressActive = true;
    LED1State = !LED1State;
    digitalWrite(LED1, LED1State);

}
longPressTime - переменная где задаш скок надо удерживать чтоб сие чудо сработало
никаких делаев и переполнения переменных. все ок и все сработает



по аппаратному: самый кайфовый метод на сегодня (для меня лично, в условиях жостких помех от ЧПУ) является PC817 последовательно резистор на 3.3 кОм и последовательно светодиод, именно светодиод- индикация которая подскажет что опто работает и не сгорела, так для перестраховки. Это входной контур а выходной естественно с подтяжкой на GND через 10кОм резистор и напрямую к 5V. Когда опто замыкает- на входе в ардуино(или любого другого МК) 5V.
Работает нормально, при чем в очень большом диапазоне от 9v- 26VDC.
Ссори за баламут но еще не обжился, только зарегистрировался smile

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