Tinkercad e PQDB: LED RGB e circuitos analógicos

Tinkercad e PQDB Display de 7 segmentos
Este post faz parte da série Tinkercad e PQDB

Continuando a série sobre o uso da ferramenta Tinkercad, neste artigo é mostrado como manipular o LED RGB e circuitos analógicos da placa PQDB.

LED RGB

Este componente consiste em 3 LEDs diferentes (vermelho, verde e azul) dispostos em conjunto, porém com terminais independentes. No exemplo, o LED utilizado será do tipo cátodo comum, sendo este terminal, então, conectado ao terra do circuito, de maneira que ao se aplicar uma tensão nos terminais individuais, o LED é aceso.

Para o funcionamento do LED RGB, os anodos serão conectados à portas do Arduino que possuam saídas PWM. Variando o ciclo de trabalho (duty cycle) destas portas, é variada a proporcionalidade de tempo com que elas possuem nível lógico alto e nível lógico baixo. Se o duty cicle de uma porta é de 50%, esta ficará o mesmo período de tempo ligada e desligada. Variando esse valor é produzido aos olhos humanos uma sensação de maior ou menor intensidade de brilho de cada cor dos LEDs. A resolução das portas PWM do Arduino UNO é de 8 bits, ou seja, o menor valor é 0 e o maior 255 (2– 1=256 -1), como exemplificado na figura a seguir:

Tinkercad e PQDB - Duty cycle das portas PWM do Arduino.
Figura 1: Duty cycle das portas PWM do Arduino.
Tinkercad e PQDB
Figura 2: Circuito com LED RGB.

Link para a simulação aqui.

Código

#define R 2
#define G 4
#define B 3

void setup(){
  	pinMode(R, OUTPUT); //Configuração dos pinos como saída
  	pinMode(G, OUTPUT);
  	pinMode(B, OUTPUT);
}

void loop(){
      analogWrite(R, random(255)); //Ligando as portas PWM com valor aleatório de duty cicle
      analogWrite(G, random(255));
      analogWrite(B, random(255));
      delay(200);	//Espera 200ms até atualizar o LED com novos valores aleatórios
}

Componentes Analógicos

Neste sketch será realizada a leitura de um sensor de temperatura, um resistor dependente de luz (LDR) e um potenciômetro através das portas analógicas e impressos no monitor serial. A reprodução de sons é feita por meio de um buzzer (piezoelétrico).

Ao conectar os componentes nas entradas analógicas do microcontrolador é necessário saber que o conversor analógico digital, que tem seus padrões de tensão de 0 a 5 V, tem uma resolução de 10 bits, portanto, seu valor mínimo é 0 e seu valor máximo, correspondente a 5 V, é de 1023 (210 – 1).

Circuito com componentes analógicos.
Figura 3: Circuito com componentes analógicos.

Link para a simulação aqui.

As particularidades do circuito são a interpretação da leitura do resistor dependente de luz (LDR), a utilização do transistor para acionar o buzzer e a escala do sensor de temperatura.

O LDR tem uma alta resistência (mega ohms) na ausência de luminosidade e uma baixa resistência (dezenas de ohms) na presença de uma forte luminosidade. Para realizar sua leitura é avaliada a queda de tensão em um resistor fixo, que é baixa na falta de luz e alta na presença de luz.

Para que o buzzer tenha mais volume em função da baixa corrente que a porta digital do microcontrolador é capaz de oferecer, esta será responsável apenas por polarizar o transistor que atua como uma chave fechada quando a saída digital tem nível lógico alto e como chave aberta quando a saída tem nível lógico baixo.

O sensor de temperatura presente no Tinkercad tem sua saída variando 10 mV para cada ºC, mas seu zero (0 V) corresponde a uma temperatura de -50 ºC, portanto a faixa de 0 a 5 V é traduzida em -50 ºC a 450 ºC.

Ao iniciar a simulação é possível alterar o valor dos sensores e do potenciômetro clicando sobre eles:

Mudança do valor de temperatura.
Figura 4: Mudança do valor de temperatura.

Código

#define BUZZER 9
#define LM A0
#define LDR A1
#define POT A2

void setup(){
  pinMode(BUZZER, OUTPUT); //Configura a porta como saída
  pinMode(LM, INPUT); //Configura as portas como entrada
  pinMode(LDR, INPUT);
  pinMode(POT, INPUT);
  Serial.begin(9600); //Inicializa a comunicação serial
}

void loop(){
  static unsigned long info = 0;
  //A função millis() retorna há quantos milissegundos o microcontrolador está ligado
  if (millis() - info > 200){ //É executado 200ms após o reset da variável info
    info = millis(); //Reseta a variável info
    
  	Serial.print("Temp = ");
  	Serial.print(map(analogRead(LM),0, 1023, -50, 450)); 	// Converte 0 a 1023 em -50ºC a 450ºC
  	Serial.println("oC");
	  
  	Serial.print("LDR = ");
	Serial.println(analogRead(LDR)); //Imprime o valor sem conversão da leitura analógica
	  
  	Serial.print("Potenciometro = ");
  	Serial.print(map(analogRead(LM),0, 1023, 0, 100));	// Converte 0 a 1023 em 0% a 100%
  	Serial.println("% \n");
  }
  if(analogRead(POT)>128){
    static unsigned long timeBuzz = 0;
    if(millis() - timeBuzz > 100){	//É executado 100ms após o reset da variável timeBuzz
  	   tone(BUZZER, 100 + analogRead(POT)); // Liga o buzzer com uma frequência dependente do valor do potenciômetro
    }
    if(millis() - timeBuzz > 300){  //É executado 300ms após o reset da variável timeBuzz
       noTone(BUZZER);	//Desliga o BUZZER
       timeBuzz = millis(); //Reseta a variável timeBuzz
    }
  }
  else{
    noTone(BUZZER); //Desliga o BUZZER
  }
}

Conclusão

Neste artigo foram apresentados os conceitos de PWM para variar a intensidade do brilho dos LEDs, a leitura analógica de componentes, como sensores de temperatura e luminosidade e potenciômetros, e a reprodução de sons por meio de um buzzer (piezoelétrico).

Nos próximos artigos vamos trabalhar outros conceitos presentes nos circuitos na PQDB, como a multiplexação de displays 7 segmentos, a leitura de um teclado matricial e a utilização do display LCD 16×2.

Todos os códigos podem ser acessados em meu GitHub.

Saiba mais

Primeiros Passos com a PQDB Mini e Arduino UNO

Conheça a PQDB Mini – A placa didática com display gráfico

Controle de matrizes de LED com Arduino

Tinkercad e PQDB

Tinkercad: ferramenta online e gratuita de simulação de circuitos elétricos Tinkercad e PQDB: Display de 7 segmentos
Sem licença
Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Arduino » Tinkercad e PQDB: LED RGB e circuitos analógicos

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: