Київський клуб аматорів астрономії "Астрополіс"

astromagazin.net
* *
Ласкаво просимо, Гість. Будь ласка, увійдіть або зареєструйтеся.
06 Вересня 2025, 07:00:18

Увійти

google


Автор Тема: «Тикалка» для шаговика (или как моторизовать монтировку-2)  (Прочитано 40923 раз)

0 Користувачів і 1 Гість дивляться цю тему.

vakulenko

  • Offline Offline
  • Повідомлень: 1076
  • Подяк: 120
  • Антон Вакуленко

А вот тестовые снимки:
без ведения, 120сек и 300 сек. Полярка выставлена на глаз, через "искатель полюса" - трубку от фломастера. Фокусное 50 мм на кенон 650д (кроп 1.6). На 120 сек все нормально, на 300 сек уже уплывает полярка...

Погрешности в скорости ведения на таком фокусном и таких экспозициях незаметно. Но я все равно как появится время обязательно отделаюсь от delay и отпишусь по результатам!
Записаний
sw dob 10", sw ed80 + heq-5, canon 1000d(a), delta optical 10x56
Подякували

vakulenko

  • Offline Offline
  • Повідомлень: 1076
  • Подяк: 120
  • Антон Вакуленко

update

модифицировал схему. Вместо delay:

Код: [Select]
void myDelayMks(unsigned long mks){
  static unsigned long currentMks = micros();
  unsigned long dt;
  do {
   dt = micros() - currentMks;
  }
  while (dt<mks);

  currentMks += mks;
}

А также перевел режим ведения с 8 на 4 такта. При этом ток потребления мотора снизился до 200мА. Мощность существенно не изменилась.

По скорости вращения: теперь ошибка составляет 0,3с на 1 минуту (было 0,6с). Думаю, этого вполне будет достаточно для фокусного до 135 мм...

Всем огромное спасибо!!!  :beer:
Записаний
sw dob 10", sw ed80 + heq-5, canon 1000d(a), delta optical 10x56

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094

Код тикалки c использованием TimerOne.
У кого эта библиотека не установлена и лень искать, распакуйте приложенный архив в каталог
arduino-1.6.*\libraries\


Код: [Select]
#include <TimerOne.h>

const int ledPin = 13;      // LED pin

const int motorPin1 = 9;    // Blue   - 28BYJ48 pin 1
const int motorPin2 = 8;    // Pink   - 28BYJ48 pin 2
const int motorPin3 = 7;    // Yellow - 28BYJ48 pin 3
const int motorPin4 = 6;    // Orange - 28BYJ48 pin 4

const int buttonBack = 5;    // присвоение пина 5 кнопке "Назад"

char MotorPhases[8] = { 1,3,2,6,4,12,8,9 };
unsigned char MotorPhaseIdx = 0;
bool MotorForward = true;
const long motorSpeed = 14721; // микросекунды, задержка между шагами ведении. ее и будем подбирать, чтобы был 1 об/мин
const long motorSpeedRev = 2000;  // микросекунды, задержка между шагами при обратном вращении (возврат на исходную позицию)
char buttonStateBack, buttonStateBackOld = 2;

void motorStep(bool forward)
{
  if (forward)
    MotorPhaseIdx++;
  else
    MotorPhaseIdx--;
  MotorPhaseIdx &= 7; 

  char MotorPhase = MotorPhases[MotorPhaseIdx];
  digitalWrite(motorPin1, MotorPhase & 1 ? HIGH : LOW); 
  digitalWrite(motorPin2, MotorPhase & 2 ? HIGH : LOW); 
  digitalWrite(motorPin3, MotorPhase & 4 ? HIGH : LOW); 
  digitalWrite(motorPin4, MotorPhase & 8 ? HIGH : LOW); 
}

void timerIsr()
{
  motorStep(MotorForward);
}

void setup() {
  // initialize digital pin 13 as an output.
  pinMode(ledPin, OUTPUT);

  pinMode(buttonBack, INPUT_PULLUP); // initialize the button pin as an input without ext resistor

  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);

 // Serial.begin(9600);

   Timer1.initialize(motorSpeed);
   Timer1.attachInterrupt( timerIsr ); // attach the service routine here
}


void loop() {
 buttonStateBack = digitalRead(buttonBack); // read the state of the pushbutton value
     
 // если нажата кнопка "Назад", то включаем задний ход, если не нажата, то ведем трекер
  if (buttonStateBack == LOW) {
    MotorForward = false;              // включаем задний ход
    digitalWrite(ledPin, HIGH); // светодиод горит постоянно пока работает задний ход
    if (buttonStateBack != buttonStateBackOld)
      Timer1.setPeriod(motorSpeedRev);
}   
  else
  {
    MotorForward = true; // ведем трекер
    if (buttonStateBack != buttonStateBackOld)
      Timer1.setPeriod(motorSpeed);
   
  // во время ведения светодиод мигает
    delay(200); // для моргания точность не нужна
    digitalWrite(ledPin, !digitalRead(ledPin));
  }
  buttonStateBackOld = buttonStateBack;
}
« Останнє редагування: 11 Вересня 2016, 01:03:13 від M_M »
Записаний
Подякували

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094

Для перевода 8-тактного режима на 4-тактный
достаточно поменять  строку

Код: [Select]
char MotorPhases[8] = { 1,3,2,6,4,12,8,9 };
на

Код: [Select]
char MotorPhases[8] = { 1,1,2,2,4,4,8,8 };
Записаний

vakulenko

  • Offline Offline
  • Повідомлень: 1076
  • Подяк: 120
  • Антон Вакуленко

Код тикалки c использованием TimerOne.

Ну это уже будет форменный перфекционизм! )))))))
Спасибо, обязательно проверю этот вариант
Записаний
sw dob 10", sw ed80 + heq-5, canon 1000d(a), delta optical 10x56

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094

Не понимаю, как получается та же мощность при 4-х тактах. У меня значительно слабее.

А вот тут https://www.youtube.com/watch?v=-9Ghv99BeiA показывают как еще увеличить мощность.

Вместо устаревшего L293 можно применить L298:
Записаний

vakulenko

  • Offline Offline
  • Повідомлень: 1076
  • Подяк: 120
  • Антон Вакуленко

По поводу 4 тактов. Наверное я не так сказал. Просто мотор на 4-х тактах точно также ведет амбарку, как и на 8-ми. Повидимому бОльшая мощность в моем случае просто не нужна...
Записаний
sw dob 10", sw ed80 + heq-5, canon 1000d(a), delta optical 10x56


alex~

  • Offline Offline
  • Повідомлень: 6037
  • Подяк: 306

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

wanowar

  • Offline Offline
  • Повідомлень: 184
  • Подяк: 37

Не понимаю, как получается та же мощность при 4-х тактах. У меня значительно слабее.

А вот тут https://www.youtube.com/watch?v=-9Ghv99BeiA показывают как еще увеличить мощность.

Вместо устаревшего L293 можно применить L298:

По логике мощность особо не вырастет в 8-тактовом режиме. Разве что момент удержания. Крутящий момент будет тот же.  Но потребляемая мощность вырастет.
Что бы выроста мощность нужно:
А вот тут https://www.youtube.com/watch?v=-9Ghv99BeiA показывают как еще увеличить мощность.
Записаний

Berg

  • Offline Offline
  • Повідомлень: 90
  • Подяк: 23
  • верхогляд-любитель

А вот тут https://www.youtube.com/watch?v=-9Ghv99BeiA показывают как еще увеличить мощность.
Синюю крышечку, обычно, трудно достать, поэтому я сверлю в ней дырку и разрезаю дорожку через дырку.
Цитувати
Вместо устаревшего L293 можно применить L298:
Замена L293 на L298 не увеличит мощность, но позволит питать обмотку большим током, т.к. эта микросхема мощнее. Для vakulenko это не актуально, у него двигатель и так перегревается. А большая мощность здесь не требуется.
Кстати, при переводе двигателя в биполярный режим, сопротивление обмотки увеличится в 2 раза, поэтому, при питании тем же напряжением, мощность упадёт. ;)
Записаний
DeepSky 70400, DeepSky F70070,F30070M, ЗМ-5А, МАК-70, Sky-Watcher 705, Travel Scope 70, ТАЛ-120, DeepSky 90/700.

wanowar

  • Offline Offline
  • Повідомлень: 184
  • Подяк: 37

Кстати, при переводе двигателя в биполярный режим, сопротивление обмотки увеличится в 2 раза, поэтому, при питании тем же напряжением, мощность упадёт. ;)
Немного неправильно мыслите. Мощность не упадет, а останется прежней. Да, сила тока уменьшится в 2 раза,  при том же напряжении, но вместо одной полуобмотки, будут работать 2. При этом можно подать в 2 раза большее напряжение на обмотки.
Но это все теоретически.

P.S. Не знаю нужно ли при этом что то переделывать. Возможно просто нужно по иному питать ШД, и ничего не разбирать и пилить.

P.P.S. Понял зачем нужно таки его разбирать :)
« Останнє редагування: 25 Липня 2015, 23:30:21 від wanowar »
Записаний

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094

Замена L293 на L298 не увеличит мощность, но
... сэкономит деньги  :bigidea:
... и даст возможность в будущем задействовать ШД до 2-x ампер  :bigidea:
Записаний

wanowar

  • Offline Offline
  • Повідомлень: 184
  • Подяк: 37

Замена L293 на L298 не увеличит мощность, но
... сэкономит деньги  :bigidea:
... и даст возможность в будущем задействовать ШД до 2-x ампер  :bigidea:

Как вариант можно использовать вот такой простенький драйвер на основе  дешифратора 74xx139 (2 к 4)
Схему придумал сам. Но не сомневаюсь что не первый. Да и глянул в даташит L298 - принцип практически тот же.


Плюсы:
- Использует всего 2 пина для управления (или 3 с возможностью отключения) (комбинации на управляющих пинах 0b00-0b11);
- Можно управлять как гибридным так и биполярным ШД. (схема нарисована для биполярного, для гибридного можно убрать половину транзисторов)
- Транзисторы можно поставить на любой ток
Минусы:
- дополнительные елементы для сборки.
- еще не пробовал и не знаю.
« Останнє редагування: 26 Липня 2015, 13:09:26 від wanowar »
Записаний

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094

И не стоит пробовать. Ибо работать не будет.
Записаний

wanowar

  • Offline Offline
  • Повідомлень: 184
  • Подяк: 37

И не стоит пробовать. Ибо работать не будет.
почему работать не будет? Поделитесь опытом.
Записаний

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094

Цитувати
Почему работать не будет? Поделитесь опытом.
согласование уровней нужно делать. А при подаче сигнала запрета не стоит удивляться, если со всех транзистров одновременно пойдет дым.
Записаний

alex~

  • Offline Offline
  • Повідомлень: 6037
  • Подяк: 306

когда начинал знакомиться с шаговиками, то делал драйвер по такой схеме:
Записаний

wanowar

  • Offline Offline
  • Повідомлень: 184
  • Подяк: 37

А при подаче сигнала запрета не стоит удивляться, если со всех транзистров одновременно пойдет дым.

Вы, наверное, невнимательно читаете.
схема нарисована для биполярного...

Не пойму. Почему же "со всех транзистров одновременно пойдет дым" если все выводы обмоток будут замкнуты на землю? Для гибридного - да, если общий провод подключен к плюсу питания. Схема нарисована для примера. Можно использовать 74хх239, "манипулировать" ключами.
 
« Останнє редагування: 27 Липня 2015, 00:02:41 від wanowar »
Записаний

M_M

  • Клуб Астрополіс
  • Offline Offline
  • Повідомлень: 5068
  • Подяк: 1094

alex, последняя схема рабочая. Если не считать падения напряжения по 0.7 вольта на каждом повторителе. Итого - на 1.4 вольта на обмотке меньше чем амплитуда на выходе микросхемы.

Wanowar, при запрете на ногах конкретной мелкосхемы уровни H(igh), при условии питания моторов и движка от одного источника (например, 5 вольт) от экземляра к экземпляру разброс напряжения от 4 до 5 вольт. Если повезет, и выход будет ближе к 5 вольтам, то верхний тразистор будет закрыт и дым не пойдет. Не повезет - оба транзистора открыты, дыму не удивляйтесь. Если питать ключи от отдельного источника, хотя бы на 1 вольт больше, дым гарантирован. Можно применить дешифратор с открытым ключом, но при этом резисторы должны быть включены по-другому. Пресловутое согласование уровней.
Записаний
Подякували

wanowar

  • Offline Offline
  • Повідомлень: 184
  • Подяк: 37


Wanowar, при запрете на ногах конкретной мелкосхемы уровни H(igh), при условии питания моторов и движка от одного источника (например, 5 вольт) от экземляра к экземпляру разброс напряжения от 4 до 5 вольт. Если повезет, и выход будет ближе к 5 вольтам, то верхний тразистор будет закрыт и дым не пойдет. Не повезет - оба транзистора открыты, дыму не удивляйтесь. Если питать ключи от отдельного источника, хотя бы на 1 вольт больше, дым гарантирован. Можно применить дешифратор с открытым ключом, но при этом резисторы должны быть включены по-другому. Пресловутое согласование уровней.

Спасибо за пояснения. За это я думал. И рассчитывал на питание с равным напряжением (от одного источника). Но действительно не знал как себя поведет данная схема.
Записаний