Projeto 1 - Pisca LED

Olá pessoal, agora vamos iniciar na prática como montar os componentes e executar os programas para vermos como o placa Arduino funciona realmente.

Projeto 3 - Alarme com sonorizador piezo

Olá pessoal, este projeto será um pouco barulhento pois, vamos fazer um alarme com sonorizador piezo conectado a um pino de saída digital, podendo ser criado um som de sirene. Iremos gerar uma onda senoidal para gerar os pulsos e criando o som

Projeto 10 - Controle de temperatura com LCD e Cooler

Olá pessoal, já vimos basicamente como utilizar um LCD com o Arduino, agora vamos fazer um pequena aplicação utilizando o mesmo esquema do projeto anterior acrescentando um cooler. Este projeto tem pouca complexidade, desde que montado com calma para não se perderem nas inserções dos jumpers.

Projeto 8 - Controle básico com LCD

Olá pessoal, agora vamos deixar nossos projetos visualmente mais interessantes. Iremos aprender como utilizar o LCD (Liquid Crystal Display), não utilizaremos o modelo JHD 162A, deixando nossos projetos mais amigáveis.

Projeto 19 – Arduino como um osciloscópio

Olá pessoal, nós que gostamos de mexer com eletrônica sempre ficamos na curiosidade de sabermos qual é o tipo de onda que está sendo gerada em um circuito qualquer, pois então vamos aprender como fazer um osciloscópio com o Arduino, o programa é muito útil e fácil de utilizar, com ele podemos tirar nossa curiosidade em relação as ondas em circuitos eletrônicos. Vamos saciar nossa curiosidade ?

Mostrando postagens com marcador projetos com arudino uno r3. Mostrar todas as postagens
Mostrando postagens com marcador projetos com arudino uno r3. Mostrar todas as postagens

22 de fev. de 2015

Projeto 39 - Interface Web com arduino

Projeto 39 - Interface Web com arduino

Olá pessoal, neste projeto iremos aprender a criar uma interface web simples utilizando o arduino. Para isso você irá precisar de um potenciômetro e um Shield Ethernet para que seja possível realizar a conexão com a rede de internet. O projeto é de fácil compreensão deixando de forma clara e objeta com vários comentários nas linhas do código.  Então vamos ao trabalho !!
Os códigos serão todos comentados para melhor entendimento, podendo ser retirados após a compreensão de cada linha. Bom trabalho !!!


Componentes necessários

1 Protobord
1 Potenciômetro de 10KΩ (Ou outro equivalente)
1 Shield Ethernet
Fios jumper

Download da página web

Faça o download do arquivo da página web neste link https://onedrive.live.com/?cid=F877FDED1DE63FAA&id=F877FDED1DE63FAA%21122 (OneDrive).


Sigas os passos a seguir:

1) Faça o download do arquivo “index.htm”.
2) Após feito o download, copie e cole o arquivo em um micro SD – formate o SD antes de copiar o arquivo.
3) Insira o cartão no slot acoplado ao Shield Ethernet.
4) Com o arduino já conectado à porta USB de seu computador e o Shield ao cabo de rede, copie e cole o código abaixo para a IDE e mude o IP conforme sua rede, após isso transfira - o para seu arduino.
5) Abra seu browser e digite o IP que você definiu no código e dê um enter.
6)  Uma página web será exibida com uma interface recendo os valores do potenciômetro.
7) Gire o potenciômetro e você irá ver o ponteiro se movimentar de acordo o valor do potenciômetro. 



Conectando os componentes







Código do projeto


// Projeto 39 - Interface Web com arduino

#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>

// Tamanho do buffer utilizado para capturar os pedidos HTTP
#define REQ_BUF_SZ   50

// Setando Endereço MAC e IP para a placa Ethernet
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 2, 120); // Configurando o endereço IP (mudar conforme sua rede)
EthernetServer server(80);  // Criar um servidor na porta 80
File webFile;               // Arquivo da página web no cartão SD
char HTTP_req[REQ_BUF_SZ] = {0}; // Armazena o buffer requerido a página web
char req_index = 0;              // Índice no HTTP_req buffer

