माइक्रोसेकंड, टिक नहीं होते
Arduino C++setPWM(ch, on, off) माइक्रोसेकंड नहीं, टिक लेता है: 50 Hz पर एक टिक 20000 / 4096 µs है। शुरुआती कोड 1500 ऐसे भेजता है जैसे वह µs हो, और setPWMFreq(50) भी भूल जाता है। ticksFor() ऐसे लिखें कि 1500 µs लगभग 307 टिक बने, 600 लगभग 123 और 2400 लगभग 492, और फ़्रेम को 50 Hz पर सेट करें।
जाँच
- अभी चलाया नहीं गयाचलता है
- अभी चलाया नहीं गयाsetPWMFreq(50) से फ़्रेम को 50 Hz पर सेट करता है
- अभी चलाया नहीं गया1500 µs, 306-308 टिक बनता है
- अभी चलाया नहीं गया600 µs, 122-124 टिक बनता है
- अभी चलाया नहीं गया2400 µs, 490-493 टिक बनता है
- अभी चलाया नहीं गयाचैनल 0, 50 Hz फ़्रेम में 1500 µs की पल्स भेजता है
संकेत
- ticks = us x 4096 / 20000। पहले गुणा करें, फिर भाग दें, वरना भिन्न खो जाता है।
- 1500 x 4096, 60 लाख से ज़्यादा है, Nano पर int के लिए बहुत बड़ा: पहले uint32_t में cast करें।
- pwm.setPWMFreq(50); ठीक pwm.begin(); के बाद आता है।