domingo, 29 de dezembro de 2013

Curso Arduino 09 - Display 7 Segmentos (Proteus ISIS)


Nesta postagem será explicado o funcionamento do Display de 7 Segmentos, um componente muito utilizado em projetos com relógio digital, cronômetro e temporizadores de modo geral.

Ele possui 7 segmentos em sua face frontal e 10 pinos acima e abaixo sendo deles 7 referente ao segmento, 1 ao ponto e 2 ao positivo ou negativo como mostra a imagem abaixo. Lembrando sempre que o anodo refere-se ao positivo e catodo ao negativo. Podemos imaginar ele como sendo uma sequencia de LEDs.







Configuração do Hardware

Na imagem abaixo podemos ver o esquema de conexão do display anodo comum com o Arduino. É importante saber que o pino isolado deve ser conectado relacionando-se. por exemplo, anodo comum ao positivo (o da foto) e catodo comum ao negativo.







Configuração do Software







Curso Arduino 08 - LED - Led Matrix (Matriz de Leds)



O componente Led Matrix está se tornando cada vez mais comum devido a sua facilidade, baixo custo consumo e dinamismo. Antes, uma placa poderia apenas conter um único anúncio, porém, com o letreiro em LED pode-se criar mensagens dinâmicas e alternadas.

São bastante utilizados para dar informações em hospitais, aeroportos, transporte público, em propagandas em restaurantes, lanchonetes, supermercados e chamados em guichês.

                                              




Configuração do Hardware







Curso Arduino 07 - Botão - Keypad / Teclado Numérico


O teclado Numérico ou keypad é um componente utilizado em uma infinidade de aplicações desde telefone à fechaduras eletrônicas. Por ser bastante conhecido, ele dispensa informações básicas.

O princípio do keypad é muito simples, não passa de uma matriz de botões como mostra a imagem abaixo.
São criadas linhas e colunas que se cruzam atravpes dos botões. As colunas são os OUTPUTS (por onde a corrente elétrica será enviada) e as linhas são os INPUTs (por onde a corrente vai sair), então ao pressionar o botão a corrente faz uma curva da linha para a coluna, sendo possível identificar qual botão foi pressionado.





Configuração do Hardware







Configuração do Software



char* secretCode = "1234";
int position = 0;
int led = 13;
const int numRows = 4;       // number of rows in the keypad
const int numCols = 3;       // number of columns
const int debounceTime = 20; // number of milliseconds for switch to be stable
// keymap defines the character returned when the corresponding key is pressed
const char keymap[numRows][numCols] = {
  { '1', '2', '3'  } ,
  { '4', '5', '6'  } ,
  { '7', '8', '9'  } ,
  { '*', '0', '#'  }
};
// this array determines the pins used for rows and columns
const int rowPins[numRows] = { 8,7,6,5 }; // Rows 0 through 3
const int colPins[numCols] = { 2,3,4 };    // Columns 0 through 2
void setup()
{
  pinMode(led, OUTPUT);
  Serial.begin(9600);
  for (int row = 0; row < numRows; row++)
  {
    pinMode(rowPins[row],INPUT);       // Set row pins as input
    digitalWrite(rowPins[row],HIGH);   // turn on Pull-ups
  }
  for (int column = 0; column < numCols; column++)
  {
    pinMode(colPins[column],OUTPUT);     // Set column pins as outputs 
                                         // for writing
    digitalWrite(colPins[column],HIGH);  // Make all columns inactive
  }
}


void loop()
{
 char key = getKey();
 Serial.println(key);
  }


// returns with the key pressed, or 0 if no key is pressed
char getKey()
{
  char key = 0;                                  // 0 indicates no key pressed
  for(int column = 0; column < numCols; column++)
  {
    digitalWrite(colPins[column],LOW);         // Activate the current column.
    for(int row = 0; row < numRows; row++)     // Scan all rows for 
                                               // a key press.
    {
      if(digitalRead(rowPins[row]) == LOW)     // Is a key pressed?
      {
        delay(debounceTime);                   // debounce
        while(digitalRead(rowPins[row]) == LOW)
            ;                                  // wait for key to be released
            
                    key = keymap[row][column];             // Remember which key 
                                               // was pressed.
      }
    }
    digitalWrite(colPins[column],HIGH);     // De-activate the current column.
  }
  return key;  // returns the key pressed or 0 if none
}

Curso Arduino 06 - Botão - Acionamento LED


Configuração do Hardware

Para criar uma aplicação com botão, basicamente ligamos as pernas dele a cada lado dos terminais (positivo e negativo) e uma conexão entre o lado positivo e uma porta digital do Arduino.

A configuração física deve ficar como na imagem abaixo.


Obs. O pino 1 do Arduino deve ser conectado ao lado negativo do botão


Configuração do Software

Curso Arduino 05 - LED - Bar Graph



Hoje trataremos sobre um tipo de dispositivo chamado Bar Graph, muito utilizado em equipamentos para medir o nível de uma variável do sistema e dar um feedback ao usuário. Pode ser utilizado para determinar o nível de água em um reservatório, a variação da temperatura, da voltagem, do volume em um aparelho de som, do peso em uma balança, entre outros.
O dispositivo é simples, não passa de uma pilha de leds commo mostra a imagem à direita abaixo:



Configuração do Hardware






Configuração do Software

void setup()
{
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
}

void loop()
{
  digitalWrite(1,HIGH);
  delay(200);
  digitalWrite(1,LOW);
  delay(200);
  
  digitalWrite(2,HIGH);
  delay(200);
  digitalWrite(2,LOW);
  delay(200);
  
  digitalWrite(3,HIGH);
  delay(200);
  digitalWrite(3,LOW);
  delay(200);
}

Curso Arduino 04 - LED - Acentimento (Proteus ISIS)


Configuração do Hardware

Com nossa configuração defaul da aula anterior vamos incluir um resistor de 330 Ohm e um LED usando o mesmo menu lateral da IDE Proteus ISIS.

Vamos fazer a conexão de uma perna do resistor na porta 13 do Arduino e a outra no lado positivo do led (anodo) representado pelo triângulo.
Clique com o botão direito, selecione Place/Terminal/Ground e ligue a outra parte do LED (Catodo) que refere-se ao polo negativo (traço).

Pronto! O Arduino já está montado. A conexão deve ficar como na imagem abaixo:





Curso Arduino 03 - Simulando o Arduino com Proteus ISIS



O Proteus é um software onde é possível simular a interação dos mais diversos tipos de componentes eletrônicos como LEDs, Displays, Motores, CIs (Circuitos Integrados). Expansores de Portas, etc. É um programa pago mas pode ser encontrado para download facilmente. Caso seja usuário do Windows 7, após a instalação clique no arquivo licença/install e por último, como administrador, clique na atualização (LXK Proteus Update).




Em sua biblioteca podemos encontrar simuladores de microcontroladores como Atmega328 e Atmega8 utilizados pelo Arduino além de outras famílias como PIC e 8051. É possível baixar a biblioteca do Arduino para simulação no link abaixo:

Download Biblioteca Arduino para Proteus

Após o download, descompacte e insira os novors aquivos na pasta com o mesmo nome do diretório de instalação do proteus Isis