void setup()
{
    // Desativar o chip de Ethernet
    pinMode(10, OUTPUT);
    digitalWrite(10, HIGH);

    Serial.begin(9600);       // Adicionado para depuração
   
    // Inicializa o SD card
    Serial.println("Initializing SD card...");
    if (!SD.begin(4)) {
        Serial.println("ERROR - SD card initialization failed!");
        return;    // Inicialização falhou
    }
    Serial.println("SUCCESS - SD card initialized.");
    // Verifica se exite o arquivo index.htm
    if (!SD.exists("index.htm")) {
        Serial.println("ERROR - Can't find index.htm file!");
        return;  // Não pode encontrar o arquivo especificado
    }
    Serial.println("SUCCESS - Found index.htm file.");
    // Arquivo index.htm encontrado com sucesso
   
    Ethernet.begin(mac, ip);  // Inicializa o dispositivo Ethernet
    server.begin();           // Inicializa o servidor web
}

void loop()
{
    EthernetClient client = server.available();  // tentar obter cliente

    if (client) {
        boolean currentLineIsBlank = true;
        while (client.connected()) {
            if (client.available()) {   // Dados do cliente disponível para leitura
                char c = client.read(); // Lê 1 byte (atributo) do cliente
                // Primeira parte do pedido HTTP em ordem HTTP_req
                // Deixa o último elemento na matriz como 0 para terminar a string (REQ_BUF_SZ - 1)
                if (req_index < (REQ_BUF_SZ - 1)) {
                    HTTP_req[req_index] = c;          // Salva o atributo HTTP requerido
                    req_index++;
                }
                // A última linha da requisão do cliente fica em branco e ternina com \n
                // Responde para o cliente somente depois da última linha recebida
                if (c == '\n' && currentLineIsBlank) {
                    // Enviar um cabeçalho de resposta HTTP padrão
                    client.println("HTTP/1.1 200 OK");

                    // Restante do cabeçalho segue abaixo, dependendo se...
                    // Página web ou página XML é solicitada
                    // Pedido Ajax - Enviar arquivo XML
                    if (StrContains(HTTP_req, "ajax_inputs")) {
                        // Enviar restante do cabeçalho HTTP
                        client.println("Content-Type: text/xml");
                        client.println("Connection: keep-alive");
                        client.println();

                        // Enviar arquivo XML contendo estados de entrada
                        XML_response(client);
                    }
                    else {  // Solicitação de página web
                        // Enviar restante do cabeçalho HTTP
                        client.println("Content-Type: text/html");
                        client.println("Connection: keep-alive");
                        client.println();
                        // Envia página web
                        webFile = SD.open("index.htm");        // Abre o arquivo da página web
                        if (webFile) {
                            while(webFile.available()) {
                                client.write(webFile.read()); // Cliente recebe a página web
                            }
                            webFile.close();
                        }
                    }
                    // Exibição na porta de serial o pedido recebido de HTTP
                    Serial.print(HTTP_req);
                    // Reseta o buffer para 0
                    req_index = 0;
                    StrClear(HTTP_req, REQ_BUF_SZ);
                    break;
                }
                // Cada linha de texto recebidas do cliente termina com \ r \ n
                if (c == '\n') {
               
                     // Iniciar nova linha com a próxima leitura de caracteres
                    currentLineIsBlank = true;
                }
                else if (c != '\r') {
                    // Caracter recebido pelo cliente
                    currentLineIsBlank = false;
                }
            }
        }
        delay(1);      // Dá um tempo para o browser receber os dados
        client.stop(); // Fecha a conexão
    } // end if (client)
}

// Envia ao arquivo XML os valores do pino analogico
void XML_response(EthernetClient cl)
{
    int analog_val;
   
    cl.print("<?xml version = \"1.0\" ?>");
    cl.print("<inputs>");
    // Lê o pino A3
    analog_val = analogRead(3);
    cl.print("<analog>");
    cl.print(analog_val);
    cl.print("</analog>");
    cl.print("</inputs>");
}

// Seta todos os elementos de str para 0 (limpa o vetor)
void StrClear(char *str, char length)
{
    for (int i = 0; i < length; i++) {
        str[i] = 0;
    }
}

char StrContains(char *str, char *sfind)
{
    char found = 0;
    char index = 0;
    char len;

    len = strlen(str);
   
    if (strlen(sfind) > len) {
        return 0;
    }
    while (index < len) {
        if (str[index] == sfind[found]) {
            found++;
            if (strlen(sfind) == found) {
                return 1;
            }
        }
        else {
            found = 0;
        }
        index++;
    }

    return 0;
}


