พิมพ์หน้านี้ - มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ

LSVคลังสมองออนไลน์ "ปีที่14"

ห้องโครงงาน - D.I.Y.- เทคโนโลยี่ => ►ถาม-ตอบโครงงาน => ข้อความที่เริ่มโดย: kiano♥ ที่ ตุลาคม 21, 2009, 10:58:35 pm



หัวข้อ: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 21, 2009, 10:58:35 pm
(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/ir001.jpg)

คุณ...ไปปิดไฟสิ จะนอนแล้ว...
คุณนั่นแหละ ไปปิดที...

ต่อไปไม่ต้องเกี่ยงกันเรื่องปิดไฟแล้วครับ ถ้าทำโครงงานนี้
"สวิทช์ปิด-เปิดไฟด้วยรีโมทคอนโทรล"  เป็นโครงงาน PIC Microcontroller มีคุณสมบัติดังนี้คือ
- ต่อเอาพุตได้ 3 ช่อง กำลังไฟฟ้าโหลด 500 วัตต์ต่อช่อง
- ควบคุมการทำงานด้วยรีโมททีวี วีซีดีทั่วไป โดยมีโปรแกรมจำค่าปุ่มกดที่รีโมท
- มีสวิทช์ควบคุมในตัว ในกรณีไม่ใช้รีโมท
- ติดตั้งง่าย ใช้ใส่เข้าไปแทนที่สวิทช์ธรรมดาได้เลย

การทำงานของวงจร ทุกอย่างจะถูกควบคุมการทำงานด้วยไอซี Microcontroller เบอร์ PIC12F629 หรือเรียกสั้นๆว่า MCU
โดย IR Module จะทำหน้าที่รับสัญญาณรีโมทที่ส่งมาจากตัวรีโมท แล้วส่งไปประมวลผลคำสั่งภายใน MCU
เช่นเดียวกันกับ SW จะรับคำสั่งจากการกดของผู้ใช้งาน แล้วส่งผลการกดสวิทช์ไปประมวลคำสั่งภายใน MCU
ซึ่งจะได้ดูรายละเอียดการประมวลผลคำสั่งในหัวข้ออธิบายการทำงานของโค๊ดโปรแกรม
หลักจากประมวลผลคำสั่งแล้ว MCU จะส่งคำสั่งปิด-เปิดไฟไปที่ MOC3063 เพื่อทริกให้ไตรแอคทำงาน หรือหยุดทำงานแล้วแต่คำสั่งทีรับมาจาก MCU
และไตรแอคจะจ่ายไฟให้กับหลอดไฟต่อไป
PZ คือลำโพงเปียซโซ โดยทุกครั้งที่ MCU สั่งงานไปที่ออปโต้จะมีเสียง บี๊ป เพื่อให้รู้ถึงสถานะการทำงาน
(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/IR_Circuit_zps449cddb2.jpg)

รูปด้านล่างจะเป็นลายแผ่น PCB และการวางอุปกรณ์ลงบนแผ่น ในการวางอุปกรณ์จะใ่ส่ด้านที่เป็นทองแดงเลย ต้องดูขาของอุปกรณ์ให้แน่ในก่อนที่จะบัดกรี
เพราะวงจรเกียวข้องกับไฟ 220v โดยตรง ทำให้เกิดความเสียหายได้ง่ายถ้าใส่ผิด
(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/pcbsw_remote_part_zps5b0356ab.png)
(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/pcbsw_remote-Model-0.png)

รูปด้านล่างแสดงไดอะแกรมการต่อสวิทช์รีโมทเข้ากับหลอดไฟ 3 หลอด
(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/ir-004.png)

รูปแสดงหลังจากติดตั้งสวิทช์รีโมทเสร็จแล้ว

(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/sw-001_zpsada588ba.jpg)

(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/sw-006_zpsb66861ff.jpg)

(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/sw-005_zps1cdda88a.jpg)

(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/sw-004_zps42b510ca.jpg)


(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/ir006.jpg)

(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/ir007.jpg)

สำหรับฝาปิดของสวิทช์ ใช้ฝาทึบทัวไปมาเจาะรูปสำหรับรับแสงอินฟาเรด แล้วตัดส่วนนูนของหลอด LED 3 มิลลิเมตรมาติดไว้ที่รูดังรูปด้านล่าง
(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/ir008.jpg)

(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/ir009.jpg)


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: m077531424 ที่ ตุลาคม 22, 2009, 04:31:09 pm
พี่สนใจทำเป็นชุดคิทขายไหมครับผมสนใจมากๆๆครับ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 22, 2009, 05:48:49 pm
วันนี้จะมาดูว่า ไอซีอ่านโค๊ดที่ส่งมาจากรีโมทได้อย่างไรนะครับ

ก่อนอื่นเราต้องรู้ก่อนว่า รีโมทนั้น ส่งอะไรออกมา จึงจะเขียนโปรแกรมให้อ่านโค๊ด แล้วเอาโค๊ดนั้นมาใช้งานได้
การดูว่า รีโมทส่งอะไรมานั้น ก็อาจจะต่อสโคป กับตัว IR Module ส่วนผมใช้วิธีต่อ PIC Kit-2 โดยใช้ฟังก์ชั่น Logic Analyzer
ตัวที่ทำเป็นตัวอย่าง เป็นรีโมทวีซีดี ของจีนแดงทั่วไปครับ  แล้วเราได้อะไร มาดูกันครับ ...

ตามรูปแนบด้านล่าง จะเห็นว่า รีโมททุกตัว จะส่งสัญญาณออกมาคล้ายๆกันครับ
Start Code เป็นสัญญาณอย่างแรกที่ส่งออกมาเลย โดยจะมีสองสถานะ คือ เป็น low 8ms แล้วตามด้วย Hight 4.5ms
Device Code สำหรับรีโมทตัวนี้ จะมีทั้งหมด 16 บิต ถ้าจะแปลตามตัวก็คือ เป็นรหัสของรีโมทตัวนั้นๆ คือถ้าเรากดปุ่มไหนของรีโมท มันก็จะส่งสัญญาณแบบนี้ออกมาก่อนครับ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: m077531424 ที่ ตุลาคม 22, 2009, 06:36:21 pm
พี่ครับผมPMไม่ได้ไม่ทราบว่าเป็นอะไร
รบกวนพี่PMราคามาละกันครับ
แล้วจะทำให้มีหลายๆๆช่องได้ไหมครับ(มากกว่า3)

ได้ครับ ทำกี่ช่องก็ได้
-ต้องแก้ไขวงจรใหม่
-ต้องแก้ไขโค๊ดใหม่

kiano


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 22, 2009, 08:05:20 pm
จากรูปด้านบน จะเห็นแล้วนะครับ ว่าสัญญาณที่ส่งมานั้น ระหว่าง Logic 0 กับ Logic 1 นั้น มีอะไรที่ต่างกัน
ครับ อธิบายเพิ่มคือ

0 จะประกอบด้วย คาบเวลาที่เป็น low 500us และคาบเวลาที่เป็น hi 500us
1 จะประกอบด้วย คาบเวลาที่เป็น low 500us และคาบเวลาที่เป็น hi 1800us

