两根中间线不接便行,见图。
只要在L298n输入端输入一个脉冲,步进电机就走一步。如果单纯让电机转起来,只要有一个连续的脉冲群输入(随便找个脉冲发生器、如示波器1000Hz的检测脉冲),步进电机就可持续走下去。至于控制芯片的c语言,各有各用途,谁也帮不了谁。除非你将所有条件告诉别人。
至少得两个L298才能。用L298N驱动四相六线电机浪费了H桥驱动电路的一半。用TA8435H试试吧。最近也再做这个。
/*
本步进电机步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!!!
A组线圈对应 P1.4
B组线圈对应 P1.5
C组线圈对应 P1.6
D组线圈对应 P1.7
正转次序: AB组--BC组--CD组--DA组 (即一个脉冲,正转 7.5 度)
*/
#include
#define uchar unsigned char
#define uint unsigned int
//正转脉冲表
//unsigned char Table_Run[4]={0x3, 0x60, 0xC0, 0x90};
//反转脉冲表
//unsigned char Table_Rev[4]={0x3, 0x90, 0xC0, 0x60};
///没有ULN2003的情况
//unsigned char forword[]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};
//unsigned char back[]={0x06,0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07};
////ULN2003
unsigned char forword[8]={0xc0,0x40,0x60,0x20,0x30,0x10,0x90,0x80};
unsigned char back[8]={0xc0,0x80,0x90,0x10,0x30,0x20,0x60,0x40};
sbit key1=P2^0; //正转
sbit key2=P2^1; //反
sbit key3=P2^2; //停止
uchar count=0;
uint time=0;
//函数说明
void delay(uint t);
void front_move(uint step);
void back_move();