查看更多
查看更多
查看更多
查看更多
查看更多
查看更多
查看更多
在自動(dòng)化分揀線上,一個(gè)不起眼的U型裝置精準(zhǔn)捕捉每個(gè)包裹通過瞬間——這正是凹型光電開關(guān)在無聲工作,它的可靠源于精密的硬件與恰到好處的程序邏輯。
凹型光電開關(guān)憑借非接觸式檢測(cè)和卓越的環(huán)境適應(yīng)性,在工業(yè)自動(dòng)化、智能設(shè)備中應(yīng)用廣泛。其U型槽結(jié)構(gòu),一側(cè)為紅外發(fā)射器,另一側(cè)為接收器,通過檢測(cè)物體是否阻斷光路實(shí)現(xiàn)位置、計(jì)數(shù)或安全防護(hù)。真正釋放其潛力,關(guān)鍵在于理解其工作原理并掌握核心編程方法。
凹型光電開關(guān)(Slot-Type或U-Type)的本質(zhì)是一個(gè)光路通斷傳感器:
輸出模式是編程的基礎(chǔ):
無論使用何種控制器,處理凹型光電開關(guān)信號(hào)的核心編程邏輯高度一致:
sensorState = ReadDigitalPin(SENSOR_PIN); // 讀取傳感器引腳狀態(tài)
if (digitalRead(SENSOR_PIN) == LOW) { // 因NPN NO遮擋時(shí)輸出低電平
// 物體存在!執(zhí)行相應(yīng)動(dòng)作(如計(jì)數(shù)+1, 啟動(dòng)電機(jī), 點(diǎn)亮LED)
objectDetected = true;
// ... 執(zhí)行動(dòng)作代碼 ...
} else {
// 無物體, 光路通暢
objectDetected = false;
}
if (digitalRead(SENSOR_PIN) == LOW) { // 初始檢測(cè)到低電平(遮擋)
delay(20); // 延時(shí)20ms
if (digitalRead(SENSOR_PIN) == LOW) { // 再次確認(rèn)仍為低電平
// 確認(rèn)物體穩(wěn)定遮擋,執(zhí)行動(dòng)作
handleObjectDetected();
}
}
// 假設(shè):
// - 傳感器: NO(常開)型 NPN輸出凹型光電開關(guān)
// - 連接到Arduino引腳2 (內(nèi)部已啟用上拉電阻)
const int sensorPin = 2; // 信號(hào)線接Arduino D2
bool lastState = HIGH; // 假設(shè)初始狀態(tài)(無遮擋,內(nèi)部上拉為HIGH)
bool currentState;
unsigned long lastDebounceTime = 0;
const unsigned long debounceDelay = 50; // 消抖延時(shí)50ms
void setup() {
pinMode(sensorPin, INPUT_PULLUP); // 配置為輸入,啟用內(nèi)部上拉電阻
Serial.begin(9600);
}
void loop() {
int reading = digitalRead(sensorPin); // 讀取當(dāng)前狀態(tài)
// 檢查狀態(tài)是否有變化(有抖動(dòng)或真實(shí)變化)
if (reading != lastState) {
lastDebounceTime = millis(); // 重置消抖計(jì)時(shí)器
}
// 等待足夠消抖時(shí)間后判斷
if ((millis() - lastDebounceTime) > debounceDelay) {
// 消抖期結(jié)束后的狀態(tài)是穩(wěn)定狀態(tài)
if (reading != currentState) {
currentState = reading;
// 當(dāng)前狀態(tài)為L(zhǎng)OW (NPN NO傳感器被遮擋時(shí)輸出低電平)
if (currentState == LOW) {
Serial.println("物體檢測(cè)到!");
// 這里執(zhí)行檢測(cè)到物體后的動(dòng)作,例如計(jì)數(shù)器增加
// count++;
} else { // 當(dāng)前狀態(tài)為HIGH (光路通暢)
Serial.println("物體離開。");
// 這里可以執(zhí)行物體離開后的動(dòng)作
}
}
}
lastState = reading; // 更新"上一次"狀態(tài)
}
I0.0
連接一個(gè)PNP型、常開(NO) 凹型光電開關(guān)的輸出。