quinta-feira, 8 de setembro de 2011

Tutorial: Parte 3

Componentes necessários: 

1x LED
1x Resistor 470R a 1K

Nível de dificuldade:

Básico


Já sabendo como conectar o Arduino, selecionar placa e porta correta, compilar e carregar um sketch, podemos acrescentar alguns componentes externos e experimentar algumas coisas diferentes.

Primeiro, vamos aos componentes usados para essa parte do tutorial.

LED
Um LED, diodo emissor de luz, é um componente eletrônico que emite luz quando submetido a uma corrente elétrica. Outrora comuns apenas em sinalização e paíneis de aparelhos eletrônicos, controles-remoto, etc, hoje estão à disposição em uma variedade imensa de formatos, tamanhos e potência luminosa.

Para essa parte do tutorial não fará diferença o tipo, tamanho ou cor do led usado.





Resistor

A resistência elétrica é a propriedade que os materiais têm de dificultar a passagem da corrente elétrica. Um resistor é um componente com uma resistência conhecida, feito com esse propósito, de ser usado para limitar a corrente elétrica passando por determinada parte do circuito. Imagine a corrente elétrica como a água passando por um cano e a resistência elétrica como o diâmetro do cano, que determina quanta água pode passar. Uma alta resistência é análoga a um cano de pequeno diâmetro.

A resistência elétrica é medida em Ohms, com o valor dos resistores sendo marcado através de faixas coloridas seguindo um código de cores. Aprenda mais sobre isso no link abaixo. 


Para essa parte do tutorial, precisaremos de um resistor para limitar a corrente do LED. Um valor adequado para essa função é de 470 a 1000 ohms.

Circuito

O led é um componente polarizado, ou seja, tem um pino que corresponde ao positivo, o anodo,  e um ao negativo, o catodo. A identificação dos terminais certos pode ser feita de várias formas. Com leds novos, o terminal mais curto é o catodo, o mais comprido o anodo. Outra forma é através da borda do led, ausente no lado do catodo. Em último caso, basta testar no circuito e inverter caso não funcione na primeira tentativa.

Os leds também têm uma resistência muito baixa, o que significa que ao ligarmos um deles a uma bateria ou uma fonte, passará por ele uma grande corrente elétrica, que fará com que aqueça em excesso e queime, às vezes em uma fração de segundo.

Para impedir que isso ocorra e limitar a corrente elétrica que passará pelo LED é que usaremos o resistor em série com o LED. Essa é a primeira lição realmente importante desse tutorial: nunca ligue um LED sem
um resistor em série, a menos que saiba muito bem o que está fazendo... e se soubesse, você não estaria lendo isso.

A ligação que faremos será como no esquema abaixo. O catodo do led será ligado ao GND da placa. O anodo será ligado a um dos pinos do resistor e o outro pino do resistor será ligado ao pino 9 do Arduino.


O que temos nesse circuito é o mais simples possivel: quando elevarmos o sinal de saida do pino 9 o led acenderá. Vamos fazer isso então...


Código

Primeiro, vamos aproveitar o código da parte 2. Nele fizemos com que o led embutido na placa do Arduino e ligado internamente ao pino 13 piscasse a cada 2 segundos. Para usá-lo aqui basta mudarmos o pino que está sendo usado, do 13 para o 9.


int ledPin =  9;    // LED conectado ao pino 9
 
// A função setup() é executada uma vez quando o programa inicia
void setup()   {                
// inicializa o pino como uma saída digital
pinMode(ledPin, OUTPUT);     
}

// a função loop() é executada continuamente, enquanto o Arduino 
// estiver ligado
void loop()                     
{
  digitalWrite(ledPin, HIGH);   // acende o LED
delay(1000);                  // espera 1 segundo
digitalWrite(ledPin, LOW);    // apaga o LED
delay(1000);                  // espera 1 segundo
} 


Como fizemos no exemplo anterior, vá ao menu Sketch>Compile, ou use CTRL + R, ou ainda o botão de "play" na barra de ferramentas no topo do IDE para compilar o programa. Se a compilação foi bem sucedida, basta enviar para o Arduino usando File>Upload to I/O board, ou CTRL + U, ou o botão com a seta apontando para a direita na barra de ferramentas.

