คำอธิบาย
ระบบตรวจจับชิ้นงานบนสายพานลำเลียง Detecting workpieces on conveyor system มีฟังก์ชั่นเพิ่มเติม ให้กับเครื่องใช้ต่อพ่วงเช่น เครื่องฉายแสง LED UV, เครื่องคัดแยก
ฟังก์ชั่น
- มีเซนเซอร์จับสิ่งของบน คอนเวเยอร์ หากมีสินค้าวิ่งผ่านมา สามารถสั่งให้เครื่องใช้ต่อพ่วงทำงาน ผ่าน Relay Contact COM, NC, NO
- สามารถตั้งช่วงระยะเวลาการทำงานได้
- มีระบบตรวจจับการหมุนด้วย Rotary encoder หากคอนเวเยอร์หยุดหมุน ไม่ว่าจะด้วยการสั่งให้หยุด หรือหยุดเพราะปัญหาใดๆ ให้ส่งสัญญาณไปปิดเครื่องใช้ต่อพ่วง ผ่าน Relay Contact COM, NC , NO
มีอะไรเตรียมไว้ให้ในชุด
- 1pcs x สายพานลําเลียง CONV-80×12-AC + ชุดปรับความเร็วรอบ AC Motor Speed Control พร้อมใช้งาน
- 1pcs x Photo electric Sensor 1 ชุด
- 1pcs x เสาไฟ Tower Lamp
- 1pcs x กล่องควบคุม Arduino รีเลย์สายไฟและอุปกรณ์ต่อพ่วง
- 1pcs x Rotary Encoder
Arduino Code Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
#define Adj_delay A0 #define Motor 2 #define UV_lamp 3 #define Photo_Sensor 4 #define Encoder 5 const int ledPin = 13; #define OFF LOW #define ON HIGH int SensorState = 0; int sensorValue = 0; long outputValue = 0; unsigned long Count = 0; int buttonState; int ledState = HIGH; unsigned long duration; int lamp_on =0; long count_delay =0; int lastButtonState = LOW; unsigned long lastDebounceTime = 0; unsigned long debounceDelay = 50; void setup(){ pinMode(Motor,OUTPUT); pinMode(UV_lamp,OUTPUT); pinMode(Photo_Sensor, INPUT_PULLUP); pinMode(Encoder,INPUT_PULLUP); digitalWrite(Motor, ON); Serial.begin(9600); } void loop(){ SensorState = digitalRead(Photo_Sensor); int reading = digitalRead(Photo_Sensor); sensorValue = analogRead(Adj_delay); outputValue = map(sensorValue, 0, 1023, 100, 3000); //Serial.print(outputValue); //Serial.println(" ms"); // check to see if you just pressed the button // (i.e. the input went from LOW to HIGH), and you've waited long enough // since the last press to ignore any noise: // If the switch changed, due to noise or pressing: if (reading != lastButtonState) { // reset the debouncing timer lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { // whatever the reading is at, it's been there for longer than the debounce // delay, so take it as the actual current state: // if the button state has changed: if (reading != buttonState) { buttonState = reading; // only toggle the LED if the new button state is HIGH if (buttonState == LOW) { ledState = !ledState; lamp_on =1; } } } // set the LED: digitalWrite(ledPin, ledState); lastButtonState = reading; duration = pulseIn(Encoder, HIGH, 50000); if(duration>0){ if(lamp_on ==1) { digitalWrite(UV_lamp, ON); delay(5); count_delay++; if(count_delay>=outputValue) { count_delay =0; lamp_on =0; } } else { digitalWrite(UV_lamp, OFF); } } if(duration==0){ lamp_on =0; digitalWrite(UV_lamp, OFF); count_delay =0; } // float time=duration/100; // Serial.print("DelT="); // Serial.print(duration); // Serial.println(" ms"); // Serial.print("sensor = "); // Serial.println(sensorValue); // Serial.println(buttonState); // delay(100); } |
รีวิว
ยังไม่มีบทวิจารณ์