venres, 1 de novembro de 2013

Conversión analóxica dixital. Lendo entradas analóxicas con Arduino

Na reunión do venres 25 de outubro de 2013 estivemos falando en primeiro lugar da conversión analóxica-dixital e como segundo prato a modulación PWM. 

Da conversión analóxica dixital se explicaron os seus principios, parámetros e características do conversor analóxico-dixital do Arduino Leonardo e O tratado se pode consultar na seguinte presentación ADC.

Como posta en práctica da conversión AD propuxemos o exercicio de recoller o valor de tensión que obtemos variando un potenciómetro e mostralo pola consola.

 Despois comentamos a modulación PWM. Realizamos a súa descrición, comentamos os seus usos e propuxemos un exemplo.

O exemplo basease no anterior da conversión analóxica dixital. Neste caso teríamos que variar a iluminación do díodo led mediante o accionamento do potenciómetro.



/*
  Fade PWM
  Este exemplo convirte a entrada analoxica "potpin" nun valor

  dixital 0 - 1023. Escala este valor de 10 bits nun de 8 bits
  (0-255). Este ultimo valor o utilizaremos para regular a 
  iluminacion do led conectado no pin "led"
*/


// Pin para conectar o led (con capacidade PWM)
int led = 6;    
int potpin = A2;                     // Pin de entrada analoxica
int valor;                           // declaración da variable




  // rutina de axuste despois de RESET
void setup()  {                           
    pinMode(led, OUTPUT);         // declaramos pin 9 como saida
    Serial.begin(9600);

    // iniciamos a as comunicacións serie a 9600 bps.           
}
 

void loop()  {                        

    valor = analogRead(potpin);       

    // recollemos o valor da entrada analóxica na variable valor
    Serial.print("sensor = " );              

    // enviamos via serie o texto "sensor = "
    Serial.print(valor*0.005);               

    // enviamos via serie o o valor equivalente en vots ( escalón = 5V / 1024 = 0.0048828125)
    Serial.print("V" );                      

    // enviamos vía serie o texto "V"

    valor = map(valor, 0, 1023, 0, 255);     

    // Mapeamos un enteiro de 10bits "valor" a outro de 8 bits
    analogWrite(led, valor);                     

    // Pasamos ese valor a saída "led" en PWM
    Serial.print("\t saida LED = ");         

    // enviamos vía serie un tabulador (\t) mais o texto " saída LED =  "
    Serial.println(valor);                       

    // enviamos vía serie o valor PWM
    delay(1);                                    

    // poñemos un atraso para evitar interferencias no CAD   
}


Neste encontro participamos Carlos, Gonzalo A, Gonzalo C., Leo, Jairo e Nelson.

Ningún comentario:

Publicar un comentario