Lembre-se que se o upload falhar, você pode ter selecionado a placa ou a porta errada anteriormente, ou há algum outro problema, e haverá uma mensagem de erro.

Se tudo correu bem, o LED conectado ao resistor deve começar a piscar a cada segundo.

Na próxima parte mostrarei como usar um pino como entrada digital.

domingo, 8 de maio de 2011

Tutorial: convertendo servo para rotação contínua

Já faz um bom tempo que parei de usar motores DC com caixa de redução para meus robôs, dando preferência a servos convertidos para rotação contínua. A principal vantagem é a simplicidade do circuito de controle. Mesmo quando a intenção é conectar diretamente a um outro circuito de controle, tenho usado os servos removendo toda a parte eletrônica e ligando diretamente ao motor. A vantagem sobre um motor DC comum nesse caso é a padronização do tamanho e a facilidade de conectar as partes, usando as peças de fixação dos servos.

A grande desvantagem é que a maioria dos servos baratos costuma ter engrenagens de plástico e pouco torque. Encontrei a solução para esse problema com o Tower Pro MG995 e 996. São servos baratos, na faixa de US$ 10-15, com engrenagens de metal, rolamentos e torque de sobra para a maioria das aplicações onde usaria um motor DC com caixa de redução na mesma faixa de preço.






Atendendo ao pedido de um amigo, vou documentar aqui o procedimento para converter qualquer um dos dois para rotação contínua. Não é muito diferente do procedimento usado para qualquer outro servo, mas a caixa de redução e as engrenagens de metal podem intimidar um pouco à primeira vista.


O primeiro passo é abrir o servo, retirando os parafusos da tampa traseira com uma chave philips.


Depois de retirar a tampa traseira, com muito cuidado retire a tampa superior. Há um pino que serve de eixo para as engrenagens centrais, mas como ele não é fixo nem à tampa, nem à base, ele pode escapar quando você abre e cair. Muito cuidado para não perdê-lo nesse momento. Recomendo que retire a tampa dentro de uma caixinha ou pote plástico para que qualquer peça caia ali dentro.



Com muito cuidado, retire a engrenagem central. Com mais cuidado ainda retire a engrenagem do eixo do servo (à esquerda na foto acima). Essa engrenagem é presa ao potênciometro interno do servo, e pode exigir um pouco de força para sair. Uma chave de fenda puxando aos poucos por baixo ajuda muito.


Note como a engrenagem do eixo tem um pino limitador. Retirá-lo é a parte mais difícil da conversão. Com um alicate pequeno segure-o com força, puxando para cima e girando para os lados. Você deve conseguir senti-lo se movendo e então retirá-lo sem muito trauma.


Uma vez removido o pino, pode recolocar as engrenagens e a tampa no lugar. Tudo deve encaixar com precisão, sem forçar nada no lugar. Depois de remontar a caixa de redução, use uma das rosetas de fixação como alavanca para girar um pouco o servo e confirmar que tudo está montado corretamente. Mesmo sem o pino você deve sentir um limite devido ao potênciometro.


Depois de remontar a caixa e confirmar que tudo está no lugar, recomendo prender a tampa superior com uma fita adesiva ou etiqueta fácil de remover, apenas para evitar que tudo abra de novo enquanto você estiver alterando o circuito.

Tire a plaquinha do circuito e sob ela você verá o potênciometro, preso ao lugar por um parafuso e cola-quente (Made in China). Remova a plaquinha e o parafuso e tire o potênciometro. Com o ferro de soldar, remova com cuidado os fios do potênciometro ligados à placa, limpando bem as ilhas. Não aqueça demais por muito tempo. Recomendo usar fita dessoldadora, apesar do sugador de solda na foto.


Depois de removido o potênciometro, solde dois resistores de 2k2 no lugar, formando o mesmo divisor de tensão. Uma alternativa é usar um trimpot de precisão de 5k, mas não é uma grande vantagem já que a regulagem pode ser feita no software.

Com cuidado coloque a plaquinha no lugar, recoloque a tampa e os parafusos e o trabalho está pronto. Agora basta conectar ao Arduino e encontrar o ponto exato em que o servo fica parado. Comece com 1500 microsegundos e ajuste para cima ou para baixo até que ele pare de se mover.