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

Unable to get ADC results using accelerometer

hi, i am working on ble_app_uart_simple_adc example which is referred from the link github.com/.../nrf51-ADC-examples i flashed the code successfully. and detecting the device using NRFTool box application. during the circuit setup i connected accelerometer(ADXL335) Z- output to the p0.01 of the nrf51 development kit and connected ground. after connecting to the device through nrftool box UART application. the log file showing unknown values(strange symbols). how to get accelerometer z output values using this ble_app_uart_simple_adc example code.

Parents
  • Hi

    The nRFtoolbox UART app is probably receiving the correct ADC values, but it displays the values as ascii characters. If you would instead send readable ascii characters, then the nrftoolbox UART app would be able to display it correctly. E.g. if you would write the adc_event_handler as follows:

    static void adc_event_handler(nrf_drv_adc_evt_t const * p_event)
    {
    	uint8_t adc_result_temp[] = {'c','a','f','e'};
    	
    	if (p_event->type == NRF_DRV_ADC_EVT_DONE)
    	{
    		ble_nus_string_send(&m_nus, &adc_result_temp[0], 4);
    	}
    }
    

    it would write "cafe" in nRFtoolbox. If you want to see the real ADC values however, it is better to connect with nRF Connect app, then you see the raw hexadecimal values instead of ascii characters.

  • You must implement the transfer function yourself from ADC output value to meaningful g value. For example, if the specification for the accelerometer says that 2.0V output is positive 10g acceleration, 1.0V is no acceleration and 0V is negative 10g acceleration, and the relationship between acceleration and accelerometer voltage output is linear, then you can with algebra find the transfer function where you have ADC output value on one axis and g value on the other.

Reply Children
No Data
Related