Ну, код-кодом, но без теста на железке я разработку законченной не считаю. А ее мне полчаса только собирать надо. Хотя, может у вас и готовые уже наборы по полкам лежат.
Драйвер от шагового двигателя. Там подключается две катушки. Я подключил одну. Удобство - полярность уже сама меняется, там мостовой выход, нужно только один импульс дать - шаг. И ток регулируется от 0,1А до 2А. (стабилизатор тока встроен в драйвер. Поэтому программа намного проще вашей. Просто задаётся частота импульсов, которые идут на пин ШАГ. Ну и на дисплей эта частота. Управление кнопками ДОБАВИТЬ-УБАВИТЬ.
Что хорошо - нет заморочек со сборкой силовых ключей, компактность, цена драйвера около 50 рублей, защита по току и перегреву. Да сами знаете.
Так посмотрите в гугле. Зачем пишете если не знаете?
Я не понял - у нас киповец в гугль не смог? В очередной раз, впрочем :) Ну да бог с ним - такие сейчас киповцы: нежные и ранимые, не дай боже им про станковые пулемёты узнать.
Мне вот интересно было бы померять, сколько в реальности занимает разработка, заявляемая как "работы на полчаса".
вот тебе (ну как пример) код для первичного теста. Если полярность для возврата менять - чуть сложнее.
//потенциометры частоты и скважности #define freq_p A1 #define duty_p A2 void setup() { // это осталось от отладочных принтов // Serial.begin(57600); while (!Serial); pinMode(9,OUTPUT); // канал А, fast PWM, делитель 64, режим 14 // прошу прощения за магические числа, но я выдернул рабочий кусок из другого проекта и расписывать биты мне лень TCCR1A = 0b10111110; TCCR1B = 0b00011011; } void loop() { static uint16_t fr = 100; uint16_t nfr = 0; uint16_t ndu = 0; static uint16_t du = 50; // скользящее усреднение, убрать мелкий шум nfr = (3*nfr + analogRead(freq_p))/4; ndu = (3*ndu + analogRead(duty_p))/4; //переносим показания потенциометров в диапазоны частоты и скважности fr = map(nfr,0,1023,30,150); du = map(ndu,0,1023,1 , 99); //вот параметры таймера, читаем даташит noInterrupts(); ICR1 = (uint16_t) (250000L/fr); OCR1A = (uint16_t) (du*2500L/fr); interrupts(); }Ну, код-кодом, но без теста на железке я разработку законченной не считаю. А ее мне полчаса только собирать надо. Хотя, может у вас и готовые уже наборы по полкам лежат.
Я немного не так делал. Без магических чисел.
Драйвер от шагового двигателя. Там подключается две катушки. Я подключил одну. Удобство - полярность уже сама меняется, там мостовой выход, нужно только один импульс дать - шаг. И ток регулируется от 0,1А до 2А. (стабилизатор тока встроен в драйвер. Поэтому программа намного проще вашей. Просто задаётся частота импульсов, которые идут на пин ШАГ. Ну и на дисплей эта частота. Управление кнопками ДОБАВИТЬ-УБАВИТЬ.
Что хорошо - нет заморочек со сборкой силовых ключей, компактность, цена драйвера около 50 рублей, защита по току и перегреву. Да сами знаете.
https://ru.aliexpress.com/item/5pcs-lot-Reprap-Stepper-Driver-A4988-Stepper-
Вот такого типа.
Мне вот интересно было бы померять, сколько в реальности занимает разработка, заявляемая как "работы на полчаса".
вот тебе (ну как пример) код для первичного теста. Если полярность для возврата менять - чуть сложнее.
//потенциометры частоты и скважности #define freq_p A1 #define duty_p A2 void setup() { // это осталось от отладочных принтов // Serial.begin(57600); while (!Serial); pinMode(9,OUTPUT); // канал А, fast PWM, делитель 64, режим 14 // прошу прощения за магические числа, но я выдернул рабочий кусок из другого проекта и расписывать биты мне лень TCCR1A = 0b10111110; TCCR1B = 0b00011011; } void loop() { static uint16_t fr = 100; uint16_t nfr = 0; uint16_t ndu = 0; static uint16_t du = 50; // скользящее усреднение, убрать мелкий шум nfr = (3*nfr + analogRead(freq_p))/4; ndu = (3*ndu + analogRead(duty_p))/4; //переносим показания потенциометров в диапазоны частоты и скважности fr = map(nfr,0,1023,30,150); du = map(ndu,0,1023,1 , 99); //вот параметры таймера, читаем даташит noInterrupts(); ICR1 = (uint16_t) (250000L/fr); OCR1A = (uint16_t) (du*2500L/fr); interrupts(); }Я правильно понимаю, что ШИМить с такими параметрами будет по всем доступным выводам поддерживающим ШИМ?
Даташит читать лень
Вот теперь заказчик и схему потребует, а какая тут схема, два потенциометра да ключик
https://ru.aliexpress.com/item/5pcs-lot-Reprap-Stepper-Driver-A4988-Stepper-
Вот такого типа.
В мануалах к таким драйверам пишут "Без подключенных обмоток напряжение не подвать".
https://ru.aliexpress.com/item/5pcs-lot-Reprap-Stepper-Driver-A4988-Stepper-
Вот такого типа.
В мануалах к таким драйверам пишут "Без подключенных обмоток напряжение не подвать".
я подавал и что?
И жив до сих пор? Не растреляли?
Я подавал И что? Работает полгода уже с одной обмоткой. Да и откуда вы взяли что не подавать? В даташите нет.
Нельзя ПОДКЛЮЧАТЬ обмотку, когда напряжение уже подано.
И отключать обмотку под напряжением - драйвер горит. Проверил.
И жив до сих пор? Не растреляли?
кто бы посмел! ДШК и СГМТ для меня не набор букв )))
А что это?
А что это?
гугл знает
Так посмотрите в гугле. Зачем пишете если не знаете?
Так посмотрите в гугле. Зачем пишете если не знаете?
Я не понял - у нас киповец в гугль не смог? В очередной раз, впрочем :) Ну да бог с ним - такие сейчас киповцы: нежные и ранимые, не дай боже им про станковые пулемёты узнать.
Чудо, по ходу, и в армии не служило :)
Та я понял. Настоящий киповец это тот кто стреляет с танка.
Та я понял. Настоящий киповец это тот кто стреляет с танка.
Алё, жертва ЕГЭ: станковый пулемёт - это не пулемёт с танка :) Проверочное слово - станок.
А откуда? С вертолёта?
А откуда? С вертолёта?
Специально для киповцев - с Марса.
Ну это вы врёте. На Марсе жизни нет
Зачем вообще тут кодить? Регулируемый ГЗЧ задаем частоту + регулируемый УНЧ задаем амплитуду.
Можно один УНЧ с глубокой положительной ОС на rc цепочке с переменником.