Group Blog
 
All Blogs
 

นิยายวิศวกรรมอิเล็กทรอนิกส์ "The Tristate"

วันนั้น เป็นคืนที่มืด และมีพายุที่ท่าเรือบัลติมอร์ แองเจิล เลขา ขายาวของผมโวยวายผ่านสปีคเกอร์โฟน "คุณสไปค์อยู่ในสายค่ะเจค.. เช็คเด้งอีกแล้ว ไม่มีอะไรเลวร้ายเท่านี้แล้ว!" เขาโทรมาจากเมืองที่.................... (ขี้เกียจแปล... สรุปว่าฉาก ในเมืองที่อับทึม ห้องทำงานเก่าๆ หน้าต่างมีรูกระสุน พ่อค้าของเถื่อนกำลังคุยกัน อะไรแบบนี้ ...NaCl)........


สไปค์โยนตัวลงบนกก้าอี้ตัวเก่า....... ขวดเหล้ากัปตันมาร์ตินหล่นจากกระเป๋าและหกลงบนพื้น................


"ไม่ไหวว่ะ เจค ...... พวกเด็กๆ ยังแก้ไขให้มันทำงานไม่ได้ ถ้าทำไม่ได้ขึ้นมาจริงๆ ลูกค้าฆ่าพวกเขาตายแน่"


..............."เจค ไอ้ระบบนี่มันจะทำให้ฉันตายว่ะ แผงวงจรชุดสุดท้ายไม่ดีเลย นี่เรากำลังจะต้องจัดส่งแล้ว แต่ว่าทุกๆ ชั่วโมง ไอ้เจ้า 68000 มันแฮงก์ ฉันไม่รู้แล้วว่าต้องทำไงต่อไปดี " สไปค์คอตก มือกุมหัว ศอกอยู่บนเข่า ท่าทางถอดใจกับธุรกิจใต้ดิน ซึ่งกฏเปลี่ยนทุกวัน และดาต้าชีทส่วนใหญ่เป็นภาษาญี่ปุ่น


"สไปค์ บอกรายละเอียดได้ไหม" ผมถาม "เมื่อไรที่ไอ้เจ้าบอร์ดเถื่อนนั่นมันแฮงก์"


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


"แล้ว มีแผนที่จะทำไงล่ะ หือ" ผมตอบ และนึกขึ้นได้ว่าเขาคงไม่ได้หมายความอย่างนั้นจริงๆ "ผมคิดว่า ถึงเวลาที่ต้องปรึกษา บรูโน่แล้วมั้ง"


"ไม่ ไม่ ไม่มีวัน ผมสาบานว่าจะไม่ยุ่งกะเขาอีก ผมเกลียดที่ปรึกษาที่ต้องจ่ายแพงมหาโหดแบบนี้ เขาทำให้เราดูโง่ไปถนัด !!"


ผมโทรไป.. "4000 เหรียญต่อวัน บวกค่าเสียเวลา จ่ายล่วงหน้า" เสียงตอบกลับแบบไม่ใยดีก่อนวางหู แล้วพวกเรารอรถลิโม่สีขาวของเขา


บรูโน่ พาร่างใหญ่บึกของเขาเข้าประตูมา ช่องประตูกว้างพอสำหรับคนปกติ แต่ กับบรูโน่ ประตูเล็กไปถนัด ใบหน้าของบรูโน่เต็มไปด้วยแผลเป็น ผมรู้ว่าเขาชนะในการต่อสู้ครั้งนั้น รอยใหญ่ตรงหน้าผากจากโปรเจค ATC ของ IBM รอยขีดที่แก้มนั่นมาจาก Sergeant York ......... เขาโยนกระเป๋าหนังลงพื้น


บรูโน่ไม่เคยพูดมาก แต่ถ้าให้เขานั่งหน้าคีย์บอร์ด นิ้วของเขา พริ้วราวกับเทวดาเต้นบัลเล่ต์


"เอาละ บรูโน่...... ระบบนี่พัง แต่วิศวกรของเราไม่รู้ว่าทำไม มันเป็นแบบที่ออกมาใหม่ แต่จากเครื่องวัดมันก็ดูเหมือนไม่มีปัญหาอะไร"


บรูโน่วางมือลงบนโต๊ะผม แล้วหยิบปืน .45 ของผมออกมา "เงินผมอยู่ไหน? " เขาพึมพัม ผมหยิบเช็คออกมา แล้วเขาก็ถือส่องกับไฟอยูาสักนาทีก่อนจะยัดใส่กระเป๋า แล้วตามลงไปที่ห้องแล็บ


สไปค์ทำตัวงอๆ บ่นพึมพัมเกาะเอวผมตามลงมา


ประตูห้องแล้บค่อยๆ แง้มออก และเราเดินลงไปบนทางเดินผุๆ กระแสไฟอาร์กวาบขึ้นที่สะพานไฟยี่ห้อจาค็อบ......................พวกเราไม่สนใจกลิ่นเหม็นอับนั่น และไปที่โต๊ะ ซึ่งวิศวกรกำลังทำงานอย่างร้อนรนกับระบบคอมพิวเตอร์ขนาดเล็ก


"อะไรเนี่ยะ?" บรูโน่ถาม และชี้ไปยังแผงควบคุมโรงงาน ที่ใช้ 68000 ซึ่งต่อกับบอร์ดบัสมาตรฐานผ่านสายแพแบนๆ


เด็กๆ(วิศวกร) จ้องบรูโน่ ทำท่าประหลาดใจแกมหวาดกลัว อย่างกับกวางที่โดนแสงไฟส่อง เสียงข้อกระดูกคอลั่นแกร๊บ ขณะที่เขามองลงมาและบอกบรูโน่เกี่ยวกับปัญหาที่เกิด สามเดือนมาแล้ว ที่พวกเด็กๆ พยายามดีบักฮาร์ดแวร์ และซอฟท์แวร์ เขารู้ ว่าพวกเขาเหมือนถูกปืนจ่ออยู่ตลอดเวลา เราจ้างพวกเขามาแทนวิศวกรคนเก่าที่ทำให้เราเปลืองเงินมากเกินไป ผมเห็นเขาเมื่อสัปดาห์ก่อน ในย่านถนนที่พลุกพล่าน แทบจะจำเขาไม่ได้ เขาว่า คุณมีเศษเงินบ้างไหม ผมรู้แคลคูลัสนะ ผมไล่เขาไปเหมือนไล่ขอทาน ผู้ที่ไม่ยอมเรียนรู้ที่จะเลิกเป็นวิศวกรตั้งแต่อายุ 25


ผมพยายามทำตัวให้เป็นประโยชน์โดยถามเด็กๆ ว่าปัญหาอาจเกิดจากอะไร "ผมไม่รู้ ผมดูทุกอย่างแล้ว ไทมิ่งปกติ ระดับแรงดันปกติ มันไม่สมเหตุสมผลเลย"


บรูโน่หยิบโพรบสโคปจากมือของเด็กที่สั่นเทา ด้วยมืออ้วนใหญ่ราวแฮมเบอเกอร์ และวัดที่เทสต์พอยต์ต่างๆ


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


บรูโน่ดึงมือถือออกมาและสั่งคนขับรถให้เอาสโคป 1GHz 4 แชนแนลมา ผมเพิ่งรู้ ว่าเขาเก็บเอาไว้ในรถลิโม่ของเขาด้วย ผมเริ่มฟังบรูโน่พูด ต้องเรียนรู้ให้ได้มากที่สุด จากราคา 4000 เหรียญต่อวัน บวกค่าเสียเวลา


"สโคปความถี่ต่ำกับโพรบ 100 MHz ไม่สามารถมองเห็นว่าอะไรเกิดขึ้นจริงๆ บนบัสความเร็วสูง ผมพนันได้เลยว่ามันออสซิลเลท อย่างเร็ว เร็วมาก มากๆ" เขาบ่นไปเรื่อย


บรูโน่วางสโคปลงบนผ้าคลุม(ห่อ)สโคป เขาจับสัญญาณที่ขาแอดเดรส ผมมองดูว่ามันก็ปกติดี มีสถานะลอย (tristating) พอๆ กับสถานะคงค่าของบัสปกติ ขาดาต้า ดูไม่สวย มีการผสมกันของค่าศูนย์ หนึ่ง และสถานะลอย ตามการเลือกของชิพดีโค๊ด และเอาต์พุตอีนาเบิล มีเพียงสัญญาณควบคุม อ่าน เขียน กับแอดเดรสสโตรบเท่านั้น ที่เป็นสถานะ ศูนย์หนึ่งปกติตลอดเวลา.......... "คุณคิดว่าไง?" ผมถาม


บรูโน่หันมาช้าๆ จ้องหน้านิ่งๆ "อย่าคาดคั้นสิ ผมเป็น ผู้เชี่ยวชาญ และต้องใช้เวลาคิดบ้าง"


"คุณเซ็ทสโคปผิดหมด" เด็กๆ โวย "ผมตั้งเวอร์ติคอลไว้ที่ 2 v/cm แต่คุณใช้ 1 v/cm"


"หุบปากเลย" บรูโน่พูด พร้อมกับผลักเขาลงไปนั่ง "คนของคุณต้องเข้าใจว่า วงจรดิจิตอลนี่จริงๆ แล้วคืออะนาล็อก คุณไม่สามารถเห็นอะไรหรอก ที่ 2 v/cm เช่นถ้าลอจิก 1 อยู่ต่ำกว่าระดับต่ำสุดของลอจิก 1 หรือสูงกว่าระดับต่ำสุดของลอจิก 0 เฮ้ย พนันกันได้เลย ว่าคุณไม่รู้ว่าระดับแรงดันของลอจิก 1 คือเท่าไร ว่าไง"


"CMOS หรือ TTL, HCT หรือ HT?" เด็กถามกลับ


"เป็นคำถามที่ดี ไอ้หนู ลอจิกตระกูลต่างๆ มีระดับไม่เท่ากัน และคุณต้องแน่ใจว่าคุณทำตามกฏ ที่ 1v/cm ผมสามารถเห็นได้ทันทีว่าลอจิกเหล่านี้ออกนอกระดับที่ยอมรับได้หรือยัง คุณก็รู้ ว่าผมเกลียดการทำสิ่งที่ไม่ถูกต้อง และนั่น คือ ปัญหาของการล่มของระบบ ที่เป็นบางครั้ง ไม่เป็นรูปแบบแน่นอน"


สไปค์พูดว่า "ถ้าเสียแบบไม่เป็นระบบ งั้น มันน่าจะเป็นแผงวงจรขาดหรืออะไรสักอย่าง"


"ใช่ มาดูกัน" บรูโน่ยกแผงวงจรและงอไปมา ตามองมอนิเตอร์ตลอด ระบบรันอย่างปกติ เขาพลิกด้านล่างขึ้นมา และไล่นิ้วไปตามขาต่างๆ ผมจ้องมองรอยข่วนเป็นโหลๆ ที่ปลายนิ้วเขา


"ไอ้ขาทรูโฮลนรกนี่ มันบาดมือผม เหมือน Rosco the razor (รอสโก มือมีด) ทำเมื่อก่อนนั้น ในเวกัส" แล้วผมก็ได้รู้ว่า รอสโก เป็นผู้อนุมัติเครื่อง 486 ของปลอมนี่เอง และก็ได้เรียนรู้ว่า บรูโน่ กำลังหาขาอินพุตที่ลอยอยู่ แต่มีสถานะที่ถูกต้องด้วยความบังเอิญ................


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


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


"ไอ้นี่มันออสซิลเลท" บรูโน่คำราม "อะไรกัน คุณให้มือสมัครเล่นออกแบบหรือ? ดูนี่ ผมตั้งสโคปทริกที่สัญญาณอ่าน ดูที่ขาดาต้า หลังพ้นจากพัลส์อ่านนี่สิ"


"ไม่มีใครสนใจหรอก " เด็กเหน็บแนม ผมไม่รู้ว่าบรูโน่เจออะไรเข้า แต่ผมว่าเขาดูกร้าวขึ้น ผมเงียบ ผมว่าเขาคงจะเงียบหมือนกัน


บรูโน่คอเริ่มแดง ผมถอยออกมา "แน่นอน สัญญาณมันปกติ ตอนอ่าน แต่คุณแพ้แล้ว หลังจากสัญญาณอ่าน เมื่อบัสเข้าสถานะลอย มันออสซิลเลทที่ 450 MHz นั่นละตัวการที่ทำระบบแฮงก์ เอาตัวต้านทานซิพมาพูลอัพซะ"


"ไม่มีทาง บรูโน่ ดาต้าชีทพูดถึงเฉพาะตอนที่อ่านเท่านั้น ใครจะไปสนใจเล่า ตอนที่บัสอยู่ในสถานะลอยน่ะ ??"


"เอาตัว R-Sip มาใส่เด๋ยวนี้" บรูโน่สั่ง แต่เด็กนั่นก็ขัดใจอีก บรูโน่เลยเอาปืน 9 มม มาจ่อหน้าอกเขา "คนที่แย้งความเห็นผมต้องตาย" เขาคำราม


ผมเอาตะกั่วมาบัดกรี R-Sip ซะเอง เพราะถ้าบรูโน่ยิงเด็กนั่นตำรวจจะได้ยินเสียงปืน


"ตอนนี้ก็กลับไปที่ออฟฟิศและรอ" บรูโน่สั่ง "ผมจัดการให้มันรันตลอดคืนเพื่อดูว่ามันถูกแก้ไขเรียบร้อยแล้ว-- ดูนี่ สัญญาณออสซิลเลทหายไปแล้ว ผมพนันด้วย....สองข้างเลย ว่า มันโอเคแล้ว"


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


วันใหม่มาถึงแล้ว สปีกเกอร์โฟนรายงานความสำเร็จของ R-Sip .......


นาทีต่อมา คอมพิวเตอร์โน๊ตบุ๊คสำหรับงานวิศวกรรม ที่วางซ้อนกันบนชั้นขนของถูกเลื่อนเข้ามาในห้อง





จบ...........







 

Create Date : 13 กุมภาพันธ์ 2550    
Last Update : 14 กุมภาพันธ์ 2550 10:11:10 น.
Counter : 2794 Pageviews.  

บ้าไฟฉาย ตอน โม MAGLITE AA เป็น LUXEON III LED ตอนที่ 3

ดูตอนที่ 1..


ต่อจาก ตอนที่แล้ว..

เทสต์คอยล์ ว่าโอเคป่ะ โดยต่อกับวงจรบนบอร์ดทดลอง กระแสกินประมาณ 1.1 แอมป์ ที่ 2.2 โวลต์ กระแสออก 480 mA - 500 mA ประสิทธิภาพบนวงจรทดลอง 74 %



ได้รูปคลื่นสวิทชิ่งประมาณนี้..



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

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

รูเจาะของแผ่นทองแดง รูใหญ่ เพื่อป้องกันการลัดวงจรกับกราวด์แผ่นทองแดง จะตรงกับขั้วบวก LED รูเล็ก จะตรงกับขั้วลบของ LED

รูด้านขั้วลบ ขนาดพอดีกับลวดทองแดงขนาด 0.8 มม ที่ใส่ไว้เป็นขาต่อกับ LED ซึ่งต่อตรงลงกราวด์บนแผ่นทองแดง

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

รูปนี้ แสดงการใส่ลวดต่อ LED ใช้ลวดใหญ่ๆ หน่อย เช่น ลวดขาไดโอด เป็นต้น และแผ่นทองแดง ซึ่งจัดให้อยู่ตรงกลางพอดีๆ

ลวดทองแดงรูปตัวยูที่เสียบไว้ ให้ยาวเลยออกมาอีกด้านประมาณ 3 มม ที่อลูมิเนียมที่ผมรองไว้มีรูอยู่ครับ ไม่ต้องงง




ละเลงฟลักซ์ให้ฉ่ำๆ เลย โดยเฉพาะตรงขอบบอร์ด เพราะมันจะไหม้ ถ้าไม่มีฟลักซ์ช่วยไว้ เป่าลมร้อนให้ดีบุกบัดกรีมันละลายลงไปติด ประมาณ 380 องศา C ที่ไม่ใช้หัวแร้งเพราะดีบุกบัดกรีจะเลอะเทอะอยู่ด้านบน ไม่เรียบ ใช้งานไม่ได้



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

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

เสร็จแล้วจะประมาณนี้ สังเกตลวดฝั่งกราวด์ (รูเล็ก)



อีกมุม..



พลิกกลับด้านขึ้นมา แล้วก็พับลวดต่อกับวงจร ตามรูป



แล้วก็ลงอุปกรณ์ เจ้า 3 ตัวกลางบอร์ดจะอยู่ใต้ Coil อีกทีเมื่อเสร็จแล้ว



เอ้า ลงอุปกรณ์ให้หมด ก่อนใส่หลอด LUXEON LED ให้ล้างแผงวงจรให้สะอาดปราศจากฟลักซ์ โดยนำไปแช่ในทินเนอร์สักสองสามนาที กวนๆ เขย่าๆ เอาพู่กันขนแข็งๆ ปัดให้ทั่ว เพื่อขจัดคราบฟลักซ์ออกให้หมด ระวัง เอาหลอด Luxeon ไปไกลๆ ก่อน หลอดแพ้ทินเนอร์ครับ โดนนิดเดียว โดมใสๆ ของมันจะขุ่นในบัดดล


หลอด ให้ตัดขาเหลือแค่ด้านละ 1 มม ขาจะมีมาร์กสั้นๆ และขาจริง ๆยาวออกมาอีก ตัดให้เสมอกันโดยประมาณ ร่องกลางจะพอดีกับลวด ถ้าลวดใหญ่ไป เอาคัตเตอร์เหลาลวดออก อย่าฝืน เดี๋ยวหัก ถ้าลวดชิดไป ใส่ไม่เข้า ให้ถ่างออกเท่าๆ กัน อย่าให้เอียง จะไม่ตรงศูนย์

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



รูปนี้ประกอบเสร็จแล้ว แต่ยังไม่ใส่หลอดทีนะ ...




ขั้วไฟบวก จะอยู่เหนืออุปกรณ์พอดี การทำขั้ว ให้ตัดแผ่นโลหะ หรือเศษๆ ทองแดงระบายความร้อนนั่นก็ได้ ตัดสี่เหลี่ยม พับมุม (เพื่อเป็นตัวยึดเกาะหลังจากหล่อเรซิ่นในขั้นตอนสุดท้าย) แล้วก็บัดกรีลวดเล็กๆ เช่นลวดขา R ต่อลงมาที่ขั้วไฟเข้าบวก จัดให้อยู่ตรงกลาง ระยะความสูงนับจากแผ่นขั้วบวก ถึงแผ่นระบายความร้อน 7 มม พอดีๆ มากไป แน่นเกิน น้อยไป หลวม ตามรูปนี้



ใช้แผ่นใสถ่ายเอกสารมาทำแบบหล่ออิพอกซี่ ม้วนแผ่นใสถ่ายเอกสารรอบก้อนถ่าน AA และวงจร แล้วติดด้วยเทปกาวให้แน่น แผ่นใสซึ่งเป็นโพลีสไตรีน กาวอะไรๆ ก็ไม่ติด เหมาะสำหรับงานนี้

เอาท่อ-หลอดอะไรกลมๆ มารองหลอด LED และหัวถ่านไว้ เพื่อเป็นตัวกำหนดระยะ และกันเอียง ผมใช้ท่อเล็กๆ ที่มากับแจ็ค BNC มาใช้งานนี้ได้พอดี



อีกมุม..



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



กาวยี่ห้อนี้ดีกว่า ยู้ฮู พลัส เฮฟวี่ ดิวตี้ 300 กิโลฯ แห้งช้า 2 ชั่วโมง กวนง่าย เหลว ไหลเข้าร่องซอกซอนดีนักหนาเลย



อีกมุม..






12 ชั่วโมงต่อมา แกะออกจากพิมพ์ แล้วเจียขอบๆ ส่วนเกิน และส่วนที่ไหลเข้าไปทับบนขั้วไฟเข้าออกซะ..



อีกรายการที่ต้องโม คือ โคมสะท้อน ต้องเปลี่ยนใหม่ครับ อันนี้ ต้องซื้อเอา ทำเองไม่ได้แน่ๆ มี 2 รุ่นที่โมง่ายๆ คือ โคมรุ่น IMS20 เป็นพลาสติกเรียบเงา แสงคม และ McR20 เป็นอลูมิเนียม ผิวไม่เรียบ แสงนวล

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

ตัวโคมส่วนปลายมันจะอ้วนไปหน่อย ทำให้ปิดฝาไม่ลง ต้อง ขัดเอาส่วนด้านข้างของโคมออกไปบ้าง ทดลองดูจนใส่ฝาปิดด้านหน้าของ MAG ได้พอดี




ส่วนโคม McR20 มันจะเป็นขั้นๆ ให้ตะไบเจ้าขั้นบันไดหลังโคมออกให้โค้งมนและลงไปในหัวของ MAG ได้พอดีก็จบ



LED สีน้ำเงิน เอามาเล่นอะไรสนุกๆ ได้ เพราะมันจะทำให้เสื้อกีฬาสีสดๆ หรือสิ่งของบองอย่าง เรืองแสงได้ด้วย รูปนี้จะเห็นจุกนีเวีย ฉลากลดราคาแชมพู และแปรงสีฟันเรืองแสงได้



ดูใกล้ๆ แปรงสีฟันเรืองแสงเป็นสีเขียว






อุปกรณ์ที่ต้องซื้อเพิ่ม เช่น หลอดรุ่นใหม่ๆ หรือโคมสะท้อน ไปถามหาคุณเศรษฐพงษ์ที่เว็บนี้ครับ บริการส่งถึงบ้าน

//www.trekkingthai.com/board/webboard.php?Category=trekking&forum=7&picfolder=trekking&#top


และนี่ก็เว็บต่างประเทศที่สอนโมไฟฉายอุดตลุด

//candlepowerforums.com/vb/showthread.php?t=83903

จบแย้วคับบ.. ขอบคุณที่มาอุดหนุน รอโหลดเพจเป็นนานสองนาน




 

Create Date : 10 กรกฎาคม 2549    
Last Update : 14 กรกฎาคม 2549 19:18:51 น.
Counter : 9649 Pageviews.  

บ้าไฟฉาย ตอน โม MAGLITE AA เป็น LUXEON III LED ตอนที่ 2

ต่อจาก ตอนที่แล้ว



เอ้า ลงมือเลย เริ่มจาก พิมพ์ลายปริ้นออกเครื่องเลเซอร์



แล้วนำไปถ่ายแสง ทำ PCB ใช้ปริ้นต์ 2 หน้า อีกด้านไม่กัดออก ใช้เป็นลายทองแดงกราวด์ทั้งหมด



เตรียมแผ่นทองแดง ทองเหลือง หรือโลหะที่นำความร้อนดีๆ และบัดกรีติดได้ มาทำแผ่นระบายความร้อน อันนี้ผมนำมาจากชาร์จเจอร์โนเกีย รุ่นเก่า แงะออกมา ได้แบบนี้



ตะไบ เจีย แผ่นวงจร และแผ่นทองแดง ให้กลมดิ๊ก แผ่นทองแดงจะเล็กกว่าแผ่น PCB นิดนึง เพื่อกันช็อตกับตัวกระบอก MAG ไม่งั้น เด๋วปิดไฟไม่ได้



เจาะรูแผ่น PCB และแผ่นทองแดง รูเจาะมี 2 รู คือขั้วไฟบวก และลบ เข้าไปยังหลอด LED ขนาดรูประมาณ 0.9 มม ทั้งสองรู รูที่เป็นขั้วบวก ให้เอาดอกสว่านขนาด 3 มม เอามือจับหมุนๆ ปาดขอบรูเอาทองแดงรอบรูออก เพื่อกันการลัดวงจร ส่วนที่แผ่นทองแดง ด้านขั้วบวก เจาะรูขนาดประมาณ 1.5-2 มม

เจาะเสร็จแล้วกัดฟิล์มทิ้งไป




ระหว่างรอฟิล์มหลุด มาเตรียมอุปกรณ์กัน แกะห่อ เอาอุปกรณ์ออกมา..



นี่คืออุปกรณ์ทั้งหมดที่ใช้




หลอด Luxeon ซื้อได้ที่บ้านหม้อพลาซ่า ประตูซ้าย ร้านอยู่ฝั่งซ้าย มีร้านเดียว ในๆ หน่อย เป็นหลอดรุ่นเก่า ประสิทธิภาพต่ำกว่ารุ่นใหม่บ้าง เอามาบัดกรีตัวหลอดออกจากซิงค์ของมันได้เลย

หลอด Luxeon ของแท้ สีขาว รุ่นใหม่ อันนี้ผมสั่งนอกมา ถ้ารุ่นใหม่ การแกะหลอด บัดกรีออกเฉยๆ ไม่ได้ ตัวมันจะยังไม่หลุดออก หลังจากยกขามันออกมาแล้ว ให้เอาปากกาจับงานจับซิงค์ไว้ แล้วใช้ประแจเลื่อน จับ แล้วบิ LED จะหลุดออกมา




แล้วก็ มาพันคอยล์กัน งานนี้ ตี๋ทำได้ ห้ามหมวยทำเด็ดขาด !!

นี่คือคอยล์ที่เราหาได้จากร้านขายอะไหล่เก่าๆ บ้านหม้อ หัวมุมถนน ใกล้นัฐพงษ์ ไม่ต้องเหมือนนี้ก็ได้ แต่ขอให้ตัวเล็กๆ เตี้ยๆ




มุมนี้จะเห็นลวดเดิมที่พันอยู่ ให้แกะออกทิ้งให้หมด หรือ จะเอาลวดเดิมมาพันใหม่ก็ได้นะ เหลือเฟือเลยละ



เอาลวดออกแล้ว



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



อย่างตัวอย่างนี้ ใช้ 5 ทบ เป็นขดกำลัง และ 1 เส้น เป็นขดป้อนกลับ ไม่ต้องอธิบายว่าพันยังไง ดูรูปตามนี้เลย รูปนี้แสดงจุดเริ่มต้น พันเวียนตามเข็มนาฬิกา สองขดพันไปพร้อมกันเลย ห้ามย้อนทิศกัน



พันไปให้ครบ 8 รอบ แล้วจุดปลายของลวด ต่อลงขาตามนี้ รูปนี้แสดงจุดสิ้นสุดของลวด



อีกมุม..






อ่านต่อ ตอนที่ 3 ค้าบบบบ....




 

Create Date : 10 กรกฎาคม 2549    
Last Update : 14 กรกฎาคม 2549 19:19:24 น.
Counter : 4913 Pageviews.  

บ้าไฟฉาย ตอน โม MAGLITE AA เป็น LUXEON III LED อุปกรณ์บ้านหม้อ ตอนที่ 1

ไฟฉาย MagLite ราคาถูก หาได้ง่าย และหลายๆ คนก็มี ทั้งคลาสสิค และทน แต่ มันสว่างไม่สะใจเล้ยย มาโมกันเหอะ

แสงที่ทำได้มีหลายสี ขาว เขียว น้ำเงิน แล้วแต่จะเลือก ยกเว้น สีแดง (เพราะแรงดันที่ใช้ต่ำกว่าสีอื่นๆ)

ตัวอย่าง อ่ะ สีเขียว



สีน้ำเงิน






รายการอุปกรณ์

รีบๆ ไปหาก่อนเลย

LED Luxeon สีตามชอบ ยกเว้นสีแดง ห้ามเด็ดๆ ใช้กับวงจรนี้ไม่ได้

---ซื้อที่บ้านหม้อพาซ่าาาาาาา ชั้นล่าง ประตูซ้าย ด้านซ้ายมือ มีร้านเดียว---


R 1k - 3k ค่าเท่าไรตามใจให้ได้ในช่วงนี้ ขนาดไซซ 0805 กำลังดี 1206 ก็ได้ แต่ ระวังช็อต เพราะตัวใหญ่ 1 ตัว

R 10 Ohm ไซซ 0805 หรือ 1206 จำนวน 1 ตัว

C 0.1 uF 16-50 โวลต์ เอาตัวบางๆ นะ 0805 หรือ 1206 ก็ได้ เช่นกัน จำนวน 1 ตัว

C 10 uF 16 โวลต์ ชนิด X5R หรือ X7R ขนาด 1206 จำนวน 2 ตัว อันนี้หายาก บ้านหม้อพาซ่า ไม่มี

แต่ใช้เกรด Y5V ขนาด 2.2-10 uF 16 โวลต์ จำนวน 4 ตัว ขนานกัน ต่อชุด รวม 8 ตัว แทนได้ บ้านหม้อพาซ่า มีขาย หาวิธียัดกันเองนะ ตัวจะเล็กกว่า คาดว่า ยัดไม่ยากหรอก C นี้เป็นตัวกำหนดประสิทธิภาพเลยว่าจะได้ดีแค่ไหน

---R-C บ้านหม้อพาซ่าาาา ชั้นสอง ฝั่งขวา--



ทรานซิสเตอร์ เบอร์ KTD1146 จำนวน 1 ตัว

ช็อตกี้ไดโอดกระแสต่ำ เบอร์ BAT54S จำนวน 1 ตัว

ช็อตกี้ไดโอดกระแสสูง 1 แอมป์ขึ้นไป เบอร์ไรก็ได้ จำนวน 1 ตัว ผมหาได้จากร้านของเก่า เบอร์ไม่ทราบ รู้แต่มี 2 ตัวในเคสเดียว ตัวละ 500 mA เอามาขนานกัน

---เซมิฯ ร้านอิเล็กทรอนิกส์ซอร์ซ---


แกนคอยล์ ขนาดเล็กๆ แบนๆ ตามรูปประกอบ ไม่จำเป็นต้องเหมือน หาจากร้านอุปกรณ์เก่าๆ บางทีอาจจะได้ตัวสูงมา ให้แกะฐานที่เป็นขาออก ใช้แต่แกนก็ได้ จะได้เตี้ยลง

--แกนคอยล์ ร้านขายของเก่า แผงลอย ตาดีได้ ตาร้ายอด---


ลวดทองแดงเล็กๆ ไม่สนใจเบอร์หรอก ให้พันได้ 7 รอบ โดยไม่ล้น และไม่เล็กจนเสียกำลังงานมากก็พอ ถ้ามีลวดเล็กมาก ก็เอามาทบๆ กันอย่างที่ผมทำ ไม่จำกัดนะ อาจจะลวดใหญ่เส้นเดี่ยวก็ได้

---ลวด ร้านพันหม้อแปลง หรือแกะจากรีเลย์เอาก็ได้---


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


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


อุปกรณ์ที่หาได้ อาจจะไม่เหมือนของผม ให้ออกแบบกันเองเลย แนะนำให้เอาเวอร์เนียวัดขนาดจริง แล้วเขียนไลบราลี่เองทุกตัว จะทำงานง่ายขึ้นเยอะ




ขั้นที่ 1 ออกแบบวงจร .. อันนี้ผมทำให้







ออกแบบแผ่นวงจร ผมทำให้อีก แต่ คุณๆ ที่จะทำเล่น ต้องหาอุปกรณ์ได้เหมือนของผมเลยนะ




แบบที่ได้...

วงจร



แบบเนกาทีฟ PCB พิมพ์ออกเครื่องพิมพ์เลเซอร์ ขนาดจะเท่าของจริง เอาไปพิมพ์ลงกระดาษไข ใช้ทำ PCB ได้เลย





การลงอุปกรณ์








ไปอ่านต่อ ตอนที่ 2 ครับ งิงิ..




 

Create Date : 13 มิถุนายน 2549    
Last Update : 10 กรกฎาคม 2549 8:22:10 น.
Counter : 6001 Pageviews.  

นาฬิกานับถอยหลัง + สกอร์บอร์ด 2 หลัก ด้วย PIC แจกโค๊ดเพื่อศึกษาฟรี

วันนี้เอาโครงงานอิเล็กทรอนิกส์มาแจกนะครับ








ตัวนับเวลาถอยหลัง 3+ 15-99 วินาที พร้อมเสียงเตือนเมื่อหมดเวลา และ และสกอร์บอร์ด 2 หลัก ในตัวเดียว

อ่ะ 3+ นั่นคืออะไร มันคือ เวลา 3 วินาทีบอกความพร้อมครับ เมื่อกดปุ่มเริ่ม จะนับความพร้อมก่อน 3 วิ แล้วจึงเริ่มจับเวลาจริง มีเสียงเตือนเหมือนตอนรถแข่งออกตัวเลยนะคับ แล้วก็ตอนหมดเวลา 10 วินาทีสุดท้ายมีเสียงติ๊กๆ เตือนด้วย เมื่อนับครบ จะมีเสียงยาวแสดงว่าหมดเวลา



ใช้ MCU เบอร์ PIC12F675 ที่มีแค่ 8 ขาเท่านั้น หน่วยความจำโปรแกรม 1024 เวิร์ด แรม 64 ไบต์ มีอะนาล็อกคอมพาราเตอร์ และ ADC แต่ไม่ได้ใช้ครับ (อ่ะ เบอร์ที่ตัด 2 ฟังก์ชั่นนี้ออก ถูกกว่า แต่ ไม่มีขายให้ผมซื้อนี่นา)


วงจรครับป๋มม



เอ้า ปริ้นต์ เนกาทีฟ ขนาดเท่าของจริง เอาไปปริ้นต์ใส่กระดาษไข แล้วถ่ายแสงได้เลยยยย




ภาพการลงอุปกรณ์






วงจรนี้เป็นเครื่องจับเวลานับถอยหลัง 15-99 วินาที เอาไว้เล่นเกม แล้วก็ใช้เป็นสกอร์บอร์ดนับคะแนนได้ด้วย มี 2 หลัก ถ้าจะใช้นับคะแนนเล่นบาสหรือกีฬาอื่นๆ ก็ใช้ 2 ชุด ฝ่ายละ 1 อันพอดี อย่าเล่นให้เกิน 100 คะแนนเป็นพอ อิอิ หรือถ้าใครจะปรุงมันใหม่ให้เป็น 3-4 หลัก หรือมีฟังก์ชั่นเพิ่มเติมก็ได้ เช่น มีตัวกำเนิดเลขสุ่ม หรือทำเป็นนาฬิกาไปเลยก็ได้ อยู่ที่คุณจะต้องเขียนโปรแกรมต่อ และใช้ชิพที่มีขนาดโปรแกรมเมมโมรี่ และพอร์ทมากกว่านี้

ที่เลือกชิพตัวเล็กๆ มาเล่นก็เพราะว่า งานนี้ การนับเวลาที่ใช้ ไม่ต้องการความเที่ยงตรงสูงนัก เอามาแค่เล่นเกมสนุกๆ เท่านั้น จึงใช้ชิพเล็กๆ ราคาถูกๆ ขาที่ใช้ครบ 8 ขาพอดี ไม่ได้ใช้ X-Tal แต่ใช้วงจรสัญญาณนาฬิกาภายใน 4MHz แทน

อ้อ 8 ขา แล้วจะขับเซกเม้นท์ 2 หลักได้ยังไงละเนี่ย งานนี้ใช้ไอซีชิฟท์รีจิสเตอร์ยอดนิยม 74HC595 มาขยายพอร์ทครับ

ขา 7,6,5 ของ PIC12F675 เป็นขา Serial Data, Serial Clock และ Latch ตามลำดับ ต่อเข้า74HC595 2 ตัว อนุกรมกัน เพื่อให้ได้ข้อมูลแลทช์จำนวน 16 บิต

ของ PIC12F675 ขา 4,3 เป็นปุ่มกด ขา 2 เป็นสัญญาณเสียงออกลำโพง ขา 1,2 เป็นไฟเลี้ยง

LED 7-Segment ไม่มีการสแกนครับ เพราะงานนี้ใช้กลางแจ้ง ต้องสว่างสุดๆ เท่านั้น และการสแกน 2 หลัก ไม่คุ้มครับ ราคาอุปกรณ์จะแพงกว่าครับ ต้องหลักมากๆ เช่น 3หลักขึ้นไป จึงจะใช้การสแกนแล้วคุ้มกว่า


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



โปรแกรมที่เขียน ใช้เทคนิคการเขียนที่ผมคิดขึ้นเอง แต้ ใครที่เรียนวิศวะคอมมา อาจจะว่ามันเป็นเทคนิคธรรมดาๆ ก็ได้ โดยผมได้ไอเดียจากการเขียนโปรแกรมวิชวลเบสิค ที่ใช้ Event หรือภาษาไทยคือ "เหตุการณ์" ของการทำงานของ User เป็นตัวกำหนดการทำงานของโปรแกรม

เช่น ผู้ใช้กดคีย์บอร์ด โปรแกรมจะไปทำที่บล็อกของ Event คีย์บอร์ด เมื่อผู้ใช้ เลื่อนเม้าส์ไปยังพื้นที่ที่กำหนด โปรแกรมก็ไปทำงานที่บล็อกของ Mouse Over เป็นต้น

แต่ไมโครคอนโทรลเลอร์ ไม่มีคีย์บอร์ด มีแต่ปุ่มกด ก็ไอ้ปุ่มกดนั่นแหละ คือ Event

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

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

ดังนั้น เราจะใช้ Timer ของ MCU เป็นตัวกำหนดเวลาของโปรแกรมส่วนต่างๆ โดยไม่ใช้การหน่วงโดยวนลูป Delay ให้เสีย MCU เปล่าๆ โดย Timer0 ของ MCU จะถูกแจกจ่ายออกมาโดยโปรแกรมส่วนของ Timer เพื่อสร้างฐานเวลาที่ต่างๆ กันหลายๆ ชุด ใช้งานได้พร้อมกันในเวลาเดียวกันหลายๆ ตัว และไทเมอร์ที่เราสร้างขึ้นผมขอถือวิสาสะเรียกชื่อเอาเองว่า Secondary Timer และเซคันดารีไทเมอร์นี้เมื่อนับเวลาครบ จะเป็น Event ในระบบเช่นกัน


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

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

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

ใน System เมื่อมีเหตุการณ์เกิด จะส่งต่อให้งานให้"ลูกน้อง" ทำ (ขอเรียก "ลูกน้อง" ในที่นี้ว่า Task) โดยเหตุการณ์ต่างๆ จะมี Vector หรือ ตัวชี้ว่า งานนี้ต้องถูกส่งไปทำที่ไหน และเจ้า Vector นี้ สามารถเปลี่ยนได้ตลอดเวลาที่ทำงาน เช่น เมื่อมีการกดปุ่มซอฟท์คีย์ของโทรศัพท์มือถือ ที่ขณะนี้แสดงว่าเป็นปุ่ม "เลือก" พอกดแล้ว ปุ่มนี้ก็เปลี่ยนสถานะเป็น "แก้ไข" เป็นต้น การทำงานของปุ่มปุ่มเดียว แต่ การทำงานแตกต่างกันนี้ ทำโดยเปลี่ยน Vector นั่นเอง

เหตุการณ์แต่ละเหตุการณ์ มี Vector ของตัวเอง Vector นี้ ชี้ไปที่ Program Counter ตำแหน่งที่บรรจุโค๊ดเพื่อทำงานที่ต้องการไว้

การทำงาน เช่น เมื่อมีการกดปุ่ม หรือมีอินพุตอันนึงเข้ามา โปรแกรม System จะโหลดเอาค่า Vector ออกมาใส่ใน Program Counter ทันที และการทำงานจะกระโดดจาก System ไปยังตำแหน่ง Task (โปรแกรม) ที่เกี่ยวข้องทันที เมื่อทำงานเสร็จ ส่วนท้ายสุดของ Task นั้น จะเป็นคำสั่งกระโดดกลับมาที่ System เพื่อบริหารเหตุการณ์ต่อไป

การทำงานแต่ละ Task จะต้องไม่ยาวมาก เพราะมันจะไปขวางการทำงานอื่น เช่น การคำนวณซับซ้อน จะถูกแบ่งลูปออกมาก่อน และทำงานทีละลูปของ System ไม่งั้นมันจะไปอุดการทำงานของ System

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

มาดูตัวอย่าง โปรแกรมกันดีกั่ววววววว


หน้า 1


หน้า 2


หน้า 3



สองหน้าแรก และหน้า 3 ส่วนบน เป็นการกำหนดตัวแปร แฟลก และค่าคงที่ที่ใช้ในโปรแกรม

ตั้งแต่ ORG 0x00 เป็นตัวโปรแกรม ซึ่งจะ Goto ไปตำแหน่งที่มโปรแกรมหลักอยู่ ส่วน 0x04 เป็นตำแหน่งของอินเตอรัพท์เวกเตอร์ ส่วนของอินเตอรัพท์จะอยู่ตรงนี้เลย

อินเตอรัพท์ มีแหล่งเดียวคือ TMR0 ตั้งไว้ให้อินเตอรรัพท์ทุก 512 us

อินเตอรัพท์ส่วนแรก ทำงานเป็นตัวกำเนิดเสียงบี๊บ ออกทางพอร์ท GP5

ส่วนต่อมา และต่อไปยังหน้า 4 เป็นส่วนที่คอยตรวจสอบคีย์กด



หน้า 4


หน้า 5


หน้า 4 ตั้งแต่เลเบิล _t0i_Timer เป็นตัวสร้างเซกกันดารีไทเมอร์ขึ้นมาเพิ่มอีก เพื่อให้ในโปรแกรมหลักใช้งานไทเมอร์แยกกันได้อิสระหลายๆ ตัว พร้อมกัน

หน้า 5 ส่วนสุดท้ายคือเลเบิล _EndInt เป็นการคืนค่าตัวรีจิสเตอร์ก่อนกลับไปประมวลผลต่อ ณ จุดที่เกิดอินเตอร์รัพท์ ให้เหมือนกับไม่มีอะไรเกิดขึ้น


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


****โปรดติดตามตอนต่อไปครับ****






 ###  UPDATE: วันที่: 23 มกราคม 2557 เวลา:15:14:04 น.  ###

ขอโทษที่ไม่ได้อัพเดตเลยนานมาก เนื่องจากงานเยอะ 
โค้ดที่จะแจกยังไม่ได้แจก มีคนถามหามาถึง facebook เลยทีเดียว
facebook : เสริชจากเมล por_nacl ณ ฮอตเมล นะครับ

ปล เชิญชมเว็บใหม่ของผมได้ แต่ ไม่ค่อยอัพเดตตามเคย

//www.electroaholic.com
ผมจะใส่ resource ทั้งหมดของงานนี้ไว้ให้โหลดนะครัชช ที่นี่

//www.electroaholic.com/main/index.php?option=com_content&view=article&id=48:countdown-pic&catid=5:circuittrick&Itemid=14




 

Create Date : 15 มกราคม 2549    
Last Update : 23 มกราคม 2557 16:27:55 น.
Counter : 23590 Pageviews.  

1  2  3  4  5  

NaCl
Location :
นนทบุรี Thailand

[Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 12 คน [?]




Friends' blogs
[Add NaCl's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.