Нашел старый неисправный CD-ROM. Выбросить жалко, решил «поковырять» шаговый двигатель, перемещающий лазер. В общем демонтировал блок с шаговым двигателем и кареткой с лазером.
Из подручных средств чем можно оживить данный девайс нашел следующее:
- микроконтроллер PIC16F84A;
- драйвер L293D:
- диоды 1N4003 — 8 шт.
- макетная плата MB-102
Почитав даташит на LM293D, нашел схемку:
Совместил драйвер с микроконтроллером и получил следующую схему:
Кнопка нужна для изменения направления вращения. При нажатой кнопке двигатель крутится по часовой стрелке, отпустил — против часовой.
Набросал программку для микроконтроллера:
list p=16f84a __config 03ff1h status equ 03h portb equ 06h trisb equ 06h Reg_1 equ 21h Reg_2 equ 22h Reg_3 equ 23h org 0 bsf status,5 clrf trisb bcf status,5 movlw .0 left btfsc portb,5 goto right bsf portb,4 call delay bcf portb,4 call delay bsf portb,3 call delay bcf portb,3 call delay bsf portb,2 call delay bcf portb,2 call delay bsf portb,1 call delay bcf portb,1 call delay goto left right bsf portb,1 call delay bcf portb,1 call delay bsf portb,2 call delay bcf portb,2 call delay bsf portb,3 call delay bcf portb,3 call delay bsf portb,4 call delay bcf portb,4 call delay bcf portb,5 goto left ; задержка 0.01 сек. delay movlw .251 movwf Reg_1 movlw .13 movwf Reg_2 decfsz Reg_1,F goto $-1 decfsz Reg_2,F goto $-3 nop nop return end
Что в итоге получилось:
Вот и все. Двигатель вращается, будем думать, что с этим делать дальше.