Hot answers tagged

16

By default, the internal ADC of an Arduino / ATMega MCU uses the supply voltage as a reference. When you switch on a LED, more supply current is consumed and if your supply has some series resistance it could decrease a little bit in value. Possible solutions are: use the internal voltage reference for the ADC. make sure that the current through the LEDs ...


9

simulate this circuit – Schematic created using CircuitLab Andy's anti-parallel diode idea works nicely in a transimpedance amplifier. The dynamic range is maximized so long as the opamp doesn't run up against its DC supply rail with too much gain. Choose a feedback resistor value (R1, or R4) to stay within the opamp linear range. The photodiodes and ...


9

For my application, the only relevant data is the difference in luminosity between these photodiodes. If both photodiodes are the same, wire them antiparallel to a single TIA. Wiring them antiparallel means that the only current feeding the TIA will be the difference current. Now, the problem of noise is halved. Use a balanced transmission system like this: ...


6

Here's a good clue: - And, if you look at the value for \$t_4\$ it is quoted here: - So, a new data bit is available between 0 and 40 ns of the falling edge of SCLK. This means you can't rely on the falling edge of SCLK to read valid data. Of course, if you look at \$t_7\$ it tells you that current data is valid for maybe 7 ns should you attempt to read it ...


6

An arduino uno is not the most noise free board for analog signals. The arduino does not separate or filter the analog section of the atmega microcontroller from the digital side. Depending on what you are doing, pwm, dirty input voltage, high current via a pin causing voltage droop or rise, etc your analog readings are going to vary. A proper board for ...


6

That is an analog sensor with an output of 10mV/°C so a change in ground potential will have an effect on the ADC reading of the sensor. Make sure the GND common for the LEDs in your present circuit is run back to the power supply and not through the Arduino or any part of the sensor signal path. You could also consider adding external drivers for the LEDs, ...


6

Justme gave the answer, you have to clock it. continuous conversion without having to initialise and command the conversion? That would mean the ADC would change the level of its output pins every time it does a new conversion. Counting uneven propagation delays, skew, etc, if the device that reads these pins reads them at the wrong time, it will get some ...


5

No it won't work like that, page 15 of the datasheet describes how the chip bus works. At least some of the control signals need to have transitions, this chip is intended to be sitting on a memory bus so it looks like RAM or ROM chip.


5

The "scaling factor" referred to in the linked page is related to how you calculate the ADC voltage from the raw ADC number that the Arduino gives you. Your algorithm never calculates the voltage, so you don't need to worry about that. Your algorithm uses a proportional calculation to go straight from the raw ADC value to the NTC resistance without ...


4

Holding CS and RD low permanently will force the ADC to make one single conversion right after power is applied. That value will be presented to the output bus until you remove power. No further conversions will be performed: -


3

The safest time to capture data is ... immediately before the SCLK falling edge. If you are rolling your own SDI interface, you can arrange this any way you like. It is tempting to capture data on the positive SCLK edge ... but... with the maximum SCLK frequency of 20MHz, an SCLK period of 50 ns assures the SCLK rising edge is 25 ns after the falling edge. ...


3

The physics side of the problem: Boiling as a process arises from local overheating of the liquid and cooling the place by evaporating inside a growing bubble. The temperature needed to create a new bubble is higher than the temperature needed to grow the bubble and can be quite a few of degrees above the equilibrium "boiling point". Boiling a ...


3

Multiplexing a single conditioning circuit for use among multiple sensors is a common method to minimize the amount of hardware required. Temperatures tend to be very slowly changing so cycle times of many seconds is usually acceptable. This allows many sensors to share the hardware. However, some caution is required to ensure that the multiplexing does not ...


3

You could use an "Arduino" compatible module such as the STM32F103C8T6-based ones, which have claimed "12-bit" and "1us" ADC peripherals. Read the datasheet with a jaundiced eye to determine the actual performance. You can't expect to match the performance of a fast external ADC from a top-line company. I think it would be more ...


2

You'll need a linear current to voltage converter. simulate this circuit – Schematic created using CircuitLab Figure 1. Full schematic of a linear current to voltage converter. If the ADC is 0 to 5 V then set R1 to 250 Ω. Your 4 - 20 mA will give an input of 1 to 5 V so you'll lose 20% of your useful range but this is a small price for the simplicity. ...


2

why ±10V is a common voltage range for commercial DAQ cards It probably stems back from analogue op-amp circuits being powered from ±15 volt power sources. 10 volts peak would be a pretty normal undistorted or unclipped signal that could be produced from an op-amp on this power rail. I think that using 10V instead of 1V on the output of the external sensor ...


2

Figure 1. Original circuit. R1 is not wired as a potentiometer. It's wired as a variable resistor or 'rheostat'. If you move the wiper to the right the op-amp will see 5 V. If you move it to the left the op-amp will see \$ \frac {200k}{20k + 200k}5 = 4.55 \ \text V \$. Meanwhile your op-amp has a gain of \$ 1 + \frac {R_4}{R_3} = 1 + \frac 1 {3.7} = 1.27 \$ ...


2

You have selected the pin change interrupt as the ADC trigger source, but there is no code to configure pin change interrupts. So since nothing can trigger pin change interrupts, the ADC never triggers.


2

Setting the first transition at 1/2 LSB changes the statistics of the quantization error. If the first transition is at 1 LSB then the quantization error ranges from 0 to 1 LSB at each step, with an average quantization error of 1/2 LSB. If you take the first transition at 1/2 LSB then the quantization error ranges from -1/2 LSB to +1/2 LSB and the average ...


2

Short story: the accuracy of the AD7190 is not 24 bits; it's less than 18 bits. Let's put this problem into context. The AD7190 (B grade version) has these errors: - INL of 5 ppm of full scale maximum Offset error of 75 μV typically Gain error of ±0.005 % (50 ppm equivalent) The ADC has a conversion resolution of 24 bits and that is far lower than the ...


2

I use DMA to save data in SD card Are you sure about this? I don't see anything remotely related to DMA in your code. You need to configure DMA for circular buffer and use HAL_ADC_Start_DMA() to begin regular transfer of ADC data into buffer. Then you need to process HAL_ADC_ConvHalfCpltCallback() and HAL_ADC_ConvCpltCallback() to write accumulated data ...


1

Depends how big the jumps are. Your sensor outputs a signal which changes by 10mV per °C. The Arduino Uno really isn't great at measuring small changes like these. It has a 10-bit analog-to-digital converter, which means it can measure 2^10 = 1024 different voltage levels. Over a range of 0V to 5V this gives you a resolution of about 4.9 mV (5V / 1024), ...


1

Additionally, depending on if you aren't concerned about cost, you can always add a buffer to help maintain signal integrity, this should protect the PWM from potentially being pulled to ground if its being attenuated significantly.


1

Measure the current that the led draws without the R5 (with and without AINT0 connected). That's what I would do, if I were you, check what really is going on there,. I think it is more than "2mA drive strength" This 2mA must be the EK-TM4C123GXl pin's maximum value, which you should be taking care of (this means that the EK-TM4C123GXl can give ...


1

The ref has 3.5µVpp noise (on 2.5V that's 19.5 bits). This noise is higher than voltage drop due to ADC current (7uA*5)*0.075R = 2.62µV. However, note your ADC is a sigma delta, so it doesn't draw current pulses from the reference voltage, unlike the SAR ADC mentioned in your article. So the article doesn't apply for this ADC. Also the ADC datasheet says: ...


1

Drawing the circuit differently may help: simulate this circuit – Schematic created using CircuitLab


1

The LoRa RA 02 module possibly uses 433 MHz as the main carrier frequency. I can't hear my audio signal using my old FM radio receiver which is works in frequency modulations. Your old radio receiver will be able to tune between 88 MHz and 108 MHz so, it's extremely unlikely that you will be able to pick-up LoRa transmissions. So, can i do something with ...


1

I want to know if it is common to use SPI with a separate ADC module to get high sampling rate It's quite common and you'll find that an external ADC is usually much better than an internal ADC regarding performance and accuracy. Plus, if you use two external ADCs you can arrange for them to simultaneously sample should that be a requirement (such as in ...


1

I ran your resistor values and voltages through this voltage divider calculator. It comes up with different values than you got. For 25V, 220K and 68k, it says the output voltage will be 5.9V compared to your 3.16V. For 4.7V,220k and 440k, it says the output voltage will be 3.13V compared to your 3.2V (probably differences in rounding.) Incorrect version (I ...


1

I was expecting the error to increase with 1.25V mid point since the unused ADC translation range increased as my VREF remained to be 3.3V. Why is this? Simple: Your 1.25V is stable because it is a lowish noise voltage reference, and it is not disturbed by current being pulled from it since it is only connected to the input of an opamp. The 3V3 supply ...


Only top voted, non community-wiki answers of a minimum length are eligible