segunda-feira, 14 de fevereiro de 2011

Picaxe, Servo e potenciômetro



Na ultima postagem sobre o Picaxe comentei que pretendia compra um para testá-lo e aprender sobre ele. Pois bem, comprei um 08M, o mais simples de todos com exceção do picaxe 08.

A montagem que descrevo aqui é bastante simples, mas não deixa de ser útil para aqueles, que como eu, estão começando a programar o picaxe. A idéia é receber o sinal 0 a 5v de um potenciômetro através de uma entrada analógica que em 10 bits  retorna um valor de 0 a 1023  (2^10 = 1024 valores possíveis), mudar esse valor para uma escala de 75 a 225 e  usando a função  "servopos  pino, valor”,  aplicá-lo ao servo  ligado ao pino 4 do picaxe através de um resistor de 330R, recomendado pelo manual.

O diagrama é mostrado no vídeo. Dependendo da marca do servo utilizado existe uma variação das cores dos fios de conexão. O positivo normalmente é vermelho o negativo preto ou marrom e o fio de sinal amarelo ou branco. Pra garantir é melhor pesquisar pelo modelo do servo. O potenciômetro pode ser de qualquer valor.
Um cuidado especial deve ser tomado com a alimentação do picaxe. Inverter positivo e negativo significa queimá-lo. Não é aconselhável, também, usar tensões acima de 5v.

O código:


symbol pot_value = w1
symbol servo_value = w2

init: servo 4,75 ; inicializa o servo

main: 'loop principal

READADC10 2, pot_value    ' le o valor do potenciometro ligado ao pino 2 e armazena em pot_value

pot_value = pot_value * 5 / 34  ' mudando da escala lida no pot 0 - 1023 para 75 a 225 aprox

servo_value = pot_value + 75 
   
servopos 4,servo_value 'manda o valor para o servo no saida 4 do picaxe (pino 3 do CI)

goto main 'fim do loop principal