Robofun 機器人論壇

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

被動感應紅外線問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2015-5-24 06:43:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請問各位大師!
我想讓紅外線亮三秒後停止 (即便物體在紅外線感應範圍內)
可是我這樣寫完程式後發現...物體在紅外線感應範圍內 燈持續亮 離開範圍過後三秒燈熄滅
請問我該如編寫...
const int red = 2;// 紅外線動作感測器連接的腳位
const int led=13;
int sensorValue = 0;// 紅外線動作感測器訊號變數
void setup()
{
  pinMode(red, INPUT);   
  pinMode(led, OUTPUT);      
}

void loop()
{
  // 讀取 PIR Sensor 的狀態
  sensorValue = digitalRead(red);
// 判斷 PIR Sensor 的狀態
  if (sensorValue == HIGH)
{   
    digitalWrite(led, LOW);  // 沒人,關燈 有人,開燈
  }
  else {
    digitalWrite(led, HIGH);   // 有人,開燈
    delay(3000);
  }
}
2#
發表於 2015-5-25 01:45:27 | 只看該作者
回復 1# ooppcur123


   紅外線亮三秒後停止<-這3秒內還保有感應物體的功能嗎?

功能完整要敘述出來,因為我不知道LED需不需要動作!
3#
 樓主| 發表於 2015-5-30 10:29:20 | 只看該作者
我是用LED來(測試是否有物體到達感應位置 若有LED發亮)

我想要讓他變成(物體到達感應範圍位置 LED發亮三秒熄滅)
(物體離開感應位置後 紅外線動作回復正常在感應下個物體到來)
我不知道這樣敘述給大大看 可以嗎...

最近在拼考試比較少上論壇><"
4#
發表於 2015-5-30 20:16:04 | 只看該作者
回復 3# ooppcur123


   
const int red = 2;// 紅外線動作感測器連接的腳位
const int led=13;
int sensorValue = 0;// 紅外線動作感測器訊號變數
void setup()
{
  pinMode(red, INPUT);   
  pinMode(led, OUTPUT);      
}

void loop()
{
  // 讀取 PIR Sensor 的狀態
  sensorValue = digitalRead(red);
// 判斷 PIR Sensor 的狀態
  if (sensorValue == HIGH)
{   
    digitalWrite(led, LOW);  // 沒人,關燈 有人,開燈
  }
  else {
    digitalWrite(led, HIGH);   // 有人,開燈
    delay(3000);
    digitalWrite(led, LOW);
  }
}
5#
 樓主| 發表於 2015-6-4 10:49:46 | 只看該作者
感謝ates1687
我有用你程式測試過了
但測試後有個問題是...(物體必須得離開紅外線感測範圍過三秒後LED才會滅)
可我要做的是( 物體還在紅外線感測範圍內LED發亮三秒後LED熄滅)
const int red = 2;// 紅外線動作感測器連接的腳位
const int led=13;
int sensorValue = 0;// 紅外線動作感測器訊號變數
void setup()
{
  pinMode(red, INPUT);   
  pinMode(led, OUTPUT);      
}

void loop()
{
  // 讀取 PIR Sensor 的狀態
  sensorValue = digitalRead(red);
// 判斷 PIR Sensor 的狀態
  if (sensorValue == HIGH)
{   
    digitalWrite(led, LOW);  // 沒人,關燈 有人,開燈
  }
  else {
    digitalWrite(led, HIGH);   // 有人,開燈
    delay(3000);
    digitalWrite(led, LOW);
  }
}
6#
發表於 2015-6-4 18:33:37 | 只看該作者
回復 5# ooppcur123


const int red = 2;// 紅外線動作感測器連接的腳位const int led=13;
int sensorValue = 0;// 紅外線動作感測器訊號變數
void setup()
{
  pinMode(red, INPUT);   
  pinMode(led, OUTPUT);      
}


void loop()
{
  // 讀取 PIR Sensor 的狀態
  sensorValue = digitalRead(red);
// 判斷 PIR Sensor 的狀態
  if (sensorValue == 0) // 有人,開燈
{   
    digitalWrite(led, HIGH);  
     delay(3000);
    digitalWrite(led, LOW);
  }
  else {
    digitalWrite(led,LOW);  // 沒人,關燈 有人,開燈   
  }
}


我沒有紅外線感測器,所以無法測試,只能去猜程式碼
7#
發表於 2015-7-16 10:47:19 | 只看該作者
回復 6# ates1687


    我沒記錯 人體紅外線 感應器  模組 他本身 可調整 A感應範圍  B延長時間多少? C感應到 是否再延長 感應時間   請從模組上調整 會比較好
剛出來 光是 買那麼  焦電元件感應器 (就要90NT 還要透過 OP 1及放大 2及放大  然後 比較器 輸出 方波)  到現在 有ARDUINO 模組 真方便 給他電源 一個輸出OUT  方波   現在OP放大器 +焦電元件 + 白色漠爾鏡片 =  30多台幣   
這東西 我是先在日本看到的 在他門家門口裝感應器  後來才慢慢 普及
8#
發表於 2015-7-16 14:44:27 | 只看該作者
回復 7# cmcli


   =_=跟你講,老闆會跟你說硬體要錢,但是軟體不用錢....這....你懂得~
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-20 09:05 , Processed in 0.225974 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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