4 Replies Latest reply on Jun 21, 2011 11:28 AM by udayan.umapathi

    Problem with getting acceleration






      I`m working with a CY8Ckit-003.


      How to interpretate the value gotten by the accelerometer? I`m using the ADC to convert the signal, but i need the value 


      in m/s for example. is there any way to get this value?

        • 1. Re: Problem with getting acceleration

          You only can get delta m/s, since the value gotten by the accelerometer is nothing but a voltage singnal interpretated as acceleration-induced motion with a full-scale  range of /-2g (19.6 m/s/s). Datasheet of the accelerometer that the kit used:







          • 2. Re: Problem with getting acceleration

            The datasheet of the actual chip used, could be found here, http://www.kionix.com/Product-Specs/KXSC7-2050%20Specifications%20Rev%204.pdf. The accelerometer gives out voltage proportional to the acceleration. Since it is a 3 axis accelerometer there are 3 voltages corresponding to each of these axes. The zero-g offset voltage is 1.65 volts when the chips is powered with 3.3 volts supply, which implies that the X and Y axes will measure 1.65 volts when the accelerometer is held howrizontal in the XY plane. The sensitivity of this accelerometer 660 mV/g, which effectively implies that when the accelerometer sees one g of acceleration the output voltage would be (1.65V 0.66V) or (1.65V - 0.66V). This voltage needs to be digitisded using the Delsig ADC on PSoC3. For a 12 bit configuration, single ended mode with VSSA-VDDA being the range, the smallest voltage that can be measure is 0.8 mV(1 count). If you measure a count of 2163 from ADC, then the measured voltage is (2163*8 mV =1.73 V).  Effectively the accelaration seen corresponds to the 0.08 Volt (1.73V -1.65V). The actual acceleration in g is now given by (80/660)g = 0.1212 g, which is equivalent to 1.187 m/s2. I hope this helps.

            • 3. Re: Problem with getting acceleration

              Ok, i`m reading the ADC value in a uint16 variable. But the problem is that the function UART_PutChar have a uint8 parameter. This is my code:






              uint16 accel;


              uint8 *pointer;


              accel = ADC_GetResult16();


              pointer = &accel;






              But i think this isn`t working. Is that correct?  




              How can i send this value by uart component? Could you give me an example please?

              • 4. Re: Problem with getting acceleration
                    It would be helpful to debug the issue if you could throw some light on the following:   
                1. Is your UART working with PutChar function? 
                3. How are you seeing the UART output? Which kit are you using ?
                5. Have you made sure that Global interrupt is enabled in your code
                7. Have you used the API UART_Start() in the code before sending the data.