For example if instead of sending all the values from the ADC, i calculate in the firmware the max value of the signal and send it periodically, i could increase the adc conversion rate and send the max at the same rate that now i'm sending the values, so my app would be faster because i wouldn't need to calculate anything, just multiply by 0.707 to get the rms value. It's just what i thought, please correct me if i'm wrong.
El miércoles, 15 de julio de 2015, 16:57:00 (UTC-5), Ytai escribió: > > I don't see how custom firmware is going to give you higher precision. The > ADC on the PIC has 10-bit resolution, which translates into 3.3mV. With > your full-range scaling of 50mV/A this would translate into about 66mA > resolution. If that's insufficient you can either: > > 1. Use an external ADC with higher resolution. > 2. Sacrifice your 30A range for higher precision in the low end by > increasing the gain (be sure to clamp at 3.3V or else you'll be damaging > the IOIO). > 3. Dynamically change the gain under software control (e.g. by using a > digital output to change a configuration resistor value on the op-amp). > > > On Wed, Jul 15, 2015 at 2:10 PM, Julio Castellanos <[email protected] > <javascript:>> wrote: > >> Yes indeed i need to conditionate the signal, i though there were pins >> tolerant to 5 V but i just read that is only for logic input. Until now i >> was measuring currents lower than 10 A so i didn't remarked the need of the >> conditioning. Thank you for your support. >> >> Also i was already using the buffered version of AnalogInput, i did just >> like you said, i measured the peak-to-peak voltage and converted it to rms, >> then i did a simple conversion to current, that's when i got the accuracy >> of +-0.1A, but i need it to be less than that, that's why i'm looking for >> the option of doing it in the firmware. I wonder if that is possible? >> >> >> >> El miércoles, 15 de julio de 2015, 12:09:16 (UTC-5), Ytai escribió: >>> >>> I think I understand now. So: >>> >>> 1. If you're really intending to measure a signal as high as 30A, >>> the output voltage will be around 4.5V, which exceeds the range the ADC >>> is >>> willing to accept (0-3.3V). >>> 2. Unless the sensor has a built-in amplifier, it is likely that it >>> has a fairly high output impedance. >>> 3. To address both of the above problems, I recommend conditioning >>> the signal using one of more opamp stages, so that it has about 1.5V >>> bias >>> and about 1.5V amplitude @ 30A (or 50mV/A). >>> 4. The IOIO samples at 1kHz. There should be no problem sampling of >>> a 60Hz signal. Moreover, since you know it is a sine wave, all you >>> really >>> need is measure the peak-to-peak voltage which you can then trivially >>> convert to RMS. I suggest that you look at the buffered version of >>> AnalogInput, so that you don't miss or depend on your application thread >>> loop frequency. >>> >>> >>> On Wed, Jul 15, 2015 at 7:15 AM, Julio Castellanos <[email protected]> >>> wrote: >>> >>>> Hi Ytai, thank you for your help. The signal is the output of an A.C. >>>> current sensor, the frequency is the same as the network, 60 hz, and the >>>> sensor can measure up to 30 A with a sensitivity of 66 mV/A. The signal >>>> has >>>> always a D.C. value of 2.5 V so if i measure 1 A the signal will have a >>>> max >>>> of 2.566 V and a min of 2.434 V. The absolute maximum with 30 A is 4.48 V >>>> and absolute minimum of 0.52 V, so the signal is always in the range of >>>> the >>>> analog input of the ioio. I want to know the value rms of the current in >>>> my >>>> smartphone, and i tried obtaining the rms of the voltage by calculating >>>> the >>>> max value of a buffer of 1000 values and the multiplying it by 0.707. I >>>> get >>>> the value rms of the current with an accuracy of +-0.1 A, but i need it to >>>> be less than that, that's why i though it would be better to compute the >>>> rms value of the signal in hardware so i dont have to send the whole >>>> buffer >>>> of the signals. >>>> >>>> El martes, 14 de julio de 2015, 18:44:30 (UTC-5), Ytai escribió: >>>>> >>>>> Before we begin, can you please specify the signal you're trying to >>>>> measure better? >>>>> Specifically, its min and max (instantaneous) voltage, and its >>>>> bandwidth would be important. >>>>> Based on that I can recommend a way of measuring it. >>>>> >>>>> On Tue, Jul 14, 2015 at 3:06 PM, Julio Castellanos <[email protected]> >>>>> wrote: >>>>> >>>>>> Hello, i'm currently working with the IOIO analog input with a sensor >>>>>> signal that comes out as an A.C. signal in the range of 2,5 V as mean >>>>>> value. I've tried to get the voltage through the analog input and get >>>>>> the >>>>>> rms value in software, but the value changes to much because of the >>>>>> bandwith limit of the IOIO:Android communication. I'm now looking to get >>>>>> the RMS directly in hardware and just send that value to the software >>>>>> but i >>>>>> gave a look at the hardware code for adc.c and i don't understand almost >>>>>> nothing, can someone point out to me a source where i can learn how does >>>>>> this code works? >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "ioio-users" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To post to this group, send email to [email protected]. >>>>>> Visit this group at http://groups.google.com/group/ioio-users. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "ioio-users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at http://groups.google.com/group/ioio-users. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "ioio-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at http://groups.google.com/group/ioio-users. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "ioio-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/ioio-users. For more options, visit https://groups.google.com/d/optout.
