Sinais PWM e lectura serial

Unha saída dixital que semella analóxica

[tecnoloxia.org CC By-SA]
O controlador arduino pode xerar sinais dixitais modulados en anchuraPWM” (“Pulse Width Modulation”). Trátase dun sinal dixital periódico dunha determinada frecuencia que pode ser asimétrico, é dicir, o tempo que está o sinal no nivel 1 pode ser diferente ao tempo no que está a nivel 0.

O valor do sinal PWM varía desde 0 (equivale a un valor continuo de 0V) ata 255 (equivale a un valor continuo de 5V).

Deste xeito podemos utilizar estes sinais para controlar e regular a potencia de saída dun dispositivo: Variar a luminosidade dunha lámpada ou dun LED, regular a velocidade de xiro dun motor, variar o posicionamento do eixe dun servo, etc.

Por exemplo, se temos un LED conectado a un pin dixital PWM e enviamos un sinal PWM de valor 0 o LED estará apagado, se enviamos un valor de 255 estará aceso completamente e se enviamos un valor de 127 brillará a metade do que brillará no caso anterior, pois só enviamos 5V na metade do ciclo útil.

É doado calcular a voltaxe que chega ao pin de saída PWM. Por exemplo, se alimentamos a 5V a saída será:

Vs = 5·PWM/255

Pins E/S dixitais no arduino:

Na tarxeta Arduino Uno pódense usar como saídas de sinal PWM os pins marcados co símbolo ~ (3, 5, 6, 9, 10, 11)

arduino_ES_dixitais

Guía de programación:

analogWrite(pin, valor)

O pin indica onde conectamos o dispositivo de saída (LED, motor, servo, etc.)

O valor permite axustar a duración do ciclo útil ao sinal PWM de saída. Está comprendido entre 0 (0% do ciclo útil) e 255 (100% do ciclo útil)

Exemplos:

analogWrite(6, 127);     // Envía un sinal ao 50% do ciclo útil ao pin 6
analogWrite(led, brillo);     // Envía o valor da variable "brillo" ao pin no que está conectado o LED

Lectura serial:

Podemos ler a través da pantalla do ordenador (consola serial) os valores dunha entrada ou saída analóxica ou dixital. Para iso utilizamos as funcións:

  • Na configuración: Serial.begin(9600); Inicia a comunicación serie á velocidade de 9600 baudios
  • No programa: Serial.print(valor); Imprime na pantalla o valor lido nunha entrada
  • No programa: Serial.println(valor); Imprime na pantalla o valor lido nunha entrada e pasa a unha nova liña

Para ver a consola, unha vez cargado o programa no Arduíno, debemos premer na icona que aparece na parte superior dereita:

monitor_serie
[tecnoloxia.org CC By-SA]

1 comentario en “Sinais PWM e lectura serial”

Deixa un comentario