À̹ø ½Ç½ÀÀº ÀÌÀü¿¡ À̾î¿À´ø ·Îº¿ ÆÈ ÇÁ·ÎÁ§Æ®¿¡¼ ´õ ³ª¾Æ°¡, ºí·çÅõ½º Åë½ÅÀ» Ȱ¿ëÇÑ 6°üÀý ·Îº¿ ÆÈ Á¦¾î¸¦ ´Ù·ç´Â ½Ç½ÀÀÔ´Ï´Ù.
1. µ¿ÀÛ ¿ø¸®
Á¶À̽ºÆ½ 3°³ÀÇ xÃà, yÃàÀ» Ȱ¿ëÇÏ¿© 6°³ÀÇ ¼º¸¸ðÅ͸¦ ºí·çÅõ½º¸¦ ÅëÇØ ÀÛµ¿½Ãŵ´Ï´Ù.
Á¶À̽ºÆ½Àº ¾ÆµÎÀ̳ë Nano¿Í ¿¬°áµÇ¾î ÀÖÀ¸¸ç ¼º¸¸ðÅÍ´Â ¾ÆµÎÀ̳ë Uno¿Í ¿¬°áµÇ¾î ÀÖ½À´Ï´Ù
Áï, Nano¿Í Á¶À̽ºÆ½¸¸ °¡Áö°í ¿ø°ÝÀ¸·Î Uno º¸µå¿Í ¿¬°áµÈ ¼º¸¸ðÅ͸¦ ÀÛµ¿½ÃŰ´Â °ÍÀÌ ¸ñÀûÀÔ´Ï´Ù.
2. Áغñ¹°
Á¦Ç°¸í | ¼ö·® | |
1 | ¾ÆµÎÀ̳ë Uno | 1 |
2 | ¾ÆµÎÀ̳ë Nano | 1 |
3 | ºí·çÅõ½º ¸ðµâ HC-06 | 2 |
4 | Á¶À̽ºÆ½ | 3 |
5 | ¼º¸¸ðÅÍ | 6 |
6 | BreadBoard | 2 |
7 | ·Îº¿ ÆÈ ÇÁ·¹ÀÓ | ÇÊ¿äÇÑ ¸¸Å |
8 | Wire | ÇÊ¿äÇÑ ¸¸Å |
3. °¡À̵å
(1) ´ÙÀ½°ú °°ÀÌ º¸µå¿Í Á¶À̽ºÆ½, ¼º¸¸ðÅ͸¦ ¿¬°áÇÕ´Ï´Ù.
ÁÖÀÇÁ¡) ¾Æ·¡ ȸ·Î¿¡¼ ¼º¸¸ðÅÍ´Â ¾à 8V °¡·®ÀÇ Ãß°¡ Àü¾ÐÀ» Àΰ¡ÇØ¾ß µ¿ÀÛÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ» °æ¿ì Àü¿øÀÌ ºÒ¾ÈÁ¤ÇÕ´Ï´Ù.
(ÇÏÁö¸¸ ¼º¸¸ðÅÍÀÇ Á¤°Ý Àü¾ÐÀº ¾à 6V À̱⠶§¹®¿¡ 8V¸¦ Àå½Ã°£ »ç¿ëÇÏ¸é ¼º¸¸ðÅÍ¿¡ ¼Ò¼ÕÀÌ ¹ß»ýÇÏ´Â °ÍÀ» °æÇèÇß½À´Ï´Ù.
µû¶ó¼ °ÇÀüÁö¸¦ »ç¿ëÇØ¼ °¢ ¼º¸¸ðÅ͸¶´Ù ¿ÜºÎ Àü¿øÀ» Àΰ¡ÇÏ´Â °ÍÀ» °í·Á ÁßÀ̳ª ¾ÆÁ÷ ÇØ°áÇÏÁö ¸ø Çß½À´Ï´Ù.
ÁÁÀº ÀÇ°ß ÀÖÀ¸½Ã¸é ´ñ±Û ºÎʵ右´Ï´Ù !!)
Á¶À̽ºÆ½°ú ºí·çÅõ½º ¸ðµâÀº ¾ÆµÎÀÌ³ë º¸µå¸¦ ÅëÇØ 5V¸¦ Àΰ¡ÇÕ´Ï´Ù.
ºí·çÅõ½ºÀÇ TX´Â ¾ÆµÎÀÌ³ë º¸µåÀÇ RX¿Í, ºí·çÅõ½ºÀÇ RX´Â ¾ÆµÎÀÌ³ë º¸µåÀÇ TX¿Í ¿¬°áÇÕ´Ï´Ù.
(2) ÄÚµå´Â ´ÙÀ½°ú °°½À´Ï´Ù.
< Master> - ¾ÆµÎÀ̳ë Nano
Á¶À̽ºÆ½Àº °¢°¢ ÇØ´çÇÏ´Â Analog ÇÉ¿¡ ¿¬°áÇÕ´Ï´Ù.
ºí·çÅõ½ºÀÇ Rx´Â Digital ÇÉ 2¹ø, Tx´Â Digital ÇÉ 3¹øÀ̹ǷΠÀ§¿¡ ¾ð±ÞÇÑ °Í ó·³ ºí·çÅõ½º ¸ðµâ°ú ¿¬°á¿¡ ÁÖÀÇÇÕ´Ï´Ù.
¶ÇÇÑ, ÇϳªÀÇ ºí·çÅõ½º¸¦ ÅëÇØ 6°³ÀÇ ¼º¸¸ðÅ͸¦ Á¦¾îÇØ¾ß ÇϹǷÎ, Á¶À̽ºÆ½ °ª°ú ÇÔ²² ¸ðÅÍ ÆÇº°¿ë »ó¼ö¸¦ 1~6±îÁö ÁöÁ¤ÇÕ´Ï´Ù.
#include< SoftwareSerial.h>
int motor1 = A0; //1¹ø Á¶À̽ºÆ½ XÃà ¸¸À» »ç¿ë
int motor2 = A2; //1¹ø Á¶À̽ºÆ½ YÃà ¸¸À» »ç¿ë
int motor3 = A3; //2¹ø Á¶À̽ºÆ½ XÃà ¸¸À» »ç¿ë
int motor4 = A4; //2¹ø Á¶À̽ºÆ½ YÃà ¸¸À» »ç¿ë
int motor5 = A5; //3¹ø Á¶À̽ºÆ½ XÃà ¸¸À» »ç¿ë
int motor6 = A6; //3¹ø Á¶À̽ºÆ½ YÃà ¸¸À» »ç¿ë
int BLE_RX = 2; //Rx (¹Þ´ÂÇÉ ¼³Á¤)
int BLE_TX = 3; //Tx (º¸³»´ÂÇÉ ¼³Á¤)
SoftwareSerial bleSerial(BLE_RX, BLE_TX); //ºí·çÅõ½º Åë½Å ¼³Á¤
void setup()
{
bleSerial.begin(9600); //bleSerial ºí·çÅõ½º Åë½Å
Serial.begin(9600); //½Ã¸®¾ó ¸ð´ÏÅÍ »ç¿ë
}
void loop ()
{
if (( (analogRead(motor1) >= 0)&& (analogRead(motor1) < = 300))
|| ((analogRead(motor1) >= 700) && (analogRead(motor1) < =1023)) )
//»ç¿ëÀÚ°¡ ¿øÄ¡ ¾Ê´Â Á¶À̽ºÆ½ÀÇ ÀÔ·ÂÀ» ¸·±â À§ÇØ ¹üÀ§ ÁöÁ¤
{
int vrx = analogRead(motor1); // Á¶À̽ºÆ½ÀÇ ÀÔ·Â °ªÀ» ¹Þ¾Æ vrx·Î ¼±¾ð
vrx = map(vrx, 0, 1023, 0, 179);
bleSerial.write(vrx); // ¾Þ±Û °ª Àü¼Û
bleSerial.write(1); // ¸ðÅÍ ÆÇº°¿ë »ó¼ö Àü¼Û
Serial.println(vrx); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
Serial.println(1); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¸ðÅÍ ÆÇº°¿ë »ó¼ö Ãâ·Â
delay(50);
}
else if (( (analogRead(motor2) >= 0)&& (analogRead(motor2) < = 300))
|| ((analogRead(motor2) >= 700) && (analogRead(motor2) < =1023)) )
//»ç¿ëÀÚ°¡ ¿øÄ¡ ¾Ê´Â Á¶À̽ºÆ½ÀÇ ÀÔ·ÂÀ» ¸·±â À§ÇØ ¹üÀ§ ÁöÁ¤
{
int vrx = analogRead(motor2); // Á¶À̽ºÆ½ÀÇ ÀÔ·Â °ªÀ» ¹Þ¾Æ vrx·Î ¼±¾ð
vrx = map(vrx, 0, 1023, 0, 179);
// ºí·çÅõ½º´Â 0~255±îÁö¹Û¿¡ Àü¼ÛÇÒ ¼ö ¾øÀ¸¹Ç·Î Á¶À̽ºÆ½ÀÇ ÀÔ·Â °ªÀ» 0~180À¸·Î ¸ÊÇÊ
bleSerial.write(vrx); // ¾Þ±Û °ª Àü¼Û
bleSerial.write(2); // ¸ðÅÍ ÆÇº°¿ë »ó¼ö Àü¼Û
Serial.println(vrx); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
Serial.println(2); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¸ðÅÍ ÆÇº°¿ë »ó¼ö Ãâ·Â
delay(50);
}
else if (( (analogRead(motor3) >= 0)&& (analogRead(motor3) < = 300))
|| ((analogRead(motor3) >= 700) && (analogRead(motor3) < =1023)) )
//»ç¿ëÀÚ°¡ ¿øÄ¡ ¾Ê´Â Á¶À̽ºÆ½ÀÇ ÀÔ·ÂÀ» ¸·±â À§ÇØ ¹üÀ§ ÁöÁ¤
{
int vrx = analogRead(motor3); // Á¶À̽ºÆ½ÀÇ ÀÔ·Â °ªÀ» ¹Þ¾Æ vrx·Î ¼±¾ð
vrx = map(vrx, 0, 1023, 0, 179);
// ºí·çÅõ½º´Â 0~255±îÁö¹Û¿¡ Àü¼ÛÇÒ ¼ö ¾øÀ¸¹Ç·Î Á¶À̽ºÆ½ÀÇ ÀÔ·Â °ªÀ» 0~180À¸·Î ¸ÊÇÎ
bleSerial.write(vrx); // ¾Þ±Û °ª Àü¼Û
bleSerial.write(3); // ¸ðÅÍ ÆÇº°¿ë »ó¼ö Àü¼Û
Serial.println(vrx); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
Serial.println(3); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¸ðÅÍ ÆÇº°¿ë »ó¼ö Ãâ·Â
delay(50);
}
else if (( (analogRead(motor4) >= 0)&& (analogRead(motor4) < = 300))
|| ((analogRead(motor4) >= 700) && (analogRead(motor4) < =1023)) )
//»ç¿ëÀÚ°¡ ¿øÄ¡ ¾Ê´Â Á¶À̽ºÆ½ÀÇ ÀÔ·ÂÀ» ¸·±â À§ÇØ ¹üÀ§ ÁöÁ¤
{
int vrx = analogRead(motor4); // Á¶À̽ºÆ½ÀÇ ÀÔ·Â °ªÀ» ¹Þ¾Æ vrx·Î ¼±¾ð
vrx = map(vrx, 0, 1023, 0, 179);
// ºí·çÅõ½º´Â 0~255±îÁö¹Û¿¡ Àü¼ÛÇÒ ¼ö ¾øÀ¸¹Ç·Î Á¶À̽ºÆ½ÀÇ ÀÔ·Â °ªÀ» 0~180À¸·Î ¸ÊÇÎ
bleSerial.write(vrx); // ¾Þ±Û °ª Àü¼Û
bleSerial.write(4); // ¸ðÅÍ ÆÇº°¿ë »ó¼ö Àü¼Û
Serial.println(vrx); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
Serial.println(4); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¸ðÅÍ ÆÇº°¿ë »ó¼ö Ãâ·Â
delay(50);
}
else if (( (analogRead(motor5) >= 0)&& (analogRead(motor5) < = 300))
|| ((analogRead(motor5) >= 700) && (analogRead(motor5) < =1023)) )
//»ç¿ëÀÚ°¡ ¿øÄ¡ ¾Ê´Â Á¶À̽ºÆ½ÀÇ ÀÔ·ÂÀ» ¸·±â À§ÇØ ¹üÀ§ ÁöÁ¤
{
int vrx = analogRead(motor5); // Á¶À̽ºÆ½ÀÇ ÀÔ·Â °ªÀ» ¹Þ¾Æ vrx·Î ¼±¾ð
vrx = map(vrx, 0, 1023, 0, 179);
// ºí·çÅõ½º´Â 0~255±îÁö¹Û¿¡ Àü¼ÛÇÒ ¼ö ¾øÀ¸¹Ç·Î Á¶À̽ºÆ½ÀÇ ÀÔ·Â °ªÀ» 0~180À¸·Î ¸ÊÇÎ
bleSerial.write(vrx); // ¾Þ±Û °ª Àü¼Û
bleSerial.write(5); // ¸ðÅÍ ÆÇº°¿ë »ó¼ö Àü¼Û
Serial.println(vrx); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
Serial.println(5); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¸ðÅÍ ÆÇº°¿ë »ó¼ö Ãâ·Â
delay(50);
}
else if (( (analogRead(motor6) >= 0)&& (analogRead(motor6) < = 300))
|| ((analogRead(motor6) >= 700) && (analogRead(motor6) < =1023)) )
//»ç¿ëÀÚ°¡ ¿øÄ¡ ¾Ê´Â Á¶À̽ºÆ½ÀÇ ÀÔ·ÂÀ» ¸·±â À§ÇØ ¹üÀ§ ÁöÁ¤
{
int vrx = analogRead(motor6); // Á¶À̽ºÆ½ÀÇ ÀÔ·Â °ªÀ» ¹Þ¾Æ vrx·Î ¼±¾ð
vrx = map(vrx, 0, 1023, 0, 179);
// ºí·çÅõ½º´Â 0~255±îÁö¹Û¿¡ Àü¼ÛÇÒ ¼ö ¾øÀ¸¹Ç·Î Á¶À̽ºÆ½ÀÇ ÀÔ·Â °ªÀ» 0~180À¸·Î ¸ÊÇÎ
bleSerial.write(vrx); // ¾Þ±Û °ª Àü¼Û
bleSerial.write(6); // ¸ðÅÍ ÆÇº°¿ë »ó¼ö Àü¼Û
Serial.println(vrx); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
Serial.println(6); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¸ðÅÍ ÆÇº°¿ë »ó¼ö Ãâ·Â
delay(50);
}
}
< Slave> - ¾ÆµÎÀ̳ë Uno
Uno º¸µå¿¡¼´Â Nano¿¡¼ º¸³½ Á¶À̽ºÆ½ °ª°ú ¸ðÅÍ ÆÇº°¿ë »ó¼ö¿¡ µû¶ó ¿øÇÏ´Â ¸ðÅ͸¦ ÀÛµ¿½Ãŵ´Ï´Ù.
Áß¿äÇÑ °ÍÀº 59¹øÂ°, 81¹øÂ° ÁÙÀÇ delay(50);ÀÔ´Ï´Ù.
ºí·çÅõ½º Åë½ÅÀÌ ºü¸£°Ô ÀÌ·ç¾îÁú °æ¿ì ¸ðÅͰ¡ ¿òÁ÷À̱â Àü¿¡ ¼·Î ´Ù¸¥ ¸í·ÉÀ» 2~3°³¸¦ ¹Þ¾ÆµéÀÌ°Ô µÇ°í ¿Àµ¿ÀÛÀ¸·Î À̾îÁý´Ï´Ù.
µû¶ó¼ °³¹ß ȯ°æ¿¡ µû¶ó º»Àο¡°Ô ÀûÀýÇÑ delay timeÀ» ¼±Á¤ÇÏ¿© ¸ðÅÍ Á¦¾î¿¡ È¥¼±ÀÌ »ý±âÁö ¾Êµµ·Ï ÇØ¾ßÇÕ´Ï´Ù.
#include < SoftwareSerial.h>
#include < Servo.h>
Servo servo1, servo2, servo3, servo4, servo5, servo6; // ¼º¸ ¸ðÅÍ¿ë º¯¼ö ¼±¾ð
int angle1, angle2, angle3, angle4, angle5, angle6; // ¸ðÅÍ ¾Þ±Û°ª º¯¼ö ¼±¼±
int motor1, motor2; // motor1Àº Á¶À̽ºÆ½ °ªÀ» ¹Þ¾Æ¿À°í, motor2´Â ¸ðÅÍ ÆÇº°¿ë º¯¼ö¸¦ ¹Þ¾Æ¿Â´Ù.
#define BLE_RX (2) //Rx (¹Þ´ÂÇÉ ¼³Á¤)
#define BLE_TX (3) //Tx (º¸³»´ÂÇÉ ¼³Á¤)
SoftwareSerial bleSerial(BLE_RX, BLE_TX); // ºí·çÅõ½º Åë½Å ¼³Á¤
void setup() {
bleSerial.begin(9600); // ºí·çÅõ½º Åë½Å ½ÃÀÛ
Serial.begin(9600); // ½Ã¸®¾ó ¸ð´ÏÅÍ »ç¿ë
servo1.attach(11); // 11¹ø ÇÉÀ» ¼º¸¸ðÅÍ·Î ÁöÁ¤
servo2.attach(5); // 10¹ø ÇÉÀ» ¼º¸¸ðÅÍ·Î ÁöÁ¤
servo3.attach(9); // 8¹ø ÇÉÀ» ¼º¸¸ðÅÍ·Î ÁöÁ¤
servo4.attach(8); // 9¹ø ÇÉÀ» ¼º¸¸ðÅÍ·Î ÁöÁ¤
servo5.attach(7); // 7¹ø ÇÉÀ» ¼º¸¸ðÅÍ·Î ÁöÁ¤
servo6.attach(6); // 6¹ø ÇÉÀ» ¼º¸¸ðÅÍ·Î ÁöÁ¤
angle1 = 90; // 1¹ø ¼º¸¸ðÅÍ ¾Þ±Û Ãʱ⠰ª ¼³Á¤
angle2 = 90; // 2¹ø ¼º¸¸ðÅÍ ¾Þ±Û Ãʱ⠰ª ¼³Á¤
angle3 = 90; // 3¹ø ¼º¸¸ðÅÍ ¾Þ±Û Ãʱ⠰ª ¼³Á¤
angle4 = 90; // 4¹ø ¼º¸¸ðÅÍ ¾Þ±Û Ãʱ⠰ª ¼³Á¤
angle5 = 90; // 5¹ø ¼º¸¸ðÅÍ ¾Þ±Û Ãʱ⠰ª ¼³Á¤
angle6 = 90; // 6¹ø ¼º¸¸ðÅÍ ¾Þ±Û Ãʱ⠰ª ¼³Á¤
}
void loop() {
if (bleSerial.available()>=2){
motor1 = bleSerial.read(); // motor1¿¡ Á¶À̽ºÆ½ÀÇ °ªÀ» ¹Þ¾Æ¿È
motor2 = bleSerial.read(); // motor2¿¡ ¸ðÅÍ ÆÇº°¿ë »ó¼ö¸¦ ¹Þ¾Æ¿È
switch(motor2) // ¸ðÅÍ ÆÇº°¿ë »ó¼ö¿¡ µû¶ó °¢ ¼º¸¸ðÅͰ¡ µ¿ÀÛÇÑ´Ù
{
//-------------------------------------------¡å¼º¸¸ðÅÍ 1 Á¦¾î-------------------------------------
case 1 : // ¸ðÅÍ ÆÇº°¿ë º¯¼ö°¡ 1ÀÎ °æ¿ì 1¹ø ¼º¸¸ðÅÍ µ¿ÀÛ
if ((motor1 < = 60) && (motor1 >= 0))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle1 = angle1 - 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle1 < = 20) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle1 = 20;
}
if (angle1 >= 150) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle1 = 150;
}
servo1.write(angle1); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("1¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle1); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
else if ((motor1 < = 179) && (motor1 >= 118))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle1 = angle1 + 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle1 < = 20) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle1 = 20;
}
if (angle1 >= 150) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle1 = 150;
}
servo1.write(angle1); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("1¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle1); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
break;
//-------------------------------------------¡ã¼º¸¸ðÅÍ 1 Á¦¾î------------------------------------
//-------------------------------------------¡å¼º¸¸ðÅÍ 2 Á¦¾î-------------------------------------
case 2 : // ¸ðÅÍ ÆÇº°¿ë º¯¼ö°¡ 2ÀÎ °æ¿ì 2¹ø ¼º¸¸ðÅÍ µ¿ÀÛ
if ((motor1 < = 60) && (motor1 >= 0))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle2 = angle2 - 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle2 < = 40) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle2 = 40;
}
if (angle2 >= 120) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle2 = 120;
}
servo2.write(angle2); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("2¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle2); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
else if ((motor1 < = 179) && (motor1 >= 118))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle2 = angle2 + 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle2 < = 40) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle2 = 40;
}
if (angle2 >= 120) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle2 = 120;
}
servo2.write(angle2); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("2¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle2); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
break;
//-------------------------------------------¡ã¼º¸¸ðÅÍ 2 Á¦¾î------------------------------------
//-------------------------------------------¡å¼º¸¸ðÅÍ 3 Á¦¾î-------------------------------------
case 3 :
if ((motor1 < = 60) && (motor1 >= 0))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle3 = angle3 - 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle3 < = 20) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle3 = 20;
}
if (angle3 >= 150) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle3 = 150;
}
servo3.write(angle3); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("3¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle3); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
else if ((motor1 < = 179) && (motor1 >= 118))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle3 = angle3 + 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle3 < = 20) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle3 = 20;
}
if (angle3 >= 150) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle3 = 150;
}
servo3.write(angle3); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("3¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle3); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
break;
//-------------------------------------------¡ã¼º¸¸ðÅÍ 3 Á¦¾î------------------------------------
//-------------------------------------------¡å¼º¸¸ðÅÍ 4 Á¦¾î-------------------------------------
case 4 :
if ((motor1 < = 60) && (motor1 >= 0))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle4 = angle4 - 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle4 < = 20) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle4 = 20;
}
if (angle4 >= 150) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle4 = 150;
}
servo4.write(angle4); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("4¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle4); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
else if ((motor1 < = 179) && (motor1 >= 118))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle4 = angle4 + 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle4 < = 20) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle4 = 20;
}
if (angle4 >= 150) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle4 = 150;
}
servo4.write(angle4); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("4¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle4); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
break;
//-------------------------------------------¡ã¼º¸¸ðÅÍ 4 Á¦¾î------------------------------------
//-------------------------------------------¡å¼º¸¸ðÅÍ 5 Á¦¾î-------------------------------------
case 5 :
if ((motor1 < = 60) && (motor1 >= 0))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle5 = angle5 - 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle5 < = 20) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle5 = 20;
}
if (angle5 >= 150) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle5 = 150;
}
servo5.write(angle5); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("5¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle5); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
else if ((motor1 < = 179) && (motor1 >= 118))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle5 = angle5 + 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle5 < = 20) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle5 = 20;
}
if (angle5 >= 150) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle5 = 150;
}
servo5.write(angle5); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("5¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle5); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
break;
//-------------------------------------------¡ã¼º¸¸ðÅÍ 5 Á¦¾î------------------------------------
//-------------------------------------------¡å¼º¸¸ðÅÍ 6 Á¦¾î-------------------------------------
case 6 :
if ((motor1 < = 60) && (motor1 >= 0))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle6 = angle6 - 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle6 < = 20) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle6 = 20;
}
if (angle6 >= 150) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle6 = 150;
}
servo6.write(angle6); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("6¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle6); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
else if ((motor1 < = 179) && (motor1 >= 118))
// Á¶À̽ºÆ½ÀÌ ¿òÁ÷¿´À» ¶§¸¸ ÀÛµ¿Çϵµ·Ï ÀûÀýÇÑ ¹üÀ§ ¼±Á¤
{
angle6 = angle6 + 2;
//·Îº¿ÆÈÀÇ È¸Àü¼Óµµ¸¦ Á¶ÀýÇϱâ À§ÇØ ½ÇÇèÀ» ÅëÇØ ³ª¿Â ÀûÀýÇÑ ¼Óµµ°ªÀ» °è»êÇÏ¿© ±¸ÇÔ
if (angle6 < = 20) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle6 = 20;
}
if (angle6 >= 150) // °úµµÇÑ ¾Þ±Û·Î ÀÎÇØ ¹ö¹÷ÀÌ´Â Çö»óÀ» ÁÙÀ̱â À§ÇØ ¹üÀ§¸¦ Á¦ÇÑ
{
angle6 = 150;
}
servo6.write(angle6); // ¸ðÅÍ¿¡ ¾Þ±Û °ªÀ» ÀÔ·Â
Serial.println("6¹ø ¸ðÅÍ"); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ÇöÀç µ¿ÀÛÇÏ´Â ¸ðÅ͸¦ Ãâ·Â
Serial.println(angle6); // ½Ã¸®¾ó ¸ð´ÏÅÍ¿¡ ¾Þ±Û °ª Ãâ·Â
delay(50); // ¸ðÅÍ µ¿ÀÛÀ» ±â´Ù·ÁÁÖ´Â delayŸÀÓ
}
break;
//-------------------------------------------¡ã¼º¸¸ðÅÍ 6 Á¦¾î------------------------------------
}
}
}
(3) µ¿ÀÛ ¸ð½ÀÀº ´ÙÀ½°ú °°½À´Ï´Ù.
(4) ¹®Á¦Á¡
À§ÀÇ µ¿¿µ»ó¿¡¼ º¸µíÀÌ, ¸ðÅͰ¡ ºÒ¾ÈÁ¤ÇÑ Á¡ÀÌ °¡Àå Å« ¹®Á¦Á¡ÀÔ´Ï´Ù.
ºí·çÅõ½º°¡ ¾Æ´Ñ ±âÁ¸ÀÇ ¹æ½ÄÀ» »ç¿ëÇÒ ¶§¿¡´Â ¹ß»ýÇÏÁö ¾Ê¾ÒÁö¸¸, µ¿ÀÛÇÏÁö ¾Ê¾Æ¾ß ÇÏ´Â ¸ðÅÍ¿¡ °£¼· Çö»óÀÌ ¹ß»ýÇϰųª ¸ðÅÍ ¶³¸®´Â °ÍÀ»
È®ÀÎÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù.
À̸¦ ¹æÁöÇϱâ À§ÇØ ¹è¼±À» ´Ù½Ã ¿¬°áÇϰųª delay ŸÀÓ Á¶Á¤, ¾ÆµÎÀÌ³ë º¸µåÀÇ PWM½ÅÈ£¿¡ ³ëÀÌÁî ¹ÙÀÌÆÐ½º ijÆÐ½ÃÅ͸¦ ¼³Ä¡ÇÏ´Â µî
´Ù¾çÇÑ ½Ãµµ¸¦ ÇßÁö¸¸, ¿©ÀüÈ÷ ±Ùº»ÀûÀº ÇØ°áÃ¥Àº µÇÁö ¾Ê¾Ò½À´Ï´Ù.
Ãß°¡·Î, Ãʹݺο¡ ¾ð±ÞÇßµíÀÌ, ¼º¸¸ðÅÍ¿¡ Àΰ¡ÇÏ´Â Àü¾ÐÀ» ÃÖÀûÈÇÏ´Â ¹æ¹ýµµ ¶Ç ´Ù¸¥ ¹®Á¦Á¡ ÀÔ´Ï´Ù.
ÁÁÀº ÇØ°á ¹æ¾ÈÀÌ ÀÖÀ¸½Å ºÐÀº ¾Æ·¡ ´ñ±Û¿¡ ³²°ÜÁÖ½Ã¸é °¨»çÇϰڽÀ´Ï´Ù !!
¾ÈÀü°Å·¡¸¦ À§ÇØ Çö±ÝµîÀ¸·Î 5¸¸¿øÀÌ»ó °áÁ¦½Ã
ÀúÈñ »çÀÌÆ®¿¡¼°¡ÀÔÇÑ ¿ì¸®ÀºÇàÀÇ ±¸¸Å¾ÈÀü¼ºñ½º¸¦
ÀÌ¿ëÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.