Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystalFast.h>
- #include <usb_private.h>
- #include <SD.h>
- #include <usb_keyboard.h>
- LiquidCrystalFast lcd(8, 9, 10, 4, 5, 6, 7);
- // 8 = RS 4 = D4 7 = D7
- // 9 = R/w 5 = D5
- // 10 = E 6 = D6
- const int ledPin = 11;
- const int chipSelect = 0;
- int leds = 0;
- int NumValue = 0;
- int ScrollValue = 0;
- int BeforeCapsValue = 0;
- int CurrentCapsValue = 0;
- int readings[10];
- boolean IsNumbOn(int val){if ((val & 1) == 1){return true;} else {return false;}}
- boolean IsCapsOn(int val){if ((val & 2) == 2){return true;} else {return false;}}
- boolean IsScrlOn(int val){if ((val & 4) == 4){return true;} else {return false;}}
- void setup() {//--------------------------------------------------------------------------------------------------------------------
- pinMode(ledPin, OUTPUT);
- for(int i = 0; i < 30; i++){digitalWrite(ledPin, HIGH);delay(50);
- digitalWrite(ledPin, LOW);delay(50);}
- lcd.begin(16, 4);
- lcd.setCursor(0,0); lcd.print(" - - ");
- lcd.setCursor(0,1); lcd.print(" ");
- lcd.setCursor(0,2); lcd.print("Elapsed ");
- lcd.setCursor(0,3); lcd.print("Write ");
- if (!SD.begin(chipSelect)) {lcd.clear();lcd.setCursor(0,0); lcd.print("Card failed ");lcd.setCursor(0,1); lcd.print("or not present! ");delay(99999999);}
- File dataFile = SD.open("datalog.txt", FILE_WRITE);
- if (dataFile) {dataFile.println(""); dataFile.print("NewDataSet");}
- else {lcd.clear();lcd.setCursor(0,0); lcd.print("error opening");lcd.setCursor(0,1); lcd.print("datalog.txt");}
- for (int thisReading = 0; thisReading < 10; thisReading++)
- readings[thisReading] = 0;
- }
- void loop() {//--------------------------------------------------------------------------------------------------------------------
- File dataFile = SD.open("datalog.txt", FILE_WRITE);
- lcd.setCursor(10,2); lcd.print(millis());
- leds = keyboard_leds;
- NumValue = (leds & 1);
- // output to lcd
- if (IsNumbOn(leds)){lcd.setCursor(0,0); lcd.print("NUM"); //NumbLockCheck
- } else {lcd.setCursor(0,0); lcd.print(" ");}
- if (IsCapsOn(leds)){lcd.setCursor(4,0); lcd.print("CAPS"); //CapsLockCheck
- } else {lcd.setCursor(4,0); lcd.print(" ");}
- if (IsScrlOn(leds)){lcd.setCursor(9,0); lcd.print("SCROLL"); //ScrlLockCheck
- } else {lcd.setCursor(9,0); lcd.print(" ");}
- if (IsScrlOn(leds)){ //teensy has control
- //record value of num 0/1
- dataFile.print(NumValue);
- //display recorded data
- for(int i = 0; i < 10; i++){
- readings[10 - i] = readings[9 - i];
- lcd.setCursor(5 + i,3); lcd.print(readings[i]);
- }
- readings[0] = NumValue;
- //turn scroll off
- PressAndRelease(KEY_SCROLL_LOCK);
- delay(500);
- }
- }
- void PressAndRelease(int KeyCode){
- Keyboard.set_key1(KeyCode); // use r key
- Keyboard.send_now(); // send strokes
- Keyboard.set_key1(0);
- Keyboard.send_now(); // send strokes
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement