Page 21 of 22

Re: Detector Building C

Posted: March 5th, 2020, 7:52 am
by MTV<=>Operator
jinhusong wrote: March 4th, 2020, 9:20 am
MTV<=>Operator wrote: March 3rd, 2020, 3:04 pm I thought low battery would only impact a linear analog to digital sensor, not a thermistor? I tried switching batteries and the readings all remained the same. For reference, two weeks ago the device would read a voltage of 395 for 15 degrees, but now it reads a voltage of 380 for 15 degrees. Nothing was changed. I didn't measure the resistance to begin with, I just related voltage directly to temperature with a 5 part piecewise function.


You can try with another thermistor to see if any change. Normally, change thermistor will not change the voltage that much.

Better do debug, assuming you are using the standard voltage-divide circuit, like a 10k ohm reference resistor serial with a 10k thermistor.
Use multimeter to check voltage at each points on the circuit of the thermistor and compare with the value from calculation (you can calculate the supposed voltage from the temperature and the reference resistor).

BTW, voltage "395", raw ADC integer?
What voltage you power the thermistor circuit? What is the range and bits of your ADC (Arduino UNO is 10bits, range is 5.0V, 1.1V, or user input) ? Any change of these will affect the voltage reading.
Yes, I was using an Arduino uno with 5.0 V and the voltage divide circuit but I suspect the resistance changed because the waterproofing was gradually eroding off of the thermistor bead. Water actually got into that probe so I am making a new one that I plan to use with 3.3 V as the reference. Is it necessary to convert the ADC reading to a value in volts? If so, how would I do that?

Re: Detector Building C

Posted: March 5th, 2020, 9:37 am
by jinhusong
MTV<=>Operator wrote: March 5th, 2020, 7:52 am
jinhusong wrote: March 4th, 2020, 9:20 am
MTV<=>Operator wrote: March 3rd, 2020, 3:04 pm I thought low battery would only impact a linear analog to digital sensor, not a thermistor? I tried switching batteries and the readings all remained the same. For reference, two weeks ago the device would read a voltage of 395 for 15 degrees, but now it reads a voltage of 380 for 15 degrees. Nothing was changed. I didn't measure the resistance to begin with, I just related voltage directly to temperature with a 5 part piecewise function.


You can try with another thermistor to see if any change. Normally, change thermistor will not change the voltage that much.

Better do debug, assuming you are using the standard voltage-divide circuit, like a 10k ohm reference resistor serial with a 10k thermistor.
Use multimeter to check voltage at each points on the circuit of the thermistor and compare with the value from calculation (you can calculate the supposed voltage from the temperature and the reference resistor).

BTW, voltage "395", raw ADC integer?
What voltage you power the thermistor circuit? What is the range and bits of your ADC (Arduino UNO is 10bits, range is 5.0V, 1.1V, or user input) ? Any change of these will affect the voltage reading.
Yes, I was using an Arduino uno with 5.0 V and the voltage divide circuit but I suspect the resistance changed because the waterproofing was gradually eroding off of the thermistor bead. Water actually got into that probe so I am making a new one that I plan to use with 3.3 V as the reference. Is it necessary to convert the ADC reading to a value in volts? If so, how would I do that?
It is OK to use raw integer. It is better to use resistance not voltage as data points. The resistance, you calculate from ratio of 2 ADC readings will eliminate some errors from voltage instability. (1 ADC reads the input voltage, the other reads the voltage crossing thermistor).

For converting ADC integer to voltage, for example, Arduino UNO, 10 bits with range of 5V:
integer 0 voltage 0V
integer 1023 volgate 5V

10 bits max integer 2^10 -1 = 1023.


So your 395 = 5.0 * 395 / 1023 = 1.9306 V.

BTW, I assume you read the ADC like thousand times and average, right? You need double not integer to hold average.

Another hint, your Arduino UNO will not get 0.1 degree C resolution without op-amp to scale and offset the voltage. Maybe 0.3-0.4 degree C resolution. This does not mean you will always have error of 0.3-0.4. For example, if a detector has resolution of 1.0 degree C. It may still have 0.0 error if the water temperature is 10.0, 22.0.... It will have 0.5 error if the water temperature is like 2.5 degree C.

Re: Detector Building C

Posted: March 9th, 2020, 7:05 am
by waterlubber
jinhusong wrote: March 5th, 2020, 9:37 am
MTV<=>Operator wrote: March 5th, 2020, 7:52 am
jinhusong wrote: March 4th, 2020, 9:20 am



You can try with another thermistor to see if any change. Normally, change thermistor will not change the voltage that much.

Better do debug, assuming you are using the standard voltage-divide circuit, like a 10k ohm reference resistor serial with a 10k thermistor.
Use multimeter to check voltage at each points on the circuit of the thermistor and compare with the value from calculation (you can calculate the supposed voltage from the temperature and the reference resistor).

BTW, voltage "395", raw ADC integer?
What voltage you power the thermistor circuit? What is the range and bits of your ADC (Arduino UNO is 10bits, range is 5.0V, 1.1V, or user input) ? Any change of these will affect the voltage reading.
Yes, I was using an Arduino uno with 5.0 V and the voltage divide circuit but I suspect the resistance changed because the waterproofing was gradually eroding off of the thermistor bead. Water actually got into that probe so I am making a new one that I plan to use with 3.3 V as the reference. Is it necessary to convert the ADC reading to a value in volts? If so, how would I do that?
It is OK to use raw integer. It is better to use resistance not voltage as data points. The resistance, you calculate from ratio of 2 ADC readings will eliminate some errors from voltage instability. (1 ADC reads the input voltage, the other reads the voltage crossing thermistor).

For converting ADC integer to voltage, for example, Arduino UNO, 10 bits with range of 5V:
integer 0 voltage 0V
integer 1023 volgate 5V

10 bits max integer 2^10 -1 = 1023.


So your 395 = 5.0 * 395 / 1023 = 1.9306 V.

BTW, I assume you read the ADC like thousand times and average, right? You need double not integer to hold average.

Another hint, your Arduino UNO will not get 0.1 degree C resolution without op-amp to scale and offset the voltage. Maybe 0.3-0.4 degree C resolution. This does not mean you will always have error of 0.3-0.4. For example, if a detector has resolution of 1.0 degree C. It may still have 0.0 error if the water temperature is 10.0, 22.0.... It will have 0.5 error if the water temperature is like 2.5 degree C.
This is incorrect. It is very possible to achieve resolutions (and accuracies) much better than .1 degrees with the stock ATmega328.
In fact, with a well-chosen divider resistor, the average 10--bit quantization error is 0.03 ºC, with a maximum value of around 0.09 near 0ºC, and .07 near 75.
These values were calculated with a Desmos sketch.
Do NOT use a double to store the average. Emulated floating-point math is very slow and should be avoided until the very end of the calculation
No op-amp is necessary.

Re: Detector Building C

Posted: March 9th, 2020, 9:26 am
by jinhusong
Show me your setup and calculation. What I did is for 10K reference + 10K thermistor.

The 10 bit ADC only has 1024 different values (0-1023).
0-75 degree C to 0.1C, you will need 750 different values. With thermistor non-linear curve, it is very unlikely you can get 0.1C with 10 bits ADC. Still possible, maybe very small reference resistor, like 1K, 0.5K?

Please show me you setup, input voltage, output voltages at 0, 1 (or 0.1), 75, 76 or(75.1) degree C.

Re: Detector Building C

Posted: March 9th, 2020, 9:41 am
by waterlubber
jinhusong wrote: March 9th, 2020, 9:26 am Show me your setup and calculation. What I did is for 10K reference + 10K thermistor.

The 10 bit ADC only has 1024 different values (0-1023).
0-75 degree C to 0.1C, you will need 750 different values. With thermistor non-linear curve, it is very unlikely you can get 0.1C with 10 bits ADC. Still possible, maybe very small reference resistor, like 1K, 0.5K?

Please show me you setup, input voltage, output voltages at 0, 1 (or 0.1), 75, 76 or(75.1) degree C.
My actual setup is trade secret (those 10 bits are more powerful than you might think) but the math is on desmos (largely based on using the voltage divider to linearize the resistor) https://www.desmos.com/calculator/1hl6byrxmn

I'm at school so I can't write a full explanation

Also, apologies, the maximum error is closer to ~.15degrees near 0.

Re: Detector Building C

Posted: March 9th, 2020, 10:26 am
by jinhusong
Thanks for the link. I got your idea. Yes, the output of the reference resistor is way more linear with smaller reference resistance. Once they are linear, it is possible to get 0.1C, it needs 750 points and ADC has 1024 point.

Maybe you can reduce the error at 0 degree by switching the ADC range? It supports 1.1V, 5V, and user input.

Learned something today.

Re: Detector Building C

Posted: March 13th, 2020, 11:02 am
by waterlubber
jinhusong wrote: March 9th, 2020, 10:26 am Thanks for the link. I got your idea. Yes, the output of the reference resistor is way more linear with smaller reference resistance. Once they are linear, it is possible to get 0.1C, it needs 750 points and ADC has 1024 point.

Maybe you can reduce the error at 0 degree by switching the ADC range? It supports 1.1V, 5V, and user input.

Learned something today.
The AREF voltage doesn't affect ADC quantization error, unless you have a different divider voltage than AREF (and I don't recommend that, because now you're introducing yet another source of error.)

Re: Detector Building C

Posted: March 23rd, 2020, 6:14 am
by skylarrhaee
someone1580 wrote: September 3rd, 2019, 8:26 pm I'm pretty new to electronics so I have no idea how to even start with this event. How do I make the build and what should I study for the test?
We personally ordered our supplies off the soinc website, it came with everything we need and more, and the practice test is very short but they do have a sample on that website under event supervisor guide and I recommend studying circuit lab a bit because our test was mostly asking questions that can be found on the CL test.

Re: Detector Building C

Posted: March 23rd, 2020, 6:17 am
by skylarrhaee
Things2do wrote: September 4th, 2019, 7:32 pm Probably a stupid question, but... How competitive, at an average Regional, would a Circuit Lab person be if they did the test and didn't have any sort of build? I'd guess "Not Very," but...
Practice building circuits and make sure you know your laws because we didn't even finish our tests but we got most of it done and we took 1st place this year, just study as much as you ca but definitely practice going through various circuits quickly. 25 minutes for testing and 25 minutes for the building.

Re: Detector Building C

Posted: March 23rd, 2020, 9:10 am
by MoMoney$$$;)0)
skylarrhaee wrote: March 23rd, 2020, 6:14 am
someone1580 wrote: September 3rd, 2019, 8:26 pm I'm pretty new to electronics so I have no idea how to even start with this event. How do I make the build and what should I study for the test?
We personally ordered our supplies off the soinc website, it came with everything we need and more, and the practice test is very short but they do have a sample on that website under event supervisor guide and I recommend studying circuit lab a bit because our test was mostly asking questions that can be found on the CL test.
I'm going to go ahead and say, that usually the supplies that come with the wards kit usually don't get you that far, and you'll realize that it won't do much in helping you do well in the event. Moreover, for the same price you can usually get 4 times as many items as you would on amazon (for the same price), as with the kit.

Also, this question has been answered in the beginning of the season, and it has already been finished, so there really wasn't any reasons into answering the question. I'm not saying it's bad, but it's not needed. :D