Управление шаговым двигателем с драйвером для ЧПУ

Vadim1975
Offline
Зарегистрирован: 16.11.2016

Доброго вам времени суток.У меня возникла идея создания полу автоматическогог станка для свирления отверстий в печатных платах.есть в наличии атмега8,шаговый двигатель ардуиновский 28BYJ-48 ARDUINO UNO микросхема UNL2003a да атмега8 сборка с кварцем на 16 ну это как клон ардуины ну вот мне нужно чтобы ШД поднимал и опускал двигателя с о сверлом но задача такова установить концевики нижнего придела и верхнего они служили как реверс,вторая задача скорость -поднятие идёт быстро,а опускание с уменьшением скорости,это для того чтобы сверло подходя к печатной плате медленно сверлило чтоб не поломать сверло,однако сам двигатель сверла питаеться от другой плату которая управляет им вот так на холостом ходу е двигателя малые обороты при нагрузке на двигатель увеличивается и обороты  ну гдето приблезительно так вот такие мысли механика собрана из CD-ROMа от старого ПК,есть видео в ютубе так там проект на атмеге16 и файлы там HEX  ну там у них лазер стоит включаеться с кнопки и подсветка рабочей области сверла,мне нужен ваш совет.У только начинающий ардуинщик но в электронике что-то умею и стараюсь сам всё делать своими руками,что легче? переделать их HEX файла под свой МК атмегу8 или написать скетчь а сотворить свой проект на атмеге8,возможно это сделать програмно если кому надо я скину ссылку на это видео и там и все матерьялы к тому видео,просто нормальный проект мне понравился и реализовать его захотелось но только на другом МК и самому))Спасибо все кто откликнется

Vadim1975
Offline
Зарегистрирован: 16.11.2016
#include<AccelStepper.h>
 
#define HALFSTEP 8   
 
// Определение пинов для управления двигателем
#define motorPin1  8 // IN1 на 1-м драйвере ULN2003
#define motorPin2  9 // IN2 на 1-м драйвере ULN2003
#define motorPin3  10 // IN3 на 1-м драйвере ULN2003
#define motorPin4  11 // IN4 на 1-м драйвере ULN2003
 
// Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4 
// для использования AccelStepper с 28BYJ-48
AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
 
void setup(){
  stepper1.setMaxSpeed(1000.0);
  stepper1.setAcceleration(100.0);
  stepper1.setSpeed(200);
  stepper1.moveTo(1000);
}
 
void loop(){
  // Изменяем направление, если шаговик достигает заданного положения
  if(stepper1.distanceToGo()==0)
    stepper1.moveTo(-stepper1.currentPosition());
  stepper1.run();
}

 

Vadim1975
Offline
Зарегистрирован: 16.11.2016

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