ВНИМАНИЕ! На форуме начался конкурс - астрофотография месяца ИЮЛЬ!
0 Пользователей и 1 Гость просматривают эту тему.
То есть контроллер питается от USB?) экономия 50р ради снижения отказоустойчивости.. питать контроллер конечно лучше всего через стабилизатор как в оригинальной схеме, всё равно питание нужно для драйвера. Ещё для работы в жёстких условиях желательно делать без панелек, а паять всё намертво. У меня всё спаяно намертво на обычной макетке и питаю контроллер не от юсб, а независимо через стаб на 5в от 12в внешнего.
От камеры ZWO он сразу отваливается.
выкинул максимум деталей, стабилизатора нет.
Камеры - мощный потребитель, лучше всего их вкл через активный хаб (с внешним БП).
2) за пять тыщ. какой послепродажной поддержки вы ждете ?) тем более после того как песочили в хвост и гриву изделие ?)(после такого я бы на его месте вам не отвечал )
Моё мнение - если есть навыки то паять самому, на совесть
Если продавец не даёт прошивку, дело его, бизнес такой кривой значит.
Так в том и дело прошивка с открытого забугорного прожекта сфоткайте плату с двух сторон я посмотрю что можно сделать чтоб настроить микрошаг. Ток надо настраивать по номиналу шд, в интернете есть инструкция как настроить ток на 8825.
Придётся ехать снова за трубой. Вскрывать плату и выкладывать.
я не бизнесмен, мне не жалко помочь коллегам!
Так в том и дело прошивка с открытого забугорного прожекта
В тексте прошивки есть и кнопки, я их раскомментировал и включил, есть и режим деления шага по умолчанию в тексте.
Это ведь реально открытый проект и человек эту прошивку не создавал сам, зачем чужое себе присваивать.
у меня в голове не укладывается как можно подписывать чужой проект своим именем.. продаете - да и ок, но и пишите тогда название этого фокусера настоящее, без всяких мо
Ну ничего у нас есть такие умные как вы Максим, расшифруем )
На морозе на днях при -20С погорела плата Arduino nano.
Всё вожусь с фокусером от Милантьева. Плата паяна по его схеме, поэтому это уже не открытый проект MyFocuser2. Там не установлены элементы питания тиристор, кондеры, диод и тп которые есть на схеме проекта MyFocuser2. В общем для лечения неравномерности шагов на DRV 8825 думаю возможно стоит 19 ножку Decay на DRV8825 соединить на +5В в режим фаст decay - в интернете есть инфа, что неравномерность на дешёвеньких драйверах DRV 8825 с али проходит, есть видео у Ивана Ионова:http://www.youtube.com/watch?v=azB4ThIS0uM#Иван Семенович использует похожую схему и драйвер DRV 8825, он соединил 19 ножку DECAY с 16 ножкой nRESET. В принципе можно купить лупу, тонкий паяльник и провернуть такой "финт". Блин думаю точно есть ли на 16 ножке +5В как у Ивана?На плате драйвера DRV 8825 c ножки 16 nRESEТ дорожка ведет к ножке 5 платы RESET. Привязано ли там +5вольт на плате Милантьева это вопрос. В интернете я видел информацию где человек припаял ножку 19 DECAY к ножке 4 платы M2 чтобы включить FAST DECAY без пропусков.
Цитата: ma][im от 10 Дек 2022 [21:18:31]Так в том и дело прошивка с открытого забугорного прожектаВ тексте прошивки есть и кнопки, я их раскомментировал и включил, есть и режим деления шага в тексте. Но наши ребята умные, я думаю взяли эту прошивку myFP2_DRV8825_SOLDERLESS_321
Note: If the momentary switches are NOT implemented, then it is important to remove the push buttonswitch code from the Arduino source otherwise the controller will not function correctly if the FULL versionof the firmware is loaded on the controller (identified with the _F in the filename). Alternatively, you can usethe MINIMAL Arduino code version (identified using _M or _MT) which does NOT support the LCD, pushbuttons or the temperature probe.
Там же написано, что кнопки подключаются к выводу А0. А у Милантьева как?
// To enable a Rotary encoder. uncomment the next line (only available on some boards)//#define ROTARYENCODER 1// To enable an Infra-red Remote, uncomment the next line (only available on some boards)//#define INFRARED 1// To enable the Push Buttons for manual focusing, uncomment the next line#define PUSHBUTTONS 1
выводов кнопок + - и определения их в исходниках прошивки.
int readpbswitches(){ // for 1.2K sw1 (681) 650-720, sw2 (338) 310-380, sw1 and sw2 (509) 460-530 // for 1K sw1 (630) 600-660, sw2 (335) 300-370, sw1 and sw2 (510) 480-540#ifdef PUSHBUTTONS int val = analogRead(PBSWITCHESPIN); // read the input pin if ( val >= 650 && val <= 720 ) { return 1; // toggle sw1 ON and SW2 OFF } else if ( val >= 460 && val <= 530 ) { return 3; // toggle sw1 and sw2 ON } else if ( val >= 310 && val <= 380 ) { return 2; // toggle sw2 ON and SW1 OFF }#endif // #ifdef PUSHBUTTONS return 0;}void updatepushbuttons(void ){#ifdef PUSHBUTTONS int PBVal = readpbswitches(); delay(20); // wait small delay in case user is holding pb down if ( readpbswitches() == PBVal ) // same key pressed { switch ( PBVal ) // now check the pbval using a switch for 1 2 and 3 { case 0: return; break; case 1: // toggle sw1 is ON and 2 is off // move IN movedirection = MOVINGIN; myfocuser.focuserdirection = movedirection; ftargetposition = ftargetposition - myfocuser.pbsteps; ftargetposition = (ftargetposition < 0) ? 0 : ftargetposition; writenow = 1; break; case 2: // toggle sw2 is ON and SW1 is OFF // move OUT movedirection = MOVINGOUT; myfocuser.focuserdirection = movedirection; ftargetposition = ftargetposition + myfocuser.pbsteps; ftargetposition = (ftargetposition > myfocuser.maxstep) ? myfocuser.maxstep : ftargetposition; writenow = 1; break; case 3: // toggle sw1 and sw2 are ON#ifdef BUZZER digitalWrite(BUZZERPIN, 1); // turn on buzzer#endif while ( readpbswitches() == 3 ) // wait for pb to be released ; fcurrentposition = 0; ftargetposition = 0;#ifdef BUZZER digitalWrite(BUZZERPIN, 0); // turn off buzzer#endif writenow = 1; break; default: // do nothing break; } // end of switch#ifdef LCDDISPLAY if ( myfocuser.displayenabled == 1) { updatepositionlcd(); }#endif#ifdef OLEDDISPLAY if ( myfocuser.displayenabled == 1) { updatepositionoled(); }#endif#ifdef TFTDISPLAY if ( myfocuser.displayenabled == 1) { updatepositiontft(); }#endif }#endif // #ifdef PUSHBUTTONS}void updaterotaryencoder(void){ // ignore any move requests push buttons or jogging if temperature compensation is enabled // check for temperature compensation first! // do not process another move if already moving#ifdef ROTARYENCODER if ( isMoving == 0) { if ( myfocuser.tempcompenabled == 0 ) { int lp = myrotaryencoder.getposition(); if ( lp != 0 ) { if ( (myrotaryencoder.getposition() * encswval) < 0 ) { movedirection = MOVINGIN; } else { movedirection = MOVINGOUT; } myfocuser.focuserdirection = movedirection; // adjust the target position long newPos = fcurrentposition + (myrotaryencoder.getposition() * encswval); newPos = (newPos < 0) ? 0 : newPos; ftargetposition = (newPos > myfocuser.maxstep) ? myfocuser.maxstep : newPos; myrotaryencoder.setposition(0); // reset to avoid counting more than once writenow = 1; } // check rotary encoder push switch // if pushed (returns LOW) then halt focuser or perform, additional action RESWdb.update(); if ( RESWdb.fell()) // if pushed then halt focuser or perform, additional action { long encswstart = millis(); // start time of encoder sw press int PressTime = 1; beep(PressTime); while ( !digitalRead(ENCODERSWPIN)) // wait for PB to be released { if ((int)(millis() - encswstart) > (PressTime * 1000)) { PressTime++; beep(PressTime); } if ( PressTime == 4) { break; } } switch (PressTime) { case 1: myfocuser.motorspeed = SLOW; encswval = 1; break; case 2: myfocuser.motorspeed = MED; encswval = 10; break; case 3: myfocuser.motorspeed = FAST; myfocuser.pbsteps = 1; encswval = 100; break; case 4: encswval = 1; fcurrentposition = ftargetposition = 0; break; default: break; } driverboard->setmotorspeed(myfocuser.motorspeed); writenow = 1; } } // if ( myfocuser.tempcompenabled == 1 ) } // if ( isMoving == 1)#endif // #ifdef ROTARYENCODER}
myFP2_DRV8825_SOLDERLESS_321
Если можно, дайте ссылку на эту прошивку, которую вы прошили. По поиску myFP2_DRV8825_SOLDERLESS_321
Попробуй вот эту myFP2_DRV8825HW203_321 (термодатчик в конфиге закоментен).
Первая схема как раз с кнопками (интересно, а как в таком случае задавать скорость вращения):
Выкинуть в помойку эти драйверы и купить TMC2208/09 и забыть про все проблемы... только шаги в прошивке удвоить, если нужно.
Если Arduino с Ch340, то у некоторых версий рабочая температура как раз от -20С.