Vídeo do projeto pronto







- Se você gostou do post, por favor comente! Nos dê um feedback, isto nos incentiva a continuar! :)



22 de jun. de 2014

Projeto 29 – Configurando o modulo de bluetooth (JY-MCU)

Projeto 29 – Configurando o modulo de bluetooth (JY-MCU)

Olá pessoal, antes de começarmos a acionar componentes pelo smartphone e/ou tablet via bluetooth se faz necessário algumas configurações do módulo antes disto, para que tudo funcione corretamente. Então... mãos aos componentes !! Os códigos serão todos comentados para melhor entendimento, podendo ser retirados após a compreensão de cada linha. Bom trabalho !!!

 


Componentes necessários

1 Shield JY-MCU (Modulo Bluetooth).
Fios jumper do tipo macho/fêmea.


Imagem do esquemático pronto:






Segue o esquemático abaixo para melhor entendimento:


Pinos do módulo JY-MCU              Pinos do Arduino
VCC                                                  5V
GND                                                 GND
TXD                                                  10                           
RXD                                                  11


OBS.: Verifique qual a tensão do seu módulo, pois poderá ser de 3.3V. Se for o caso utilize o respectivo pino do Arduino.


Siga os passos a seguir para comunicação e configuração de seu módulo:

 1)  Depois de tudo conectado ao seu Arduino. Conecte-o à porta USB de seu computador;

 2) Abra o IDE do Arduino e cole o seguinte código:


#include <SoftwareSerial.h>  // Biblioteca responsável pela comunicação serial.
  
  
SoftwareSerial mySerial(11, 10); // RX, TX 
String command = "";  // Responsável por reconhecer os comandos no AT.
  
void setup()  
   
  Serial.begin(115200);  // Abre a porta de comunicação serial para reconhecer os comandos AT.  
  Serial.println("Type AT commands!");   
  mySerial.begin(9600);   // Taxa de transferência na "Porta COM X" a 9600bps.
}  
  
void loop() 
  // Lê o dispositivo de saída disponível. 
  if (mySerial.available())
  { 
     while(mySerial.available())
       { // Enquanto haver mais para ser lido, mantenha lendo.
       command += (char)mySerial.read(); 
     } 
   Serial.println(command); 
   command = "";  
  } 
 
  // Lê a entrada o usuário se disponível. 
  if (Serial.available())
  { 
    delay(10); // Pequeno delay. 
    mySerial.write(Serial.read()); 
 
  
} // Fim do loop.


3)  Após carregado o código para seu Arduino, abra o Serial Monitor (mantenha apertados Control+Shift+M);

4)    Altere a velocidade de 9600 para 115200 como mostra a imagem abaixo:






5)    Quando alterado irá aparecer a tela para inserirmos os comandos AT;



6)    Agora iremos inserir o comando AT+MEUBLUETOOTH para alterarmos o nome do nosso dispositivo que será “MEUBLUETOOTH” ou outro nome caso queira muda-lo;
  


7)    Este comando deverá retornar um “OKsetname”, confirmando a troca do nome do dispositivo;
8)    Pronto !! As configurações já foram concluídas;

OBS.: Segue abaixo outros comandos que podem ser utilizados:

AT - Retorna "OK", o que indica que o módulo bluetooth está respondendo aos comandos.
AT+NAME
 : Altera o nome do módulo Bluetooth.
AT+VERSION
 - Retorna a versão do firmware da placa.
AT+PINXXXX
 - Altera a senha do bluetooth, onde XXXX é a nova senha, e você pode utilizar qualquer combinação de 4 números. Este comando retorna "OKsetPIN".




- Se você gostou do post, por favor comente! Nos dê um feedback, isto nos incentiva a continuar! :)
- Faça o download do app para ter atualizações em suas mãos.
- Curta nossa fan page !




30 de mar. de 2014

Projeto 27 – Acionando rele via teclado matricial 4X4

Projeto 27 – Acionando rele via teclado matricial 4X4



Olá pessoal, já vimos como utilizar o teclado matricial da forma mais simples controlando um LED, agora vamos utilizar este mesmo teclado para acionar um rele. Para este projeto será incluído uma nova biblioteca a "Password.h" que tem como função o controle de strings, validando-as. Por default o senha deste projeto será 1234, mas pode ser modificada (fica a seu critério).  Aqui foi utilizado para acionar um rele, mas pode ser para acionar uma solenoide por exemplo, ou para outros fins.

