. , . , , , , , , , . , .

:
— . , , , , . , — . .
, . . . , .
. , . AMD Duron 1.2 , RAM 768 , 64 Video Mem, HDD 20. . Linux CNC. Mach3 Win . .
.
, , , - . .
PIC . ? -, , -, , -, L297 - , .

PIC16F630. . C . A1, A2 DIR, STEP. A2 , DIR . 20 MHz.
asm CCS C .
#include <16f630.h>
#case
#FUSES NOWDT
#FUSES NOMCLR
#FUSES HS
#FUSES PUT
#FUSES BROWNOUT
#use delay(clock = 20 MHz)
#use fast_io(C)
#opt 9
#define DIR PIN_A1
#define CLK PIN_A2
#define LED PIN_A0
#zero_ram
const int steps[256] =
{
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101
};
unsigned int8 nowStep = 0;
#INT_TIMER1
void LoadDrop_isr()
{
output_c(0);
}
#INT_EXT
void clk_isr()
{
#asm asis
BTFSC 05.1
INCF nowStep,F
BTFSS 05.1
DECF nowStep,F
#endasm
output_c(steps[nowStep]);
set_timer1(0);
}
void main()
{
output_a(0);
input_a();
set_tris_c(0);
output_c(0);
setup_comparator(NC_NC_NC_NC);
setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);
set_timer1(0);
ext_int_edge(L_TO_H);
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
unsigned int16 blinkCounter = 0;
MAIN_LOOP:
if(!blinkCounter++)
output_toggle(LED);
goto MAIN_LOOP;
}
, . . 8- nowStep . MAIN_LOOP A0. ? -, , -, ! 2 . , INT_EXT . nowStep DIR. steps nowStep . , 1. , . 100 . .
CLK 15 , 66.(6) . , , , .
. . L298N.

R1 — R4? , . L297, . . - L298N. INPUT . . , . , .
, .
, , . , - , .
, .

4N25. , 60 . , , , . 6N135, ( 2MHz ). , , . , , , .
, , . USB , . 5 .
, , , . - 12 5 .

5 12 , .
, , , . .
:

:

:

:


2- :


:

:


:

:



10 18 . , , .
:


Z:

, , , . , .
:


X Y :

, - . :

Z . . :

25 2. . . , , .
:


Z:


. , , , . . :


- :
, - .
, . -, Windows . , , , .
LinuxCNC. . . : . , Linux, , . Debian RTC LinuxCNC.
: , , . , , , .
, .
- 12 24
- ,
- . , .
- Z,
270 X Y, 150 Z. X Y 500 /, Z 300 /. 12 . . .
— . : . . , , , , . 3 , 0.1 , .
- PCB . - . , , , .