จากรูปด้านล่าง เป็นโค๊ดที่ส่งมาจากรีโมท ยกตัวอย่าง 5 ปุ่มครับ
จะเห็นได้ว่า 16 บิตแรก จะเหมือนกันทุกปุ่ม นั่นคือ device id data นั่นเอง
ต่อมา 16 บิตด้านหลัง จะเป็น bottom data ซึ่งแต่ละปุ่มนั้น จะมีโค๊ดที่ส่งออกมาไม่เหมือนกัน
และเราจะใช้ส่วนที่ไม่เหมือนกันนี่เองครับ มาใช้งาน ในโครงงานของเรา

ไม่รู้ผมเรียกชื่อต่างๆถูกหรือไม่นะครับ จำไม่ค่อยได้ครับ ว่าเค้าเรียกว่าอะไร
ดูรูปอธิบายแล้วอย่างเพิ่งตาลายนะครับ ผมทำเองผมยังตาลายเลย
กระทู้ต่อไปจะเป็นโฟว์ชาร์ทการทำงานของโปรแกรมครับ
กระทู้ต่อไปสงสัยต้องทำรูปเหนื่อยเลยครับ

รูปประกอบ   http://upload.mwake.com/v3.php?id=AO/FnkE0Liqej.jpg


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: ถาวร-LSVteam ที่ ตุลาคม 22, 2009, 08:10:33 pm
บอกขายได้เลยครับ ทางเว็บสนับสนุน คนที่คิดค้นทำ ครับ
 ชุดแรกเป็นเฮดพัลท์ จะบอกชนิดของอุปกรณ์ IRว่าเป็นคำสั่งของอะไร เช่น TV  VDO  หรือแอร์ ฯ ชุดที่2 น่าจะเป็นอีควอไรเซอร์พั้ลท์ เป็นเหมือนการ์ด กั้น คำสั่ง ซึ่งเป็นชุดที่3 ถ้าผมจำไม่ผิดนะครับเพราะว่าเรียนมาก็20ปีเข้าไปแล้ว อาจจะจำผิดมั่งก็ได้ จะหาหนังสือกลับมาอ่านคงรื้อบ้านกันไม่น้อย


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: ถาวร-LSVteam ที่ ตุลาคม 22, 2009, 10:06:22 pm
แผ่นปริ้นจ้างทำเขาคิดเป็นตารางนิ้วครับ ผมว่าแรกๆทำเองลดต้นทุนครับ ใช้แผ่นอีพร๊อกซี่ ใช้ดรายฟลีม หัดสักพักก็จะออกมาสวยครับ ก็เหลือแต่เคลือบสีปริ้น ก็จะออกมาสวยแล้วครับ คนมีความคิดสร้างสรรค์น่าสนับสนุนครับ
  ควรหารีโหมดราคาถูกตัวละ20กว่าบาทมาใช้ครับ เพราะเจอต่างยี่ห้อ พั้ลท์คำสั่งมันจะไม่ตรงกันครับ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 23, 2009, 01:27:29 am
ขอต่ออีกนิดครับ...
มาดูโฟว์ชาร์ทการทำงานของโปรแกรมกันครับ จะว่าในส่วนของโปรแกรม main ก่อนเลยครับ
ดูตามภาพแล้ว ก็ไม่ได้มีออะไรมากมายครับ คือ ถ้าไม่มีการกดสวิทช์ หรือกดรีโมท โปรแกรมจะวนภายในลูป main
เพื่อคอยตรวจสอบ ว่ามีการกด สวิทช์ หรือกดรีโมทหรือไม่ แค่นั้นเองครับ แต่ถ้ามีการกดรีโมท มันก็จะกระโดดไปทำงาน
ในส่วนของโปรแกรม อ่านค่ารีโมท ถ้ากดสวิทช์ มันก็จะกระโดดไปทำงานในส่วนของโปรแกรมอ่านค่าสวิทช์


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 23, 2009, 01:36:55 am
ดูโฟว์ชาร์ท แล้วมาดูโค๊ดกันเลยครับ ...

MAIN:
   DECFSZ      STACK_0, F
   GOTO      $-1
   BTFSS      IR
   GOTO      READ_IR
   DECFSZ      STACK_0, F
   GOTO      $-1
   BTFSC      SW
   GOTO      READ_SW
   GOTO      MAIN

นี่เลยครับ ไม่มีอะไรมากมาย ในโค๊ดส่วนนี้ แต่จะเห็นว่ามีอะไรเพิ่มเข้ามานิดหน่อย คือ
หน่วงเวลาครับ ผมให้มันหน่วงเวลาสักนิด เพิ่อป้องกันการทำงานพลาดจาก นอยส์ที่เข้ามาทาง AC Line นั่นเองครับ

มีส่วนแตกต่างกันระหว่างการกดสวิทช์ กับการกดรีโมทคือ ปรกติ ถ้าไม่มีการกดสวิทช์ ขาอินพุตของสวิทช์ จะเป็น 0 ถ้ากดจะเป็น 1
แต่ขา อินพุตของ IR จะกลับกันกับสวิทช์ครับ คือปรกติถ้าไม่กดรีโมท จะอยู่ในสถานะ 1 เนื่องจาก อาร์พูลอัพที่ต่ออยู่กับขาอินพุตนั่นเองครับ


ปล.นี่เป็นโครงงานชิ้นแรกที่เขียนด้วยโค๊ด asm จริงๆครับ ถ้าท่านใดมีข้อเสนอแนะ หรือความคิดเห็นเพิ่มเติม ก็แทรกได้เลยนะครับ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 23, 2009, 01:50:18 am
ต่อมาเป็นโฟว์ชาร์ทการทำงานของส่วนอ่านค่าจากการกดสวิทช์
ในส่วนนี้ จะทำงานโดยการอ่านว่า สวิทช์ถูกกดกี่ครั้ง ในเวลาที่กำหนดไว้
ซึ่งจะนำค่าที่อ่านได้จากการกด ไปทำงานแบบนี้ครับ

กด 1 ครั้ง ให้สั่ง ปิด-เปิด หลอดไฟหลอดที่ 1
กด 2 ครั้ง ให้สั่ง ปิด-เปิด หลอดไฟหลอดที่ 2
กด 3 ครั้ง ให้สั่ง ปิด-เปิด หลอดไฟหลอดที่ 3

กด 6 ครั้ง ตั้งค่าปุ่มกดที่รีโมท ปุ่มที่ 1 ที่ควบคุมการทำงาน ให้ปิดหลอดไฟทุกหลอด หรือทุก CH นั่นเอง
กด 7 ครั้ง ตั้งค่าปุ่มกดที่รีโมท ปุ่มที่ 2 ที่ควบคุมการทำงาน ปิด-เปิด หลอดไฟหลอดที่ 1
กด 8 ครั้ง ตั้งค่าปุ่มกดที่รีโมท ปุ่มที่ 3 ที่ควบคุมการทำงาน ปิด-เปิด หลอดไฟหลอดที่ 2
กด 9 ครั้ง ตั้งค่าปุ่มกดที่รีโมท ปุ่มที่ 4 ที่ควบคุมการทำงาน ปิด-เปิด หลอดไฟหลอดที่ 3
กด 10 ครั้ง ตั้งค่าปุ่มกดที่รีโมท ปุ่มที่ 5 ที่ควบคุมการทำงาน ให้เปิดหลอดไฟทุกหลอด หรือทุก CH นั่นเอง

จะเห็นว่า ฟังก์ชั่นของสวิทช์ จะมีส่วนเกี่ยวข้องกับฟังก์ชั่นอ่านค่า จากรีโมทด้วย ตัวอย่าง ถ้ากดสวิทช์ 6 ครั้ง มันก็จะไปรอรับสัญญาณจากรีโมท
เพื่อรอให้เรากดปุ่ม ที่ต้องการสั่งงานให้ปิดหลอดไฟทุกหลอด หลังจากได้ค่าที่ส่งมาจากรีโมทแล้ว มันจะสั่งให้ eeprom เก็บค่าที่อ่านได้
เพื่อการใช้งานครั้งต่อไป ค่าที่ตั้งเอาไว้จะได้ไม่ลบหาย แม้เวลาไฟดับ

ด้วยเหตุที่ต้องเกี่ยวข้องกับฟังก์ชั่น IR ด้วย จึงต้องเพิ่มทางเลือกให้มันครับ โดยการกำหนดตัวแปรที่ชือ case ให้มัน โดยตัว case นี้จะเป็นตัวกำหนดว่า
หลังจากอ่านค่า IR เสร็จแล้ว ให้ไปทำงานที่ส่วนไหนต่อ
เพื่อเข้าใจง่ายขึ้น ดูโฟว์ชาร์ทด้านล่างประกอบเลยครับ
เป็นโฟว์ชาร์ทการทำงานรวมของฟังก์ชั่นสวิทช์


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 23, 2009, 06:45:33 pm
หลังจากดูแล้วว่าฟังก์ชั่นสวิทช์มีการทำงานโดยรวมเป็นอย่างไร
ต่อไปเราจะมาดูรายละเอียดของฟังก์ชั่นนี้ ว่าแต่ละส่วนนั้นทำงานอย่างไร

READ_SW:
   CLRF           SW_DATA
   CALL           BEEP
   INCF           SW_DATA, F
   MOVLW      0X50
   MOVWF      STACK_4
   DECFSZ      STACK_3, F
   GOTO         $-1
   DECFSZ      STACK_4, F
   GOTO         $-3
   BTFSC        SW                ;ถ้ายังกดค้างอยู่ ให้กลับไป delay
   GOTO        $-7

ตามโค๊ดด้านบนอธิบายได้ว่า หลังจากที่สวิทช์ถูกกดไป 1 ครั้งจากฟังก์ชั้นเมน
แล้วยังไม่มีการปล่อยสวิทช์ ตัวแปรที่เก็บค่าการกดสวิทช์จะถูกเพิ่มขึ้น 1 ค่า
แล้วจะหน่วงเวลาก่อน 20ms เพื่อรอการปล่อยมือจากสวิทช์
แต่ถ้าหน่วงเวลาแล้ว ก็ยังไม่มีการปล่อยมืออีก จะกลับไปหน่วงเวลาต่อ
ซึ่งโฟว์ชาร์ทการทำงาน ดูได้จะรูปแนบด้านล่างครับ จะเห็นภาพการทำงานที่ชัดเจนขึ้น


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 23, 2009, 07:09:16 pm
หลังจากที่มีการปล่อยสวิทช์แล้ว โปรแกรมจับเวลาก็จะเริ่มจับเวลา
ว่า ภายในเวลา 3 วินาทีนั้น มีการกดสวิทช์ไปกี่ครั้ง
โปรแกรมจับเวลาจะเริ่มจากแถว SW_L1: ไปจนถึง แถว SW_L2:

   MOVLW     0X07              ;จับเวลา 3 sec มีการกดกี่ครั้ง
   MOVWF     STACK_2
SW_L1:
   DECFSZ     STACK_0, F
   GOTO        SW_L2
   DECFSZ    STACK_1, F
   GOTO       SW_L1
   DECFSZ    STACK_2, F
   GOTO       SW_L1
   GOTO       SW_L3            ;สิ้นสุดการจับเวลา
SW_L2:
   BTFSS      SW                  ;ช่วงที่จับเวลามีการกดสวิทช์หรือไม่
   GOTO      SW_L1
   INCF        SW_DATA, F     ;ถ้ากด ก็ให้เพิ่่มค่าตัวแปร
   CALL        BEEP
   MOVLW   0X50
   MOVWF   STACK_4
   DECFSZ   STACK_3, F
   GOTO      $-1
   DECFSZ   STACK_4, F
   GOTO      $-3
   BTFSS      SW                 ;ยังกดค้างอยู่หรือไม่
   GOTO      SW_L1
   GOTO      $-8                  ;ถ้ายังกดค้างอยู่ให้กลับไป delay จนกว่าจะไม่กดค้าง

ในระหว่างการจับเวลา โปรแกรมจะกระโดดไปตรวจสอบสวิทช์อยู่ทุกรอบไซเคิล
เพื่อดูว่ามีการกดสวิทช์หรือไม่ ถ้ากดสวิทช์ แต่ยังไม่ปล่อย ก็จะมีการหน่วงเวลาซ้ำเข้าไปอีก
ซึ่งจะเริ่มจากแถว SW_L2: ไปจนจบโปรแกรมอ่านสวิทช์

หลังจากที่ครบเวลา 3 วินาทีแล้ว เราจะได้อะไรจากโปรแกรมอ่านสวิทช์
ครับ จะได้ค่าการกดสวิทช์ นั่นก็คือค่า sw_data นั่นเอง ซึ่งจะใช้ค่านี้
ไปสั่งงานในโปรแกรมส่วนต่อไป...

รูปประกอบ  http://upload.mwake.com/v3.php?id=Or/EfPuWPJw9e.jpg


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 23, 2009, 07:22:55 pm
คิดไม่ออกครับ ว่าต่อไปจะอธิบายอย่างไร เพราะมันทำงานเกี่ยวเนื่องกัน
เอาเป็นว่ามาดูโฟว์ชาร์ทรวมของโปรแกรมกันดีกว่าครับ ถ้าไม่เข้าใจจุดไหนก็ถามแทรกมาได้เลยครับ
ส่วนผมจะอธิบายไปเรื่อยๆ เท่าที่จะคิดได้ แต่ส่วนสำคัญก็คงจะเป็นส่วนของ
โปรแกรมอ่านค่า จากรีโมทนั่นเองครับ จะมาดูกันว่า มันใช้ได้กับทุกรีโมทอย่างที่ผมเกริ่นไว้ได้จริงหรือไม่

รูปประกอบ   http://upload.mwake.com/v3.php?id=zZ/o2zLV0fI9I.jpg


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 23, 2009, 07:37:54 pm
จากรูปโฟว์ชาร์ทรวมการทำงานด้านบน จะเห็นได้ว่า ผมได้แยกสีไว้ครับ
อธิบายได้ดังนี้คือ...

สีเขียว จะเป็นฟังก์ชั่นเมนของโปรแกรม ที่จะคอยตรวจสอบการสั่งงานจาก ยูสเซอร์
จะดูว่า มีการกดสวิทช์ หรือมีการกดรีโมทหรือไม่ ถ้าไม่ได้กดอะไร มันก็จะทำงานวนอยู่ในลูปของมัน

