3 - Commander une LED RGB par PWM” : Différence entre versions
De Wiki L.A.B
(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... ») |
(Aucune différence)
|
Version du 8 novembre 2017 à 19:48
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 */
}