Take control of your SAP testing with UiPath Test Suite
03 analogue anrduino fundamentals
1.
2. What are Analogue Signals
0 Analogue signals is said to be a quantity which
changes continuously with time.
0 The values that it takes changes continuously with
time.
0 Usually represented by waveforms which is a graph
between quantity and time.
0 E.g.: speed of a car, voltage variations etc etc
3. Capturing Analogue Data
0 Since most of information available in the real world is
available only in the analogue form, it is an important
requirement for physical computing devices to sense this
information.
0 Sensors : Devices which convert analogue information in
whatever form it might be to electrical analogue signals.
0 These electrical signals can be sent to the microcontroller.
4. ADC
0 The Arduino’s microcontroller cannot work with analogue
voltage levels directly.
0 A device called an ADC is present in the microcontroller to
convert this analogue data to digital data.
0 This digital data is a number representing the analogue
value sampled by the ADC.
0 Physical Quantity >> Electrical Signals >> Number
5. ADC Resolution
0 The Arduino has an inbuilt ADC with a 10 bit resolution
with reference set as AREF (default = VCC)
0 This means that between GND and AREF, the arduino can
sense 2^10 = 1024 different voltages.
0 Where 0 == GND and 1024 = AREF
0 The output of the ADC will be a number between 0 and
2^10 -1
0 Resolution : 5-0/1024 = 4.9mV
0 This should the difference between any two samples of the
ADC for the ADC to recognize it as two different voltage
levels.
6. Sampling Rate
0 Each time the ADC senses the input voltage level and
outputs a number, we call that a “sample”.
0 The number of such samples the ADC is capable of in a
second is called sample rate of the ADC.
0 Measured in Hz or Samples per second.
0 If sampling rate is low, information might be lost in
conversion.
7. Sine wave sampled with a high
sampling rate
Sine wave sampled with a LOW
sampling rate
8. Analogue Reference
0 By default all Arduino analogue pins have a reference of
5V.
0 This gives a resolution of 4.9mV between 0 – 5V
0 If required, the AREF pin can be used to give an external
reference. (between 0 – 5V only)
0 E.g.: If 1.1V is given to the AREF pin,
0 Resolution = 1.1/1024 = 1.04mV between 0 – 1.1V
9. Practical ADC sampling
0 Arduino’s theoretical sampling rate is 77kHz. (see
datasheet)
0 Practically, ADC samples at ~56Khz.
0 !! Arduino doesn’t have a DSP so sampling is done by CPU
only. Other tasks given to the CPU will affect Sampling rate
adversely.
0 E.g.: If sampling ADC and sending data through Serial Port,
effectively ~10Khz can be obtained.
10. Using the Arduino ADC
0 Potential dividers convert mechanical energy (twist)
to voltage changes.
0 Open 5. ADC folder. Upload the code onto arduino.
0 Make pot connections as per circuit diagram..
0 If all goes well twisting the pot should make the LED
blink slower or faster. Check serial monitor too!
11. Working of The ADC
0 Use analoguereference() to change the how the ADC takes
reference signal for the analogue input.
0 Connect the analogue input to an analogue pin.
0 Analogue pins are called A0 – A6.
0 Use analogueread(pin) to initiate and perform a single ADC
conversion.
0 Returned value is stored in an integer and is used in setting
delay of LED13 blinking.
12.
13. Code to write
0 Read the sensor
0 Store the value of the analogueread() into an int
0 Use it as the delay in blinking LED13
0 Move the pot around.
0 Send the value of the ADC onto serial port