terça-feira, 27 de outubro de 2015

Projeto #1: Conectando um mouse ou um teclado PS/2 ao seu Arduino

Bem amigos, hoje vou ajudar vocês a conectar um teclado ao seu "duino".

Do que vamos precisar?

Vamos precisar de:
- Um conector PS/2 fêmea (pra conectar nosso teclado ou mouse);
- Um "duino" (óbvio!)
e só.
Você deve estar se perguntando: "mas é só isso mesmo"? Eu, quando eu vi, disse "é bom demais pra ser verdade", mas depois olhei bem e vi que era assim mesmo.

Conectando

O conector PS/2 tem as seguintes saídas:


Sendo os pinos:
1 – DATA (dados)
2 – Esse a gente não usa
3 – GND (terra)
4 – Vcc (+5V)
5 – Clock (CLK)
6 – Esse a gente também não usa
Conecte

O Vcc no 5V, o GND no GND, o CLK no pino digital 2 e o DATA no pino digital 3.
Se for conectar um mouse, use o pino 5 como DATA e o pino 6 como CLOCK.

Hora de programar!

Para programar para seu teclado, você pode usar o exemplo e baixar a biblioteca nesse link aqui.
O código do exemplo para o seu teclado:
#include <PS2Keyboard.h>

const int DataPin = 8;
const int IRQpin =  5;

PS2Keyboard keyboard;

void setup() {
  delay(1000);
  keyboard.begin(DataPin, IRQpin);
  Serial.begin(9600);
  Serial.println("Keyboard Test:");
}

void loop() {
  if (keyboard.available()) {
    
    // read the next key
    char c = keyboard.read();
    
    // check for some of the special keys
    if (c == PS2_ENTER) {
      Serial.println();
    } else if (c == PS2_TAB) {
      Serial.print("[Tab]");
    } else if (c == PS2_ESC) {
      Serial.print("[ESC]");
    } else if (c == PS2_PAGEDOWN) {
      Serial.print("[PgDn]");
    } else if (c == PS2_PAGEUP) {
      Serial.print("[PgUp]");
    } else if (c == PS2_LEFTARROW) {
      Serial.print("[Left]");
    } else if (c == PS2_RIGHTARROW) {
      Serial.print("[Right]");
    } else if (c == PS2_UPARROW) {
      Serial.print("[Up]");
    } else if (c == PS2_DOWNARROW) {
      Serial.print("[Down]");
    } else if (c == PS2_DELETE) {
      Serial.print("[Del]");
    } else {
      
      // otherwise, just print all normal characters
      Serial.print(c);
    }
  }
}
Se você está usando um mouse, entre por aqui.
Ah, e dá também pra você fazer seu "duino" virar um mouse ou teclado!
É só usar a biblioteca desse link aqui e seguir o exemplo.

Nenhum comentário:

Postar um comentário