roboforum.ru

Технический форум по робототехнике.

Подключение шаговых двигателей к MiniBot-у.

Подключение шаговых двигателей к MiniBot-у.

Kea » 10 июн 2009, 20:17

Подключил биполярный шаговый двигатель к MiniBot-у. Получилось.
Опишу подробно, может кому-то пригодится.

Использовал 2 двигателя - SPM-20 (шаговый двигатель для позиционирования головки в дисководах 5'25 Mitsumi) и EM-483 (от принтера Epson Stylus C86).

Сам я паять толком не умею, поэтому по совету Эда подцепил двигатель заместо колёс, каждая обмотка - соотвесвенно вместо левого и правого двигателя.
SPM-20 рассчитан на 12 вольт, поэтому вращался довольно здраво. EP-483 рассчитан на 30 вольт, там уже похуже, но всё равно вертится. :)

Код программы :

Код: Выделить всёРазвернуть
'$prog &HFF , &HBD , &HC9 , &H00       ' generated. Take care that the chip supports all fuse bytes.
$regfile = "m32def.dat"                                     ' файл спецификации Меги32
$crystal = 7372800                                          ' указываем на какой частоте будем работать
$baud = 115200                                              ' указываем скорость на которой будет работать уарт

$include "Config ports.bas"
$include "Sound.bas"

Dim Speed As Byte : Speed = 255
Dim Address_rc5 As Byte , Command_rc5 As Byte
Dim Adc_temp As Word , Akb As Single

Dim Tm1 As Word : Tm1 = 10

Waitms 200
Print "Start MiniBot v2.0"

Do
    If Knopka = 0 Then
       Gosub Dlb1 : Waitms Tm1
       Gosub Drb1 : Waitms Tm1
       Gosub Dlf1 : Waitms Tm1
       Gosub Drf1 : Waitms Tm1
    Else
       Gosub Drf1 : Waitms Tm1
       Gosub Dlf1 : Waitms Tm1
       Gosub Drb1 : Waitms Tm1
       Gosub Dlb1 : Waitms Tm1
    End If
Loop

$include "Gosubs.bas"



Dlf1:
   Gosub Стоп : Waitms Tm1
   Drl = 1 : Drr = 0 : Pwm1b = Speed : Pwm1a = 0:
Return

Dlb1:
   Gosub Стоп : Waitms Tm1
   Drl = 0 : Drr = 0 : Pwm1b = Speed : Pwm1a = 0:
Return


Drf1:
   Gosub Стоп : Waitms Tm1
   Drl = 0 : Drr = 1 : Pwm1b = 0 : Pwm1a = Speed:
Return

Drb1:
   Gosub Стоп : Waitms Tm1
   Drl = 0 : Drr = 0 : Pwm1b = 0 : Pwm1a = Speed:
Return


Задержку меньше 10 мсек ставить не стоит, из-за того что напряжение низкое. Если будет меньше - двигатель будет пропускать шаги.
При нажатии на кнопку крутится в другую сторону.

Видео моторчика с дисковода:


Видео моторчика с принтера:
Вложения
DSC00731s.jpg
Подключено...
DSC00729s.jpg
Моторчик от принтера.
DSC00730s.jpg
Моторчик от дисковода.

Re: Подключение шаговых двигателей к MiniBot-у.

EdGull » 10 июн 2009, 20:41

с почином тебя! :friends:

Re: Подключение шаговых двигателей к MiniBot-у.

galex1981 » 10 июн 2009, 21:26

Поздравляю! :beer:

Re: Подключение шаговых двигателей к MiniBot-у.

Tonal » 28 июн 2009, 05:30

Кстати униполярные движки можно переделывать в биполярные, это требует разборки двигателя и внутренней перекомутации обмоток.
Полуобмотки можно соеденить паралельно или последовательно, это дает выбор в пользу мощности или потребления.

Re: Подключение шаговых двигателей к MiniBot-у.

Duhas » 28 июн 2009, 07:44

а можно просто взяться за крайние точки обмоток забыв про средние...

Re: Подключение шаговых двигателей к MiniBot-у.

CiSi » 15 апр 2010, 16:06

А на Си нет исходника, а то не как не разберусь в этом.
подключил движок от сидирома так же, а прошиву написать не получается.

Re: Подключение шаговых двигателей к MiniBot-у.

EdGull » 15 апр 2010, 16:38

что именно тебе в этом коде не понятно?

Re: Подключение шаговых двигателей к MiniBot-у.

CiSi » 15 апр 2010, 17:16

Все!

Добавлено спустя 3 минуты 3 секунды:
Я пока что делал так:
while(1){
PORTB.0=0;
PORTB.2=1;
PORTB.4=0;
PORTB.5=1;
delay_ms(100);
PORTB.0=1;
PORTB.2=0;
PORTB.4=0;
PORTB.5=1;
delay_ms(100);
PORTB.0=1;
PORTB.2=0;
PORTB.4=1;
PORTB.5=0;
delay_ms(100);
PORTB.0=0;
PORTB.2=1;
PORTB.4=1;
PORTB.5=0;
delay_ms(100);

}

Re: Подключение шаговых двигателей к MiniBot-у.

EdGull » 15 апр 2010, 18:19

т.е. ваще ни одной строчки не понятно?

Re: Подключение шаговых двигателей к MiniBot-у.

CiSi » 15 апр 2010, 18:21

ну можно и так сказать.

Re: Подключение шаговых двигателей к MiniBot-у.

EdGull » 15 апр 2010, 18:23

ну тогда забей на васик
он через чур простой для твоего понимания

Re: Подключение шаговых двигателей к MiniBot-у.

CiSi » 15 апр 2010, 18:30

Так как же движок запустить?

Re: Подключение шаговых двигателей к MiniBot-у.

EdGull » 15 апр 2010, 18:37

написать соответствующий код

Re: Подключение шаговых двигателей к MiniBot-у.

CiSi » 16 апр 2010, 07:47

Вот в этом, то вся проблема.
Я уже привел часть кода:
Код: Выделить всёРазвернуть
while(1){
PORTB.0=0;      //B3
PORTB.2=1;      //B1
PORTB.4=0;      //A1
PORTB.5=1;      //A2
delay_ms(100);
PORTB.0=1;
PORTB.2=0;
PORTB.4=0;
PORTB.5=1;
delay_ms(100);
PORTB.0=1;
PORTB.2=0;
PORTB.4=1;
PORTB.5=0;
delay_ms(100);
PORTB.0=0;
PORTB.2=1;
PORTB.4=1;
PORTB.5=0;
delay_ms(100);
}
Последний раз редактировалось CiSi 16 апр 2010, 12:22, всего редактировалось 1 раз.

Re: Подключение шаговых двигателей к MiniBot-у.

EdGull » 16 апр 2010, 08:32

1. закрой код в тег "Code"
2. прочти в хелпе васика синтаксис "while"

как это сделаешь выложишь то что получилось только тогда продолжим


Rambler\'s Top100 Mail.ru counter