2017년 7월 6일 목요일
블루투스로 스텝모터 정역회전제어와 FND표시
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(0, 1);
int A = 2; //L293 연결시작포트
int step_table[4][4] = {
{1, 0, 0, 1}, {1, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 1}
}; //Full-Step 테이블
int pin = 7; //FND시작포트
int table[16][7] = {
{1, 1, 1, 1, 1, 1, 0}, //0
{0, 1, 1, 0, 0, 0, 0}, //1
{1, 1, 0, 1, 1, 0, 1}, //2
{1, 1, 1, 1, 0, 0, 1}, //3
{0, 1, 1, 0, 0, 1, 1}, //4
{1, 0, 1, 1, 0, 1, 1}, //5
{1, 0, 1, 1, 1, 1, 1}, //6
{1, 1, 1, 0, 0, 1, 0}, //7
{1, 1, 1, 1, 1, 1, 1}, //8
{1, 1, 1, 0, 0, 1, 1}, //9
{1, 1, 1, 0, 1, 1, 1}, //A
{0, 0, 1, 1, 1, 1, 1}, //B
{0, 0, 0, 1, 1, 0, 1}, //C
{0, 1, 1, 1, 1, 0, 1}, //D
{1, 0, 0, 1, 1, 1, 1}, //E
{1, 0, 0, 0, 1, 1, 1} //F
};
void setup()
{
BTSerial.begin(9600);
int i;
for (i = 0; i < 4; i++)
pinMode(A + i, OUTPUT);
pinMode(A0, OUTPUT); //LED1
pinMode(A1, OUTPUT); //LED2
for (i = 0; i < 7; i++)
pinMode(pin + i, OUTPUT);
}
void CW(int myDelay)
{
int i, j, k;
for (i = 0; i < 50; i++)
{
for (j = 0; j < 4; j++)
{
for (k = 0; k < 4; k++)
digitalWrite(A + k, step_table[j][k]);
delay(myDelay);
}
}
}
void CCW(int myDelay1)
{
int i, j, k;
for (i = 0; i < 50; i++)
{
for (j = 0; j < 4; j++)
{
for (k = 0; k < 4; k++)
digitalWrite(A + k, step_table[3 - j][k]);
delay(myDelay1);
}
}
}
void fnd(int num)
{
int i, j;
j = num;
for (i = 0; i < 7; i++)
digitalWrite(pin + i, table[j][i]);
}
void loop()
{
int i, j;
int inData;
if (BTSerial.available())
{
fnd(0);
inData = BTSerial.read();
if (inData == 'A')
{
digitalWrite(A1, 0);
digitalWrite(A0, 1);
for (i = 0; i < 5; i++)
{
CW(10);
fnd(i + 1);
}
}
if (inData == 'B')
{
digitalWrite(A0, 0);
digitalWrite(A1, 1);
for (j = 0; j < 4; j++)
{
CCW(20);
fnd(j + 1);
}
}
}
delay(1000);
}
/*
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(0,1);
int inData;
int LED1 = A0;
void setup()
{
BTSerial.begin(9600);
pinMode(LED1,OUTPUT);
}
void loop()
{
if(BTSerial.available())
{
inData = BTSerial.read();
if (inData == 'A')
digitalWrite(LED1,HIGH);
if (inData == 'D')
digitalWrite(LED1,LOW);
delay(1000);
}
}
*/
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기