Modulo 1: Estructura

Modulo 2: Variables

Modulo 3: Tipos de datos

Modulo 4: Aritmética

Modulo 5: Constantes

Modulo 6: Control de flujo

Modulo 7: E/S digitales

Modulo 8: E/S Analógicas

Modulo 9: Tiempo

Modulo 10: Matemáticas

Módulos 11: Aleatorios

Modulo 12: Puerto serie

Modulo 13: apéndice

Páginas

analogRead, analogWrite

analogRead(pin)


Lee el valor de un determinado pin definido como entrada analógica con una resolución de 10 bits. Esta instrucción sólo funciona en los pines (0-5). El rango de valor que podemos leer oscila de 0 a 1023.

 valor = analogRead(pin);     // asigna a valor lo que lee en la entrada ´pin' 

Nota: Los pins analógicos (0-5) a diferencia de los pines digitales, no necesitan ser declarados como INPUT u OUPUT ya que son siempre INPUT´s.


analogWrite(pin, value)


Esta instrucción sirve para escribir un pseudo-valor analógico utilizando el procedimiento de modulación por ancho de pulso (PWM) a uno de los pin´s de Arduino marcados como “pin PWM”. El más reciente Arduino, que implementa el chip ATmega168, permite habilitar como salidas analógicas tipo PWM los pines 3, 5, 6, 9, 10 y 11. Los modelos de Arduino más antiguos que implementan el chip ATmega8, solo tiene habilitadas para esta función los pines 9, 10 y 11. El valor que se puede enviar a estos pines de salida analógica puede darse en forma de variable o constante, pero siempre con un margen de 0-255.

             analogWrite(pin, valor);         // escribe 'valor' en el 'pin' definido como analógico 

Si enviamos el valor 0 genera una salida de 0 voltios en el pin especificado; un valor de 255 genera una salida de 5 voltios de salida en el pin especificado. Para valores de entre 0 y 255, el pin saca tensiones entre 0 y 5 voltios - el valor HIGH de salida equivale a 5v (5 voltios). Teniendo en cuenta el concepto de señal PWM , por ejemplo, un valor de 64 equivaldrá a mantener 0 voltios de tres cuartas partes del tiempo y 5 voltios a una cuarta parte del tiempo; un valor de 128 equivaldrá a mantener la salida en 0 la mitad del tiempo y 5 voltios la otra mitad del tiempo, y un valor de 192 equivaldrá a mantener en la salida 0 voltios una cuarta parte del tiempo y de 5 voltios de tres cuartas partes del tiempo restante.

Debido a que esta es una función de hardware, en el pin de salida analógica (PWN) se generará una onda constante después de ejecutada la instrucción analogWrite hasta que se llegue a ejecutar otra instrucción analogWrite (o una llamada a digitalRead o digitalWrite en el mismo pin). 

Nota: Las salidas analógicas a diferencia de las digitales, no necesitan ser declaradas como INPUT u OUTPUT.. 

El siguiente ejemplo lee un valor analógico de un pin de entrada analógica, convierte el valor dividiéndolo por 4, y envía el nuevo valor convertido a una salida del tipo PWM o salida analógica: 

                      int led = 10;             // define el pin 10 como ´led´ 
                      int analog = 0;         // define el pin 0 como ´analog´ 
                      int valor;                  // define la variable ´valor´

  void setup(){}                             // no es necesario configurar entradas y salidas 
  
void loop() 
     
          valor = analogRead(analog);       // lee el pin 0 y lo asocia a la variable valor
          valor /= 4;                                    //divide valor entre 4 y lo reasigna a valor
          analogWrite(led, value);             // escribe en el pin10 valor 
       
}










No hay comentarios:

Publicar un comentario