Skip to content

Work with Teensy++ 2.0 #11

Description

I have edited a code for Teensy ++ 2.0
Sorry if I'm using Github wrong, I'm new here.

You should be family with 5 bit binary, but it's simple.
Possibility of up to 32 payloads with filenames like "00000.txt" - "11111.txt"

5 DIP
1 2 3 4 5
16 8 4 2 1
(16+8+4+2+1=31)

If DIP 00001 - File is same.

Remember, DIP SWITCH is PULLUP, so it works in reverse.
On = Off, on the DIP Switch itself.

//CODE:

/*

  • Author: Seytonic
  •     https://twitter.com/seytonic
    
  •     https://www.youtube.com/seytonic
    
  • GIT:
  •     https://github.com/Seytonic/Duckduino-microSD
    

*/
#include <SPI.h>
#include <SD.h>
#include <string.h>
#include "Keyboard.h"

File myFile;

boolean first = true;

//String DEFAULT_FILE_NAME = "";
//const char* DEFAULT_FILE_NAME = "script.txt";
//char* DEFAULT_FILE_NAME;

// change this to match your SD shield or module;
// Arduino Etihernet shield: pin 4
// Adafruit SD shields and modules: pin 10
// Sparkfun SD shield: pin 8
// Teensy audio board: pin 10
// Teensy 3.5 & 3.6 on-board: BUILTIN_SDCARD
// Wiz820+SD board: pin 4
// Teensy 2.0: pin 0
// Teensy++ 2.0: pin 20

const int chipSelect = 20;

void setup() {
// Serial.begin(115200);
// Sets the given pins as switches for the dip switches
pinMode(9, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
pinMode(12, INPUT_PULLUP);
pinMode(13, INPUT_PULLUP);
delay(500);
String dip1 = digitalRead(13);
String dip2 = digitalRead(12);
String dip3 = digitalRead(11);
String dip4 = digitalRead(10);
String dip5 = digitalRead(9);
String dipState = String(dip1 + dip2 + dip3 + dip4 + dip5);
String FILE_NAME = String(dipState + ".txt");

delay(100);
// Serial.print(F("DIP: "));
// Serial.println(dipState);
// Serial.print(F("File: "));
// Serial.println(FILE_NAME);

if (!SD.begin(chipSelect)) {
return;
}

// Desired file is opened
myFile = SD.open(FILE_NAME.c_str()); // DEFAULT_FILE_NAME
if (myFile) {
Keyboard.begin();

String line = "";
while (myFile.available()) {
  char m = myFile.read();
  if (m == '\n'){
    Line(line);
    line = "";
    }
    else if((int) m != 13)
    {
      line += m;
    }
}
Line(line);

myFile.close();

} else {
}

Keyboard.end();
}

void Line(String l)
{
int space_1 = l.indexOf(" ");
if (space_1 == -1)
{
Press(l);
}
else if (l.substring(0,space_1) == "STRING")
{
Keyboard.print(l.substring(space_1 + 1));
}
else if (l.substring(0,space_1) == "DELAY")
{
int delaytime = l.substring(space_1 + 1).toInt();
delay(delaytime);
}
else if(l.substring(0,space_1) == "REM"){}
else
{
String remain = l;

  while(remain.length() > 0)
  {
    int latest_space = remain.indexOf(" ");
    if (latest_space == -1)
    {
      Press(remain);
      remain = "";
    }
    else
    {
      Press(remain.substring(0, latest_space));
      remain = remain.substring(latest_space + 1);
    }
    delay(5);
  }

}

Keyboard.releaseAll();
}

void Press(String b)
{
if(b.length() == 1)
{
char c = b[0];
Keyboard.press(c);
}
else if (b.equals("ENTER"))
{
Keyboard.press(KEY_RETURN);
}
else if (b.equals("CTRL"))
{
Keyboard.press(KEY_LEFT_CTRL);
}
else if (b.equals("SHIFT"))
{
Keyboard.press(KEY_LEFT_SHIFT);
}
else if (b.equals("ALT"))
{
Keyboard.press(KEY_LEFT_ALT);
}
else if (b.equals("GUI"))
{
Keyboard.press(KEY_LEFT_GUI);
}
else if (b.equals("UP") || b.equals("UPARROW"))
{
Keyboard.press(KEY_UP_ARROW);
}
else if (b.equals("DOWN") || b.equals("DOWNARROW"))
{
Keyboard.press(KEY_DOWN_ARROW);
}
else if (b.equals("LEFT") || b.equals("LEFTARROW"))
{
Keyboard.press(KEY_LEFT_ARROW);
}
else if (b.equals("RIGHT") || b.equals("RIGHTARROW"))
{
Keyboard.press(KEY_RIGHT_ARROW);
}
else if (b.equals("DELETE"))
{
Keyboard.press(KEY_DELETE);
}
else if (b.equals("PAGEUP"))
{
Keyboard.press(KEY_PAGE_UP);
}
else if (b.equals("PAGEDOWN"))
{
Keyboard.press(KEY_PAGE_DOWN);
}
else if (b.equals("HOME"))
{
Keyboard.press(KEY_HOME);
}
else if (b.equals("ESC"))
{
Keyboard.press(KEY_ESC);
}
else if (b.equals("INSERT"))
{
Keyboard.press(KEY_INSERT);
}
else if (b.equals("TAB"))
{
Keyboard.press(KEY_TAB);
}
else if (b.equals("END"))
{
Keyboard.press(KEY_END);
}
else if (b.equals("CAPSLOCK"))
{
Keyboard.press(KEY_CAPS_LOCK);
}
else if (b.equals("F1"))
{
Keyboard.press(KEY_F1);
}
else if (b.equals("F2"))
{
Keyboard.press(KEY_F2);
}
else if (b.equals("F3"))
{
Keyboard.press(KEY_F3);
}
else if (b.equals("F4"))
{
Keyboard.press(KEY_F4);
}
else if (b.equals("F5"))
{
Keyboard.press(KEY_F5);
}
else if (b.equals("F6"))
{
Keyboard.press(KEY_F6);
}
else if (b.equals("F7"))
{
Keyboard.press(KEY_F7);
}
else if (b.equals("F8"))
{
Keyboard.press(KEY_F8);
}
else if (b.equals("F9"))
{
Keyboard.press(KEY_F9);
}
else if (b.equals("F10"))
{
Keyboard.press(KEY_F10);
}
else if (b.equals("F11"))
{
Keyboard.press(KEY_F11);
}
else if (b.equals("F12"))
{
Keyboard.press(KEY_F12);
}
}

void loop() {
// nothing happens after setup
}
// CODE END

Or DL here: https://www.adrive.com/public/wN9grt/TeensyPlusPlus2.0_5DIP_Duckduino-microSD.ino

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions