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



Curso Arduino 01 - Introdução ao Arduino



O Arduino é uma plataforma de prototipagem para sistemas embarcados, ou seja, é uma placa de circuito impresso (também conhecido como pcb ou pci) que simula os resultados obtidos na programação do microcontrolador. Talvez para alguns seja muito novo e complicado mas tenha certeza que com o passar do tempo se torne divertido e viciante.

O objetivo, principalmente no início, é simplificar o entendimento de como funciona, porém, informações mais específicas serão datas no decorrer das postagens e um bom livro é sempre a melhor fonte de conhecimento.

HARDWARE





Curso Arduino 02 - Microcontrolador AVR


O microcontrolador normalmente utilizado nos modelos mais comuns do Arduino (Duemilanove e Uno) é o Atmega328, pertencente a família AVR. Esta família possui outros membros como o Atmega8, Atmega168, Atmega328-AU (SMD) além dos pequenos Attiny45, Attiny85, etc.

A família é realmente grande e o mais interessante é que o Arduino pode ser utilizado para programar a maior parte deles!!

Microcontroladores ATmega

O microcontrolador utilizado no arduino é o Atmega328, porém, existe uma infinidade de outros modelos e fabricantes diferentes. Eu pessoalmente, utilizo muito o Atmega8 por ser mais barato e fácil de encontrar, pois, muitos projetos principalmente de automação residencial, não consomem tanta memória que justifica a utilização de mais de 8Kb de código.

ATmega

                                      


ATtiny





Especificações Técnicas

Na imagem abaixo é possível ver o datasheet (fola de dados) do microcontrolador Atmega328 que é exatamente o mesmo do Atmega328 do arduino. Quem pretende avançar com o Arduino deve ter esta imagem salva e, se possível, decorar o nome dos pinos. Basicamente é importante saber que os Pinos PD e PB (de 0 à 7) referem-se às portas digitais nesta mesma ordem e os PC referem-se às portas analógicas também na ordem.





Curso Arduino 00 - Apresentação e Ementa



Olá Pessoal, meu nome é Eduardo Nunes e este Curso de Arduino foi criado para ser mais uma referência no ensino de programação embarcada para microcontroladores.

A Microeletrônica está cada vez mais presente no dia-a-dia das pessoas e podemos citar exemplos de equipamentos de uso diário que itulizam esta tecnologia como microondas, celular, mouse, ar condicionado, vidro-elétrico, relógio digital, televisão, aparelho de som, leitor biométrico, caixa-eletrônico de banco, catraca eletrônica, letreiros em led, leito de smart card, impressora, máquina de cartão de crédito, etc.

Atualmente o ramo da automação residencial (domótica) tem ganhado também um enorme destaque. Já pensou em abrir a porta, comandar a tv, som entre outros equipamentos, todos pelo celular? Ligar a luz ou até mesmo deixar que elas sejam ligadas em horários pré-definidos, controlando tudo do seu web browser em qualquer lugar do mundo? Tudo isso já faz parte da nossa realidade e aos poucos vai tomando cada vez mais espaço.

Um grande "professor" que tem atualmente ganhado destaque é o Arduino, uma placa onde podemos programar o chip através de uma IDE no PC e enviar os dados via USB de forma simples e rápida. Com a placa programada, as portas físicas do chip podem re´produzir o que aconteceria sem precisar realizar soldagem.

Este curso possui um grande diferencial, pois, normalmente utiliza-se a própria placa para programar, deixando algumas pessoas que ainda não a possuem sem poder realizar os experimentos. Com este curso é possível para qualquer um, mesmo que ainda não comprou seu Arduino, fazer os projetos utilizando um software chamado Proteus ISIS e uma bilbioteca criada pelo microcontrolandos.blogspot que simula o desenho da placa Arduino com todas as suas funcionalidades.

Se você está iniciando agora, será uma excelente experiência conhecer mais a fundo a microeletrônica e, se já for mais experiente, terá a oportunidade de conhecer outros componentes e CIs que talvez ainda não tenha trabalhado por não possuí-lo fisicamente.

O curso não possui um foco teórico em eletrônica e sim prático, portanto, caso tenha alguma dúvida sinta-se a vontade para mandar um e-mail ou psotar comentário. Por este motivo, teremos no final da página, links para excelenter referências bibliográficas de livros.

Logo abaixo é possível ver a Ementa do curso, porém, surgindo a necessidade, a lista poderá ser alterada.

EMENTA

Nível Básico

Introdução ao Arduino

Microcontrolador AVR

Software Proteus ISIS

LED
          Simples
          RGB
          Bar Graph
          Led Matrix (Matriz de Leds)

Botões
          Acionamento
          Keypad / Teclado Numérico

Display
          7 Segmentos
          7 Segmentos com 4 caracteres
          LCD

Sensores
          Luminosidade
          Temperatura
          Presença
          Ultrassônico (Sensor de Estacionamento)
          Infravermelho (Tv)


Nível Intermediário

Motores
          DC (Transistores e Ponte H)
          Motor-de-Passo (ULN2003 e L293D)
          Servo Motor


Nível Avançado

Comunicação
          SPI
          I2C
          Ethernet

Comunicação sem Fio
          Bluetooth
          Wireless

Touch Screen

TVvOut

SD Card