3 - Commander une LED RGB par PWM”
De Wiki L.A.B
Révision de 8 novembre 2017 à 18:48 par BERNIER François (discussion | contributions) (Page créée avec « =='''Commander une led Rgb par PWM'''== <br> <br> Nous allons poussez un peu plus loin l'exploration du PWM en pilotant l’éclairage d'une led RGB. Réaliser le montage... »)
Commander une led Rgb par PWM
Nous allons poussez un peu plus loin l'exploration du PWM en pilotant l’éclairage d'une led RGB.
Réaliser le montage suivant à l'aide de :
- 2 résistances de 100 Ω pour les broches Vert et Bleu
- 1 résistance de 200 Ω pour la broche rouge
Voici l'emplacement des différentes broches de la led RGB
Et le schéma de câblage
Nous devons comme précédemment pré-configurer les broches du STM32 sous CubeMx comme ceci
Dans l'onglet "Configuration" , régler les Timer 2 et 3 avec le "Prescaler" à 80 et le "Counter Periode" à 100
Et le code à incorporer dans votre fichier main.c
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_TIM3_Init();
MX_TIM2_Init();
/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start( &htim3, TIM_CHANNEL_1 ); // Green
HAL_TIM_PWM_Start( &htim3, TIM_CHANNEL_2 ); // Red
HAL_TIM_PWM_Start( &htim2, TIM_CHANNEL_1 ); // Blue
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
for ( int i = 0; i < 100; i ++ )
{
/* USER CODE END WHILE */
__HAL_TIM_SET_COMPARE( &htim3, TIM_CHANNEL_1, i); // Green
__HAL_TIM_SET_COMPARE( &htim3, TIM_CHANNEL_2, i); // Red
__HAL_TIM_SET_COMPARE( &htim2, TIM_CHANNEL_1, i); // Blue
HAL_Delay( 20 );
}
for ( int i = 100; i > 0; i -- )
{
/* USER CODE END WHILE */
__HAL_TIM_SET_COMPARE( &htim3, TIM_CHANNEL_1, i); // Green
__HAL_TIM_SET_COMPARE( &htim3, TIM_CHANNEL_2, i); // Red
__HAL_TIM_SET_COMPARE( &htim2, TIM_CHANNEL_1, i); // Blue
HAL_Delay( 20 );
}
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}