ВНИМАНИЕ! На форуме начался конкурс - астрофотография месяца ИЮЛЬ-АВГУСТ!
0 Пользователей и 2 Гостей просматривают эту тему.
Как я бы попробовал: сначала с хорошей Ардуино напрямую питание 17 В. Если сгорит, то через DC-DC
У меня все питание сделано на 3 шт. 18650, что дает немного больше 12 В при полностью заряженных аккумуляторах.
А у тебя чего ими запитано?
Кстати. А ведь ардуинку можно питать на 30-ю ногу (там где 7-12В рекомендовано) и на 27ю ногу, подавая туда уже строго 5В. Как лучше?30-я нога, судя по всему, будет все равно повторно стабилизировать напряжение на микросхеме 1117 и там тоже потери будут ненужные.Наверное разумно будет выставить на dc-dc строго 5В на выходе и подать эти 5В на 27-ю ногу нанки?
На самом телескопе - вентилятор охлаждения и всевозможные грелки. Можно фен подключить. Еще питает экваториальную платформу. Именно здесь стоит ардуинка, драйвер и сам двигатель.
Ого, сколько у тебя всего питается от 3-х акков 18650! У меня одни грелки на рефракторе 120/600 намного больше за ночь съедают. У тебя или грелки сильно малоточные или на всю ночь не должно хватать.
Если ночь длинная, 6-8 часов, блок, конечно, меняю.
что-то интересно
А можно по подробнее о креплении второй коробочки RA с шаговиком к монтировке. Фото №3. Спасибо.
Сделал для вас три фотки.
На ардуино управление двумя ШД лучше делать на таймерах. В одном "потоке" и при кратности шага 128 при вращении сразу двух ШД скорости могут проседает.
Как допишите код. хотелось бы его посмотреть-протестировать. Спасибо.
Wemos D1 R32 в этом плане значительно шустрее, ещё и блютус можно использовать и шилд готовый есть, и в итоге дешевле выходит.
Функции задержки при управлении ШД тормозят выполнение кода. Я имел в виду сделать на прерываниях по таймеру.Esp32 также можно программировать в Arduino IDE. Для начала можно пользоваться теми же функциями, как и для ардуино. Распиновка лишь другая будет.Для быстрого знакомства с этой платой можете посмотреть мануал в моей теме.
У меня пока так - через delayMicroseconds() все отлично работает для одной оси
/* ATmega168, ATmega328: Using Timer 1 disables PWM (analogWrite) on pins 9 and 10 ATmega2560: Using Timer 1 disables PWM (analogWrite) on pins 11 and 12 Using Timer 3 disables PWM (analogWrite) on pins 2, 3 and 5 Using Timer 4 disables PWM (analogWrite) on pins 6, 7 and 8 Using Timer 5 disables PWM (analogWrite) on pins 44, 45 and 46*/void TIMER_STAR_config() { ///// starSpeed_us_for_microtick 18698.8043687066 us = 53.479355165272 Hz //OCR1A = [ 16,000,000Hz/ (prescaler * desired interrupt frequency) ] - 1 //OCR1A = 16000000/(256*53.479355165272) -1 = 1167.675273044163 //f = 16000000(256*(1168+1)) = 53.464499572284 Hz by Timer1 cli(); //запретить все прерывания //------ Timer1 ---------- TCCR1A = 0;// set entire TCCR1A register to 0 TCCR1B = 0;// same for TCCR1B TCNT1 = 0;//initialize counter value to 0 OCR1A = 1168; //Верхняя граница счета. Диапазон от 0 до 65535. TCCR1B |= (1 << WGM12); // Режим CTC (сброс по совпадению) TCCR1B |= (1 << CS12); // CLK/256 // Если нужен предделитель : // TCCR1B |= (1 << CS10); // Тактирование от CLK/1 // TCCR1B |= (1<<CS11); // CLK/8 // TCCR1B |= (1<<CS10)|(1<<CS11); // CLK/64 // TCCR1B |= (1<<CS12); // CLK/256 // TCCR1B |= (1<<CS10)|(1<<CS12); // CLK/1024 TIMSK1 |= (1 << OCIE1A); // Разрешить прерывание по совпадению sei (); // Разрешить прерывания}void TIMER_GOTO_config() { ///// gotoSpeed_us_for_microtick Hz //OCR1A = [ 16,000,000Hz/ (prescaler * desired interrupt frequency) ] - 1 //OCR1A = 16000000/(1*14000) -1 = 1141.857142857143 //f = 16000000(1*(1142+1)) = 13998.25021872266 Hz by Timer1 cli(); //запретить все прерывания //------ Timer1 ---------- TCCR1A = 0;// set entire TCCR1A register to 0 TCCR1B = 0;// same for TCCR1B TCNT1 = 0;//initialize counter value to 0 OCR1A = 1142; // Верхняя граница счета. Диапазон от 0 до 65535 TCCR1B |= (1 << WGM12); // Режим CTC (сброс по совпадению) // Если нужен предделитель : // TCCR1B |= (1 << CS10); // Тактирование от CLK/1 // TCCR1B |= (1<<CS11); // CLK/8 // TCCR1B |= (1<<CS10)|(1<<CS11); // CLK/64 // TCCR1B |= (1<<CS12); // CLK/256 // TCCR1B |= (1<<CS10)|(1<<CS12); // CLK/1024 TCCR1B |= (1 << CS10); // Тактирование от CLK/1 TIMSK1 |= (1 << OCIE1A); // Разрешить прерывание по совпадению sei (); // Разрешить прерывания}// Обработчик прерывания таймера 1ISR (TIMER1_COMPA_vect) { if (!SYS_IS_RC_PROCESS) { if (SYS_STATE == SYS_STATE_GOTO_INIT) { MOTOR_RA_TICK(); //star speed } else if (SYS_STATE == SYS_STATE_GOTO_READY) { MOTOR_RA_TICK(); //star speed } else if (SYS_STATE == SYS_STATE_GOTO_PROCESS) { GOTO_tick(); } }}
Esp32 также можно программировать в Arduino IDE.