สีฟ้า จะเป็นส่วนของโปรแกรมอ่านค่าจากการกดสวิทช์ จะนับว่า เรากดสวิทช์ไปกี่ครั้ง ในเวลา 3 วินาที
กด 1 ครั้ง โปรแกรมจะกำหนดให้ ค่า IR เท่ากับค่าที่อ่านได้จากอีพรอม นั่นก็คือปุ่มที่ 2 แล้วมันจะไปสั่งงาน
ให้โปรแกรมควบคุมหลอดไฟทำงาน โดยจะตรวจสอบสถานะของหลอดไฟหลอดที่ 1 ถ้าเปิดอยู่ มันก็จะสั่งให้ปิด
ถ้าหลอดไฟปิดอยู่ มันก็จะสั่งให้เปิด ซึ่งโปรแกรมควบคุมหลอดไฟ ก็จะอยู่ในกลุ่มสีม่วงนั่นเองครับ

แต่ถ้ากดสวิทช์ 6 ครั้งล่ะ มันก็จะสั่งงานในโหมดตั่งค่าปุ่มกดครับ โดยมันจะกระโดดไปรอรับคำสั่งจากตัวรีโมท
รอให้เรากดปุ่มที่รีโมท แล้วก็จะจำค่าปุ่มนั่นเอาไว้ เพื่อนำมาใช้เป็นค่าอ้างอิงให้กับโปรแกรม ควบคุมหลอดไฟนั่นเอง

สีแดง จะเป็นโปรแกรมอ่านโค๊ดจากรีโมท จะอ่านได้สูงสุดขนาด 16 bit ซึ่งจะได้อธิบายในหัวข้อต่อไปครับ
หลังจากอ่านโค๊ดจากตัวรีโมทได้ 16 บิตแล้ว มันก็จะนำค่าที่อ่านได้ มาเปรียบเทียบกับค่าอ้างอิง
ที่ได้จากการตั้งค่าตามคำอธิบายด้านบน ถ้าค่าตรงกัน มันก็จะสั่งให้หลอดไฟ เปิด หรือ ปิด


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: Ptn-LSVteam♥ ที่ ตุลาคม 23, 2009, 09:03:22 pm
แนวคิดการออกแบบดีมากๆครับ     smiley4


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 23, 2009, 09:20:52 pm
มาดูโปรแกรมอ่านค่ารีโมทกันครับ
เริ่มจากอ่าน เฮดพัลล์ ก่อนครับ ถ้าดูรูปด้านล่างประกอบ จะเห็นว่า เฮดพัลล์ ประกอบไปด้วย
Low 8 ms ตามมาด้วย HI 4.5 ms
ซึ่งรีโมทแต่ละตัว จะส่งออกมาเวลาจะใกล้เคียงกัน งั้นผมก็เลยกำหนดเอาเลยว่า

ช่วงที่เป็น Low นั้น มันจะอยู่ในเวลาระหว่าง 255 us - 10000 us ถ้าไม่ได้อยู่ในช่วงเวลานี้
ก็แสดงว่า มันไม่ใช่เฮดพัลล์ ให้กระโดดไป Error

ช่วงที่เป็น่ HI ก็จะเขียนโปรแกรมอ่านลักษณะเดียวกันครับ คือจับเวลาว่า มันจะต้องอยู่ในช่วงเวลา 255 - 10000 us
ถ้าไม่ได้เวลาตามนี้ ก็ให้โดดไปที่ Error
ดูโค๊ดกันเลยครับ ส่วนของการอ่านเฮดพัลล์

MOVLW    0X08                    ;จับเวลา 10 ms   
MOVWF    STACK_1
DECFSZ    STACK_0, F
GOTO       $+4
DECFSZ    STACK_1, F
GOTO       $-3
GOTO       ERR                       ;ถ้านานเกิน 10 ms ให้โดดไป Error
INCF        COUNT_0, F
BTFSC      STATUS, Z
INCF        COUNT_1, F
BTFSS      IR
GOTO       $-9
                                              ;จับเวลาน้อยกว่า 255 us หรือไม่
MOVLW    0X01
SUBWF    COUNT_1, W
BTFSS      STATUS, C
GOTO       ERR                        ;ถ้าน้อยกว่า 255 us ให้โดดไป Error

รูปประกอบ    http://upload.mwake.com/v3.php?id=b0/UkKQW3Jcjo.jpg


ขอขอบคุณ คุณพี่ Ptn-LSVteam♥ มากๆครับ ที่แวะมาให้กำลังใจครับ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 23, 2009, 09:57:33 pm
หลังจากอ่านเฮดพัลล์เสร็จแล้วโดยไม่มีการเออเร่อ คือถ้ามันเออเร่อ โปรแกรมมันจะเข้ามาในส่วนต่อไปนี้ไม่ได้
จึงไม่ต้องกังวลเลย ว่ามันจะแอบเปิดไฟของเราโดยที่เราไม่ได้สั่ง... และถึงแม้นอยส์ หรืออะไรก็แล้วแต่
ทำให้มันทำงานพลาด มันสามารถผ่านด่านเออเร่อสองครั้งของการอ่านเฮดพัลล์
แล้วเข้ามาส่วนนี้ได้ แต่มันก็ต้องเจอด่านอรหันต์ด่านต่อไปครับ คือ Lighting control นั่นเองครับ

ก่อนอื่นเรามาวิเคราะห์กันอีกทีครับ ว่าสัญญาณโค๊ดที่ส่งมาจากรีโมทนั้น หน้าตาเป็นอย่างไร
ดูจากรูปแนบแล้วจะเห็นว่า ถ้ามันส่ง Logic 0 ออกมา มันจะประกอบไปด้วย 2 สถานะ นั่นคือ
เป็น LO 500us แล้วเป็น HI 500us

แล้วถ้ามันส่ง Logic 1 ออกมา มันจะประกอบไปด้วย 2 สถานะเหมือนกัน แต่คาบเวลาจะต่างกัน นั่นคือ
เป็น LO 500us แล้วเป็น HI 1800us       ....... ข้อมูลอ้างอิงจากรีโมทเครืองวีซีดีจีนแดงทั่วไป

เอาล่ะครับ เราจะเขียนโปรแกรมอย่างไร ให้มันแยกแยะออก ว่าอันไหนเป็น Logic 0 หรือ 1 แถมยังต้องให้ครอบคลุม
ได้กับรีโมททุกยี่ห้ออีก เพราะแต่ละยี่ห้อ มันต้องส่งออกมาคาบเวลาไม่เหมือนกันแน่นอน แถมจำนวนบิตที่ส่งออกมา
ก็อาจจะไม่ใช่ 32 บิตเหมือนกับรีโมทยี่ห้อนี้....


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 24, 2009, 08:11:09 am
เอางี้นะครับ เราปล่อยวางก่อน อย่าเพิ่งไปคิดอะไรมาก อย่าเพิ่งไปคิดว่ามันส่ง device code , data bottom อะไรของมันก็ให้มันส่งมา
ช่วงที่มันเป็น LO เราจะจับเวลาลองดู เพิ่มค่าเวลาในตัวแปรของเรา ดูซิ ว่าตัวแปรของเรามันจะได้ค่าเท่าไหร่กัน
โดยโค๊ดจับเวลาช่วงที่มันเป็น LO 500us ตามด้านล่างเลยครับ

IR_L1:
  CLRF         STACK_1
IR_L2:
  MOVLW    1
  ADDWF     STACK_1, 1      ;เก็บเวลาช่่วง 0 ไว้ที่ตัวแปร STACK_1
  NOP
  NOP
  NOP
  NOP
  NOP
  BTFSC      STATUS, C        ;stack-1 อยู่ระหว่าง 0~50 ถ้าวนเกิน 255 ให้ไปที่ case( 500us / 10us = 50 )
  GOTO      CASE
  BTFSS      IR
  GOTO       IR_L2              ;ถ้า ir ยังเป็น 0 ก็ให้กลับไปเพิ่มเวลา

จากโค๊ดจะเห็นได้ว่า ในการนับวน 1 รอบหรือเพิ่มค่าตัวแปร 1 ครั้งนั้น ต้องใช้คำสั่งถึง 10 คำสั่ง ซึ่งแต่ละคำสั่งจะใช้เวลา 1 us
แล้วช่วงเวลาที่มันเป็น LOW นั้นมันใช้เวลา 500 us ใช่ไหมครับ งั้นตัวแปรของเราจะมีค่า 500/10 = 50 แล้วเก็บค่าไว้ในตัวแปร stack_1
ซึ่ง stack_1 นั้นจะรับค่าได้สูงสุดคือ 255 มันจะมีรีโมทตัวไหนบ้างนะ ที่จะส่งดาต้า LOW ออกมาเกิน 255x10 = 2550 us โอเคครับ คงไม่มีแน่ๆ
ผมคิดว่าอย่างนั้นนะครับ ดังนั้นค่าที่จับเวลาได้ ผมจึงใช้แค่ 8 บิต หรือใช้ตัวแปรแค่ตัวเดียวครับ

หลังจากที่ลองจับเวลาช่วงเป็น LOW และได้ค่าตัวแปร STACK_1 มาแล้ว
จะมาลองจับเวลาช่วงเป็น HI กัน โดยโค๊ดตามด้านล่างครับ

   CLRF       STACK_2
IR_L3:
   MOVLW       1
   ADDWF     STACK_2, 1               ;เก็บค่าที่นับได้ ไว้ที่ตัวแปร STACK_2
   NOP
   NOP
   NOP
   NOP
   NOP
   BTFSC       STATUS, C           ;stack-2 อยู่ระหว่าง 0~180 ถ้าวนเกิน 255 ครั้งให้ไปที่ case ( 1800us / 10us = 180 )
   GOTO        CASE
   BTFSC       IR
   GOTO        IR_L3                            ;ถ้า ir ยังเป็น 1 ก็ให้กลับไปเพิ่มเวลา

จะเห็นว่าเป็นโค๊ดตัวเดียวกันกับตัวจับเวลา LOW เพียงแต่จะเก็บค่าที่ได้ไว้ใน stack_2
มาดูกันครับ stack_2 จะมีค่าเท่าไหร่ 500/10 = 50
ตอนนี้เราจะได้ค่าตัวแปร 2 ตัวแล้วนะครับ คือค่าตัวแปร stack_1 = 50 และตัวแปร stack_2 =50
ซึ่งคาบเวลาเท่ากันก็หมายถึงเป็น Logic 0 นั่นเองครับ
แล้วถ้าตัวแปรที่ได้เป็นอย่างนี้ครับ stack_1 = 50 และตัวแปร stack_2 = 180 (1800us / 10 = 180)
ถ้าค่าตัวแปรออกมาแบบนี้ ก็หมายถึงรีโมทมันส่งค่า Logic 1 ออกมานั่นเอง
ต่อไปจะดูโค๊ดตัวที่จะเป็นตัวตัดสินว่า บิตไหนจะเป็น 0 หรือบิตไหนจะเป็น 1

    MOVF       STACK_1, W
    ADDWF    STACK_2, F
    MOVLW   0X9B
    SUBWF     STACK_2, F
    BTFSC      STATUS, C
    GOTO       $+3
    BCF           IR_DATA, 0
    GOTO        IR_L1
    BSF            IR_DATA, 0
    GOTO        IR_L1

จากโปรแกรมด้านบนอธิบายได้แบบนี้ครับ...
จะเห็นว่า จะนำค่า stack_1 กับ stack_2 มาบวกกัน แล้วลบด้วย 155
(Stack_1+stack_2)-155
แล้วจะตรวจสอบผลลัพธ์ที่ได้ ถ้าติดลบ ก็หมายถึง เป็น Logic 0 ถ้าค่าที่ได้ออกมาเป็นเลขบวก ก็หมายถึง Logic 1
ลองแทนค่าตัวแปรดูนะครับ
(50+50)-155 = -55    --->  Logic 0
(50+180)-155 = 75   --->  Logic 1


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: Nattawut-LSV Team ที่ ตุลาคม 24, 2009, 08:36:49 am
เข้ามาดู มาเป็นกำลังใจให้ด้วยคนครับ .....  HAPPY2!!  :)  ping!


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: ลุงเคี้ยง-LSVteam♥ ที่ ตุลาคม 24, 2009, 09:23:58 am
ผมขอสนับสนุนอีกคนครับ  HAPPY2!! :-[ THANK!! :-*


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: alassy ที่ ตุลาคม 25, 2009, 11:26:29 pm
เขียนเป็นแอสแซมบลี้เลยหรือครับท่าน มึนจัง อิอิ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: moo ที่ ตุลาคม 28, 2009, 06:19:54 am
น่าสนใจมากครับขอถามนิดนึ่งเวลาโปรแกรม IC ใช้วงจรอะไรครับ :D

ผมใช้ pic Kit-2 OEM ครับ
จะมีวิธีการโปรแกรมให้ดูด้วยครับ ในช่วงท้าย
รวมทั้งการประกอบ การใช้งาน แต่ต้องรอหน่อยครับ
และจะหาวิธีโปรแกรมที่ง่ายที่สุด สำหรับคนที่ยังไม่มีเครื่องโปรแกรมครับ
จะได้ทำได้ทุกคนที่อยากทำ
kiano


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ตุลาคม 28, 2009, 08:12:56 pm
หลังจากที่โปรแกรมคำนวนเวลาของพัลล์แต่ละลูกออกมาและได้รู้ว่าพัลล์ลูกไหนเป็น 0 หรือ 1 แล้วก็จะเก็บค่าเอาไว้ในตัวแปร 2 ตัวนั่นก็คือ IR_DATA และ IR_DATA_2 เราจะเขียนโปรแกรมได้ดังนี้ครับ

IR_L1:
  CLRF      STACK_1
IR_L2:
  MOVLW 1
  ADDWF  STACK_1, 1
  NOP
  NOP
  NOP
  NOP
  NOP
  BTFSC     STATUS, C
  GOTO      CASE
  BTFSS      IR
  GOTO      IR_L2
  CLRF       STACK_2
IR_L3:
  MOVLW   1
  ADDWF    STACK_2, 1
  NOP
  NOP
  NOP
  NOP
  NOP
  BTFSC      STATUS, C
  GOTO       CASE
  BTFSC      IR
  GOTO       IR_L3

  RLF          IR_DATA_2, F
  BTFSS      IR_DATA, 7
  GOTO      $+3
  BSF         IR_DATA_2, 0
  GOTO      $+2
  BCF         IR_DATA_2, 0
  RLF         IR_DATA, F
  MOVF      STACK_1, W
  ADDWF   STACK_2, F
  MOVLW   0X9B
  SUBWF    STACK_2, F
  BTFSC     STATUS, C
  GOTO      $+3
  BCF         IR_DATA, 0
  GOTO      IR_L1
  BSF         IR_DATA, 0
  GOTO      IR_L1

จากโค๊ดส่วนของการอ่านค่าที่รีโมทส่งมา จะเห็นว่าโปรแกรมจะไม่แยกแยะ ว่ารีโมทส่งอะไรออกมา
จะอ่านแค่เฮดพัลล์ และโค๊ด 16 บิทหลังสุดดังนั้น โค๊ดนี้จึงอ่านได้กับทุกรีโมทครับ
เพราะหลังจากอ่านแล้ว มันก็จะเก็บค่าที่อ่านได้ ไว้ใน ee-prom เพื่อเป็นค่าอ้างอิง
ในการควบคุมการปิด-เปิดหลอดไฟ ซึ่งจะดูได้จากส่วนของโปรแกรมคุมหลอดไฟต่อไปครับ
ดูการเก็บค่าไว้ในตัวแปรได้จากรูปแนบครับ

รูปประกอบ  http://upload.mwake.com/v3.php?id=Hm/I198UMvDuI.jpg


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: msoamsoa ที่ พฤศจิกายน 02, 2009, 10:51:14 pm
น่าสนใจมากเลยครับ hungry2 แต่ผมอ่านแล้วไม่ค่อยจะเข้าใจเท่าไรเลยอ่าครับ พื้นฐานไม่มี  lsv-smile  olleyes2


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: ถาวร-LSVteam ที่ พฤศจิกายน 03, 2009, 09:19:06 am
ผมแนะนำเรื่องตัวสวิท หน่อยครับ จะใช้ ฝาปิด ใหญ่ เป็นตัวกดสวิทใช่รึเปล่า  ถ้าใช่ ผมแนะนำให้ ใส่สวิท ที่4มุม มุมละตัวครับ แทนที่จะใส่ตรงกลางเพียงตัวเดียว  

--------------------------------------------------------------

ไม่ค่อยเข้าใจที่อาจารย์ถาวรแนะนำครับ คือหมายถึงใส่ตัวละมุม เพื่อรับแรงกดได้ทั่วแบบนี้หรือไม่ครับ
หรือ ใส่ตัวละมุม แล้วให้แยกฟังก์ชั่นการทำงานของสวิทช์แต่ละตัวออก ตัวหนึ่ง ก็คุมไฟหลอดหนึ่ง แบบนี้หรือไม่ครับ

พอดีมีคนแนะนำผมมาว่า น่าจะแยกสวิทช์ออก ไม่ให้มีสวิทช์เดียว เพราะตอนใช้งานจะไม่ค่อยสะดวก ถ้ายังไงคงจะปรับปรุงแล้วทำเป็นอีกเวอร์ชั่นน่ะครับ
ขอบคุณครับ
kiano


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: pop_9919 ที่ พฤศจิกายน 10, 2009, 03:32:33 pm
กด 1 ครั้ง ให้สั่ง ปิด-เปิด หลอดไฟหลอดที่ 1
กด 2 ครั้ง ให้สั่ง ปิด-เปิด หลอดไฟหลอดที่ 2
กด 3 ครั้ง ให้สั่ง ปิด-เปิด หลอดไฟหลอดที่ 3

กด 6 ครั้ง ตั้งค่าปุ่มกดที่รีโมท ปุ่มที่ 1 ที่ควบคุมการทำงาน ให้ปิดหลอดไฟทุกหลอด หรือทุก CH นั่นเอง
กด 7 ครั้ง ตั้งค่าปุ่มกดที่รีโมท ปุ่มที่ 2 ที่ควบคุมการทำงาน ปิด-เปิด หลอดไฟหลอดที่ 1
กด 8 ครั้ง ตั้งค่าปุ่มกดที่รีโมท ปุ่มที่ 3 ที่ควบคุมการทำงาน ปิด-เปิด หลอดไฟหลอดที่ 2
กด 9 ครั้ง ตั้งค่าปุ่มกดที่รีโมท ปุ่มที่ 4 ที่ควบคุมการทำงาน ปิด-เปิด หลอดไฟหลอดที่ 3........

คือผมสงสัยว่าเรากดรีโมท 1ครั้ง เปิด-ปิดหลอด1
กด2ครั้ง เปิดปิดหลอด2...คือว่ากด2ครั้งปุ่มเดี๋ยวกันหรือคนละปุ่ม
แล้วถ้าเราจะตั้งให้มันเป็น 1หลอดต่อหนึ่งปุ่มบนรีโมทได้หรือป่าวคับ

--------------------------------

ถ้าดูตามวงจร จะเห็นว่ามันมีสวิทช์อยู่ตัวเดียวครับ ซื่งการทำงานของสวิทช์ตามด้านบนวรรคแรก
ส่วนการทำงานที่รีโมทนั้น จะมีปุ่มสั่งงานทั้งหมด 5 ปุ่มดังนี้

1 เปิดทุกหลอด
2 ปิด-เปิด หลอดที่ 1
3 ปิด-เปิด หลอดที่ 2
4 ปิด-เปิด หลอดที่ 3
5 ปิดหมดทุกหลอด

รีโมททั่วไปมันมีหลายปุ่มใช่ไหมครับ แต่ผมใช้แค่ 5 ปุ่มนี้มาใช้งาน
ซึ่งการตั้งค่าที่ตัวรีโมท ว่าปุ่มไหนสั่งงานอะไร ก็ย้อนกลับไปอ่านด้านบนวรรคสอง
kiano


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: ถาวร-LSVteam ที่ พฤศจิกายน 10, 2009, 07:11:06 pm
เป็นสวิทขนานกันไงครับ ไม่ว่าจะกดด้านไหน ลืมไปคำสั่งแบบนี้จะมีปัญหาเรื่องการกดอีกเพราะว่ามันอาจจะนับเป็นครั้งไปเลย ถ้าสวิทเริ่มไม่ดี ผมว่าใช้สักพักจะมีปัญหาเรื่องสวิทตัวนี้แน่นอน


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ พฤศจิกายน 15, 2009, 09:09:18 am
หลังจากหายไปนาน จะว่ากันต่อในส่วนของโค๊ดตัวที่คุมการปิด เปิดหลอดไฟครับ

CONTROL:
     MOVF           BOTTOM_0, W
     XORWF         IR_DATA, W
     BTFSS          STATUS, Z
     GOTO           B1
     MOVF           BOTTOM_00, W
     XORWF        IR_DATA_2, W
     BTFSS          STATUS, Z
     GOTO           B1
     BCF              CH1
     BCF              CH2
     BCF             CH3
     CALL            BEEP
     CALL            DELAY
     GOTO          MAIN

สมมุติก่อนครับว่า ค่าของปุ่มกดที่รีโมท 5 ปุ่มนั้น เราได้ทำการตั้งค่าไว้ใน ee-prom แล้ว
คราวนี้ ตัวโค๊ดด้านบนนี้ จะดึงค่าปุ่มกดปุ่มที่ 1 ออกมาก่อน เพื่อจะเปรียบเทียบค่าที่อ่านได้จากการกดรีโมท
ถ้าตรงกัน ก็จะสั่งงานให้ปิดไฟหมดทุกหลอด แต่ถ้าไม่ตรง ก็จะกระโดดไปเปรียบเทียบกับค่าป่มต่อไป
ตามโค๊ดด้านล่างครับ

B1:
     MOVF          BOTTOM_1, W
     XORWF       IR_DATA, W
     BTFSS         STATUS, Z   
     GOTO          B2
     MOVF          BOTTOM_11, W
     XORWF       IR_DATA_2, W
     BTFSS         STATUS, Z   
     GOTO          B2
     MOVF          GPIO, W
     MOVWF       STACK_0
     MOVLW      0X01
     XORWF      STACK_0, F
     BTFSS        STACK_0, 0
     GOTO         $+3
     BSF            CH1
     GOTO         $+2
     BCF           CH1
     CALL          BEEP
     CALL          DELAY
     GOTO         MAIN

จากโค๊ดจะเห็นว่า จะดึงค่าปุ่มกดปุ่มที่ 2 ออกมาเปรียบเทียบกับค่าที่อ่านได้จากการกดรีโมท
ถ้าค่าเท่ากัน ก็จะตรวจสอบว่า หลอดไฟหลอดที่ 1 เปิด หรือ ปิด อยู่ ถ้าเปิดอยู่ ก็จะสั่งให้ปิด
หรือกลับกัน ถ้าปิดอยู่ ก็จะสั่งให้เปิด แต่ถ้าเปรียบเทียบแล้ว ค่าไม่เท่ากัน ก็จะกระโดดไปเปรียบเทียบกับปุ่มต่อไป
ซึ่งโปรแกรมจะเขียนเหมือนกันครับ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: moo ที่ พฤศจิกายน 18, 2009, 06:48:22 pm
อยากได้ไอซีที่เบิร์นแล้วครับไม่ทราบว่าถ้าขายตัวละเท่าไรครับ
น่าลองทำเล่นดู


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: DuKKunG ที่ พฤศจิกายน 20, 2009, 08:08:47 pm
ผมขอเอาไปทำส่งอาจารย์ได้มั้ยครับ!


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: TRIGUN ที่ พฤศจิกายน 24, 2009, 12:03:26 pm
ช่วยรบกวนเขียนโค๊ดของไอซี PIC12F629
ทั้งหมดที่จะไลลงให้ผมหน่ยได่ไหมคับ
ผมใช้รีโมทจีนเเดงเหมือนพี่อ่ะคับผม

--------------------------------------------------

อยู่ที่ข้อความที่ # 35 ครับผม
kiano


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ พฤศจิกายน 29, 2009, 08:19:18 am
หลังจากประกอบเสร็จและต่อเข้าหลอดไฟเสร็จแล้วมาดูวิธีการเซ็ตตั้งค่าเพื่อใช้งานกันครับ

จ่ายไฟเข้าจะเสียงเตือน บี๊ป 1 ครั้งคือพร้อมที่จะรับคำสั่ง
ขั้นตอนการตั้งค่ามีดังนี้

1.กดที่สวิทช์ 6 ครั้ง จะมีเสียง ปี๊บ... ปี๊บ... แล้วกดปุ่ม power ที่รีโมท แล้วรอเสียง ปี๊บ...ปี๊บ... เสร็จการตั้งค่าปุ่ม A
2.กดที่สวิทช์ 7 ครั้ง จะมีเสียง ปี๊บ... ปี๊บ แล้วกดปุ่มเลข 1 ที่รีโมท แล้วจะมีเสียง ปี๊บ... เสร็จการตั้งค่าปุ่ม B
3.กดที่สวิทช์ 8 ครั้ง จะมีเสียง ปี๊บ... ปี๊บ ปี๊บ แล้วกดปุ่มเลข 2 ที่รีโมท แล้วจะมีเสียง ปี๊บ... เสร็จการตั้งค่าปุ่ม C
4.กดที่สวิทช์ 9 ครั้ง จะมีเสียง ปี๊บ... ปี๊บ ปี๊บ ปี๊บ แล้วกดปุ่มเลข 3 ที่รีโมท แล้วจะมีเสียง ปี๊บ... เสร็จการตั้งค่าปุ่ม D
5.กดที่สวิทช์ 10 ครั้ง จะมีเสียง ปี๊บ... ปี๊บ... แล้วกดปุ่ม Eject ที่รีโมท แล้วจะมีเสียง ปี๊บ...ปี๊บ... เสร็จการตั้งค่าปุ่ม E

หลังจากการตั้งค่าทุกปุ่มเรียบร้อยแล้ว ก็พร้อมที่จะใช้งานได้เลย
รายละเอียดการใช้งานมีดังนี้

กดรีโมทปุ่ม A จะควบคุมการ ปิด ไฟหมดทุกหลอด
กดรีโมทปุ่ม B จะควบคุมการ ปิด-เปิด ไฟหลอดที่ 1
กดรีโมทปุ่ม C จะควบคุมการ ปิด-เปิด ไฟหลอดที่ 2
กดรีโมทปุ่ม D จะควบคุมการ ปิด-เปิด ไฟหลอดที่ 3
กดรีโมทปุ่ม E จะควบคุมการ เปิด ไฟหมดทุกหลอด

หรือถ้าไม่อยากกดรีโมท ก็กดที่สวิทช์ มีการใช้งานดังนี้
กดสวิทช์ 1 ครั้ง จะควบคุมการ ปิด-เปิด ไฟหลอดที่ 1
กดสวิทช์ 2 ครั้ง จะควบคุมการ ปิด-เปิด ไฟหลอดที่ 2
กดสวิทช์ 3 ครั้ง จะควบคุมการ ปิด-เปิด ไฟหลอดที่ 3

*ในการตั้งค่าของรีโมทนั้น จะต้องจ่อตัวรีโมทเข้าใกล้ๆกับตัวรับที่แผงสวิทช์มากที่สุด
*ปุ่มต่างๆที่รีโมท ตามขั้นตอนการตั้งค่าจากข้อ 1-5 เลือกเอาได้ตามใจชอบ ว่าจะให้ปุ่มไหน แต่อย่าให้ซ้ำกัน
*ถ้าตั้งค่ารีโมทแล้ว ปุ่มไหนไม่ทำงาน ก็ตั้งใหม่ได้ในข้อนั้นๆ เช่น ข้อที่ 3 ก็กดสวิทช์ 8 ครั้ง
*ถ้าตั้งค่าแล้ว อยากตั้งใหม่ อยากเปลี่ยนปุ่มไหน ก็ทำตามข้อของปุ่มนั้นได้เลย เช่น ข้อ 5

แหล่งข้อมูลอ้างอิง โค๊ดตัวอย่าง
http://www.thaimcu.com/article/irda1.htm
http://www.sixca.com/eng/articles/remote/index.html


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: SAK101 ที่ ธันวาคม 02, 2009, 07:25:28 pm
แจ๋วครับถ้าเวิร์คแล้ววางขายบอกด้วยนะครับจะเอามาเปิด-ปิดไฟพาร์หน้าเวทีหน่อย อิอิอิ (แซวเล่น)


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: got_extra ที่ ธันวาคม 20, 2009, 02:11:11 pm
ถ้าจะดัดแปลงใช้ ic ธรรมดาได้เปล่าครับ....


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: service1993 ที่ ธันวาคม 21, 2009, 11:03:55 pm
เป็นกำลังใจให้ครับ  ที่สร้างชิ้นงานดีๆมาแบ่งปันครับ แต่ก็อย่าลืมใส่ระบบป้องกันการลัดวงจรด้วยนะครับเพื่อวันดีคืนเกิดไหม้ขึ้นมาเอาให้ปลอดภัยไว้ก่อนจะเป็นการดีครับ love!!!


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: chan555 ที่ พฤษภาคม 04, 2010, 09:55:16 pm
ตัวไดโอดที่ต่อจาก ch1' 2 '3 ' ไม่มีเบอร์หรือครับ และpz ตัวอไรคับ
 tongue3 tongue3 tongue3


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ พฤษภาคม 04, 2010, 10:08:39 pm
ไม่ใช่ไดโอดครับ เป็นไตรแอคเบอร์ 16A600V บอกเบอร์ไปแล้วที่กระทู้แรกเลย
PZ คือลำโพงเปียซโซครับ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: aunt991 ที่ กรกฎาคม 12, 2010, 12:32:39 pm
พี่ครับ
ผมขออนุญาตเอาไปทำโปรเจคได้ไหมครับ

 :D


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: aunt991 ที่ กรกฎาคม 12, 2010, 05:57:18 pm
พี่ครับ
ผมขออนุญาตเอาไปทำโปรเจคได้ไหมครับ

 :D


แต่ผมยังไม่เข้าใจเรื่องการเขียนโปรแกรมลงไอซีอะครับ
ช่วยอธิบายให้ผมฟังทีครับ

:D


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: aunt991 ที่ สิงหาคม 04, 2010, 01:48:09 pm
อย่าเงียบซิครับ
ผมยังรอดูอยู่นะครับ
 thank2


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: got_extra ที่ สิงหาคม 10, 2010, 08:00:47 pm
รอดูด้วยคนครับ........อยากทำมั่ง... smiley4


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: aunt991 ที่ สิงหาคม 23, 2010, 06:19:44 pm
เงียบฉี่เลยครับ
อิอิ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: got_extra ที่ กันยายน 25, 2010, 08:43:11 pm
ถึงคุณkiano♥

ช่วยเขียนเป็นภาษาซีให้ดูหน่อยจะได้เปล่าครับผมอยากทำมั่งจะได้ต่อยอดได้อีก....เพราะผมศึกษาภาษาซีอยู่พอมาเจอภาษา asm งงเลย.... :(


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: domeplay ที่ ตุลาคม 17, 2010, 12:47:07 am
เออคือ
อาจารย์ให้ผมทำโปรเจคส่ง
ผมเลยอยากจะขออนุญาติเอาโครงการนี้ ไปทำได้ไหมครับ

ถ้าได้
ผมอยากจะขอรายละเอียด มากกว่านี้หน่อย
คือผมเรียนช่างไฟฟ้า ผมไม่รู้อะไรเลยเกี่ยวกับวงจรอิเลคโทรนิค

อยากทราบ วัสดุอุปกรณ์ที่ต้องใช้ รวมไปถึง
หลักการทำงานคร่าวๆ พอที่จะไปเสนออาจารย์ก่อนอ่าครับ

รบกวนหน่อยนะครับ ผมไม่รู้เรื่องเลยจริงๆ
ช่วยสอบผมตั่งแต่ 0 หน่อยเถอะครับ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: kiano♥ ที่ ธันวาคม 03, 2010, 04:32:38 pm
การใช้งาน และการตั้งค่ารีโมท

http://www.youtube.com/v/oOJ5gc5pzME?fs=1&hl=en_US

http://www.youtube.com/watch?v=oOJ5gc5pzME


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: aunt991 ที่ มกราคม 08, 2011, 10:49:03 am
ถ้าจะดัดแปลงมาใช้ควบคุมรีเลต้องทำยังไงครับ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: ratipong ที่ กุมภาพันธ์ 18, 2011, 06:09:19 am
พี่ผมสนใน โครงงานพี่มากเลยครับ เสนอซื้อหน่อยครับจะมาติดที่ห้องครับ สนใจมากๆๆๆ Ratipong_12@hotmail.com


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: ratipong ที่ กุมภาพันธ์ 18, 2011, 06:11:17 am
แก้ไขครับ Ratipong_13@hotmail.com


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: aunt991 ที่ เมษายน 28, 2011, 09:54:27 pm
ขอถามนะครับ
ใช้ไอซีคอมโทลยเลอร์เบอร์ 16f627a
ได้เปล่าครับ

------------------------------------------

ใช้ MCU ที่มี EEPROM ได้ทุกเบอร์ครับ
แต่ต้องแก้โค๊ดให้ใช้กับเบอร์นั้นๆ

kiano


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: aunt991 ที่ มิถุนายน 02, 2011, 07:42:33 pm
ขอถามนะครับ
ใช้ไอซีคอมโทลยเลอร์เบอร์ 16f627a
ได้เปล่าครับ

------------------------------------------

ใช้ MCU ที่มี EEPROM ได้ทุกเบอร์ครับ
แต่ต้องแก้โค๊ดให้ใช้กับเบอร์นั้นๆ

kiano


ตอนนี้สามารถติดต่อคุณได้ทางไหนที่สะดวกมั้งครับ
เล่นเอ็มไหมครับ


------------------------------
เอ็ม  kiano555@windowslive.com
Tel. 084-4188023(AIS)  083-6401595(DTAC)


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: aunt991 ที่ มิถุนายน 03, 2011, 05:25:29 pm
เดียวคุยกันทางเอ็มนะครับ
คือผมพูดไม่ค่อยเก่นนะครับ


ขอบคุณครับ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: THe_PALm ที่ ตุลาคม 14, 2011, 12:59:03 pm
อยากทำดูนะ  พี่อยู่ภูเก็ตป่าวอ่ะคับ ที่ร้านพี่มีของป่าว แบบว่าพวกบอร์ดทั้งหลายที่ใช้เขียนโปรแกรมอ่ะ ผมไม่รู้จะเริ่มยังไง  embarrassed7


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: Essolup ที่ มิถุนายน 17, 2012, 07:23:14 pm
ผมอยากทำโครงงานนี้ครับ แต่อยากใช่ pic 16f877 ครับ ต้องเขียนโปรแกรมยังไงครับ


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: amnat2520 ที่ สิงหาคม 22, 2012, 03:39:06 pm
พี่ครับผมรบกวนขอ โค้ดที่ใช้ได้เลยของ สวิตซ์ควบคุมด้วยรีโมทครับ ของ PIC12F629
-ขอในรูปแบบ Textfile เพื่อขอศึกษาเรื่องโค้ดเพราะผมไม่มีความรู้เรื่องนี้ครับ
-ขอในรูปแบบ HEX ที่พร้อมเบิร์นได้เรยครับ
ของคุณคุณล่วงหน้าครับ ที่เมล์ผมได้ไหมครับ amnat_puy@hotmail.com


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: Sgt.Supadit ที่ กันยายน 13, 2012, 05:54:15 pm
พี่เก่งมากครับ
ผมสนใจมาก

ผมขอโค๊ดการสั่งงานทั้งหมดเลยได้ไหมครับ
จะลองทำใช้ดูบ้างครับ
ขอบคุณครับ ping!


หัวข้อ: Re: มาทำสวิทช์ ปิด-เปิดไฟด้วยรีโมทกันเถอะ
เริ่มหัวข้อโดย: supanimit ที่ พฤศจิกายน 06, 2012, 10:04:21 pm
 shocked2พี่คับในแผ่นปริ้นที่เขียนว่าok1-ok2-ok3มีทั้งหมด3ตัวมันคือตัวอะไรหราคับ