Вы находитесь на странице: 1из 14

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


0 Usually represented by waveforms which is a graph

between quantity and time.

0 E.g.: speed of a car, voltage variations etc etc

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.

0 The Arduinos 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

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.

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


Sine wave sampled with a high sampling rate

Sine wave sampled with a LOW sampling rate

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

Practical ADC sampling

0 Arduinos theoretical sampling rate is 77kHz. (see


0 Practically, ADC samples at ~56Khz. 0 !! Arduino doesnt 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.

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!

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


0 Returned value is stored in an integer and is used in setting

delay of LED13 blinking.

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

Question Time