Автоматический Намоточный станок.

Тема в разделе "Закажу проект", создана пользователем VitalikST, 31 янв 2016.

  1. VitalikST

    VitalikST Нуб

    помогите со скетчем

    Проект такой . АВТОМАТИЧЕСКИЙ НАМОТЧНЫЙ станок катушек!!

    стоит двигатель с редуктором включается с помощью реле, на двигателе стоит геркон который считает оборты , кнопка запуска
    01
    int relayPin = 7;//к этому пину подключено реле
    02
    int buttPin = 2;//кнопка
    03
    int gerkoPin = 3;//геркон
    04
    int i = 0;//счетчик
    05
    void setup() {
    06
    pinMode(relayPin, OUTPUT);
    07
    pinMode(gerkoPin, INPUT);
    08
    digitalWrite(relayPin, 0);
    09
    attachInterrupt(0, tap, RISING);//прерывания на кнопку
    10
    Serial.begin(9600);
    11
    }
    12
    bool isOn = false;
    13
    void loop() {
    14
    while(isOn)
    15
    {
    16
    if (digitalRead(gerkoPin) == 1)
    17
    {
    18
    i++;
    19
    if (i == 10)
    20
    {
    21
    digitalWrite(relayPin, 0);//выключаем реле
    22
    isOn = false;
    23
    }
    24
    while(digitalRead(gerkoPin) == 1) {}
    25
    }
    26
    Serial.println(i);
    27
    }
    28
    delay(50);
    29
    }
    30
    void tap()
    31
    {
    32
    i = 0;
    33
    digitalWrite(relayPin, 1);//включаем реле
    34
    isOn = true;
    35
    //attachInterrupt(1, gerkonOn, RISING);//вешаем прерывания на геркон Если геркон на замыкания то RISING если на размыкания то FALLING
    36
    }

    с помощью шагового двигателя двигается головка с проводом
    01
    #include <Stepper.h>
    02
    #define STEPS 200 //Количество шагов
    03
    Stepper stepper(STEPS, 8, 9, 10, 11); // пины к которым подключен двигатель
    04
    void setup(){
    05
    stepper.setSpeed(130); //скорость вращения
    06
    }
    07
    void loop()
    08
    {
    09
    stepper.step(10*STEPS);
    10
    delay(1000);
    11
    stepper.step(-10*STEPS);
    12
    delay(1000);
    13
    }

    помогите чтобы все работала от одной кнопки, нажал старт , запустился редуктор и шаговый двигатель , когда реле выключилось все остановилось. нажал опять старт чтобы шаговый двигатель в свое первоначальное состояние

    Кто может со скетчем

    ЗА РАННИЕ СПАСИБО
     
  2. Максимус-Бог

    Максимус-Бог Убийца матрёшек

  3. VitalikST

    VitalikST Нуб

    видео
     
  4. MXXX

    MXXX Гик

    Делаю перемоточный станок для своих целей. Правда мотаю не медную проволоку, а пластиковый пруток на экструзионной линии. Принцип механики такой же. За исключением счетчика оборотов. У меня там не кнопка, а датчик холла + энкодер. Датчик холла для точного вычисления одного оборота, а энкодер для определения направления вращения и приблизительной скоорости. Так же планирую поставить ультразвуковой сенсор для вычисления объема текущей намотки и автокалибровки каретки укладчиика по краям бобины. Arduino стоит в распечатанном на 3D принтере корпусе. На верхней панели, 4 кнопки, 2 светодиода, дисплей на 4 строки и ручка энкодера для навигации по меню и изменения настроек.
    Старт намотки происходит с одной кнопки. Базовая логика намотки такая:
    1. Ловим нажатие на кнопку СТАРТ.
    2. Возврат каретки укладчика в 0 позицию.
    3. Плавный разгон двигателя намотки до максимально заданных оборотов.
    4. Смещение каретки на заданный в настройках шаг по каждому срабатыванию датчика холла.
    5. При достижении 98% намотки, плавное снижение скорости до минимально заданной.
    6. При достижении 100% намотки остановка.
    Ну и все это обвязано дополнительной логикой не относящейся напрямую к намотчику.
    Пока не все доделал, не весь скетч дописал и протестировал но сложностей в написании скетча не вижу. На чем конкретно возникли затруднения?
     
  5. VitalikST

    VitalikST Нуб

    Я слаб в программирование . А схему без проблем могу собрать
     
  6. Skiffest

    Skiffest Нуб

    Да. Логика, то понятно. Это как раз и нужно. Есть ли скетч?
     
  7. Onkel

    Onkel Гуру

    Код могу написать. Присылайте схему и т.з., что куда при каком нажатии, я код напишу и проверю. А схема нужна еще и для того, чтобы я проверил, правильно ли вы спроектировали и собрали схему. Мой мыл ydom coбakа mail.ru
     
  8. Skiffest

    Skiffest Нуб

    Спасибо. У меня по проще. Нашел код.
    Соственно при нажатии на кнопку, шаговик делает несколько оборотов. В частности при радиусе 7.5 см получается один метр кабеля.
    Код (C++):
    // Troyka-Stepper подключён к следующим пинам:
    const byte stepPin = 7;
    const byte directionPin = 8;
    const byte enablePin = 11;
    const byte buttonPin = 2; // кнопка подключается между пином и GND

    // Выдержка для регулировки скорости вращения
    unsigned int delayTime = 1;

    void setup()
    {
      // Настраиваем нужные контакты на вход и выход
      pinMode(buttonPin, INPUT_PULLUP);
      pinMode(stepPin, OUTPUT);
      pinMode(directionPin, OUTPUT);
      pinMode(enablePin, OUTPUT);
      // Отключаем двигатель
      digitalWrite(enablePin, LOW);
    }

    void loop()
    {
      // если кнопка нажата
      if(!digitalRead(buttonPin))
      {
        // Подаём питание на двигатель
        digitalWrite(enablePin, HIGH);

        // Задаём направление вращения по часовой стрелке
        digitalWrite(directionPin, HIGH);

        // Делаем 200 шагов
        //Делаем вращение 1 м при радикусе 7,5см
        for (int i = 0; i < 450; ++i)
        {
          // Делаем шаг
          digitalWrite(stepPin, HIGH);
          delay(delayTime);

          digitalWrite(stepPin, LOW);
          delay(delayTime);
        }

        //... на три секунды
        delay(1000);

        // Отключаем двигатель
        digitalWrite(enablePin, LOW);
      }
    }