sábado, 6 de agosto de 2011

Brincando com LED RGB

     Como já vimos já usamos o LED normal, agora podemos brincar com o LED RGB. Mas o que seria esse LED RGB é praticamente 3 LEDs com único encapsulamento que possui as cores: Vermelho (R), Verde (G) e Azul (B).
     
     Com esse LED podemos gerar até 16.581.375 cores diferentes usando porta PWM do arduino. Mas lembrando que precisa colocar uma resistência em cada terminal, eu usei 470ohm. O circuito fica mais ou menos isso:

     A programação também não tem nada de mais praticamente é idêntica ao LED normal (Blink) sendo que em vez de programar 1 LED, programei 3 LEDs. Nessa programação a seguir usei a sequência de cores como a Tabela Verdade com 3 Variáveis, tanto na programação Básica de liga e desliga o LED e na programação for para ligar e desligar lentamente.

Programação:
int r = 11;
int g = 10;
int b = 9;
void setup()
{
  pinMode(r, OUTPUT);
  pinMode(g, OUTPUT);
  pinMode(b, OUTPUT);
}
void loop()
{
  // Programação Liga e Desliga os LED's
  int M = 255;
  int m = 0;
  int t = 15;
  // Tudo apagado
  analogWrite(r, m);
  analogWrite(g, m);
  analogWrite(b, m);
  delay(1000);
  // Vermelho acesso
  analogWrite(r, M);
  analogWrite(g, m);
  analogWrite(b, m);
  delay(1000);
  // Verde acesso
  analogWrite(r, m);
  analogWrite(g, M);
  analogWrite(b, m);
  delay(1000);
  // Vermelho e Verde acesso
  analogWrite(r, M);
  analogWrite(g, M);
  analogWrite(b, m);
  delay(1000);
  // Azul acesso
  analogWrite(r, m);
  analogWrite(g, m);
  analogWrite(b, M);
  delay(1000);
  // Azul e Vermelho acesso
  analogWrite(r, M);
  analogWrite(g, m);
  analogWrite(b, M);
  delay(1000);
  // Azul e Verde acesso
  analogWrite(r, m);
  analogWrite(g, M);
  analogWrite(b, M);
  delay(1000);
  //Todos acessos
  analogWrite(r, M);
  analogWrite(g, M);
  analogWrite(b, M);
  delay(1000);
  //Programação Acende e Apaga os LED's lentamente
  // Vermelho
  for(int i=0; i<255; i++)
  {
    analogWrite(r, i);
    analogWrite(g, m);
    analogWrite(b, m);
    delay(t);
  }
  for(int i=255; i>0; i--)
  {
    analogWrite(r, i);
    analogWrite(g, m);
    analogWrite(b, m);
    delay(t);
  }
  // Verde
  for(int i=0; i<255; i++)
  {
    analogWrite(r, m);
    analogWrite(g, i);
    analogWrite(b, m);
    delay(t);
  }
  for(int i=255; i>0; i--)
  {
    analogWrite(r, m);
    analogWrite(g, i);
    analogWrite(b, m);
    delay(t);
  }
  //Vermelho e Verde
  for(int i=0; i<255; i++)
  {
    analogWrite(r, i);
    analogWrite(g, i);
    analogWrite(b, m);
    delay(t);
  }
  for(int i=255; i>0; i--)
  {
    analogWrite(r, i);
    analogWrite(g, i);
    analogWrite(b, m);
    delay(t);
  }
  //Azul
  for(int i=0; i<255; i++)
  {
    analogWrite(r, m);
    analogWrite(g, m);
    analogWrite(b, i);
    delay(t);
  }
  for(int i=255; i>0; i--)
  {
    analogWrite(r, m);
    analogWrite(g, m);
    analogWrite(b, i);
    delay(t);
  }
  //Azul e Vermelho
  for(int i=0; i<255; i++)
  {
    analogWrite(r, i);
    analogWrite(g, m);
    analogWrite(b, i);
    delay(t);
  }
  for(int i=255; i>0; i--)
  {
    analogWrite(r, i);
    analogWrite(g, m);
    analogWrite(b, i);
    delay(t);
  }
  //Azul e Verde
  for(int i=0; i<255; i++)
  {
    analogWrite(r, m);
    analogWrite(g, i);
    analogWrite(b, i);
    delay(t);
  }
  for(int i=255; i>0; i--)
  {
    analogWrite(r, m);
    analogWrite(g, i);
    analogWrite(b, i);
    delay(t);
  }
  //Todos
  for(int i=0; i<255; i++)
  {
    analogWrite(r, i);
    analogWrite(g, i);
    analogWrite(b, i);
    delay(t);
  }
  for(int i=255; i>0; i--)
  {
    analogWrite(r, i);
    analogWrite(g, i);
    analogWrite(b, i);
    delay(t);
  }
}


     Para começar a explicar essa programação, primeiramente logo no inicio do loop, declarei 3 variáveis, M que seria o valor máximo (255) para as portas pwm, m que seria o valor mínimo (0) e t que seria o tempo que usei no delay na programação dor for.
     A pequena diferença da programação liga e desliga o LED, seria que geralmente usamos digitalWrite(pin, HIGH ou LOW) usei o analogWrite(pin, 0-255), apesar que, poderia ter usado o primeiro, mas para fazer a programação do LED acender e apagar lentamente precisamos usar portas pwm para controlar a corrente que iria passar no terminal do componente.
     Na programação for para cada LED usei 2 programações, 1 para acender e outra para acender lentamente, e claro fazendo as combinações como citei fazendo por Tabela Verdade.


     Mas também podemos brincar com esse LED usando um LDR, a cada valor que o LDR detectar pode acender uma cor diferente, só para começar (sem mistura de cores),  ai quem gosta de dificuldade a cada valor seria uma cor diferente mas já misturando todas as cores (ai usaria map na programação, futuramente explicarei).


     Na filmagem a seguir, a câmera não mostra muito a cores quando se misturam, por isso na segunda filmagem coloquei uma folha de papel oficio porque dava para ver melhor as mistura de cores.


