Anda di halaman 1dari 4

No arduino, possvel utilizar tenses diferentes de de 0 ou 5V utilizando-se as portas PWM.

. No arduino UNO so as portas 3, 5, 6, 9, 10 e 11 e so facilmente identificadas pelo simbolo "~" abaixo de cada porta.

J no arduino MEGA, as portas digitais que permitem PWM so as portas 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 e 13.

A forma de onda do sinal digital consiste em uma onda quadrada que alterna seu estado em nvel lgico alto e um nvel lgico baixo (pode ser representado por ligado/desligado ou pelo sistema binrio 1 e 0). A razo entre o perodo de pico e o perodo total da onda chamado de Duty Cycle (ciclo de trabalho). Podemos, ento, entender que para termos uma onda quadrada real (que possui picos e vales iguais) necessrio que o Duty Cycle seja de 50%, ou seja, 50% de pico e 50% de vale.

A partir das portas PWM, possvel obter valores intermedirios de tenso utilizando um sinal digital, que no arduno convertido para uma escala linear que varia de 0 a 255 (8 bits), no qual 0 corresponde 0V e 255 corresponde a 5V. Para fazer uso desse recurso, necessrio utilizar o comando analogWrite(X); onde X um nmero tal que: 0 X 255.

Dessa forma: analogWrite(3, 0); a tenso na porta digital 3 ser se 0V analogWrite(5, 64); a tenso na porta digital 5 ser se 1,25V analogWrite(6, 127); a tenso na porta digital 6 ser se 2,5V analogWrite(9, 191); a tenso na porta digital 9 ser se 3,75V analogWrite(10, 255); a tenso na porta digital 10 ser se 5V Para ilustrar esse tipo de utilizao, o arduino vem com o exemplo Fading, que mostra a variao de

brilho do led com a alterao da tenso (e consequentemente tambm da corrente) que alimenta o conjunto resistor + led. Para execut-lo, necessrio montar o seguinte circuito:

int ledPin = 9;

// LED conectado ao pino digital 9

void setup() { // Nada acontece no setup; } void loop() { // Altera gradualmente do mnimo ao mximo incrementando 5 unidades por vez for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) { // Estabelece o valor (de 0 a 255): analogWrite(ledPin, fadeValue); // Aguarda 30 milisegundos para melhor observao do efeito delay(30); } // Altera gradualmente do mximo ao mnimo decrementando 5 unidades por vez for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) { // Estabelece o valor (de 0 a 255): analogWrite(ledPin, fadeValue); // Aguarda 30 milisegundos para melhor observao do efeito delay(30); } } CONCLUSO As portas PWM so de grande utilidade para o arduino e, com cdigos relativamente simples,

podem ser usadas para vrias aplicaes, tais como: - Controlar a luminosidade de um LED; - Gerar sinais de adio; - Gerar um sinal modulado; - Controlar a velocidade de motores; - Obter valores analgicos a partir de meios digitais;