What are Analogue Signals0 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
Capturing Analogue Data0 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.
ADC0 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
ADC Resolution0 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 = AREF0 The output of the ADC will be a number between 0 and 2^10 -10 Resolution : 5-0/1024 = 4.9mV0 This should the difference between any two samples of the ADC for the ADC to recognize it as two different voltage levels.
Sampling Rate0 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.
Sine wave sampled with a high sampling rateSine wave sampled with a LOWsampling rate
Analogue Reference0 By default all Arduino analogue pins have a reference of 5V.0 This gives a resolution of 4.9mV between 0 – 5V0 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 sampling0 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.
Using the Arduino ADC0 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 ADC0 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.
Code to write0 Read the sensor0 Store the value of the analogueread() into an int0 Use it as the delay in blinking LED130 Move the pot around.0 Send the value of the ADC onto serial port