Diferencia entre revisiones de «analogWriteResolution()»

De ArduWiki
Saltar a: navegación, buscar
(Vea también)
(Referencias externas)
 
Línea 69: Línea 69:
 
== Referencias externas ==
 
== Referencias externas ==
 
* [https://www.arduino.cc/reference/es/language/functions/time/analogwriteresolaution/ Guia de referencia de Arduino]
 
* [https://www.arduino.cc/reference/es/language/functions/time/analogwriteresolaution/ Guia de referencia de Arduino]
 +
* [http://manueldelgadocrespo.blogspot.com/p/analogwriteresolaution.html analogWriteResolution()] - Manuel Delgado
  
 
[[Category:Funciones pines]]
 
[[Category:Funciones pines]]

Revisión actual del 16:48 4 jul 2019

Descripción

Configura la resolución de la función analogWrite(). Esta resolución es, por defecto, de 8 bits (valores entre 0~255) para compatibilidad con las placas basadas en AVR.

Nota: analogWriteResolution() es una extensión de Analog API para los Arduino Due y Zero.


Sintaxis

analogWriteResolution(bits);

Parámetros

bits
determina la resolución (en bits) de los valores utilizados en la función analogWrite(). El valor puede oscilar entre 1~32. Si se selecciona una resolución más alta o más baja que las capacidades del hardware de la placa, el valor utilizado en analogWrite() será truncado si es demasiado alto o rellenado con ceros si es demasiado bajo. Véase la nota a continuación para más detalles.

Retornos

Nada.

Advertencias

  • El Due tiene las siguientes capacidades de hardware:
    • 12 pines que, por defecto, son PWM de 8-bit, al igual que las placas basadas en AVR. Esta resolución se puede cambia a 12-bit .
    • 2 pins con DAC (Conversor Digital a Analógico) de 12 bit.

Cambiando la resolución de escritura a 12, se puede utilizar analogWrite() con valores entre 0 y 4095 para explotar la resolución completa del DAC o para ajustar la señal de PWM sin darse la vuelta (rolling over).

  • El Zero tiene las siguientes capacidades hardware:
    • 10 pines que, por defecto, son PWM de 8-bit, igual que las placas basadas en AVR. Esta resolución se puede cambiar a 12-bit.
    • 1 pin conDAC (Convertidor Digital a Analógico) de 10-bit .

Cambiando la resolución de escritura a 10, se puede utilizar analogWrite() con valores entre 0 y 1023 para explotar la resolución completa del DAC.

Ejemplo

void setup(){
  // abre la conexión serie
  Serial.begin(9600); 
  // configura los pines digitales como salidas
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop(){
   //lee la entrada A0 y la mapea al pin PWM
   int sensorVal = analogRead(A0);
   Serial.print("Analog Read : ");
   Serial.print(sensorVal);

   //Resolución PWM por defecto
   analogWriteResolution(8);
   analogWrite(11, map(sensorVal, 0, 1023, 0 ,255));
   Serial.print(" ,  valor PWM de 8 bit: ");
   Serial.print(map(sensorVal, 0, 1023, 0 ,255));
  
   //Cambia la resolución PWM a 12 bits (solo DUE)
   analogWriteResolution(12);
   analogWrite(12, map(sensorVal, 0, 1023, 0, 4095));
   Serial.print(" , 12-bit PWM value : ");
   Serial.print(map(sensorVal, 0, 1023, 0, 4095));

   //Cambia la resolución PWM a 4 bits
   analogWriteResolution(4);
   analogWrite(13, map(sensorVal, 0, 1023, 0, 127));
   Serial.print(", 4-bit PWM value : ");
   Serial.println(map(sensorVal, 0, 1023, 0, 127));
 
  delay(5);
}

Vea también


Referencias externas