¾ÆµÎÀ̳븦 ÀÌ¿ëÇØ ¾Æ·¡¿Í °°Àº ÄÚÆÃÀ» ÇÏ·Á°í ÇÕ´Ï´Ù.
¾Æ¹«°Íµµ ¸ð¸£´Â Ãʺ¸¶ó ¿©±âÀú±â Âü°íÇؼ ÇÏ°íÀִµ¥, ¸îÀÏ° ÇØ°áÀÌ ¾ÈµÇ³×¿ä.¤Ð.¤Ì
ÇöÀç »óÅ´ 2¹ø±îÁö´Â ÀÛµ¿ µÇ´Âµ¥,
2¹ø ÀÛµ¿ÈÄ ¼¾¼°ªÀÌ HIGH·Î ¹Ù²î¸é, 2¹øÀÌ ´Ù½ÃÇѹø µ¿ÀÛÇÑÈÄ °¨Áö»óÅ°¡ µË´Ï´Ù.
¾ÆµÎÀÌ³ë ´É·ÂÀÚºÐÀÇ µµ¿ò ºÎŹµå¸³´Ï´Ù~
// 1. ¼¾¼°¡ °è¼Ó °¨ÁöÇÑ´Ù. ¼¾¼´Â 1ÃÊ ÀÌÇÏÀÇ ÂªÀº µ¿ÀÛÀÌ °è¼ÓÀûÀ¸·Î °¨Áö, ºñ°¨Áö µÈ´Ù.
// 2. ¼¾¼°¡ 1.5ÃÊ ÀÌ»ó ¼¾¼ °ªÀÌ LOW(°¨Áö) À̸é, ½ºÅܸðÅ͸¦ ¿øÀ§Ä¡¿¡¼ ¿ª¹æÇâ 1ȸ ȸÀüÇÏ°í,
// 3. ½ºÅܸðÅÍ°¡ ¿ª¹æÇâÀ¸·Î 1ȸ ȸÀüµÈ »óÅ·Î, 0.5ÃÊ ÀÌ»ó ¼¾¼°ªÀÌ HIGH(¹Ì°¨Áö) À̸é, Á¤¹æÇâÀ¸·Î 1ȸ ȸÀüÇÏ¿© ¿øÀ§Ä¡ ½ÃŲ´Ù.
#define IR 4 // ¼¾¼ ÇÉ ¼³Á¤
#include <Stepper.h> // ½ºÅܸðÅÍ ¶óÀ̺귯¸® Æ÷ÇÔ
const int steps = 1536; // 270µµ ½ºÅܼ³Á¤
Stepper myStepper(steps, 8, 10, 9, 11); // ½ºÅܸðÅÍ(IN4,IN2,IN3,IN1)ÇÉ ¼³Á¤
bool IR_on = LOW; // ¼¾¼ÀÇ °¨Áö »óŸ¦ ÀúÀå
int motorflag = 0; // ¸ðÅÍ »óŸ¦ ÀúÀå
unsigned long last_time; // ÃÖÁ¾ ÀÔ·Â ½Ã°£À» ÀúÀå
void setup(){
Serial.begin(9600); //½Ã¸®¾ó Åë½Å¼Óµµ ¼³Á¤
pinMode(IR,INPUT); //¼¾¼¸¦ ÀԷ¸ðµå·Î ¼³Á¤
myStepper.setSpeed(24); //½ºÅܸðÅÍ ¼Óµµ ¼³Á¤
}
void loop(){
if(!digitalRead(IR)) //¼¾¼ °ªÀÌ LOW À̸é
{
if((millis()-last_time > 1500)) IR_on = HIGH; // ½Ã°£À» ÃøÁ¤ÇÏ¿©1.5ÃÊ ÀÌ»óÀÌ¸é ¼¾¼»óŸ¦ HIGH·Î ÀúÀå
}
else {
last_time = millis(); // °ËÁö µÇÁö ¾ÊÀ¸¸é last_time °»½Å
motorflag = 0; // ¸ðÅÍ»óÅ ÀÔ·Â
}
if((IR_on == HIGH) && (motorflag == 0)) // ¼¾¼»óÅ°¡ HIGH ÀÌ°í, ¸ðÅÍ»óÅ°¡0 ÀÌ¸é ½ÇÇà
{
Serial.println("detected"); // ¸ð´ÏÅÍ¿¡ detected Ãâ·Â
myStepper.step(-steps); // ¸ðÅÍ ¿ª¹æÇâ ȸÀü
myStepper.stop(); // ¸ðÅÍ Á¤Áö
motorflag = 1; // ¸ðÅÍ»óŸ¦ 1·Î ÀúÀå
IR_on = LOW; // ¼¾¼»óŸ¦ LOW·Î º¯°æ
}
}
|