Pages: [1]   Go Down
Author Topic: Arduino UNO: Using Analog Input as Digital In/Out  (Read 1573 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Any things I should watch out when using Analog pins as Digital In/Out.
I understand this is possible and allowed according to Arduino website learning.
However, is that any item I should watch out in my design or application?
Logged

Valencia, Spain
Offline Offline
Faraday Member
**
Karma: 142
Posts: 5290
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You don't have to worry.

The only that's special about them is that the Arduino board puts an 'A' next to them on the PCB.

(And they can be routed to the ADC if you want...)
Logged

No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

Brasil
Offline Offline
Sr. Member
****
Karma: 2
Posts: 315
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Analog Pins not have PULL-UP resistors, so, pinmode(A0, OUTPUT_PULLUP) not will have effect.
Logged

4x Duemilanove (clone)
Uno torrado (clone)
Amiga 1200 40MB
Windows XP


Offline Offline
Edison Member
*
Karma: 9
Posts: 1015
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Are you sure ?
In my opinion the analog inputs do also have the internal pull-up resistors.
Logged

Left Coast, CA (USA)
Offline Offline
Brattain Member
*****
Karma: 361
Posts: 17259
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Analog Pins not have PULL-UP resistors, so, pinmode(A0, OUTPUT_PULLUP) not will have effect.


That is not correct. Run the example sketch ReadAnalogVoltage sketch without anything wired to the A0 pin. Then add the mode and pull-up commands shown below in the setup function and run again. I think you will see the effect of the pull-up resistor being enabled.

And besides pinmode(A0, OUTPUT_PULLUP) would not be a valid command, pinMode(A0, INPUT_PULLUP) would be.

Lefty

Code:
/*
  ReadAnalogVoltage
  Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
 
 This example code is in the public domain.
 */

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  pinMode(14,INPUT);   // set pin to input mode
  digitalWrite(14,HIGH); // enable internal pull-up resistor
  // or pinMode(A0, INPUT_PULLUP);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
}
« Last Edit: February 10, 2013, 12:26:55 pm by retrolefty » Logged

Brasil
Offline Offline
Sr. Member
****
Karma: 2
Posts: 315
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Are you sure ?
In my opinion the analog inputs do also have the internal pull-up resistors.

You are right, Analog Pins have PULL-UP resistors too.

from http://arduino.cc/en/Tutorial/DigitalPins

Quote
Digital Pins

The pins on the Arduino can be configured as either inputs or outputs. This document explains the functioning of the pins in those modes. While the title of this document refers to digital pins, it is important to note that vast majority of Arduino (Atmega) analog pins, may be configured, and used, in exactly the same manner as digital pins.


Sorry my mistake.
Logged

4x Duemilanove (clone)
Uno torrado (clone)
Amiga 1200 40MB
Windows XP


Pages: [1]   Go Up
Jump to: