คือตอนนี้ผมทำโปรเจคที่จะต้องควบคุมความเร็วของการหมุน brushless dc motor(ซื้อมอเตอร์เครื่องบินบังคับมา)แล้วจากการสือบค้นข้อมูลทำให้รู้ข้อมูลคร่าวๆว่า
รีโมตจะส่งสัญญาณให้กับตัวรีซิฟเวอร์ รีซิฟเวอร์จะส่งสัญญาณอยู่ในรูปของพัลส์ความกว้างต่างๆให้แต่esc(speed controll) escจะแปลงข้อมูลความกว้างของพัลส์ว่าเราต้องการให้มอเตอร์หมุนด้วยความเร็วเท่าไหร่แล้วทำการใส่ไฟแต่ละเส้นแก่มอเตอร์(คือเข้าใจว่ามอเตอร์นี้คล้ายๆมอเตอร์สามเฟสที่ต้องจ่ายไฟหลับๆกันให้เกิดการหมุนของมอเตอร์)
และตามคู่มือถ้าเป็นการใช้ครั้งแรก จำเป็นต้องทำให้escจดจำค่าของตำแหน่งในการบังคับของรีโมตของเราโดยการเลือกตำแหน่งคันโยกไปสุดแล้วรอescส่งเสียงบีบ แล้วก็โยกไปตำแหน่งต่ำสุด ผมเข้าใจว่าคงให้escสามารถรู้ได้ว่าถ้าหากถ้าหากเราต้องการความเร็วสูงสุด(ดึงคันโยกไปบนสุด)จะมีพัลส์ความกว้างขนาดนึงส่งให้esc และ ถ้าหากเราต้องการความเร็วต่ำสุดหรือ0(ดึงคันโยกไปล่างสุด)จะมีพัลส์ความกว้างอีกขนาดนึงส่งให้esc
ถึงตรงนนี้นี่ผมเข้าใจถูกรึเปล่าครับ?พอดีไม่เคยแตะหรือเล่นพวกเครื่องบินบังคับเลยย
สิงที่ผมต้องการจะทำคือ ตัดในส่วนของรีโมตกับรีซิฟเวอร์ออกไป แล้วเปลี่ยนเป็นarduinoให้ส่งสัญญาณพัลส์เข้าสู่escแทน ซึ่งปัญหาของผมตอนนี้คือ
1.เราจะทราบได้อย่างไรว่าที่ความเร็วสูงสุดหรือต่ำสุดescจะใช้ความกว้างพัลส์เท่าไหร่ หรือว่าเราสามารถกำหนดได้เองเลย จากการหาข้อมูลได้ข้อมูลservo motorรับในช่วงความกว้ง1-2 msแต่ไม่รู้ว่ามอเตอร์ที่ผมใช้จะมีความกว้างเท่าไหร่?
2.ถ้าหากกำหนดได้เอง เราสามารถกำหนดความกว้างของสัญญาณพัลส์จากarduinoในขั้นตอนการเซตของรีโมตได้เลยหรือไม่ คืออยากให้ความเร็วเป็น0ที่ความกว้างพัลส์1ms และ อยากให้ความเร็วสูงสุดที่ความกว้างพัลส์2ms ก็เขียนcodeเข้าไปเลย ใช้code servoเพราะมันจะส่งสัญญารพัลส์ไปอยู่แล้ว
rotor. writeMicroseconds(2000); //กำหนดตำแหน่งสูงสุด
delay(2000);//รอ 2 วินาทีสำหรับการยืนยันตำแหน่งสูงสุด
rotor. writeMicroseconds(1000);// กำหนดตำแหน่งต่ำสุด
ซึ่งเมื่อยืนยันข้อมูลmax minเสร็จแล้ว ถ้าหากอยากให้หมุนเท่าไหร่เราก็varyค่าอยู่ในช่วง1000-2000 usได้เลยผมคิดถูกรึเปล่าครับ ขอบคุณครับ
ผมก็ไม่รู้ผมแท็กถูกห้องรึเปล่า ยังไงต้องขออภัยไว้ ณ ที่นี้
มีเรื่องจะสอบถามเกี่ยวกับการควบคุม brushless dc motor(มอเตอร์เครื่องบินบังคับ) ผ่าน Arduino
รีโมตจะส่งสัญญาณให้กับตัวรีซิฟเวอร์ รีซิฟเวอร์จะส่งสัญญาณอยู่ในรูปของพัลส์ความกว้างต่างๆให้แต่esc(speed controll) escจะแปลงข้อมูลความกว้างของพัลส์ว่าเราต้องการให้มอเตอร์หมุนด้วยความเร็วเท่าไหร่แล้วทำการใส่ไฟแต่ละเส้นแก่มอเตอร์(คือเข้าใจว่ามอเตอร์นี้คล้ายๆมอเตอร์สามเฟสที่ต้องจ่ายไฟหลับๆกันให้เกิดการหมุนของมอเตอร์)
และตามคู่มือถ้าเป็นการใช้ครั้งแรก จำเป็นต้องทำให้escจดจำค่าของตำแหน่งในการบังคับของรีโมตของเราโดยการเลือกตำแหน่งคันโยกไปสุดแล้วรอescส่งเสียงบีบ แล้วก็โยกไปตำแหน่งต่ำสุด ผมเข้าใจว่าคงให้escสามารถรู้ได้ว่าถ้าหากถ้าหากเราต้องการความเร็วสูงสุด(ดึงคันโยกไปบนสุด)จะมีพัลส์ความกว้างขนาดนึงส่งให้esc และ ถ้าหากเราต้องการความเร็วต่ำสุดหรือ0(ดึงคันโยกไปล่างสุด)จะมีพัลส์ความกว้างอีกขนาดนึงส่งให้esc
ถึงตรงนนี้นี่ผมเข้าใจถูกรึเปล่าครับ?พอดีไม่เคยแตะหรือเล่นพวกเครื่องบินบังคับเลยย
สิงที่ผมต้องการจะทำคือ ตัดในส่วนของรีโมตกับรีซิฟเวอร์ออกไป แล้วเปลี่ยนเป็นarduinoให้ส่งสัญญาณพัลส์เข้าสู่escแทน ซึ่งปัญหาของผมตอนนี้คือ
1.เราจะทราบได้อย่างไรว่าที่ความเร็วสูงสุดหรือต่ำสุดescจะใช้ความกว้างพัลส์เท่าไหร่ หรือว่าเราสามารถกำหนดได้เองเลย จากการหาข้อมูลได้ข้อมูลservo motorรับในช่วงความกว้ง1-2 msแต่ไม่รู้ว่ามอเตอร์ที่ผมใช้จะมีความกว้างเท่าไหร่?
2.ถ้าหากกำหนดได้เอง เราสามารถกำหนดความกว้างของสัญญาณพัลส์จากarduinoในขั้นตอนการเซตของรีโมตได้เลยหรือไม่ คืออยากให้ความเร็วเป็น0ที่ความกว้างพัลส์1ms และ อยากให้ความเร็วสูงสุดที่ความกว้างพัลส์2ms ก็เขียนcodeเข้าไปเลย ใช้code servoเพราะมันจะส่งสัญญารพัลส์ไปอยู่แล้ว
rotor. writeMicroseconds(2000); //กำหนดตำแหน่งสูงสุด
delay(2000);//รอ 2 วินาทีสำหรับการยืนยันตำแหน่งสูงสุด
rotor. writeMicroseconds(1000);// กำหนดตำแหน่งต่ำสุด
ซึ่งเมื่อยืนยันข้อมูลmax minเสร็จแล้ว ถ้าหากอยากให้หมุนเท่าไหร่เราก็varyค่าอยู่ในช่วง1000-2000 usได้เลยผมคิดถูกรึเปล่าครับ ขอบคุณครับ
ผมก็ไม่รู้ผมแท็กถูกห้องรึเปล่า ยังไงต้องขออภัยไว้ ณ ที่นี้