พิมพ์หน้านี้ - ทำยังงัยให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง

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

ห้องโครงงาน - D.I.Y.- เทคโนโลยี่ => ►ถาม-ตอบโครงงาน => ข้อความที่เริ่มโดย: sit50 ที่ มกราคม 07, 2011, 02:43:19 PM



หัวข้อ: ทำยังงัยให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง
เริ่มหัวข้อโดย: sit50 ที่ มกราคม 07, 2011, 02:43:19 PM
ต้องการให้วงจรกินไฟเฉพาะเมื่อกดสวิทช์สั่งงานเท่านั้น

รูปแสดงวงจรที่กดสวิทช์แล้วทำงานทันที แต่เมื่อปล่อยสวิทช์วงจรจะหยุดทำงานทันทีด้วยเช่นกัน


หัวข้อ: Re: ทำยังงัยให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง
เริ่มหัวข้อโดย: sit50 ที่ มกราคม 07, 2011, 02:44:18 PM
แต่ต้องการให้เมื่อปล่อยสวิทช์วงจรยังทำงานต่อได้อีกช่วงหนึ่ง
จึงเขียนโปรแกรมให้ขา I/O ขาที่ 1 ของ pic16F819 จ่ายไฟไป trig ขา B ของ C9013 เพื่อป้อนไฟเลี้ยงให้วงจรอีกระยะหนึ่ง ตามรูป
แต่ปรากฎว่ายังไม่ทันกดสวิทช์ ขา B ของ C9013 ก็ถูก trig โดยขา 1 ของ 16F819 ทำให้วงจรทำงานทันที

พอมีคำแนะนำมั๊ยครับ

ขอบคุณครับ


หัวข้อ: Re: ทำยังไงให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง
เริ่มหัวข้อโดย: kiano♥ ที่ มกราคม 07, 2011, 04:45:56 PM
ทำไมมันทำงานเองได้ล่ะ??
ลองเพิ่มอาร์เข้าไประหว่างขา B-E ตามรูป อาการทำงานเองหายไหม
ถ้าไม่อยากให้มันกินไฟ ทำไมไม่ให้มันทำงานในโหมดสลีปล่ะ??


หัวข้อ: Re: ทำยังงัยให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง
เริ่มหัวข้อโดย: JUB ที่ มกราคม 07, 2011, 07:41:30 PM
จะเอาไปใช้ทำอะไรครับ......  :)


หัวข้อ: Re: ทำยังงัยให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง
เริ่มหัวข้อโดย: sit50 ที่ มกราคม 07, 2011, 08:11:12 PM
เอาไปทำรีโมทครับ ใช้กับถ่าน 25A12V ก็เลยต้องการให้ใช้กระแสเมื่อกดปุ่มสั่งงานเท่านั้น


หัวข้อ: Re: ทำยังงัยให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง
เริ่มหัวข้อโดย: kiano♥ ที่ มกราคม 07, 2011, 08:18:56 PM
ตัวอย่างที่ผมเคยหามาเก็บไว้ แต่ยังไม่ได้ลองทำซักอัน
http://www.4shared.com/file/VCBtbup7/All_-_Microcontroller_Remote.html


หัวข้อ: Re: ทำยังงัยให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง
เริ่มหัวข้อโดย: JUB ที่ มกราคม 07, 2011, 11:53:51 PM
เอาไปทำรีโมทครับ ใช้กับถ่าน 25A12V ก็เลยต้องการให้ใช้กระแสเมื่อกดปุ่มสั่งงานเท่านั้น

กำ.....  sleep!!

ใช้ mode sleep ของ pic ก็ได้ครับ 12F675 ก็พอ
ตอนมัน sleep นี่ใช้ มิเตอร์วัดกระแสเข็มไม่กระดิกเลยครับ
ไม่เชื่อลองดูได้เลย...


หัวข้อ: Re: ทำยังงัยให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง
เริ่มหัวข้อโดย: sit50 ที่ มกราคม 08, 2011, 06:36:09 AM
แหะๆๆๆ mode sleep มีหลักการเขียนโปรแกรมเพื่อใช้ Sleep();ยังงัยครับ คือใส่ที่บรรทัดแรกของ main เลยหรือว่ายังงัยครับ
แล้วมันตื่นเองเมื่อกด sw ด้วยคำสั่งอะไรครับ
ขอบคุณครับ
หมายเหตุ ผมใช้ CCS ครับ


หัวข้อ: Re: ทำยังงัยให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง
เริ่มหัวข้อโดย: JUB ที่ มกราคม 08, 2011, 09:22:43 AM
ลองศึกษาจาก link พวกนี้ครับ...

http://picprojects.co/projects/ir/minirem/index.htm

http://www.sixca.com/eng/articles/remote/index.html


หัวข้อ: Re: ทำยังงัยให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง
เริ่มหัวข้อโดย: kiano♥ ที่ มกราคม 08, 2011, 10:10:35 AM
(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/Flow.png)

จากรูปด้านบน เป็นโฟวชาร์ทตัวอย่างแสดงถึงการทำงานของ sleep mode
อธิบายการทำงานได้ดังนี้

- รับค่าจากยูสเซอร์ มีการกดสวิทช์หรือไม่ ถ้ามีการกดสวิทช์ ให้ไปทำงานที่โปรแกรมรับค่าการกดสวิทช์
- ถ้าไม่มีการกดสวิทช์ ให้ไปตั้งค่ารอรับการอินเตอร์รัพ เช่น Timer Over Flow, Interrupt on pin change เพื่อเป็นการปลุก CPU ให้ตื่นเมื่อมีการอินเตอร์รัพตามที่ตั้งเอาไว้
- Sleep (โอม เจ้าจงหลับเถิด จะได้ประหยัดไฟ)
- ถ้ามีการอินเตอรัพ ตามที่ได้ตั้งค่าเอาไว้ CPU จะตื่น แล้วจะกระโดดไปทำงานในโปรแกรมอินเตอร์รัพ ถ้าไม่มีโปรแกรมอินเตอร์รัพ มันก็จะทำงานบันทัดต่อไป (แถวต่อไป)

ในการเซตค่ารอรับการอินเตอร์รัพ ให้ไล่ดูตาม รูปด้านล่างนี้ ว่าเราต้องการให้ตัวไหนทำงานบ้าง
แล้วให้ไปดูว่า ค่าบิตต่างๆในรูป อยู่ใน Register ไหนบ้าง ก็ให้ไปเซตใน Register นั้นๆ
(http://i962.photobucket.com/albums/ae101/kiano555/leksound-IR/Interrupt.png)


หัวข้อ: Re: ทำยังงัยให้กดสวิทช์แบบกดติดปล่อยดับแล้วจ่ายกระแสได้อีกช่วง
เริ่มหัวข้อโดย: sit50 ที่ มกราคม 09, 2011, 07:56:56 AM
ขอบคุณมากครับ ที่อธิบายหลักการใช้ sleep จะทดลองใช้ดูครับ