Unha saída dixital que semella analóxica
O controlador arduino pode xerar sinais dixitais modulados en anchura “PWM” (“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)
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:
É o sitio web onde mellor explicado atopei na miña vida o que é un sinal PWM. Grazas