Os códigos serão todos comentados para melhor entendimento, podendo ser retirados após a compreensão de cada linha. Bom trabalho !!!

Componentes necessários

1 Arduino Uno R3
1 Shield rele
1 Teclado matricial 4X4
Fios jumpers


Conectando os componentes

Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB. Agora, conecte o shield rele e o teclado matricial como mostra a figura abaixo:








Fazendo o download e importando a biblioteca do Password e Keypad:

2) Faça o download dos arquivos Password e Keypad;
3) Descompacte os arquivos;
4) Agora entre no diretório (C:) e na pasta Arquivos de Programas, Arduino, libraries, copie os arquivos descompactados nesta pasta;

5) Pronto para utilizar;


Agora vamos ao código


// Projeto 27 – Acionando rele via teclado matricial 4X4

#include "Password.h"  // Biblioteca utilizada para controle de senha.
#include "Keypad.h"  // Biblioteca para controle do teclado de matrizes.

Password password = Password( "1234" );  // Senha utilizada para acionamento do rele.

const byte ROWS = 4;  // Quatro linhas por...
const byte COLS = 4;  // Quatro colunas.

// Define o Keypad (mapa do circuito do teclado).
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

// Conecta o teclado matricial em linha 0, linha 1, linha 2, linha 3 e linha 4 dos pinos do arduino.
byte rowPins[ROWS] = {9,8,7,6};

// Conecta o teclado matricial em coluna 0, coluna 1, coluna 2, coluna 3 e coluna 4 do arduino.
byte colPins[COLS] = {12,11,10,5};

// Cria um objeto Keypad.
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  pinMode(4, OUTPUT);  // Define pino 4 como saída.
  Serial.begin(9600);  // Inicializa Serial Monitor.
  keypad.addEventListener(keypadEvent);
  keypad.setDebounceTime(250);
}

void loop(){
  keypad.getKey();
}

void keypadEvent(KeypadEvent eKey){
  switch (keypad.getState()){  // Condição switch...
    case PRESSED:  // Se precionado algum botão...
   Serial.print("Digitado: ");  // Aparecera no Serial Monitor, Digitado: "X".
   Serial.println(eKey);  // Armazena numero digitado na variável eKey.
   switch (eKey){
     case 'C': guessPassword();  // Pressionando "C" confirma se a senha foi digitado corretamente.
     break; 
      default:
         password.append(eKey);
  }
}
}

void guessPassword(){
     Serial.print("Verificando, aguarde... ");  // Informa no Serial Monitor "Verificando, aguarde...".
     if (password.evaluate()){
        Serial.println("Acionando rele... "); // Informa no Serial Monitor "Acionando rele...".
        digitalWrite(4, HIGH);   // Ativa o rele.
        delay(2000);  // Rele fica acionado por 2 segundos e depois...
        digitalWrite(4, LOW);   // Desativa o rele.
        password.reset(); // Apaga a senha.
             }else{
                  digitalWrite(4, LOW);
             Serial.println("Senha Invalida !");
                  password.reset(); // Apaga a senha.
     }
}



Para confirmar se está tudo certo aperto o botão Verify/Upload. Se estiver correto você pode abrir o Serial Monitor em Tools, Serial Monitor ou selecionando simultaneamente os botões Ctrl+Shift+M, digite a senha 1234 e aperte o botão C, pronto seu rele irá acionar por 2 segundos e depois será desativado.



Vídeo do projeto pronto







Imagem do Serial Monitor







- Se você gostou do post, por favor comente! Nos dê um feedback, isto nos incentiva a continuar! :)
- Inscreva-se na fan page !
- Curta nossa fan page !
- Baixe o APP Faça Com Arduino e carregue para onde você for os projetos. É simples. É fácil !!



3 de fev. de 2014

Projeto 23 – Ascendendo lâmpada com Shield Ethernet e rele

Projeto 23 – Ascendendo lâmpada com Shield Ethernet e rele

Olá galera, já vimos com testar nossa placa ethernet, com ascender led, e agora vamos aprender como ascender lâmpada com o Shield Ethernet. Com este projeto você também poderá acionar outros eletrodomésticos, como ventiladores, ar condicionados, entre outros. O shield utilizado é o Ethernet shield Wiznet W5100, onde se pode encontrar facilmente pela internet em lojas especializadas. Então vamos lá galera!

Os códigos serão todos comentados para melhor entendimento, podendo ser retirados após a compreensão de cada linha. Bom trabalho !!!


Vídeo do projeto pronto:






Componentes necessários

1 Arduino Uno R3
1 Ethernet shield Wiznet W5100
1 Lampada com soquete
1 Plug macho 
Fios jumpers         
Fio para conexão

Conectando os componentes

Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB. Agora, conecte o shield ethernet e os demais componentes assim como mostra a figura abaixo.







Conectando o cabo de rede

Com o shield devidamente encaixado no Arduino, agora devemos ligá-lo ao cabo de rede e a energia com o cabo USB. Na parte superior temos os leds de indicação que mostram o funcionamento do módulo e o status de conexão da rede como as figuras abaixo:








 Agora vamos ao código


// Projeto 23 – Ascendendo lâmpada com Shield Ethernet e rele

#include <SPI.h>
#include <Ethernet.h>  // Biblioteca utilizada para comunicação com o Arduino
 
// A linha abaixo permite definir o endereço físico (MAC ADDRESS) da placa de rede. 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

byte ip[] = { 192, 168, 2, 103 };  //Define o endereço IP.
    
EthernetServer server(80);  // Porta onde estará aberta para comunicação Internet e Arduino.
 
String readString;
int Pin = 9;  //  Pino digital onde será ligado e desligado o LED.
 
void setup(){
 
  pinMode(Pin, OUTPUT);  // Define o Pino 9 como saída.
  Ethernet.begin(mac, ip);  // Chama o MAC e o endereço IP da placa Ethernet.
  server.begin();  //  Inicia o servidor que esta inserido junto a placa Ethernet.
}
 
void loop(){
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
 
        if (readString.length() < 100) {
          readString += c;             
        }

        if (c == '\n') {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
    
           // A partir daqui começa os códigos html.
    
          client.println("<HTML>");
          client.println("<BODY>");
          client.println("<H1>Acende Lampada</H1>");
          client.println("<H1>Ascendendo lampada com Shield Ethernet e rele</H1>");
          client.println("<hr />");
          client.println("<br />");
          
          client.println("<a href=\"/facacomarduino/LampadaOn\"\">Ascender lampada</a>");
          client.println("<a href=\"/facacomarduino/LampadaOff\"\">Apagar lampada</a><br />");   
          
          client.println("</BODY>");
          client.println("</HTML>");
          
          delay(1);
          client.stop();
          
          if(readString.indexOf("facacomarduino/LampadaOn") > 0)
          {
            digitalWrite(Pin, HIGH);  // Liga Lampada.
          }
          else {
            if(readString.indexOf("facacomarduino/LampadaOff") > 0)
            {
              digitalWrite(Pin, LOW);  // Desliga Lampada.
            }
          }
          readString="";    
        }
      }
    }
  }
}

Obs.: Para visualizar as definições de sua rede segue os passos abaixo:

1) Entre no campo executar de seu Windows;
2) Digite CMD, irá abrir a tela do DOS;
3) Digite ipconfig, e aperte ENTER;
4) Pronto os dados reais de sua rede serão mostrados;
5) Se o seu IP for 192.168.2.189, você deverá mudar o ultimo digito por 4 por exemplo e preencher no código acima para não haver conflito com seu MAC / IP reais.

Para certificar se o código está correto pressione o botão Verify/Compile.
Se tudo estiver correto pressione o botão Upload para fazer o upload do código para seu Arduino.





Ascendendo a lampada

Com o programa já copilado vamos verificar se agora está funcionando corretamente, siga os passos abaixo:

1) Entre em seu navegador (Eu usei o Chrome e Firefox: funcionou perfeitamente);
2) Digite na barra de endereço o IP com o ultimo digito diferente do seu, por exemplo 192.168.2.184 e ENTER;
3) Pronto você irá ver um página HTML contendo um pequena descrição e dois links “Ascender lampada” e “Apagar lampada”, clique neles e verá a lampada ascender ou apagar;
  



- Se você gostou do post, por favor comente! Nos dê um feedback, isto nos incentiva a continuar! :)
- Inscreva-se na fan page !
- Curta nossa fan page !
- Baixe o APP Faça Com Arduino e carregue para onde você for os projetos. É simples. É fácil !!