1. В сообществе нашего форума Вконтакте создан раздел по продаже электронных компонентов.
    Каждый может продать в нем свои залежавшиеся детали. Подробности здесь.

ардуино и проклятый ДИПЛОМ!! )

Тема в разделе "Проекты на Arduino", создана пользователем taiger, 3 апр 2016.

  1. DiKey

    DiKey Частый гость

    Сообщения:
    6
    Симпатии:
    4
    Блютуз подключать на пины 0,1 команда - '1'

    Код:
    #define FIRSTPIN 4
    #define LASTPIN  7       
    #define interval 2000  // интервал между шагами
    #define totalSteps 4000  // общее количество шагов
    #define DEBUG FALSE
    
    int PINS[4] = {4, 5, 6, 7}; // куда подключать драйвер
    bool inProcess = false;
    bool Direction = false;
    char command;
    long currentMicros;
    long previousMicros;
    long steps = 0;
    
    void setup() {
      Serial.begin(9600);
      for (int i = 0; i < 4; i++)
        pinMode(PINS[i], OUTPUT);
    }
    
    void loop() {
      command = getCommand();
      if (command == '1' && !inProcess)
      {
        inProcess = true;
        Direction = !Direction;
      }
      if (inProcess)
      {
        stepper();
      }
      else
        for (int i = 0; i < 4; i++)
          digitalWrite(PINS[i], LOW);
    }
    
    void stepper()
    { 
        currentMicros = micros();
        if (currentMicros - previousMicros > interval)
        {
          previousMicros = currentMicros;
          digitalWrite(PINS[0], HIGH);
          digitalWrite(PINS[1], HIGH);
          digitalWrite(PINS[2], LOW);
          digitalWrite(PINS[3], LOW);
        
          if (Direction)
          {
            steps++;
            for (int i = 0; i < 4; i++)
            {
              PINS[i]++;
              if (PINS[i]> LASTPIN)
               PINS[i] = FIRSTPIN;
            }
          }
          else
          {
            steps--;
            for (int i = 0; i < 4; i++)
            {
              PINS[i]--;
              if (PINS[i]< FIRSTPIN)
               PINS[i] = LASTPIN;
            }
          }
          if (steps <= 0 || steps >= totalSteps)
            inProcess = false;
          #if DEBUG == true
            Serial.print(steps);
            Serial.print("   ");
            for (int i = 0; i < 4; i++)
            {
              Serial.print(PINS[i]);
              Serial.print("  ");
            }
            Serial.println();
          #endif
        
        }
    }
    
    char getCommand() // считываем команду
    {
      if (Serial.available() > 0)
        return Serial.read();
      else
        return 0;
    } 
    taiger нравится это.
  2. taiger

    taiger Гость

    Сообщения:
    12
    Симпатии:
    0
    Отправил единицу, загорелись два диода и четырех на драйвере и все, так и горят , мотор молчит ((
  3. taiger

    taiger Гость

    Сообщения:
    12
    Симпатии:
    0
    YYYeeeessss!!!
    ВСЕ РАБОТАЕТ, офигеть как вы это сделали?? еще немножко можете объяснить в каком месте кода задаются число шагов и оборотов!??
  4. DiKey

    DiKey Частый гость

    Сообщения:
    6
    Симпатии:
    4
    Значение в третьей строчке "#define interval 2000" определяет интервал в микросекундах между шагами, увеличивая интервал снижаем скорость и наоборот, вторая строчка "#define totalSteps 4000" определяет количество шагов в одну сторону, а обороты зависят от угла на шаг, что в свою очередь зависит от самого шаговика и метода управления. Гугл говорит что в данном случае 11.25 градусов на шаг, но это не факт.
    Помог чем смог :) дальше уж сами разберитесь.
    taiger нравится это.
  5. taiger

    taiger Гость

    Сообщения:
    12
    Симпатии:
    0
    Спасибо, посчитал приблизительно 2038 в 1обороте ) все становится простым когда начинаешь понимать что есть что
  6. taiger

    taiger Гость

    Сообщения:
    12
    Симпатии:
    0
    Снова нужна, помощь, как подключить второй шаговик, только чтоб они работали синхронно? Это возможно сделать на одной уне, если я займу оставшиеся пины? на фото закрытый и открытый сад, у самого здания крыши еще нет.

    Вложения:

  7. aman

    aman Завсегдатай

    Сообщения:
    149
    Симпатии:
    10
    интересно, кроме автоматики для закрывания-открывания крыши все остальное по диплому готово?
  8. taiger

    taiger Гость

    Сообщения:
    12
    Симпатии:
    0
    Месяц в запасе, начинаю со сложного)
  9. aman

    aman Завсегдатай

    Сообщения:
    149
    Симпатии:
    10
    понятно желание сделать эффектный макет :)

    а с другой стороны, если у Вас будет готовый макет на 5, никто не осудит, что крыша без автоматики, Вы же будущий архитектор, а не программист-электронщик :)

    так что надо успеть сделать все для отличной защиты :)

    удачи!
  10. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.895
    Симпатии:
    310
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Читер, блин:)
  11. Buba_Chkhadze

    Buba_Chkhadze Модератор Команда форума

    Сообщения:
    4.354
    Симпатии:
    326
    Адрес:
    Талгар
    Самое сложное - это выпросить готовый код ?
    taiger нравится это.
  12. aman

    aman Завсегдатай

    Сообщения:
    149
    Симпатии:
    10
    под "все" я имел ввиду макет с автоматической крышей, чтобы "убить наповал" комиссию, но автоматика должна быть последним штрихом, потому как есть риск, что в комиссии найдется "неубиваемый", "непотопляемый", который не оценит автоматику :).

    удачи в завершении макета и защите диплома :)
    taiger нравится это.
  13. SeregaZ

    SeregaZ В доску свой

    Сообщения:
    391
    Симпатии:
    38
    или в процессе транспортировки макет сломается :)
    taiger нравится это.

Поделиться этой страницей