void setup()
{
//初始化電機驅動IO為輸出方式
pinMode(IN1, OUTPUT); // PIN 7
pinMode(IN2, OUTPUT); // PIN 6
pinMode(IN3, OUTPUT); // PIN 5
pinMode(IN4, OUTPUT); // PIN 4
pinMode(beep, OUTPUT); //PIN 3
digitalWrite(beep, HIGH);
Serial.begin(9600);//設置波特率為9600
}
/*******************************四相八拍***********************************/
void Coil_A()
{
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, HIGH);
}
void Coil_AB()
{
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, HIGH);
}
void Coil_B()
{
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, HIGH);
}
void Coil_BC()
{
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
}
void Coil_C()
{
digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH);
}
void Coil_CD()
{
digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
}
void Coil_D()
{
digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}
void Coil_DA()
{
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}
/*******************************************************************/
void beep_once()//蜂鳴器響一次
{
digitalWrite(beep, LOW);
delay(100);
digitalWrite(beep, HIGH);
}
void loop()
{
unsigned long now_time = micros(); //獲取當前的系統運行時間長度
while ((micros() - now_time) < 14648); // 60 000 000us/4096
switch (i)
{
case 0: Coil_A(); i++; break;
case 1: Coil_AB(); i++; break;
case 2: Coil_B(); i++; break;
case 3: Coil_BC(); i++; break;
case 4: Coil_C(); i++; break;
case 5: Coil_CD(); i++; break;
case 6: Coil_D(); i++; break;
case 7: Coil_DA(); i = 0; break;
default: break;
}
count++;
if (count == 68)//一秒計時,顯示并蜂鳴器響一下
{
count = 0;
time++;
if (time == 60)
time = 0;
Serial.print("second: " ) ;
Serial.print(time, DEC) ;
Serial.println("s" ) ;
beep_once();
}
} |