+ All Categories
Home > Documents > Analogue Signals on the arduino

Analogue Signals on the arduino

Date post: 24-Apr-2015
Category:
Upload: wingston-sharon
View: 942 times
Download: 7 times
Share this document with a friend
Description:
This document explains the how and what of analogue signals and the how to work with them on the arduino.
14
Transcript
Page 1: Analogue Signals on the arduino
Page 2: Analogue Signals on the arduino

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

Page 3: Analogue Signals on the arduino

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.

Page 4: Analogue Signals on the arduino

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

Page 5: Analogue Signals on the arduino

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.

Page 6: Analogue Signals on the arduino

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.

Page 7: Analogue Signals on the arduino

Sine wave sampled with a high sampling rate

Sine wave sampled with a LOW sampling rate

Page 8: Analogue Signals on the arduino

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

Page 9: Analogue Signals on the arduino

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.

Page 10: Analogue Signals on the arduino

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!

Page 11: Analogue Signals on the arduino

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.

Page 12: Analogue Signals on the arduino
Page 13: Analogue Signals on the arduino

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

Page 14: Analogue Signals on the arduino

Question Time


Recommended