คำถามติดแท็ก pwm

1
ความถี่ของเอาต์พุต PWM บน Arduino คืออะไร
Arduinos ใช้ความถี่อะไรสำหรับ PWM ปกติเมื่อคุณใช้ analogWrite () และมันแตกต่างกันสำหรับ Arduino รุ่นอื่นหรือไม่? ฉันสนใจเฉพาะใน Mega 2560 แต่ยังต้องการทราบว่ามันสอดคล้องกันระหว่างรุ่นหรือไม่ ฉันเคยเห็นการอ้างอิงถึง Arduino โดยใช้ 500 Hz ซึ่งดูเหมือนช้ามาก
22 pwm 

2
ทำไมบางพินถึงมีความถี่ PWM แตกต่างกัน?
อ้างอิงจากArduino สำหรับanalogWrite()ความถี่ PWM บนพินส่วนใหญ่คือ ~ 490 Hz อย่างไรก็ตามมันมีค่า ~ 980 Hz สำหรับหมุด 5 และ 6 บน Uno และสำหรับหมุด 3 และ 11 บน Leonardo ทำไมเหล่านี้แตกต่างกันอย่างไร มันเป็นคุณสมบัติการออกแบบโดยเจตนาหรือเป็นไปตามที่ฮาร์ดแวร์กำหนดไว้หรือไม่?

5
วิธีการส่งออกแรงดันไฟฟ้าอะนาล็อกที่แท้จริงที่ขาออก
เกี่ยวกับโปรแกรมของฉันมันเป็นโปรแกรมที่ทำการคำนวณบางอย่างแล้วส่งแรงดันไฟฟ้าตามผลลัพธ์โดยใช้ฟังก์ชัน analogWrite อย่างไรก็ตามปัญหาของฉันคือฉันได้ทำการเขียนโปรแกรมของฉันตามความเข้าใจผิดว่าฟังก์ชัน analogWrite ผ่าน PWM ทำหน้าที่ส่งสัญญาณแรงดันไฟฟ้าอะนาล็อกซึ่งจริงๆแล้วมันเป็นเพียง "จำลอง" แรงดันไฟฟ้าอนาล็อกแทน นี่คือส่วนที่เกี่ยวข้องในรหัสของฉัน: int pwmOutput = 11; int pwm = 0; void compareNewOldVoltageYes(void) { if(pv_Vnew > pv_Vold && pwm != 255) { ++pwm; //increasing value } else if(pwm != 0) { --pwm; //decreasing } } void compareNewOldVoltageNo(void) { if(pv_Vnew > pv_Vold && pwm …

2
ตั้งค่าความถี่ PWM เป็น 25 kHz
ขณะนี้ฉันสามารถตั้งค่าหมุด PWM สี่เข็มเป็นประมาณ 31 kHz ด้วยรหัสต่อไปนี้: void setup() { TCCR1B = TCCR1B & B11111000 | B00000001; // Set PWM frequency for D9 & D10: pinMode(pwmPin9, OUTPUT); // Sets the pin as output pinMode(pwmPin10, OUTPUT); // Sets the pin as output TCCR2B = TCCR2B & B11111000 | B00000001; // Set PWM …
12 pwm  frequency 

2
เพิ่มความละเอียดบิต PWM
ฉันต้องการเพิ่มความละเอียดบิต PWM ของ Arduino Uno ในขณะนี้มันมี 8 บิตซึ่งฉันถือว่าต่ำเกินไป เป็นไปได้โดยไม่สูญเสียความสามารถในการขัดจังหวะและล่าช้าหรือไม่ Koen แก้ไขการตั้งค่านี้ให้ผลลัพธ์แบบ 16 บิต void setupPWM16() { DDRB |= _BV(PB1) | _BV(PB2); /* set pins as outputs */ TCCR1A = _BV(COM1A1) | _BV(COM1B1) /* non-inverting PWM */ | _BV(WGM11); /* mode 14: fast PWM, TOP=ICR1 */ TCCR1B = _BV(WGM13) | _BV(WGM12) …
10 arduino-uno  pwm 

2
millis () ขัดแย้งกับหมุด PWM ที่เกี่ยวข้องกับตัวจับเวลา 0 หรือไม่
ฉันได้อ่านแล้วว่าmillis()ฟังก์ชั่นนี้ใช้ตัวจับเวลาเดียวกันกับหมุด PWM สองสามตัว หากคุณใช้หมุด PWM เหล่านั้นจะmillis()ยังคงส่งคืนค่าที่ถูกต้องหรือไม่
9 timers  pwm  millis 

3
ควบคุมอุณหภูมิของน้ำได้อย่างแม่นยำ
ฉันมีการตั้งค่าต่อไปนี้: Arduino Duemilanove เครื่องทำน้ำอุ่นขนาดเล็กเชื่อมต่อกับรีเลย์ออปติคอล (PWM ก็โอเค) เซ็นเซอร์อุณหภูมิ DS18B20 กันน้ำ ปริมาณน้ำที่ไม่ทราบ (แต่เซ็นเซอร์อุณหภูมิและเครื่องทำความร้อนอยู่ใต้น้ำเสมอ) ฉันจะควบคุมอุณหภูมิของน้ำอย่างแม่นยำได้อย่างไรจากการอ่านเซ็นเซอร์อุณหภูมิ โดยความแม่นยำฉันหมายถึงความแม่นยำของเซ็นเซอร์อุณหภูมิ (ในกรณีนี้คือ± 0.5 ° C) ทุกอย่างควรทำงานบน Arduino ดังนั้นจึงไม่มีการจัดเก็บข้อมูลเพิ่มเติมหรือกำลังประมวลผล สำหรับการแก้ไขข้อบกพร่องฉันสามารถใช้คอมพิวเตอร์ได้อย่างชัดเจน ฉันได้ลองใช้ PID แล้ว แต่ดูเหมือนว่าจะยากจริงๆ หลีกเลี่ยงการแก้ไขปัญหามากเกินไป - ไปที่อุณหภูมิเป้าหมายไม่ว่าในขั้นต้นหรือเมื่อมีการเพิ่มน้ำ (เย็น) รักษาเสถียรภาพให้เหมาะสมหลังจากเติมน้ำเย็น
9 pwm  pid 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.