Heeft veranderende PWM-frequentie in Arduino invloed op SPI- en I2C-communicatie en helpt de DC-motor te regelen?

Ik gebruik op L293D gebaseerde motorbescherming voor het regelen van twee dc-motoren van Arduino Mega 2560. Ik gebruik 5 en 6 PWM-pen voor het instellen van de snelheid van elke motor. Ik heb twee vragen:

  1. Verhoogt de frequentie van PWM (van standaard 500Hz tot maximaal 31KHz) de motoren gevoeliger? Met standaardfrequentie (afgezien van ruis) werken de motoren boven 130-140 PWM-niveau. Onder de 130 roteren ze niet, ze geven alleen het "BEEP" geluid. Er is ook weinig verschil tussen 130 en 255 niveau. Verhoogt de pulsfrequentie ze gevoeliger, zodat ik ze op hetzelfde niveau (1/8 max. Snelheid) kan uitvoeren?

  2. Zo ja: verandert de deler in timer0 (zoals hier beschreven http://arduino. cc/playground/Code/PwmFrequency en hier http://www .mythic-beasts.com/~ markt/ATmega-timers.html ) heeft invloed op de SPI- en I2C-interface? Zal (en hoe) het de pulseIn-functie beïnvloeden? (Ik weet dat dit de vertragingsfunctie zal beïnvloeden, maar ik denk dat ik het functieargument moet herschalen).

2

1 antwoord

1) 31 KHz is een veel redelijkere PWM-frequentie dan 500 Hz. Motoren zullen werken als een laagdoorlaatfilter en geven u in het algemeen het gelijkwaardige equivalent van uw PWM, maar met zeer laagfrequente PWM die u soms onvoorspelbaar krijgt - zoals u hebt gezien. Over het algemeen moet u de frequentie van de PWM boven de bandbreedte van de motor verhogen - anders ziet hij een blokgolf in plaats van een gelijkspanning. 31 KHz ligt precies in het bereik van de meeste motorcontrollers die ik heb gezien. Over het algemeen wilt u dat het hoog is maar niet te hoog (HF-ruis kan koppelingen maken met andere delen van het circuit, enz.). Het lijkt erop dat je in een goed bereik zit met 31 KHz.

2) Het zou die bit rates niet mogen beïnvloeden. De randapparatuur moet zijn eigen verdelers en scalers hebben en moet worden uitgeschakeld van de hoofdklok en niet van een perifere timer. Ik kan echter niet met de pulseIn-functie spreken.

1
toegevoegd