Кремень FMZ Реклама
Kremen FMHM Реклама

Вывод шкалы ПИД-регулятора на экран Marlin

Wasik
Идет загрузка
Загрузка
30.08.2017
3435
10
Личные дневники

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

23
Продолжаю 'играть' с изменением функциональности главного экрана в прошивке Marlin 1.1.1

Мои предыдущие изыскания:

Вывод на экран расхода пластика Отображение текущей скорости перемещения на экране Смена 'темы оформления' Цель публикаций не в конкретных инструкциях, а в направлениях действий, дабы показать, что такие изменения делаются достаточно просто и быстро.

Выглядит результат вот так
Вывод шкалы ПИД-регулятора на экран Marlin
Принцип доработки:

в файле temperature.cpp:

объявил глобальные переменные для хранения значений ПИД

double PID1_=0.00; //пид сопло

double PID2_=0.00; //пид стол

добавил присваивание PID1_=pid_output;

перед строками

#else

pid_output = constrain(target_temperature[HOTEND_INDEX], 0, PID_MAX);

#endif //PID_OPENLOOP

и присваивание PID2_=pid_output;

перед строками

#else

pid_output = constrain(target_temperature_bed, 0, MAX_BED_POWER);

#endif // PID_OPENLOOP

в файле ultralcd_impl_DOGM.h:

в начале прописал использование этих глобальных переменных

extern double PID1_,PID2_;

добавил отображение двух 'ползунков 0-100%'

u8g.drawFrame(70,2,20,3); u8g.drawHLine(71,3, map(PID1_,0,255,0,18 );

u8g.drawFrame(70,10,20,3); u8g.drawHLine(71,11, map(PID2_,0,255,0,18 );

внутри процедуры

FORCE_INLINE void _draw_heater_status(const uint8_t x, const int8_t heater)

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

23
Комментарии к статье