Tutorial.AnalogInputPins History

Hide minor edits - Show changes to markup

September 17, 2010, at 05:12 PM by David A. Mellis -
Changed lines 27-28 from:

Be aware however that turning on a pullup will affect the value reported by analogRead() when using some sensors if done inadvertently. Most users will want to use the pullup resistors only when using an analog pin in its digital mode.

to:

Be aware however that turning on a pullup will affect the values reported by analogRead().

September 17, 2010, at 05:11 PM by David A. Mellis -
Changed lines 12-13 from:

The analog pins can be used identically to the digital pins, using the aliases A0 (for analog input 0, A1, etc. For example, the code would look like this to set analog pin 0 to an output, and to set it HIGH:

to:

The analog pins can be used identically to the digital pins, using the aliases A0 (for analog input 0), A1, etc. For example, the code would look like this to set analog pin 0 to an output, and to set it HIGH:

September 17, 2010, at 05:10 PM by David A. Mellis -
Changed lines 12-17 from:

The Arduino pin numbers corresponding to the analog pins are 14 through 19. Note that these are Arduino pin numbers, and do not correspond to the physical pin numbers on the Atmega chips. The analog pins can be used identically to the digital pins, so for example, the code would look like this to set analog pin 0 to an output, and to set it HIGH:

pinMode(14, OUTPUT);
digitalWrite(14, HIGH);

to:

The analog pins can be used identically to the digital pins, using the aliases A0 (for analog input 0, A1, etc. For example, the code would look like this to set analog pin 0 to an output, and to set it HIGH:

pinMode(A0, OUTPUT);
digitalWrite(A0, HIGH);

Changed lines 23-24 from:

digitalWrite(14, HIGH); // set pullup on analog pin 0 @]

to:

digitalWrite(A0, HIGH); // set pullup on analog pin 0 @]

September 23, 2009, at 05:44 PM by Paul Badger -
September 23, 2009, at 05:43 PM by Paul Badger -
Changed lines 31-32 from:

The analogRead command will not work correctly if a pin has been previously set to an output, so if this is the case, set it back to an input before using analogRead. Similarly if the pin has been set to HIGH as an output.

to:

The analogRead command will not work correctly if a pin has been previously set to an output, so if this is the case, set it back to an input before using analogRead. Similarly if the pin has been set to HIGH as an output, the pullup resistor will be set, when switched back to an input.

June 17, 2009, at 10:51 PM by Tom Igoe -
Changed lines 3-4 from:

A description of the analog input pins on an Atmega168 (Arduino chip).

to:

A description of the analog input pins on an Arduino chip (Atmega8, Atmega168, Atmega328, or Atmega1280).

Changed lines 6-7 from:

The Atmega168 contains an onboard 6 channel analog-to-digital (A/D) converter. The converter has 10 bit resolution, returning integers from 0 to 1023. While the main function of the analog pins for most Arduino users is to read analog sensors, the analog pins also have all the functionality of general purpose input/output (GPIO) pins (the same as digital pins 0 - 13).

to:

The Atmega controllers used for the Arduino contain an onboard 6 channel analog-to-digital (A/D) converter. The converter has 10 bit resolution, returning integers from 0 to 1023. While the main function of the analog pins for most Arduino users is to read analog sensors, the analog pins also have all the functionality of general purpose input/output (GPIO) pins (the same as digital pins 0 - 13).

Changed lines 12-13 from:

The Arduino pin numbers corresponding to the analog pins are 14 through 19. Note that these are Arduino pin numbers, and do not correspond to the physical pin numbers on the Atmega168 chip. The analog pins can be used identically to the digital pins, so for example, the code would look like this to set analog pin 0 to an output, and to set it HIGH:

to:

The Arduino pin numbers corresponding to the analog pins are 14 through 19. Note that these are Arduino pin numbers, and do not correspond to the physical pin numbers on the Atmega chips. The analog pins can be used identically to the digital pins, so for example, the code would look like this to set analog pin 0 to an output, and to set it HIGH:

Changed line 33 from:

The Atmega168 datasheet also cautions against switching analog pins in close temporal proximity to making A/D readings (analogRead) on other analog pins. This can cause electrical noise and introduce jitter in the analog system.

to:

The Atmega datasheet also cautions against switching analog pins in close temporal proximity to making A/D readings (analogRead) on other analog pins. This can cause electrical noise and introduce jitter in the analog system.

February 21, 2009, at 10:21 PM by David A. Mellis -
Changed lines 1-2 from:

Analog Pins

to:

Analog Input Pins

December 29, 2008, at 01:04 AM by Paul Badger -
Changed lines 12-13 from:

The Arduino pin numbers corresponding to the analog pins are 14 through 19. Note that these are Arduino pin numbers, and do not correspond to the physical pin numbers on the Atmega168 chip. The analog pins can be used identically to the digital pins, so for example, to set analog pin 0 to an output, and to set it HIGH, the code would look like this:

to:

The Arduino pin numbers corresponding to the analog pins are 14 through 19. Note that these are Arduino pin numbers, and do not correspond to the physical pin numbers on the Atmega168 chip. The analog pins can be used identically to the digital pins, so for example, the code would look like this to set analog pin 0 to an output, and to set it HIGH:

December 29, 2008, at 01:02 AM by Paul Badger -
Changed line 33 from:

The Atmega168 datasheet also cautions against switching digital pins in close temporal proximity to making A/D readings (analogRead) on other analog pins. This can cause electrical noise and introduce jitter in the analog system.

to:

The Atmega168 datasheet also cautions against switching analog pins in close temporal proximity to making A/D readings (analogRead) on other analog pins. This can cause electrical noise and introduce jitter in the analog system.

February 14, 2008, at 04:13 AM by David A. Mellis -
Added lines 1-35:

Analog Pins

A description of the analog input pins on an Atmega168 (Arduino chip).

A/D converter

The Atmega168 contains an onboard 6 channel analog-to-digital (A/D) converter. The converter has 10 bit resolution, returning integers from 0 to 1023. While the main function of the analog pins for most Arduino users is to read analog sensors, the analog pins also have all the functionality of general purpose input/output (GPIO) pins (the same as digital pins 0 - 13).

Consequently, if a user needs more general purpose input output pins, and all the analog pins are not in use, the analog pins may be used for GPIO.

Pin mapping

The Arduino pin numbers corresponding to the analog pins are 14 through 19. Note that these are Arduino pin numbers, and do not correspond to the physical pin numbers on the Atmega168 chip. The analog pins can be used identically to the digital pins, so for example, to set analog pin 0 to an output, and to set it HIGH, the code would look like this:

pinMode(14, OUTPUT);
digitalWrite(14, HIGH);

Pullup resistors

The analog pins also have pullup resistors, which work identically to pullup resistors on the digital pins. They are enabled by issuing a command such as

digitalWrite(14, HIGH);  // set pullup on analog pin 0 

while the pin is an input.

Be aware however that turning on a pullup will affect the value reported by analogRead() when using some sensors if done inadvertently. Most users will want to use the pullup resistors only when using an analog pin in its digital mode.

Details and Caveats

The analogRead command will not work correctly if a pin has been previously set to an output, so if this is the case, set it back to an input before using analogRead. Similarly if the pin has been set to HIGH as an output.

The Atmega168 datasheet also cautions against switching digital pins in close temporal proximity to making A/D readings (analogRead) on other analog pins. This can cause electrical noise and introduce jitter in the analog system. It may be desirable, after manipulating analog pins (in digital mode), to add a short delay before using analogRead() to read other analog pins.

Share