User Tools

Site Tools


module:arduino:pulsewidthmodulation:stm32f103pwmtest:stm32f103pwmtest

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
module:arduino:pulsewidthmodulation:stm32f103pwmtest:stm32f103pwmtest [2022/04/01 17:06] – [220331: Stm32F103: Aufbau Timer / Channel] omdevelopmodule:arduino:pulsewidthmodulation:stm32f103pwmtest:stm32f103pwmtest [2022/09/13 11:58] (current) – external edit 127.0.0.1
Line 2: Line 2:
  
 ===== Übersicht ===== ===== Übersicht =====
 +  * Klasse CPulseWidthModulator für jeden PWM-Ausgang (und für jeden Controller-Typ) - leider bisher nicht erreicht!
  
 +===== Idee =====
 +  * PCA9685 16 Channel 12-bit PWM I2C-Servo-Module
  
-===== Aufgaben ===== +===== Weiterführung ===== 
-  * Auflösung 16bit bei PWM??? +  * mit Dispatcher und ControllerRingBus: **Stm32CrbServoMotor** 
-  * Wie viele Timer? +  * ohne Dispatcher, ohne ControllerRingBus: **Stm32F103PwmTest** : 2204071805_Stm32F103PwmTest_01V08_last2xS4xM 
-  * Wie viele Channel für einen Timer?+ 
 +===== Aufgaben STM32F103C8T6 ===== 
 +  * Auflösung 16bit bei PWM - konnte bisher nicht allgemein beeinflusst werden :-( 
 +  * Wie viele Timer? ??
 +  * Wie viele Channel für einen Timer? ??? 
 +  * Grosse Probleme, mit Library oder auch mit PTimer->function(...) : 
 +  * gegenseitige Beeinflussung, Interfererenzen, maximal 2 Timer gleichzeitig verwendbar
  
 ===== ===== ===== =====
 +===== 220331: Stm32F103PwmTest  =====
 +  * letzte Entwicklung (anstelle Stm32F103PwmMotorMinimal)
 +  * 2x Servos mit 50Hz (2 Pwms) TIM1
 +  * 2x Motoren (mit INA und INB, daher 4 Pwms) TIM2
 +  * letztlich automatische Pwm-Zuordnung über Bibliothek (Standard in Arduino), grausam!
 +  * grausam: nur Funktion setPWM(frequency, pwm) mit int-Werten - auch für pwm :-(:-(:-( -, daher nur 10 Werte im Bereich von 1 ms (left) bis 2 ms (right) [middle: 1.5 ms]
 +  * Version: {{:Module:Arduino:PulseWidthModulation:Stm32F103PWMTest:2204071805_Stm32F103PwmTest_01V08_last2xS4xM.zip | 2204071805_Stm32F103PwmTest_01V08_last2xS4xM.zip}}
 +  * Version:{{:Module:Arduino:PulseWidthModulation:Stm32F103PWMTest:2204061919_Stm32F103PwmTest_01V05_MotorLRServoAB.zip | 2204061919_Stm32F103PwmTest_01V05_MotorLRServoAB.zip}}
 +  * Version: {{:Module:Arduino:PulseWidthModulation:Stm32F103PWMTest:2204061904_Stm32F103PwmTest_01V04.zip | 2204061904_Stm32F103PwmTest_01V04.zip}}
 +
 ===== 220331: Stm32F103: Aufbau Timer / Channel ===== ===== 220331: Stm32F103: Aufbau Timer / Channel =====
   * Version: {{:Module:Arduino:PulseWidthModulation:Stm32F103PWMTest:2203312138_Stm32F103PwmTest_01V02.zip | 2203312138_Stm32F103PwmTest_01V02.zip}}   * Version: {{:Module:Arduino:PulseWidthModulation:Stm32F103PWMTest:2203312138_Stm32F103PwmTest_01V02.zip | 2203312138_Stm32F103PwmTest_01V02.zip}}
Line 49: Line 68:
 CPulseWidthModulator ActorF(PIN_PWM_D24); CPulseWidthModulator ActorF(PIN_PWM_D24);
 // //
 +</code>
 +
 +<code>
 +for (int I = 0; I < 100; I += 1)
 +{ // Motor
 +  int PwmActorA = min(MAX_PWMA, max(MIN_PWMA, I));
 +  int PwmActorB = min(MAX_PWMB, max(MIN_PWMB, 100 - I));
 +  int PwmActorC = min(MAX_PWMC, max(MIN_PWMC, I));
 +  int PwmActorD = min(MAX_PWMD, max(MIN_PWMD, 100 - I));
 +  int PwmActorE = min(MAX_PWMA, max(MIN_PWMA, I));
 +  ActorA.SetFrequencyPwm(FREQUENCY_HIGH, PwmActorA);
 +  ActorB.SetFrequencyPwm(FREQUENCY_HIGH, PwmActorB);
 +  ActorC.SetFrequencyPwm(FREQUENCY_LOW, PwmActorC);
 +  ActorD.SetFrequencyPwm(FREQUENCY_LOW, PwmActorD);
 +  ActorE.SetFrequencyPwm(FREQUENCY_HIGH, PwmActorE);
 +  //
 +  delay(100);
 +}
 +</code>
 +
 +  * anderer (erfolgloser) Versuch, da nur eine Basisfrequenz für alle PWMs:
 +<code>
 +// 2kHz !!! only ONE PWM-Frequency!
 +void setup()
 +
 +  analogWriteResolution(16);
 +  analogWriteFrequency(2000); // 2kHz !!! only ONE PWM-Frequency!
 +  analogWrite(PB11, 20000);     
 +  analogWrite(PB10, 40000);    
 +  analogWrite(PB0, 20000);     
 +  analogWrite(PB1, 40000);    
 +}
 </code> </code>
  
module/arduino/pulsewidthmodulation/stm32f103pwmtest/stm32f103pwmtest.1648825590.txt.gz · Last modified: 2022/04/01 17:06 by omdevelop