Manual
do
Maker
.
com
Olha que incrível! O que pode ser mais legal e preciso do que usar a MCU para controlar a resistência de um potenciômetro? Além de poder fazer ajuste interativo, ainda podemos aplicar um algorítimo para ajustar o potenciômetro digital com Arduino , ESP8266/ESP32 etc.
Sendo um potenciômetro, não há muito o que variar (bom trocadilho, hum?). Ele possui as saídas RH, RW e RL. Ele tem uma resistência de 100K. Internamente ele possui uma matriz de 99 componentes resistivos e sua interface de comunicação é 3-wire. Esse potenciômetro digital você encontra nesse link, da Curto Circuito.
O final 102 é 1KOhms, 103 é 10KOhms e 503 é 50KOhms.
Estão dispostos 10 pinos, como na tabela abaixo:
PINO (ESQUERDA) | FUNÇÃO (ESQUERDA) | PINO (DIREITA) | FUNÇÃO (DIREITA) |
VCC | Alimentação (5V) | VCC | Alimentação (5V) |
GND | Ground | RH | Resistor alto |
INC | Comando de mudança | RW | Resistor regulado |
U/D | ajuste UP/Down | RL | Resistor baixo |
CS | Chip selector. Ativo: LOW | GND | Ground |
O primeiro pino é o superior esquerdo, marcado com uma circunferência côncava sobre o encapsulamento do CI.
Esse pinout é um frame tirado do vídeo relacionado a esse artigo. Apesar da leitura ser o suficiente, ficarei honrado com sua visita ao canal DobitaobyteBrasil no Youtube.
Podemos usar quaisquer pinos e qualquer Arduino. Ou nem precisa ser Arduino, mas vamos considerar os pinos 5,6 e 7 para Uno, Nano, Mega e para um Attiny88, como o MH-Tiny. Desse modo, não precisamos mexer no sketch de exemplo e conseguiremos comprovar facilmente o funcionamento, para depois fazermos livremente nossas implementações. Essa é uma dica; por mais que possa parecer perda de tempo, experimente um código de exemplo da biblioteca utilizada para constatar o funcionamento do hardware, wiring e ter uma visão do que realmente acontece no funcionamento - ou até simplifique o sketch de exemplo, como aqui. Depois, qualquer coisa que acontecer já parte-se da premissa que é outra parte que não o dispositivo testado.
Temos duas bibliotecas (pelo menos) para esses potenciômetros dessa série. Uma delas, da ElectroPeak, que coloquei em um repositório para não termos o risco de perder. Baixe e coloque-a no diretório Arduino/libraries. Se preferir importar como zip pela IDE do Arduino, comprima o diretório DigiPotX9Cxxx e importe-o. A segunda opção é instalar a biblioteca LapX9C10X, que está disponível através do gerenciador de bibliotecas da IDE do Arduino ou pelo PlatformIO. Para exemplificar, vou usar a biblioteca que está em meu repositório (do link acima) e simplificar o código para um fade in e fade out.
Eis um código de teste, que comento logo após.
#include <DigiPotX9Cxxx.h>
DigiPot pot(5,6,7);
void setup() {
}
void loop() {
for (int i=0; i<100; i++) {
pot.increase(1);
delay(20);
}
for (int i=0; i<100; i++) {
pot.decrease(1);
delay(20);
}
}
Repare que os tempos e os loops são iguais, exceto pela função de incremento ou decremento. Apesar disso, o tempo que o LED fica desligado é maior do que o tempo que fica ligado. Isso porque estamos usando um potenciômetro de 100k e um resistor de 680Ohms. O fade funciona muito bem, como pode ser visto no vídeo, que estará disponível em nosso canal DobitaobyteBrasil no Youtube tão logo acabe de ser editado. Se não é inscrito, inscreva-se e clique no sininho para receber notificações. Seu apoio é importante.
E, se você leu até aqui: Fiz esse tutorial com o MH-Tiny, da Curto Circuito. Como já citei anteriormente, a placa engana facilmente, pois é quase idêntica ao Arduino Nano, não fosse o fato de ser micro-USB e placa preta - muito mais bonita, digo de passagem.
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.