Mar 28 2013

Módulo gravador de voz ISD1820 com Arduino + LM35


O módulo ISD1820 permite a gravação de voz e reprodução da mensagem armazenada em memória não volátil (mesmo sem energia a mensagem continuará salva) .

Muito simples de usar, esse módulo pode ser controlado por um microcontrolador (Arduino, PIC, etc) ou diretamente pelos botões existentes na placa.

No exemplo acima, um módulo ISD1820 e um sensor de temperatura LM35 foram conectados ao Arduino da seguinte forma:

A programação segue a seguinte lógica:

  • O arduino fica constantemente lendo o LM35 pelo pino A0;
  • Quando o valor lido for maior que 50º Celcius coloca o pino 2 do Arduino em estado ALTO para executar a mensagem de alerta;
  • Coloca o pino 2 em estado BAIXO para não repetir a mensagem de alerta quando a temperatura for inferior a 50ºC
/*
Exemplo para utilizar o módulo ISD1820 e
sensor de temperatura LM35
28/03/2013
http://www.webtronico.com
*/
byte pinoSensor = 0; //pino que está ligado o terminal central do LM35 (porta analogica 0)
byte valorLido = 0; //valor lido na entrada analogica
float temperatura = 0; //valorLido convertido para temperatura
byte pinoPlayE = 2; //Pino ligado ao PLAYE do ISD1820
void setup() {
  pinMode(pinoPlayE,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  valorLido = analogRead(pinoSensor);
  temperatura = (valorLido * 0.00488);  // 5V / 1023 = 0.00488 (precisão do A/D)
  temperatura = temperatura * 100; //Converte milivolts para graus Celcius, lembrando que a cada 10mV equivalem a 1 grau Celcius
  Serial.println(temperatura);
  if(temperatura > 50){ //Se a temperatura ultrapassar o limite de 50 graus
    digitalWrite(pinoPlayE,HIGH); //Toca o aviso de alerta no ISD1820
    delay(100);
  }
  digitalWrite(pinoPlayE,LOW); //Desliga ou mantem desligado aviso de alerta no ISD1820
  delay(500);
}
Mar 06 2013

Módulo MP3 Player TDS055 com amplificador TDA25W em modo Standalone

O módulo MP3 Players TDS055 pode funcionar basicamente de duas formas:

  • Standalone
  • Controlado via serial TTL (via Arduino por exemplo)

Nesse POST, vou mostrar como ele funciona em modo Standalone, ou seja, como ele pode tocar arquivos MP3 de um cartão SD sem nehuma dependência de componentes externos.

O módulo TDS055 quando energizado (5V a 9V) começa a tocar automaticamente e em loop infinito os arquivos MP3 que estão dentro da pasta SONG do cartão SD , lembrando que o cartão deve ser formatado em FAT32.

Para amplificar o áudio para o auto falante foi usado o Amplificador TDA25W

folder_song

esquematico

Dec 28 2012

Erro no Arduino: Launch4j – An Error Occurred while starting the application

Arduino Launch4J erro

Arduino Launch4J erro

Caso você esteja recebendo a mensagem de erro Launch4j – An Error Occurred while starting the application ao tentar abrir o programa do Arduino, segue abaixo duas possíveis soluções:

  • OPÇÃO 1 – Mais simples: Desabilite o bluetooth e tente reiniciar o programa do Arduino.
  • OPÇÃO 2 – Se você precisa do bluetooth habilitado, tente essa segunda opção: Renomeie a pasta “Arduino” onde fica salvo os Sketchs (projetos). Normalmente essa pasta é a …/Meus Documentos/Arduino . Tente abrir novamente o programa do Arduino.

Deixe seu comentário se alguma dessas opções funcionaram para você.

 

Dec 26 2012

Impressora térmica para Arduino

Agora você pode adicionar uma impressora térmica ao seu projeto microcontrolado.

Essa impressa é muito prática e fácil de usar, muito similar as impressoras usadas de máquininhas de cartão de crédito, senhas para atendimento e relógio ponto que imprime o controle de entrada e saída. Além de ser muito fácil de usar, também é bastante versátil, pois pode imprimir com fonte pequena, média e grande, em negrito, sublinhado, texto invertido, com variação de espaçamento de linha, alinhamento centralizado, para esquerda ou para direita, imagens monocromáticas, códigos de barra no formatos padrões UPC A, UPC E, EAN13, EAN8, CODE39, I25, CODEBAR, CODE93, CODE128, CODE11 e MSI – com altura do código de barras ajustável.

Ela trabalha com alimentação de 5VDC a 9VDC (sugerido fonte de no mínimo 2A), e se comunica com seu microcontrolador por uma interface SERIAL TTL de 3.3V a 5V.

O método de impressão é térmico, ou seja, não necessita de tinta ou toner.

O papel utilizado é de largura de 57mm com diametro máximo de 39mm (não está incluso no produto). Você poderá encontrar essa bobina de papel térmico facilmente em papelarias ou casas de automação comercial.

 Para comprar: http://www.webtronico.com/mini-impressora-termica-serial-ttl.html

  • Tensão de alimentação: 5V a 9V DC
  • Consumo: 1.5A durante impressão
  • Velocidade de impressão: 50-80mm/s
  • Resolução: 8 pontos/mm, 384 pontos por linha
  • Largura efetiva de impressão: 48mm
  • Papel térmico: largura de 57mm e diametro máximo de 39mm
  • Caracteres: ASCII e GB2312-80 (Chinês)
  • Fonte de impressão: ANK 5×7
  • Comunicação: Serial TTL a 19200 bauds
  • Dimensões: 111x65x57mm
  • Temperatura de operação: 5ºC a 50ºC

Contém:

  • 1 impressora térmica 
  • 1 cabo com conector para alimentação
  • 1 cabo com conector para comunicação
  • 2 travas para painel
Feb 28 2011

Como ler e escrever em SD Card com Arduino

Considerando que a memória de armazenamento de dados do Arduino é bastante limitada, temos a opção de usar cartões de memória como alternativa para armazenar dados em geral. Além de grande capacidade de armazenamento, custo atraente, também é muito simples de implementar.

Usarei o Módulo de cartão SD (http://www.webtronico.com/produtos/view/84) conectado com o Arduino Duemilanove (http://www.webtronico.com/produtos/view/5).

Na IDE de programação do Arduino, versão 0022 possui um exemplo para ler e escrever em cartões de memória SD, conhecido também como SD Card.

A ligação entre o Arduino e o Módulo SD é conforme a imagem abaixo:

O SD card que vou utilizar está formatado e não contém nenhum arquivo:

Após colocar o SD Card no módulo do SD, podemos abrir o Serial Monitor do Arduino e ver o SD Card sendo inicializado, escrito e lido.

E o resultado final no SD Card após algumas utilizações é o seguinte:

Feb 15 2011

Escreva seu post nesse blog e ganhe FRETE GRÁTIS na próxima compra da WebTronico

Se você tem um exemplo didático, um projetinho de teste ou um tutorial sobre alguma coisa relacionada com Arduino, escreva aqui no blog da WebTronico.  Seu post pode servir de referencia para outros estudantes, hobbistas, inventores, entusiastas e até profissionais que usam o Arduino como plataforma de desenvolvimento.

Além de compartilhar o conhecimento e ajudar, você ganhará o frete grátis na próxima compra feita no site www.webtronico.com

Regrinhas:

  1. O POST deve ser de sua autoria. Entre em contato por e-mail resumindo o assunto do seu POST;
  2. Se for aprovado, crie seu usuário para ter acesso a página de escrever o POST: http://blog.webtronico.com/wp-login.php?action=register
  3. Escreva seu POST, preferencialmente incluindo imagens e videos; Também pode incluir o link do seu blog.
  4. Teremos a liberdade de editar seu POST, incluindo ou removendo conteúdo;
  5. Se a versão final do POST for aprovada por você e por nós, então publicaremos, e você terá direito a um frete grátis na próxima compra efetuada no www.webtronico.com (ATENÇÃO: essa compra não poderá ser paga com PagamentoDigital ou PayPal)
  6. Para receber o frete grátis, basta fazer o pedido normalmente no site da WebTronico, e depois entrar em contato por e-mail solicitando o cupom do frete grátis.
  7. Válido para POSTs publicados até dia 31/06/2011

Se você está louco para escrever e não quer nem saber de regras e frete grátis, é só criar seu usuário e escrever. Se aprovarmos o POST, você ganha o frete grátis igual :o)

Colabore, ajude, compartilhe…

Abraço

Jan 25 2011

Sensor de nível d’água com Arduino


Esse vídeo é apenas para demonstrar o funcionamento do sensor de nível de água vendido na WebTronico: http://www.webtronico.com/produtos/view/163
Nesse projeto, o sensor está ligado ao Arduino que monitora quando a chave é fechada. Quando isso ocorre, o Arduino ativa um buzzer contínuo emitindo um alerta sonoro.

Projeto exemplo de sensor de nível de água com Arduino

Projeto exemplo de sensor de nível de água com Arduino

O código fonte do programa que está rodando no Arduino é o seguinte:

int pinAgua = 11;
int pinBuzzer = 12;

void setup(){
  pinMode(pinAgua,INPUT);
  pinMode(pinBuzzer,OUTPUT);
}
void loop(){
  if(digitalRead(pinAgua)==HIGH){
    digitalWrite(pinBuzzer,LOW);
  }else{
    digitalWrite(pinBuzzer,HIGH);
  }
}
Dec 25 2010

Tri Motor Shield para Arduino


Esse shield foi especialmente desenvolvido para acionar motores de corrente contínua e motores de passo com o Arduino.
Dotado de um ULN2803 e uma ponte H completa L298 ele pode controlar motores basicamente das seguintes maneira:
Com o ULN2803

  • controle total de motores de passo;
  • controlar a velocidade de motores de corrente contínua (DC);
  • apenas “ligar” ou “desligar” o motor de corrente contínua (DC).

Com a Ponte H L298

  • controlar a velocidade de motores DC;
  • controlar o sentido de cotação do motor DC;
  • apenas “ligar” ou “desligar” o motor DC.

Exemplo de controle de velocidade  de um motor DC com potenciômetro:

Atenção: No vídeo não é comentado, mas no esquemático abaixo pode-se notar que existe um fio (jumper) ligando o pino 6 do Arduino ao IN 37 do Shield

Código de exemplo:

/*
  Controle de velocidade de motor DC com potenciometro
  www.webtronico.com 
  23/12/2010
  Utilizando o "Tri Motor Shield": http://www.webtronico.com/produtos/view/134
*/
int dcMotorPin = 6; //pino de controle do motor no pino 6
int potPin = 0; //Pino do meio do potenciometro ligado a entrada analógica 0
int valorPotenciometro = 0; //valor lido e convertido para digital
int valorVelocidade = 0; //mapeia o valorPotenciometro para velocidade em PWM

void setup(){
}
void loop(){
  valorPotenciometro = analogRead(potPin);
  valorVelocidade = map(valorPotenciometro,0,1023,0,255);
  analogWrite(dcMotorPin,valorVelocidade);
  delay(300);
}

DOWNLOAD DO CÓDIGO FONTE: WebTronicoDCMotorV.pde

Dec 16 2010

Como fazer furo metalizado em placas de circuito impresso dupla face


Uma forma simples de fazer a metalização do furo em placas de circuito impresso dupla face é utilizando tinta condutiva de prata pura (pode ser encontrada na WebTronico: http://www.webtronico.com/produtos/view/118 ou em casas de componentes eletrônicos).

Uma curiosidade é que a tinta não conduz enquanto não estiver totalmente seca, ou seja, após a aplicação deve-se aguardar de 2 a 3 horas para testar se a aplicação foi efetuada com sucesso e se está tendo condutividade entre as faces.

Dec 13 2010

Arduino + LM35 – Como montar um termometro

Para fazer essa montagem foram utilizados os seguintes componentes:

Para ligar o LM35 ao Arduino, é bom ter um conhecimento mínimo do conversos Analógico-Digital do Arduino (A/D).

Esse conversor tem entrada máxima de 5V. Como ele é de 10 bits, consegue diferenciar 1024 (de 0 a 1023) valores entre 0V e 5V.  Ou seja, quando ele ler 5v na entrada ele vai converter para 1023.

Agora ficou fácil, pois podemos fazer um regrinha de três (interpolação para quem é mais formal):

1023 —– 5V

512 ——- X

X = (5 * 512) / 1023 = 2.5 V

Ou seja,  se o A/D mostrar o valor digital 512 significa que está entrando 2.5V nele.

E o que o LM35 tem a ver com isso?

O LM35 é um sensor de temperatura linear que fornece 10mV para cada grau celcius que ele medir. Ou seja, se ele fornecer 100mV, significa que ele está medindo 10ºC.

Então da para ligar o LM35 no Arduino e fazer um termômetro?

Sim, basta fazer a ligação do esquemático abaixo e programar seu Arduino com o código fonte disponível no final desse post.

Código Fonte:

/*
Exemplo para ligar o LM35 ao Arduino
13/12/2010
http://www.webtronico.com

  Conversor Analógico->Digital de 10 bits (1024).

  O valor máximo que pode entrar no A/D é 5V.
  Sendo assim, quando entrar:
  -> 5V o valor lido será 1023
  -> 2.5V o valor lido será 511 ou (1023/2)
  -> 0V o valor lido será 0
  Resumindo, é uma regra de três normal onde:
  5V - 1023
  X  - Y
*/
int pinoSensor = 0; //pino que está ligado o terminal central do LM35 (porta analogica 0)
int valorLido = 0; //valor lido na entrada analogica
float temperatura = 0; //valorLido convertido para temperatura

void setup() {
  Serial.begin(9600); //Inicializa comunicação Serial
}

void loop() {
  valorLido = analogRead(pinoSensor);
  temperatura = (valorLido * 0.00488);  // 5V / 1023 = 0.00488 (precisão do A/D)
  temperatura = temperatura * 100; //Converte milivolts para graus celcius, lembrando que a cada 10mV equivalem a 1 grau celcius
  Serial.print("Temperatura atual: ");
  Serial.println(temperatura);
  delay(5000); //espera 5 segundos para fazer nova leitura
}