Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 2423|回復: 1
打印 上一主題 下一主題

同時兩顆人體紅外線

[複製鏈接]
跳轉到指定樓層
1#
發表於 2016-1-11 19:07:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我想請問一下,我使用了兩顆人體紅外線感測器,一個感測外部,另一個感測內部,我希望它們能同時動作,
但我發現到,在第一次供電時外部紅外線還未動作,內部可以正常感應,但當外部紅外線執行過後,內部紅外線就不能執行了,
唯獨在外部動作時才有感應,我想請問一下我的程式是哪裡出了問題?


#include<Stepper.h>
const int PIRSensor1 = 7 ;                 // 紅外線1動作感測器連接的腳位
const int PIRSensor2 = 6 ;                         // 紅外線2動作感測器連接的腳位
const int stepsPerRevolution1 = 200;      // 馬達1一圈200步
Stepper stepper(200, 8, 10, 9, 11);       // 馬達1的PIN腳
const int senRead6 = 2;                   // 內部紅外線類比PIN腳
const int ledr = 13;                      // 紅色LED的PIN腳
int sensorValue1 = 0;                      // 紅外線動作感測器訊號變數
int sensorValue2 = 0;
int pos = 0;                              // 步進馬達動作變數
int c = 0;                                // 偵測滿為變數

void setup() {
  pinMode(PIRSensor1, INPUT);
  pinMode(PIRSensor2, INPUT);
  stepper.setSpeed(140);                   // 將馬達的速度設定成RPM      
  Serial.begin(9600);
  pinMode(ledr,OUTPUT);
  
}

void loop(){

sensorValue1 = digitalRead(PIRSensor1);  // 讀取 PIR Sensor 的狀態
sensorValue2 = digitalRead(PIRSensor2);  // 讀取 PIR Sensor 的狀態
  
if (sensorValue1 == HIGH && pos == 0 && c==0) {
stepper.step(-750);
pos = 60;
}

else if(sensorValue1 == LOW && pos == 60)  {
stepper.step(750);
pos = 0;
}
if (sensorValue2 == HIGH ) {
   digitalWrite(ledr,HIGH);
   c = 1;  
}

else if  (sensorValue2 == LOW ) {
   digitalWrite(ledr,LOW);
   c = 0;
  }
}
2#
發表於 2016-1-11 20:29:21 | 只看該作者
改成
if (sensorValue1 == HIGH && pos == 0)
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-11-21 21:24 , Processed in 0.162264 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表