Vídeo:

Espero que tenham entendido, qualquer coisa já sabe só comentar. Até mais...

quarta-feira, 3 de agosto de 2011

Videos dos Projetos

     Bom pessoal, ao decorrer da semana irei fazer edições nas postagens colocando videos, feitos por mim, de cada projeto. Não coloquei antes porque não tinha câmera, agora você poderão acompanhar os projetos vendo também e não só lendo.

     Agora com a câmera irei postar o meu projeto de robótica, inicialmente chamado de ProtoTanque. Mas a programação feita por mim (porém como todos tem dúvidas, quem me ajudou foi o Carlos Eduardo que também participa do grupo ArduInRio).

OBS.: Quando alguém estiver com duvidas pode pergunta a mim deixando como comentário no blog ou mandar um e-mail para o meu amigo Antonio, faz parte do grupo de robótica de onde eu estudo, o e-mail dele é : carvalho.sistema@gmail.com

Até mais...

quarta-feira, 27 de julho de 2011

Apostilas para Inicio de Arduino

     A pedido do pessoal do CEFET, hoje houve uma palestra que eu e a minha turma fizemos com a organização da Desiree.

     No blog já possui duas apostilas falando de cada função, estrutura falando da parte de programação, isso tem na segunda postagem do blog. Segunda Postagem nome dos links são Programação Arduino e Arduino.

     Essa nova apostila é para o pessoal pode estudar a montagem de projetos simples, bem básicos e entender a programação e ir evoluindo com o arduino. Arduino Experiments Guide.

Espero que goste dessa apostila, da para estudar bem o arduino em cima dessa apostila, mas ela é toda em inglês. Até mais...

segunda-feira, 18 de julho de 2011

Configurando o Arduino no Windows XP

     Bom pessoal, para quem está começando a usar o Arduino e está tendo problemas ao reconhecer a placa ao computador, vou ensinar como instalar a placa do Arduino no computador (para o sistema operacional Windows XP):

     Geralmente não precisa instalar nada, quando conecta o hardware no computador, ele automaticamente reconhece e funciona normalmente. Mas sempre ocorrem erros e ai precisa instalar o drive da placa no computador. Olhando as explicações do Blog do Natanael, multilogica-shop e outros sites que pesquisei no Google.

Primeiramente, verifique-se se o cabo USB está funcionando muito bem, se há mau contato (se há solda junta) no FTDI (que fica localizado logo atrás do USB) que pode ter sido erro na fabricação. Configurou-se o programa do Arduino para a versão da placa certa e a porta certo (Tools > Board ou SerialPort). Feito isso, começamos a instalação do driver. Caso tenha duvida o que é FTDI:


     Baixe a ultima versão do Arduino que no momento é o arduino-0022. Conecte o Arduino no computador, ao conectar no canto inferior direito, deve aparecer um balão escrito que há um dispositivo desconhecido (se só aparecer isso, clicar nele e aparecerá uma janela, clicar em driver e atualizar driver) se não aparecer esse balão e logo de cara aparecer uma janela igual ao da imagem, selecione "Instalar de uma lista ou local específico (avançado) e em seguida, avançar:


     Logo após que avançar, vai pedir para você localizar o driver da placa, que está localizado (arduino-0022\drivers\FTDI USB Drivers), e clicar em avançar de novo, mas desmarque a opção Pesquisar mídia removível:


     Assim que avançar, vai carregar o sistema e deve aparecer uma tela que nem o da imagem, falando que o drive foi instalado:


     Feito isso, para testar mesmo se foi abre o programa arduino-0022, vai em File>Exemples>Basic>Blink para fazer o teste, vai ficar acendendo o LED do pino 13 por um segundo e desligar com o mesmo tempo, isso tempo todo (está dentro do loop).

     Caso, feito isso e deu erro quando carregou o sistema, falando que o driver não foi instalado. Instale o Java mais atual que existe É isso mesmo, nenhum outro tutorial fala isso, o ambiente de desenvolvimento do Arduino é implementado em Java, então você deve instalar o JRE na sua máquina para funcionar. Para isso acesse este link e baixe a versão mais atual do Java para sua máquina.

     Feito isso, tente novamente. Caso contrario, atualize o software do FTDI, acesse este link e pegue a versão mais atual e compatível com o seu sistema e faça a mesma coisa, mas só que... Na hora de localizar o driver, não é mais o driver do programa arduino (arduino-0022\drivers\FTDI USB Drivers) e sim o driver do FTDI que vai ser onde você descompactou no local que desejado e repita o mesmo procedimento até carregar.

     Feito isso, creio que o seu Arduino vai rodar no computador normalmente... Mas antes verifique tudo, como foi dito logo no início da postagem. Espero que isso ajude e muito vocês.

Até mais...

sábado, 16 de julho de 2011

Simulando Circuitos

     O link a seguir é um programa que geralmente utilizamos (até o pessoal do arduino.cc) Fritzing para fazer os esquemas de circuitos e projetar antes como ficará o projeto para que não ocorra nenhum erro. Mas simulação só de imagens mostrando como monta, não detecta se o circuito está certo ou errado.

     O link que passei é do site, só ir à parte de download que irá baixar a ultima versão do software. Nele também podemos fazer programações (creio que também pode mandar a programação por esse programa, nunca experimentei).

     Todas as imagens que usei no meu blog foram todas feitas por esse programa, podemos fazer os circuitos no protoboard, esquemático e PCB. No PCB podemos também até em fazer as placas de circuito impresso, criamos o layout e depois é clicar em exportar para PDF.

Espero que tenham sido útil. Logo postarei os meus projetos de robótica, estou terminando de montar e postarei detalhando tudo.

Até mais...
 
Blogger Templates