¿Puedo usar los pines analógicos del Arduino para mi proyecto como digitales?

Soy nuevo en el uso de Arduino y tengo un Arduino Uno. Para los proyectos que he hecho, solo he utilizado los pines digitales.

Estoy construyendo un vehículo pequeño que usa motores paso a paso. Me quedé sin pines para controlar los motores de este vehículo. ¿Para qué sirven los pines analógicos? ¿Es posible para mí usar pines analógicos para controlar el resto de los motores paso a paso que conecto al Arduino, o tengo que comprar un Arduino más grande que Arduino Uno para controlar este artilugio?

Answer

Sí, los pines analógicos del Arduino se pueden usar como salidas digitales.

Esto está documentado en la documentación de pines de entrada de Arduino , en la sección Mapeo de pines:

Mapeo de pines
Los pines analógicos se pueden usar de manera idéntica a los pines digitales, usando los alias A0 (para la entrada analógica 0), A1, etc. Por ejemplo, el código se vería así para establezca el pin analógico 0 en una salida y para establecerlo en ALTO:
pinMode (A0, SALIDA);
digitalWrite (A0, ALTO);

Comentarios

  • Sí … lo siento. Recuerdo que era tarde cuando publiqué eso y me estaba dando sueño y perdiendo la concentración. Eliminé el comentario.

Respuesta

Siempre puedes usar los pines analógicos para escritura digital.

  • digitalRead() funciona en todos los pines. Simplemente redondeará el valor analógico recibido y se lo presentará. Si analogRead(A0) es mayor o igual que 512, digitalRead(A0) será 1, de lo contrario 0.
  • digitalWrite() funciona en todos los pines, con el parámetro permitido 0 o 1. digitalWrite(A0,0) es lo mismo que analogWrite(A0,0), y digitalWrite(A0,1) es lo mismo que analogWrite(A0,255)
  • analogRead() solo funciona en pines analógicos. Puede tomar cualquier valor entre 0 y 1023.
  • analogWrite() funciona en todos los pines analógicos y en todos los PWM digitales pines. Puede proporcionarle cualquier valor entre 0 y 255.

Los pines analógicos le permiten leer / escribir valores analógicos, básicamente, en lugar de dar un voltaje de 0 o 5 (como con el digital) , pueden dar un rango de voltajes entre 0 y 5 (tanto de entrada como de salida). Tenga en cuenta que el voltaje durante la salida analógica es solo el voltaje observado con un multímetro. En realidad, los pines analógicos envían pulsos de señales de 0V y 5V para obtener una salida que «parece» analógica (esto es PWM).

En cuanto a la cantidad de pines: tenga en cuenta que los pines PWM pueden ser utilizado para salida analógica. Si te quedas sin pines, puedes usar la multiplexación para hacer más. No es necesario obtener otro Arduino.

Comentarios

  • AnalogWrite () no genera voltajes entre 0 y 5 (excepto en el debido). AnalogWrite () solo cambia la modulación de ancho de pulso de la señal. El voltaje de salida sigue siendo de 5 voltios (o lo que sea VCC). Los pines marcados como » analog » solo darán salida a 0V o 5V. No son variables y son nota
  • @ JamesC4S: Buen punto, editado. Gracias 🙂
  • ¡Mucho mejor! 🙂
  • ¿Son digitalRead () y digitalWrite () en pines analógicos más lentos? Si digitalRead () redondea el valor, ¿puedo imaginar que es mucho más lento que digitalRead () en un pin digital?
  • Esto es muy conciso e informativo, gracias, sin embargo, creo que hay un pequeño error. Según los excelentes documentos : the Arduino (ATmega) will report HIGH if: a voltage greater than 3.0V is present at the pin (5V boards) que contradice la afirmación de esta publicación If analogRead(A0) is greater than or equal to 512, digitalRead(A0) will be 1, else 0.

Responder

Los pines analógicos en el Arduino se pueden utilizar como pines digitales, como señaló a cabo por Anindo Ghosh.

Sin embargo, incluso si se queda sin pines para controlar sus motores paso a paso, realmente no necesita comprar otra placa. Simplemente puede utilizar un componente intermedio, como un registro o un multiplexor para controlar el motor paso a paso apropiado.

Respuesta

Si se lo puede permitir, y realmente quiere que trabajar con un stepper sea muy fácil echa un vistazo a Easy Stepper . Me quedé muy satisfecho.

De la página de códigos de ejemplo

http://www.sc-fa.com/blog/wp-content/uploads/2013/04/20130414-080645.jpg

 Example 1: Basic Arduino setup This is the most basic example you can have with an Arduino, an Easy Driver, and a stepper motor. Connect the motor"s four wires to the Easy Driver (note the proper coil connections), connect a power supply of 12V is to the Power In pins, and connect the Arduino"s GND, pin 8 and pin 9 to the Easy Driver. Then load this sketch and run it on your Arduino or chipKIT: void setup() { pinMode(8, OUTPUT); pinMode(9, OUTPUT); digitalWrite(8, LOW); digitalWrite(9, LOW); } void loop() { digitalWrite(9, HIGH); delay(1); digitalWrite(9, LOW); delay(1); } 

También de la misma página, aquí hay un código de ejemplo para hacer funcionar dos motores con dos tablas easystepper, con aceleración / desaceleración: http://www.sc-fa.com/blog/wp-content/uploads/2013/04/20130414-081018.jpg

 #include <AccelStepper.h> // Define two steppers and the pins they will use AccelStepper stepper1(1, 9, 8); AccelStepper stepper2(1, 7, 6); int pos1 = 3600; int pos2 = 5678; void setup() { stepper1.setMaxSpeed(3000); stepper1.setAcceleration(1000); stepper2.setMaxSpeed(2000); stepper2.setAcceleration(800); } void loop() { if (stepper1.distanceToGo() == 0) { delay(500); pos1 = -pos1; stepper1.moveTo(pos1); } if (stepper2.distanceToGo() == 0) { delay(500); pos2 = -pos2; stepper2.moveTo(pos2); } stepper1.run(); stepper2.run(); } 

Comentarios

  • Esto realmente no ‘ t responde la pregunta; sería mejor como comentario. ¿Podría ¿Lo desarrolla para que responda a la pregunta?
  • @AnnonomusPerson: El EasyDriver Stepper Motor Driver aparece como un producto activo, en stock y todo.

Responder

Añadiendo como respuesta, porque no puedo comentar.

Para responder brevemente, sí puede. Consulte a la Respuesta de Anindo Ghosh sobre cómo hacerlo.

Tenga en cuenta sin embargo, para Arduino Nano , los pines A6 y A7 son solo analógicos y no se puede usar en el modo digital.

Comentarios

  • Tenga en cuenta que esta respuesta casi solo contiene un enlace. Los enlaces / sitios web pueden volverse obsoletos, haciendo que esta respuesta sea inútil. Conserve el enlace, pero resuma o cite las partes relevantes del sitio web.
  • @Huisman Para ser justos, es menos probable que los enlaces a otras preguntas en EE. UU. Se desaprovechen o se vuelvan inaccesibles; pero un breve resumen sin duda mejoraría la respuesta.
  • @JYelton No ‘ t seguí el enlace, pero tú ‘ re correcto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *