This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

PWM control using accelerometer

hello friends,

i need to control 4 LED brightness using PWM according to accelerometer values. how can i do that

i am using SDK11, nrf52832, KEIL MDK5

i going to attach main file what i am doing wrong please check and let me know main.txt

and if possible please let know how can i proceed in right way

Parents
  • So you can try something like this:

    						if(accel_values.x > 0000 && accel_values.x < 8000)
    					{  // LED 1 blinking, other led off
    
    
    seq_values[0].channel_0 = 50;
    seq_values[0].channel_1 = 0;
    seq_values[0].channel_2 = 0;
    seq_values[0].channel_3 = 0;
    
    nrf_pwm_values_t new_pwm_values; 
    
    new_pwm_values.p_individual = seq_values;
    
    nrf_drv_pwm_sequence_values_update(&m_pwm0,1,new_pwm_values);
    
    
    					}
    					
    					
    					if(accel_values.x > 8000 && accel_values.x < 10000)
    					{ LED 2 blinking, other led off
    
    seq_values[0].channel_0 = 0;
    seq_values[0].channel_1 = 50;
    seq_values[0].channel_2 = 0;
    seq_values[0].channel_3 = 0;
    
    nrf_pwm_values_t new_pwm_values; 
    
    new_pwm_values.p_individual = seq_values;
    
    nrf_drv_pwm_sequence_values_update(&m_pwm0,1,new_pwm_values);
    
    
    					}
    					
    												
    						if(accel_values.x > 10000 && accel_values.x < 12000)
    					{ LED 3 blinking, other led off
    						
    								
    								
    seq_values[0].channel_0 = 0;
    seq_values[0].channel_1 = 0;
    seq_values[0].channel_2 = 50;
    seq_values[0].channel_3 = 0;
    
    nrf_pwm_values_t new_pwm_values; 
    
    new_pwm_values.p_individual = seq_values;
    
    nrf_drv_pwm_sequence_values_update(&m_pwm0,1,new_pwm_values);
    							
    					}
    					
    					
    						if(accel_values.x > 12000 && accel_values.x < 14000)
    					{ LED 4 blinking, other led off
    							
    
    seq_values[0].channel_0 = 0;
    seq_values[0].channel_1 = 0;
    seq_values[0].channel_2 = 0;
    seq_values[0].channel_3 = 50;
    
    nrf_pwm_values_t new_pwm_values; 
    
    new_pwm_values.p_individual = seq_values;
    
    nrf_drv_pwm_sequence_values_update(&m_pwm0,1,new_pwm_values);
    
    
    					}
    					
    					
    						if(accel_values.x > 14000 && accel_values.x < 16000)
    					{ //ALL LED blinking
    
    seq_values[0].channel_0 = 50;
    seq_values[0].channel_1 = 50;
    seq_values[0].channel_2 = 50;
    seq_values[0].channel_3 = 50;
    
    nrf_pwm_values_t new_pwm_values; 
    
    new_pwm_values.p_individual = seq_values;
    
    nrf_drv_pwm_sequence_values_update(&m_pwm0,1,new_pwm_values);
    
    
    							
    					}
    
Reply
  • So you can try something like this:

    						if(accel_values.x > 0000 && accel_values.x < 8000)
    					{  // LED 1 blinking, other led off
    
    
    seq_values[0].channel_0 = 50;
    seq_values[0].channel_1 = 0;
    seq_values[0].channel_2 = 0;
    seq_values[0].channel_3 = 0;
    
    nrf_pwm_values_t new_pwm_values; 
    
    new_pwm_values.p_individual = seq_values;
    
    nrf_drv_pwm_sequence_values_update(&m_pwm0,1,new_pwm_values);
    
    
    					}
    					
    					
    					if(accel_values.x > 8000 && accel_values.x < 10000)
    					{ LED 2 blinking, other led off
    
    seq_values[0].channel_0 = 0;
    seq_values[0].channel_1 = 50;
    seq_values[0].channel_2 = 0;
    seq_values[0].channel_3 = 0;
    
    nrf_pwm_values_t new_pwm_values; 
    
    new_pwm_values.p_individual = seq_values;
    
    nrf_drv_pwm_sequence_values_update(&m_pwm0,1,new_pwm_values);
    
    
    					}
    					
    												
    						if(accel_values.x > 10000 && accel_values.x < 12000)
    					{ LED 3 blinking, other led off
    						
    								
    								
    seq_values[0].channel_0 = 0;
    seq_values[0].channel_1 = 0;
    seq_values[0].channel_2 = 50;
    seq_values[0].channel_3 = 0;
    
    nrf_pwm_values_t new_pwm_values; 
    
    new_pwm_values.p_individual = seq_values;
    
    nrf_drv_pwm_sequence_values_update(&m_pwm0,1,new_pwm_values);
    							
    					}
    					
    					
    						if(accel_values.x > 12000 && accel_values.x < 14000)
    					{ LED 4 blinking, other led off
    							
    
    seq_values[0].channel_0 = 0;
    seq_values[0].channel_1 = 0;
    seq_values[0].channel_2 = 0;
    seq_values[0].channel_3 = 50;
    
    nrf_pwm_values_t new_pwm_values; 
    
    new_pwm_values.p_individual = seq_values;
    
    nrf_drv_pwm_sequence_values_update(&m_pwm0,1,new_pwm_values);
    
    
    					}
    					
    					
    						if(accel_values.x > 14000 && accel_values.x < 16000)
    					{ //ALL LED blinking
    
    seq_values[0].channel_0 = 50;
    seq_values[0].channel_1 = 50;
    seq_values[0].channel_2 = 50;
    seq_values[0].channel_3 = 50;
    
    nrf_pwm_values_t new_pwm_values; 
    
    new_pwm_values.p_individual = seq_values;
    
    nrf_drv_pwm_sequence_values_update(&m_pwm0,1,new_pwm_values);
    
    
    							
    					}
    
Children
No Data
Related