![]() |
| 使用三用電錶量測OUT接腳 電壓變化 |
| 紅
外線接收器收到信號 OUT LOW (LED亮) 紅外線接收器沒收到信號 OUT HIGH |
![]() INA+ >INA- OUTA=PULL-HIGH (Open-collector) INA+ <INA- OUTA=LOW |
| 沿桌邊走 |
| 順
時針 感測器 放左邊 沒收到信號(HIGH) 右轉 收到信號 (LOW) 直走 |
| #define
DirR 12 #define DirL 11 #define PwmL 9 #define PwmR 10 #define irin A5 int val; void setup() { pinMode( DirL , OUTPUT); pinMode( DirR , OUTPUT); pinMode( irin , INPUT); analogWrite(PwmL,0); analogWrite(PwmR,0); digitalWrite(DirL,HIGH); digitalWrite(DirR,HIGH); } void loop() { val=digitalRead(irin); if(val==HIGH) { analogWrite(PwmL,150); analogWrite(PwmR,0); } else { analogWrite(PwmL,150); analogWrite(PwmR,150); } } |
| 逆
時針 感測器 放右邊 沒收到信號(HIGH) 左轉 收到信號 (LOW) 直走 |
| #define
DirR 12 #define DirL 11 #define PwmL 9 #define PwmR 10 #define irin A5 int val; void setup() { pinMode( DirL , OUTPUT); pinMode( DirR , OUTPUT); pinMode( irin , INPUT); analogWrite(PwmL,0); analogWrite(PwmR,0); digitalWrite(DirL,HIGH); digitalWrite(DirR,HIGH); } void loop() { val=digitalRead(irin); if(val==HIGH) { analogWrite(PwmL,0); analogWrite(PwmR,150); } else { analogWrite(PwmL,150); analogWrite(PwmR,150); } } |
| 順
時針 感測器 放左邊 沒收到信號(HIGH) 右轉 收到信號 (LOW) 左轉 |
| #define
DirR 12 #define DirL 11 #define PwmL 9 #define PwmR 10 #define irin A5 int val; void setup() { pinMode( DirL , OUTPUT); pinMode( DirR , OUTPUT); pinMode( irin , INPUT); analogWrite(PwmL,0); analogWrite(PwmR,0); digitalWrite(DirL,HIGH); digitalWrite(DirR,HIGH); } void loop() { val=digitalRead(irin); if(val==HIGH) { analogWrite(PwmL,150); analogWrite(PwmR,0); } else { analogWrite(PwmL,0); analogWrite(PwmR,150); } } |
| 逆
時針 感測器 放右邊 沒收到信號(HIGH) 左轉 收到信號 (LOW) 右轉 |
| #define
DirR 12 #define DirL 11 #define PwmL 9 #define PwmR 10 #define irin A5 int val; void setup() { pinMode( DirL , OUTPUT); pinMode( DirR , OUTPUT); pinMode( irin , INPUT); analogWrite(PwmL,0); analogWrite(PwmR,0); digitalWrite(DirL,HIGH); digitalWrite(DirR,HIGH); } void loop() { val=digitalRead(irin); if(val==HIGH) { analogWrite(PwmL,0); analogWrite(PwmR,150); } else { analogWrite(PwmL,150); analogWrite(PwmR,0); } } |