Using Analog I/O in Arduino Reply 2017-02-04 07:50:25
1K+ views
204 likes

Nigel Nichols

Follow

The Arduino can input and output analog signals as well as digital signals.
An analog signal is one that can take on any number of values, unlike a digital signal which has only two values: HIGH and LOW. To measure the value of analog signals, the Arduino has a built-in analog-to-digital converter (ADC). The ADC turns the analog voltage into a digital value. The function that you use to obtain the value of an analog signal is analogRead(pin). This function converts the value of the voltage on an analog input pin and returns a digital value from 0 to 1023, relative to the reference value. The reference is 5V on most Arduinos, 7V on the Arduino Mini and Nano, and 15V on Arduino Mega. It has one parameter which is the pin number.
The Arduino does not have a built-in digital-to-analog converter (DAC), but it can pulse-width modulate (PWM) a digital signal to achieve some of the functions of an analog output. The function used to output a PWM signal is analogWrite(pin, value). pin is the pin number used for the PWM output. value is a number proportional to the duty cycle of the signal. When value = 0, the signal is always off. When value = 255, the signal is always on. On most Arduino boards, the PWM function is available on pins 3, 5, 6, 9, 10, and 11. The frequency of the PWM signal on most pins is approximately 490 Hz. On the Uno and similar boards, pins 5 and 6 have a frequency of approximately 980 Hz. Pins 3 and 11 on the Leonardo also run at 980 Hz.
To map an analog input value, which ranges from 0 to 1023 to a PWM output signal, which ranges from 0 - 255, you can use the map(value, fromLow, fromHigh, toLow, toHigh) function. This function has five parameters, one is the variable in which the analog value is stored, while the others are 0, 1023, 0 and 255 respectively.
Experiment 1: Controlling the Brightness of LED
In this experiment we will control the brightness of LED with a PWM signal on an analog output pin
Hardware Required
• 1 x LED
• 1 x resistor
• 1 x Arduino UNO R3
• 2 x jumper wires
• Wiring Diagram
As shown in the diagram below, an LED is connected to pin 2 of the Arduino. To change the brightness of the LED, the program will vary the duty cycle of the PWM signal output of pin 2.
Experiment 2: LED Brightness Control Using Potentiometer
In this experiment, we will control the brightness of the LED using a potentiometer. We will the analogRead() function to read a voltage and the analogWrite() function to output a PWM signal, whose duty cycle is proportional to the analog voltage.
Hardware Required
• 1 x potentiometer
• 1 x LED
• 1 x resistor
• 1 x Arduino Uno R3