Помогите переделать прошивку

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем Runmy, 5 апр 2017.

  1. Runmy

    Runmy Нуб

    Есть прошивка под Моторино (в файле), вот ее нужно переделать что бы она работала с Arduino Mega 2560 RAMPS 1.4. Сам ничего в этом не понимаю. Так что прошу помощи, буду благодарен!
     

    Вложения:

  2. sslobodyan

    sslobodyan Гик

    Глянул мельком. Не увидел ничего, что бы могло ограничивать применение этой прошивки под Мегой. В чем проблема? Если в том, что ничего не понятно - ищите тех, кто в теме, рядом с собой. Там ведь не только прошивка, там еще и с электроникой поработать надо.
     
  3. Runmy

    Runmy Нуб

    Своим мозгом разобрался с прошивкой наполовину, то есть заставил двигатели работать как надо, но нагреватель так и немогу настроить правильно, он нагревается до красна, хотя по идее там температура должна регулироваться.
     
  4. sslobodyan

    sslobodyan Гик

    Это вы просто делитесь своими эмоциями, или просите помощи? Если нуждаетесь в помощи, то неплохо бы полностью описать куда и что подключили и выложить весь скетч.
     
  5. Runmy

    Runmy Нуб

    Соглашусь с Вами эмоции иногда зашкаливают когда что то получается через три дня копания в том, в чем ничего не понимаешь. Выкладываю две прошивки, одна исходник, другая моя прошивка. В своей прошивке я поменял пины на РАМПСовские.
     

    Вложения:

  6. sslobodyan

    sslobodyan Гик

    Предположим, что я хочу помочь. Повторяю вопрос: куда что подключено. Перечислите все. Что такое рампс - я не в курсе, но похоже что вы чего-то не туда воткнули или не так описали в настройках.
     
  7. Runmy

    Runmy Нуб

    Описание RAMPS 1.4
    Описание Подключение электроники RAMPS 1.4 на примере 3D принтера.
    Это исходная электроника которую я и хочу переделать, то есть механика применена такая же, а вот электроника RAMPS 1.4
     
  8. sslobodyan

    sslobodyan Гик

    Начнем с того, что вы пытаетесь применить прошивку под выжигатель на железе от РАМПСа? Лучше было просто написать, что подключил термистор на вход такой-то, выключатель нагрева на такой-то и т.д. А так заставляете влазить в описание еще одной разработки. А ведь бывает, что пока человек описывает что куда подключил, то и сам находит как что-то пропустил :)
    Ладно, это лирика. Теперь холодный душ. Посмотрел чуть внимательнее ваш код. Это демонстрашка на самом деле. То есть моторы ездят, но терморегулирования я что-то не вижу. Придется самому дописывать. Кстати, в названии файла так прямо и указано - демо.
     
  9. sslobodyan

    sslobodyan Гик

    А нет, прошу прощения, недоглядел. Регулировка есть, уже легче. Давайте мне четкий ответ на какие пины подключен термистор, нагреватель, регулятор - все что относится к выжигателю. Попробуем сдвинуть проблему с места.
     
    glory24 нравится это.
  10. sslobodyan

    sslobodyan Гик

    По коду вижу, что обратной связи по температуре нет. То есть переменным резистором задается только мощность нагрева через ШИМ. Колитесь, куда подключен переменник :)
     
  11. Runmy

    Runmy Нуб

    Выше давал описание RAMPS 1.4, там на странице есть распиновка по умолчанию для этой платы.
     
  12. Runmy

    Runmy Нуб

    Незнаю. Точнее не понимаю ))
     
  13. Runmy

    Runmy Нуб

    Пробовал прошивать этот код, так вот в нем нагреватель работает не в полную силу, то есть температура регулируется в программе
     
  14. Runmy

    Runmy Нуб

    Думал уже прописать из него управление нагевателем и опытным путем уже выбрать нужную температуру
     
  15. sslobodyan

    sslobodyan Гик

    Эх, трудно помогать, когда не хотят просто ответить на вопрос. У вас резистор переменный для регулировки температуры есть? Как он подключен? Или его нет?
     
  16. sslobodyan

    sslobodyan Гик

    Ладно, идем по простому пути. Находите код
    Код (C++):
    int woodBurner(int work) {
    potenc = analogRead(A_IN); //считываем температуру
    temper = map(potenc,0,1024,0,MAXTEMP);
     
    и меняете его на код
    Код (C++):
    int woodBurner(int work) {
    //potenc = analogRead(A_IN); //считываем температуру
    potenc = 600; // здесь настроить
    temper = map(potenc,0,1024,0,MAXTEMP);
     
    Так понятно?
     
    Runmy нравится это.
  17. Runmy

    Runmy Нуб

    Нет резистора.
     
  18. sslobodyan

    sslobodyan Гик

    И если не подключен выключатель нагрева, то вот здесь
    Код (C++):
     fire = digitalRead(VYKL);
    if (fire == HIGH) {
    меняем на
    Код (C++):
     //fire = digitalRead(VYKL);
    fire = 0; // или 1 - тогда нагрев всегда выключен
    if (fire == HIGH) {
    Ну а в принципе дома не завалялся какой-то переменный резистор от килоома и больше ? Его надо подключить внешними ногами на +3 и землю, а средний вывод подключить ко входу А5. Тогда будет оперативная регулировка температуры, а не только путем перепрошивки.
     
    glory24 и Runmy нравится это.
  19. Runmy

    Runmy Нуб

    Меняю число, нагреватель одного цвета - красный. В каких пределах оно регулируется? Спрашиваю потому что чайник )
     
  20. sslobodyan

    sslobodyan Гик

    Если 0-будет нулевой нагрев, 1024 - максимальный. Подбирать опытным путем, но учтите, что во время работы нагреватель охлаждается, а если просто так пробовать без выжигания, то нагреватель обязательно перегреется - некуда отводить тепло.
    Там еще такая настройка есть (если будет использоваться резистор)
    Код (C++):
    #define MAXTEMP 80 //80 ограничение ШИМ, макс 255
     
    Чем меньше - тем менше максимальный нагрев, который можно накрутить резистором.