Introduction: Arduino Tutorial - PWM Output - LED - Monitor Serial

About: This is a channel for Homemakers and DIY where you will find useful tutorials about Arduino and IOT systems, some Gardening techniques and Woodworking projects.

Neste tutorial iremos falar sobre uma característica especial que apenas alguns dos pinos de sinal digital do Arduino possuem. Estes pinos normalmente estão identificados através de um pequeno símbolo idêntico com símbolo que em electrónica significa sinal analógico.

No Arduino UNO os pinos com essa característica são os pinos 3, 5, 6, 9, 10 e 11 (Ver imagem acima), significando assim 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 de um 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;

De forma a 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 facilita em muito o trabalho de organizar as ligações entre os componentes electrónicos, bastando apenas encaixar os componentes e cablagens nos buracos, temos de ter atenção às ligações internas da Breadboard, pois podem variar consoante os modelos (Ver imagem acima).

Material necessário:

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

Teremos de ter atenção à polarização dos LED, pois só funcionam se directamente polarizados, assim o pino positivo é ligado ao pino de sinal digital escolhido e o pino negativo ligado ao pino GND do Arduino (Ver imagem acima).

Alem da sua polarização também não nos podemos esquecer de ligar o LED em serie com uma resistência eléctrica com cerca de 1KΩ, evitando assim que este se danifique quando o ligarmos.

Step 2: Código

Depois de terminarmos a montagem vamos carregar o código na placa do Arduino, mas antes vamos explicar a utilização da função AnalogWrite, esta que tem como finalidade configurar os pinos de sinal digital como saídas PWM, alem desta também será explicada e utilizada 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 do Monitor Serial é necessário colocar as suas funções da Communication Serial no dentro das funções SETUP e 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 Monitor Serial do Arduino IDE sendo aberta uma pequena janela onde será escrita a informação (Ver imagem acima).

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

Procurem os nossos tutoriais acerca do Arduino, onde são explicadas diversas montagens e o funcionamento, já agora visitem o nosso canal no Youtube, Instagram, Facebook ou Twitter.

Abraço e bons projectos.