terça-feira, 8 de novembro de 2016

Controlador PWM 16 CH PCA9685 com servos e Led






Teste com servos

Teste com leds


Foram utilizados os exemplo que acompanham a biblioteca da adafruit para arduino nos testes descritos aqui. Em breve postarei dois outros exemplos de utilização deste módulo, um deles com o ESP8266.

Com esse módulo baseado no PCA9685 é possível adicionar 16 portas de  PWM de 12 bits ao arduino, ao esp8266 ou a outro microcontrolador com I2C. Pode controlar, por exemplo, 16 servomotores, 16 leds inclusive a intensidade do brilho, entre outras aplicações.

Características do módulo


>> 16 canais;
>> Resolução do PWM: 12bits 4096 valores possíveis;
>> Frequências: 40 - 1000Hz;
>> Tensão de alimentação 2,3 V to 5,5 V;
>> Corrente máxima saída (pinos de PWM)  25mA;
>> Tensão lógica: 3 a 5V;
>> Tensão para servos (V+) máxima:  6V;


Datasheet do módulo adafruit
 
Datasheet do CI
 
Pinagem:



Endereço I2C

A comunicação I2C utiliza apenas dois fios, um para clock (SCL) e outro para dada (SDA). Nela é possível, teoricamente conectar até 128 elementos em um mesmo barramento. Cada elemento é definido por um endereço. Esse endereço é definido via hardware. O fabricante seguindo as normas do padrão I2C determina o endereço ou faixa de endereços quando o dispositivo é projetado.

Neste módulo:


>> 64 endereços I2C possíveis;
>> Dois endereços reservados:  LED All Call address (1110 000) and Software Reset (0000 0110);
>> Permite ligar, teoricamente, até 62 módulos no mesmo barramento I2C. Endereço padrão 0x40 (em hexadecimal) , B1000000 (em binário)

O endereço I2C pode ser alterado através dos jumpers A0 a A5 na placa. Eles estão todos abertos por padrão.



Para mudar o endereço basta fechar com solda, alterando o bit para 1, o(s) jumper(s) correspondente ao endereço desejado. Observe que o primeiro dígito do endereço é fixo.




fixo
A5
A4
A3
A2
A1
A0
jumper fechado (1). aberto (0)
1
0
0
0
0
0
0
endereço padrão ( todos os jumpers abertos)

Fechando o jumper A0, por exemplo teremos o endereço !2C: B1000001 (em binário) ou 0x41 (em hexa)

Ligação com os servos



Ligação com os leds



O programa
Conforme mencionado no inicio foram utilizados os código que acompanham a biblioteca da adafruit. Ela pode ser baixada pelo link abaixo.





Esta biblioteca tem 2 exemplos:




 pwmteste >> usado no exemplo dos leds
  servo >> usado no exemplo dos servos