This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
jansonntag:attempt4 [2021/03/13 14:19] jan |
jansonntag:attempt4 [2021/03/25 17:56] (current) jan |
||
|---|---|---|---|
| Line 7: | Line 7: | ||
| I´ve got the needed parts some weeks ago (thanks [[projects: | I´ve got the needed parts some weeks ago (thanks [[projects: | ||
| {{ : | {{ : | ||
| - | Here are a bit more details about the LDC1614. First of all, you can find the documentation here: [[https:// | + | Here are a bit more details about the LDC1614. First of all, you can find the documentation here: [[https:// |
| + | |||
| + | My thesis is nearly finished so I had some spare time to read some of the documentation. To my surprise (and luck) the LDC1314 and LDC1614 have nearly identical register maps. There are only two differences: | ||
| + | - There is no gain option (Compare Chapters LDC1314: 7.6.26 and LDC1614: 7.6.30) | ||
| + | - The measured data is split into an MSB and LSB part (32-bit in total, 4-bit error flags, 28-bit measurement data) | ||
| + | And I thought I would have to rewrite the whole library. So I quickly (30 minutes max) modified the old library to account for the above-mentioned differences. You can find it here: [[https:// | ||
| + | Even the parameters you have to set are identical between them too. I then modified the script from attempt 3 to use the new library: | ||
| + | <file ino ldc1614.ino> | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | LDC161X ldc1614(false); | ||
| + | |||
| + | void setup() { | ||
| + | Wire.begin(); | ||
| + | Serial.begin(9600); | ||
| + | ldc1614.LDC_resetLDC(); | ||
| + | delay(500); | ||
| + | ldc1614.LDC_setConversionTime(0, | ||
| + | ldc1614.LDC_setSettleTime(0, | ||
| + | ldc1614.LDC_setClockDividers(0, | ||
| + | ldc1614.LDC_setErrorConfig(0x0000); | ||
| + | ldc1614.LDC_setDriveCurrent(0, | ||
| + | ldc1614.LDC_setMUXConfig(0x20D); | ||
| + | ldc1614.LDC_setOffset(0, | ||
| + | ldc1614.LDC_setConfig(0x0801); | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | Serial.println(ldc1614.LDC_readData(0)/ | ||
| + | delay(100); | ||
| + | } | ||
| + | </ | ||
| + | I removed the process of making an average just for testing right now. With the new LDC, I also ordered four Cherry MX Blacks (MX1A-11NN) and soldered these onto the test board. I then tested the board. As it seems to me there is a difference if the board lays flat on my table or if I hold it mid-air. But see for yourself: | ||
| + | |||
| + | ^ This one is mid-air | ||
| + | |{{: | ||
| + | |||
| + | Yes, there are still a lot of interferences, | ||
| + | |||
| + | As a little bonus I tried what happens when I touch the coil with my finger: | ||
| + | {{ : | ||
| + | Maybe this has a function for someone as well. Could be useful in some situations, but I don't know. (Free real estate ;-)) | ||
| + | |||
| + | I designed (a bit over an hour) and printed (2:38 h) the case for my test board. It screws together with M4 bolts and threads itself into the plastic. Because I made the holes for the jumper wires a bit too small on the outer edges, so I decided to solder some wires in place. I didn´t do a great job but I works for now and it looks a bit neater on the outside. | ||
| + | {{ : | ||
| + | Fortunately, | ||
| + | I then soldered and assembled everything and this is what came out: | ||
| + | {{ : | ||
| + | I didn't put in any metallic foil right now. In the first test, it seems the noise/ | ||