Introduction: Arduíno Tutorial - PWM Output - LED - Monitor Serial

Picture of Arduíno Tutorial - PWM Output - LED - Monitor Serial

Neste tutorial iremos falar sobre uma característica especial que apenas algumas das saídas digitais do Arduino possuem. Estas saídas estão identificadas através de um pequeno símbolo parecido com um sinal analógico. No Arduino UNO os pinos são o 3, 5, 6, 9, 10 e 11 (Ver imagem acima), isto significa que esses pinos também podem ter a função designada de PWM, ou seja, Pulse Width Modulation.

O que é a função Pulse Width Modulation?

Esta função permite colocar nas saídas destes pinos, sinais digitais modulados com uma determinada frequência, podendo com esta função controlar o intervalo de tempo que um determinado pino está em nível alto.

Assim se um sinal digital estiver em nível alto metade desse intervalo de tempo, podemos dizer que esse sinal digital tem um ciclo de trabalho de 50%, assemelhando-se a uma onda quadrada ideal. Por outro lado, se a percentagem for superior a 50%, por exemplo 80%, esse sinal digital ficará mais tempo em nível alto do que em nível baixo, no caso do ciclo de trabalho ser inferior a 50% o sinal digital ficará mais tempo em nível baixo do que em nível alto (Ver gráfico acima).

Esta função pode ser utilizada para diversas aplicações, como por exemplo:

  • Controlo de velocidade de motores;
  • Variação da luminosidade de LED;
  • Geração de sinais modulados;
  • Geração de sinais de áudio;

Para ser mais fácil a compreensão do funcionamento desta função, iremos mostrar-vos uma montagem, cujo o objectivo é fazer piscar um LED, mas variando a sua luminosidade ao longo do tempo.

Step 1: Montagem

Apesar de esta montagem ser bastante simples utilizamos uma Breadboard, pois é muito fácil de trabalhar e ajuda a organizar as ligações entre os componentes electrónicos, bastando apenas encaixar os componentes e cablagens nos buracos. No entanto temos de ter atenção às ligações internas da Breadboard, pois podem variar consoante os modelos (Ver modelo utilizado acima).

Material necessário:

  • 1x Arduíno UNO;
  • 1x Cabo USB;
  • 1x Breadboard;
  • 1x LED Vermelho;
  • 1x Resistência 1KΩ.

Não se esqueçam, que os LED só funcionam se directamente polarizados, ficando assim o pino positivo ligado ao pino digital escolhido e o pino negativo ligado ao pino GND do Arduino (Ver imagem acima). Alem a sua polarização não esquecer também de ligar o LED em serie com uma resistência eléctrica de 1KΩ, evitando assim que este se danifique quando o ligarmos.

Step 2: Codigo

Picture of Codigo

Depois de terminarmos a montagem iremos carregar o código na placa do Arduino, no entanto realçamos a utilização da função "AnalogWrite" que tem a finalidade de configurar as saídas digitais como saídas PWM e a função "Communication Serial" que permite verificar e acompanhar visualmente a alteração dos valores das variáveis ao longo do tempo.

int LED = 11;          //Variável para selecção do pino PWM.
int Brilho = 0;        //Variável para o definição do brilho do LED.
int Quantidade = 5;    //Variável para a quantidade de brilho.

//Correr a função SETUP apenas uma vez após ser pressionado Reset:
void setup(){
	//Definição do tipo de pino (Saída ou entrada):
	pinMode(LED, OUTPUT);

	//Iniciar a  Communication Serial a 9600b/s:
	Serial.begin(9600);
}
//Correr a função LOOP repetidamente:
void loop(){
	//Liga o LED com o brilho definido:
	analogWrite(LED, Brilho);
	//Alterar o brilho do LED:
	Brilho = Brilho + Quantidade;
	//Se o brilho estiver no mínimo ou no máximo (Min=0 e Max=255):
	if (Brilho <= 0 || Brilho >= 255){
		//Inverter a quantidade de brilho do LED.
		Quantidade = - Quantidade;
	}

	//Escreve no monitor serial o valor da variável:
	Serial.println(Brilho);
	//Atraso para o próximo passo:
	delay(100);
}

Função Communication Serial:

Para visualizarmos essa informação na janela da função "Communication Serial" é necessário colocar estas funções no código dentro da função SETUP e função LOOP:

void setup(){
	//Iniciar a Comunicação Serie a 9600b/s:
	Serial.begin(9600);
}

e

void loop(){
	//Escreve no monitor serial o valor da variável:
	Serial.println(VARIAVEL); //"println" > Escreve e depois paragrafo abaixo.
				  ou
				  //"print" > Escreve sempre na mesma linha.
}

Depois ao carregarmos no botão "Communication Serial" (Ver imagem acima) é abreta uma pequena janela onde será escrita a informação.

Caso queiram saber mais ou tenham dúvidas sobre estas e outras referências do código, vejam a sua explicação detalhada no site oficial do Arduino, através deste Link "https://www.arduino.cc/en/Reference/HomePage".

Procurem os nossos tutoriais acerca do Arduino, onde explicamos diversas montagens e o funcionamento dos seus componentes, já agora visitem o nosso canal no Youtube, Facebook ou Twitter.

Abraço e bons projectos.

Comments

About This Instructable

790views

18favorites

License:

Bio: Este é um canal para homemakers e DIY onde vai encontrar tutoriais úteis acerca de Electrónica, Arduíno, Robótica e Impressão 3D. Estes têm explicações simples ... More »
More by Crazy Taz Projects:Arduino Tutorial - Clock - LCDArduino Tutorial - Alarm - Flow Sensor - Monitor SerialArduino Tutorial - LCD - Temperature Sensor
Add instructable to: