Автономный контроллер своими руками.

    Рекомендованный
  • #136
В программировании профан, но думаю имеет смысл добавить буферный источник питания на Li-ion аккумуляторе с подзарядкой от платы GRBL для питания автономного контроллера. И программу сохранения запускать по сигналу пропадания основного питания станка. И отключение питания после завершения программы сохранения.
Всё проще, для ардуино хватит ёмкости конденсатора чтоб успеть сохраниться, ну или небольшой батарейки чтоб стать на паузу до включения света, но это всё изменение схемы.
Кстати, да, с батарейкой неплохая идея.
Ваши сообщения автоматически объединены:

готовы разве не дешевле?
готовые кто?
 
Всё проще, для ардуино хватит ёмкости конденсатора чтоб успеть сохраниться, ну или небольшой батарейки чтоб стать на паузу до включения света, но это всё изменение схемы.
Кстати, да, с батарейкой неплохая идея.
Ваши сообщения автоматически объединены:


готовые кто?
Конденсаторы. :D
 
Подозреваю, что кондёр немалой ёмкости понадобится, лучше уж аккумы...
Всё проще, для ардуино хватит ёмкости конденсатора чтоб успеть сохраниться, ну или небольшой батарейки
Тогда и подходящий вариант ионистор ("суперконденсатор"). Такого с лихвой хватит на несколько десятков секунд автономного питания контролера.
 
У меня заряда бп и без ионистора хватает, после выключения, дернуть шаговиками черз кандел. Делаю порой так, чтобы быстрей бп разрядился.
 
  • Последнее редактирование:
Последнее редактирование:
В программировании профан, но думаю имеет смысл добавить буферный источник питания на Li-ion аккумуляторе с подзарядкой от платы GRBL для питания автономного контроллера. И программу сохранения запускать по сигналу пропадания основного питания станка.
приблизительно по такой логике хочу возобновить работу при потере питания
- маломощный UPS для логики ( скажем на 10секунд )
-при отлкючение питания подается команда на запись номер строки со всеми данными (подача, скорость .....)
- при возновобление основного питания --в дом
- вызов записанной строки
-(если добавить Z0 то можно и сменить инструмента )
- команда на выполнение
не тоже самое?
Ваши сообщения автоматически объединены:

Пара мыслей...
1. ....
2. .....
3. Возобновление работы УП: в запланированном случае можно начинать с той строки, где прекратили работу.
В незапланированном/аварийном можно и на несколько строк раньше начать.
как найти эту строка в File g-code , игнорировать предыдущие и выполнить следующие?
 
  • Последнее редактирование:
Последнее редактирование:
Всмысле, как читать файл с какой-то определённой строки?
как найти строку, в файле они ведь не пронумерованы...?

допустим
срыв в 18-и строке, строка записали где то.. \
потом как найти эту 18-ю строку в файле

p.s.
или имется файл , как начинать выполнение с нужной строки ?
 

Вложения

  • ggg.jpg
    ggg.jpg
    70.4 KB · Просмотры: 10
Можно примерно так. Код читает с заданной строки до конца файла.
C++:
void readFromLine(fs::FS &fs, const char * path, uint32_t startNumber){
    File file = fs.open(path, FILE_READ);
    if(!file) return;

    uint32_t cnt = 0;
    while(file.available()) {
        char c = file.read();//считываем символ из файла
        if (c == '\n') cnt++; //наращиваем счётчик строк
        if (cnt == startNumber -1) break;
    }
    
    //Теперь мы на нужной строке, читаем до конца файла
    while(file.available()){
        Serial.write(file.read());
    }
    file.close();
}

Используем для чтения файла hello.txt, начиная с 10-й строки
C++:
readFromLine(SD, "/hello.txt", 10);
 
допустим
срыв в 18-и строке, строка записали где то.. \
потом как найти эту 18-ю строку в файле
В прошивке идёт такой алгоритм:
считываем строку с карты памяти отправляем строку в контроллер, счётчик строк +1, ждём ответ и отправляем следующую.
Если нужно начать с определённой, то слегка меняем алгоритм. Считываем, счётчик +1, снова считываем, пока не дойдём до нужной строки. как только дойдём, переходим к основному алгоритму.
 
В прошивке идёт такой алгоритм:
считываем строку с карты памяти отправляем строку в контроллер, счётчик строк +1, ждём ответ и отправляем следующую.
Если нужно начать с определённой, то слегка меняем алгоритм. Считываем, счётчик +1, снова считываем, пока не дойдём до нужной строки. как только дойдём, переходим к основному алгоритму.
а если перед этой строкой стоят немодальные коды , нет риска их потерять ?
 
немодальные коды , нет риска их потерять ?
Например какие?
По запросу $G мы получаем состояние основных параметров на данном этапе. Например: [GС G54 G17 G21 G90 G94 М0 M5 M9 T0 S0.0 F500.0] Если чтото выходит за эти рамки, то конечно потеряем. И я с самого начала обращал на это внимание.
 
Например какие?
По запросу $G мы получаем состояние основных параметров на данном этапе. Например: [GС G54 G17 G21 G90 G94 М0 M5 M9 T0 S0.0 F500.0] Если чтото выходит за эти рамки, то конечно потеряем. И я с самого начала обращал на это внимание.
например G91, который стоит где то n strok выше записанной строки ...
 
например G91, который стоит где то n strok выше записанной строки ...
Эта будет записана и сохранена.
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

Конечно, Ваше программное обеспечение для блокировки рекламы отлично справляется с блокировкой рекламы на нашем сайте, но оно также блокирует полезные функции. Мы стараемся для Вас и не обязываем Вас донатить и скидывать денег на наши кошельки, чтобы пользоваться форумом, но реклама это единственное, что позволяет поддерживать проект и развивать его.

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать