Pages: [1]   Go Down
Print
Author Topic: ขอคำแนะนำ การแปลงสัญญาณที่ใช้ควบคุมเซ&#  (Read 11020 times)
0 Members and 4 Guests are viewing this topic.
pic_fc
มาใหม่
*
Offline Offline

Posts: 4


Email
« on: July 23, 2009, 08:26:04 PM »

มีปัญหามาให้พี่ๆช่วยครับ

ผมจะควบคุมหุ่นยนต์โดยใช้รีโมท ซึ่งรีโมทที่ใช้เป็นของเครื่องบิน  รีซีฟเวอร์ควบคุมเซอร์โวได้ 8 ตัว แต่หุ่นยนต์ของผมใช้ DC Motor ธรรมดา (มันต้องใช้แรงขับมาก) จะมีหนทางไหนบ้างครับที่จะแปลงสัญญาณที่รีซีฟเวอร์ส่งออกมาควบคุมเซอร์โว (1ms , 1.5ms , 2ms) มาควบคุม DC Motor

ตัวอย่างเช่น  หากรีซีฟเวอร์ส่งออกมา 1.5ms มอเตอร์จะหยุด (แปลงสัญญาณไปทริกชุดขับมอเตอร์)
                หากรีซีฟเวอร์ส่งออกมา 1ms มอเตอร์จะ RV
                หากรีซีฟเวอร์ส่งออกมา 2ms มอเตอร์จะ FW


แบบนี้เป็นต้น  โปรดชี้แนะด้วยครับ ขอตัวอย่างโค้ด CCS 16f877 ด้วยนะครับ
Logged
smitdh
Administrator
Hero Member
*****
Offline Offline

Gender: Male
Posts: 381


อาจารย์ที่ปรึกษา


« Reply #1 on: July 27, 2009, 09:24:36 AM »

ครับ ลองดู
http://www.thaimicrotron.com/Electronic/SpeedCtrl1.htm
http://www.thaimicrotron.com/Electronic/ServoDriver24V.htm
Logged
pic_fc
มาใหม่
*
Offline Offline

Posts: 4


Email
« Reply #2 on: July 27, 2009, 01:48:36 PM »

 Grin ขอบคุณครับ

แต่อยากได้แบบว่าเขียนโปแกรมเอาอะครับ CCS - 16F877
Logged
plcc
Jr. Member
**
Offline Offline

Posts: 14


Email
« Reply #3 on: July 27, 2009, 07:40:19 PM »

แล้วฮารืดแวร์มันน่าตาเป็นยังไงล่ะครับ จะเขียนซรอฟแวร์ก็ต้องรู้ฮาร์ดแวร์ด้วย
Logged
pic_fc
มาใหม่
*
Offline Offline

Posts: 4


Email
« Reply #4 on: July 27, 2009, 09:56:46 PM »

แบบว่ารับสัญญาณมาจากรีซีฟเวอร์ของชุด RC ซึ่งมันจะเป็นสัญญาณไปควบคุมเซอร์โว ความถี่ 20 ms (1.25ms , 1.5ms 1.75ms)

ผมอยากเอาสัญญาณดังกล่าวเข้า PIC เพื่อแปลงเป็นเอาต์พุตไปควบคุมมอเอตร์ดีซี โดย 1 ช่องสัญญาณของรีซีฟเวอร์จะควบคุมมอเตอร์ดีซี 1 ตัว สามารถควบคุมการกลับทางหมุนได้ (มี 8 ช่อง ควบคุมมอเตอร์ดีซี 8 ตัว อิสระต่อกัน โดย ช่อง 1 ควบคุมมอเตอร์ตัวที่ 1 , ช่อง 2 ควบคุมมอเตอร์ตัวที่ 2, ช่อง 3 ควบคุมมอเตอร์ตัวที่ 3......เป็นต้น)

เช่น
สัญญาณจากรีซีเฟอร์ ช่องที่ 1
- 1.25ms จะทำให้ PIN_CO = 0 , PIN_C1 = 1 (Motor 1 FW)
- 1.5ms   จะทำให้ PIN_CO = 0 , PIN_C1 = 0 (Motor 1 STOP)
- 1.75ms จะทำให้ PIN_CO = 1 , PIN_C1 = 0 (Motor 1 RV)

แบบนี้เป็นต้นครับ

Logged
plcc
Jr. Member
**
Offline Offline

Posts: 14


Email
« Reply #5 on: July 28, 2009, 10:08:28 AM »

ผมคิดว่าเข้ารหัสปุ่มกดด้วย i2c แล้วส่งผ่าน โมดูล rf  ทางภาครับ รับออกมาได้ i2c เข้าคอลโทรลเลอร ได้เลย ผมว่าง่ายกว่าไหมครับ ได้8ช่องเท่ากับ 8 บิทของคอลโทรลเลอร ส่วนจะให้บิทใหนเดินหน้าถอยหลัง ถ้าไม่อยากใช้รีเลย์ ก็คงต้องจัดวงจร ฟูลบริดมาขับมอเตอร์เอา
Logged
Pages: [1]   Go Up
Print
 
Jump to: