PS2 keyboard connected to Arduino to control a DC motor. The motor speed will be increased 10 units when pressed UPARROW key once, decreased 10 units when pressed DOWNARROW key once.
DIY Material:
1. Motoduino (Arduino + L293D)
2. PS2 Keyboard
3. 5V DC Motor
4. 9V battery
5. Female PS2 Connector
Description:
Pin connection:
PS2 Ardunio
1 --> 3
2 --> No Connection
3 --> GND
4 --> Vcc
5 --> 2
6 --> No Connection
Arduino Sketch:
#include <PS2Keyboard.h>
const int DataPin = 3; // PS2 data pin
const int IRQpin = 2; // PS2 clock pin
PS2Keyboard keyboard;
const int Motor_E1 = 5; // digital pin 5 of Arduino (PWM)
const int Motor_E2 = 6; // digital pin 6 of Arduino (PWM)
const int Motor_M1 = 7; // digital pin 7 of Arduino
const int Motor_M2 = 8; // digital pin 8 of Arduino
int motorSpeed = 0;
void setup() {
delay(1000);
keyboard.begin(DataPin, IRQpin);
Serial.begin(57600);
Serial.println("Keyboard Ready:");
pinMode(Motor_M1, OUTPUT);
}
void loop() {
if (keyboard.available()) {
// read the next key
char c = keyboard.read();
switch(c)
{
case PS2_LEFTARROW:
case PS2_RIGHTARROW:
case PS2_UPARROW:
motorSpeed = motorSpeed + 10;
if(motorSpeed > 255)
motorSpeed = 255;
break;
case PS2_DOWNARROW:
motorSpeed = motorSpeed - 10;
if(motorSpeed <= 0 )
motorSpeed = 0;
break;
case PS2_ENTER:
case PS2_TAB:
case PS2_ESC:
case PS2_PAGEDOWN:
case PS2_PAGEUP:
case PS2_DELETE:
break;
}
motor(0, motorSpeed);
}
}
void motor(byte flag, int motorspeed)
{
digitalWrite( Motor_M1, HIGH);
analogWrite( Motor_E1, motorspeed);
Serial.println("motor speed: ");
Serial.println(motorspeed);
}
-------------------------------------------------
More Video: http://www.youtube.com/user/sinocgtchen
Motoduino Information: http://motoduino.com
My Email : sinocgtchen@gmail.com
沒有留言:
張貼留言