Offline
Newbie
Karma: 0
Posts: 16
|
 |
« Reply #15 on: February 04, 2013, 09:01:39 am » |
that didnt work either here is the example code stripped Ill re add my code wen this works! /* PS2Keyboard library example PS2Keyboard now requries both pins specified for begin()
keyboard.begin(data_pin, irq_pin); Valid irq pins: Arduino: 2, 3 Arduino Mega: 2, 3, 18, 19, 20, 21 Teensy 1.0: 0, 1, 2, 3, 4, 6, 7, 16 Teensy 2.0: 5, 6, 7, 8 Teensy++ 1.0: 0, 1, 2, 3, 18, 19, 36, 37 Teensy++ 2.0: 0, 1, 2, 3, 18, 19, 36, 37 Sanguino: 2, 10, 11 for more information you can read the original wiki in arduino.cc at http://www.arduino.cc/playground/Main/PS2Keyboard or http://www.pjrc.com/teensy/td_libs_PS2Keyboard.html Like the Original library and example this is under LGPL license. Modified by Cuninganreset@gmail.com on 2010-03-22 Modified by Paul Stoffregen <paul@pjrc.com> June 2010 */ #include <PS2Keyboard.h>
const int DataPin = 3; const int IRQpin = 2;
PS2Keyboard keyboard;
void setup() { delay(1000); keyboard.begin(DataPin, IRQpin); Serial.begin(9600); }
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_DELETE) { Serial.print("[Del]"); } else { // otherwise, just print all normal characters Serial.print(c); } } }
|
|
|
|
|
Logged
|
|
|
|
|
Seattle, WA USA
Online
Brattain Member
Karma: 313
Posts: 35487
Seattle, WA USA
|
 |
« Reply #16 on: February 04, 2013, 09:06:23 am » |
that didnt work either It did so. It just didn't do what you wanted. So, what did you want it to do, and what did it do?
|
|
|
|
|
Logged
|
|
|
|
|
Queens, New York
Offline
Edison Member
Karma: 29
Posts: 1563
"Of all the things I've ever lost, I miss my mind the most" -Ozzy Osbourne
|
 |
« Reply #17 on: February 04, 2013, 09:11:07 am » |
|
|
|
|
|
Logged
|
UNO, MEGA, NANO, 4x4 keypad, micro servos, RF transceivers, bluetooth, ultrasonic sensor, 20x4 I2C LCD, 3.2 TFT touch screen, L298N Dual motor driver, Voice Recognition 15W, Gameduino
Arduino Tutorials, coming soon.
"If your doing nothing, it does not mean your lazy, it just means your open for anything that suits you" - Unknown
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 16
|
 |
« Reply #18 on: February 04, 2013, 09:17:04 am » |
it Works I had to change some stuff but it works You guys rock thanks!
|
|
|
|
|
Logged
|
|
|
|
|
Queens, New York
Offline
Edison Member
Karma: 29
Posts: 1563
"Of all the things I've ever lost, I miss my mind the most" -Ozzy Osbourne
|
 |
« Reply #19 on: February 04, 2013, 09:48:54 am » |
Great! What did you change? Could you post your working code, with comments so others can see too?
|
|
|
|
|
Logged
|
UNO, MEGA, NANO, 4x4 keypad, micro servos, RF transceivers, bluetooth, ultrasonic sensor, 20x4 I2C LCD, 3.2 TFT touch screen, L298N Dual motor driver, Voice Recognition 15W, Gameduino
Arduino Tutorials, coming soon.
"If your doing nothing, it does not mean your lazy, it just means your open for anything that suits you" - Unknown
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 16
|
 |
« Reply #20 on: February 04, 2013, 11:10:58 am » |
here is the working code. Only thing I'd like to be able to also read PS2_DELETE but I couldn't get that working but this works for now. // arduino serial terminal
#include <PS2Keyboard.h> #include "Wire.h" #include "LiquidCrystal.h"
LiquidCrystal lcd(0); // set lcd i2c adress int reset_pin = 13; // reset pin on the arduino mega const int DataPin = 3; // data pin for ps/2 const int IRQpin = 2; // clock pn for ps/2 char line[16]; // store char array int count = 0; // counter unsigned long time = 60000; // 1 minuite delay
PS2Keyboard keyboard;
void setup() {
pinMode(reset_pin, OUTPUT); // set pin 13 to output digitalWrite(reset_pin, HIGH); // set pin High delay(1000); // delay 1 second keyboard.begin(DataPin, IRQpin); // start keyboard Serial.begin(9600); // start serial delay(1000); // delay 1 second lcd.begin(16, 2); // begin lcd lcd.setBacklight(HIGH); // turn backlight on lcd.setCursor(0, 0); // set cursor lcd.print(":"); // print a prompt }
void loop() {
if (keyboard.available() ){ char kb = keyboard.read(); // read the ps2 keyboard input
if(kb != PS2_ENTER){ // if input does not equal enter lcd.print(kb); // print char to lcd delay(20); // delay 20 ms line[count++] = kb; // add chars delay(50); // delay 50 ms
} else{ line[count++] ='\0'; // line = line + count = terminate Serial.print(line); // print the added chars delay(1000); // dealy 1 second count = 0; // reset count lcd.clear(); // clear lcd delay(50); // delay 50ms lcd.print ("sending"); // print sending to lcd delay(5000); // delay 5 seconds lcd.clear(); // clear lcd delay(50); // delay 50ms lcd.print(":"); // print prompt delay(time); // delay 1 minuite lcd.print("reset"); // print reset to lcd delay(1000); // delay 1 second digitalWrite(reset_pin , LOW); // send a reset to the arduino mega delay(2000); // delay 2 seconds digitalWrite(reset_pin , HIGH); // finish reset lcd.clear(); // clear lcd } } }
|
|
|
|
« Last Edit: February 04, 2013, 04:16:41 pm by doulos24 »
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 16
|
 |
« Reply #21 on: February 04, 2013, 11:25:49 am » |
And here is the code to go with it /* max 24 relay controller and pump pulser simulator this program takes a serial string like this "12.900.14.14" and parses it up into variables for relay count 1-12, number of pulses, pulse width, and delay beween pulses. Then it prints that to the serial port like this "Relays 12 Pulses 900 Length 14ms Delay 14ms" created 1/7/13 last edit 2/1/13 by Will Meyers */
unsigned long counter =0; // set counter to 0 int pulse =52; // pin thats connected to the pulse simulator int led = 13; // status led int dly= 150; // delay between relay functions
int relay[]={ 14, 15, 16, 17, 18, 19, 20, 21, 30, 31,\ 32, 33, 34, 35, 36, 36, 38, 39, 40, 41, 42, 43, 44, 45}; // relay array with all 24 pins
int pinCount = 24; // the number index for the array
void setup() // setup arduino functions {
pinMode (pulse, OUTPUT); // set pin 52 to an output pinMode (led, OUTPUT); // set pin 13 to an output
Serial.begin(9600); // start serial connection Serial.println("reset");
for(int n=0; n<pinCount;n++){ // for loop pinMode(relay[n],OUTPUT); // set all relay pins as output digitalWrite(relay[n], HIGH); // write all relay pins high SETS THEM TO OFF } }
void loop() // run main loop { if (Serial.available() > 0) // wait for data {
int w = Serial.parseInt(); // this is the relay selection variable from 1 -12 unsigned long x = Serial.parseInt(); // this is for the pulse counter int y = Serial.parseInt(); // this sets how long you want to hold the pulse high int z = Serial.parseInt(); // delay between pulses delay(1); // neccesary delay to use Serial.parseint() ; Serial.print("relays "); // print "relays " to serial port Serial.print (w * 2); // print the w x 2 or relay pins to the serial port Serial.print(" Pulses "); // print "pulses "to the serial port Serial.print(x); // print the var value of x to the serial port Serial.print(" Length "); // print "length " to the serial port Serial.print(y); Serial.print( "ms"); // print the value of y then "ms" to the serial port Serial.print(" delay " ); // print "delay" to the serial port Serial.print(z); // print the value of z to the serial port Serial.println("ms"); //print "ms" to the serial port
for(int n=0; n < (w * 2); n++){ // for loop relay counter * 2 digitalWrite(relay[n], LOW); // set all selected pins low or ON delay(dly); // delay for variable } delay(dly * w ); // max delay needed to turn on all pumps the var dly * relay selection 1-12
while(counter<(x)) // while counter is less the x do this loop { PORTB = 0b10000010; // port adress of the pulse pin 52 pull it HIGH delay(y) ; // delay by y or how long to hold the pin high PORTB = 0b00000000; // pull everything on this port LOW delay(z); // delay by z delay between pulses counter++; // increment counter by 1
while(counter==(x)) // after counter equals x do this loop { delay(10); // delay by the value of 10ms PORTB = 0b00000000; // set all pins in this port LOW delay(1000); // delay by the value of 1 second
for(int n=0; n < (w * 2); n++){ // for loop relay counter * 2 digitalWrite(relay[n], HIGH);// write n # of relay pins HIGH or OFF delay(dly); // delay by variable dly
} Serial.println("done"); // print "done" to the serial port on a new line return; // fin } } } }
|
|
|
|
« Last Edit: February 04, 2013, 11:28:08 am by doulos24 »
|
Logged
|
|
|
|
|
|
|
|