Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //////////////////////////
- // MADE BY SHARPY NIORO //
- //////////////////////////
- // JUST FOR LULZ [c] //
- //////////////////////////
- #include <U8glib.h>
- U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // DOES THE MAGICAL TRICK
- unsigned long t1, t2, T12, T13, len, dahLen; // TIME VALUES
- bool wasPressed, noobMode = false;
- String code, string; // THE CODE OF LAST CHAR AND STRING OF CHARS YOU'VE ENTERED
- char codeReaded, lastChar; // SOME CHARS
- void setup() {
- dahLen = 175; // LENGTH OF DAH IN MS
- Serial.begin(9600); // BEGINS THE MONOLOGUE
- pinMode(2, INPUT_PULLUP);
- pinMode(3, INPUT_PULLUP);
- pinMode(13, OUTPUT);
- pinMode(9, OUTPUT);
- }
- void loop() {
- if(digitalRead(2) == 0 && !wasPressed)
- {
- tone(9, 400); // MAKES THE 'BEE' SOUND
- digitalWrite(13, 1); // MAKES LED TURN ON
- t2 = millis();
- wasPressed = true;
- }
- if(digitalRead(2) == 1 && wasPressed)
- {
- noTone(9); // SHUTS UP THE 'BEE' SOUND
- digitalWrite(13, 0); // SHUTS UP THE LED
- t1 = millis(); // SETS THE VALUE t1 TO millis()
- T12 = millis(); // SETS THE NEW VALUE TO T2
- T13 = millis(); // SETS THE T13
- len = t1 - t2; // COUNTS THE PRESS LENGTH
- wasPressed = false;
- }
- if(!noobMode) // IF OPERATOR IN NOT A NOOB
- if ((millis() - T12) > ((dahLen / 3) * 7)*3 && lastChar != ' '){ // IF THE TIME HAS PASSED AND THE SPACE IS NOT ADDED ALREADY
- Serial.print(" "); // PRINTS THE SPACE AND TIME MAP
- string += ' '; //ADDS THE SPACE
- lastChar = ' '; // ADDS THE SPACE
- T12 = millis(); // RESETS THE T12 VALUE BY READING THE CURRENT TIME FROM THE PROGRAM STARTED IN THE WORNLD WE EXIST IN
- }
- if ((millis() - T13) > (dahLen*3)){
- convert(); // SUMMONS THE DEVIL TO DECODE THE MORSE
- u8g.firstPage(); //KILLS THE BATMAN
- do {
- u8g.setFont(u8g_font_6x12); // SMALL FONT
- u8g.setPrintPos(0, 10); // SETS THE PRINTING POSITION
- u8g.print(string); //PRINTS THE STRING
- } while( u8g.nextPage() );
- T13 = millis(); // RESETS THE T13 VALUE BY READING THE CURRENT TIME FROM THE PROGRAM STARTED IN THE WORNLD WE EXIST IN
- }
- if (len > (dahLen / 3))
- {
- codeReaded = readCode(); //READS THE CODE
- code += codeReaded; // ADDS THE CODE TO THE CODE TO READ THE CODE AND BECOME SMARTER
- u8g.firstPage(); // SENDS THE JUMPSCARE TO THE SCREEN
- do {
- u8g.setFont(u8g_font_6x12); // SMALL FONT
- u8g.setPrintPos(0, 10); // SETS THE PRINTING POSITION
- u8g.print(string); //PRINTS THE STRING
- u8g.setFont(u8g_font_fur49n); // HUGE FONT
- u8g. setPrintPos(0, 40);
- u8g.print(code); //PRINTS THE CODE
- } while( u8g.nextPage() );
- len = 0; t1 = 0; t2 = 0; // RESETS THE VALUES OF TIME AND SPACE CONTINUUM IN 4D SPACE
- }
- if(digitalRead(3) == 0){
- noobMode = !noobMode; //MAKES NO SPACES AT THE TIME COMES;
- }
- }
- char readCode()
- {
- if (len < dahLen && len > (dahLen / 3)) //CHECK THE SIGNAL LENGTH [IF IT IS NOT LONGER THAN THE DAH SHOULD BE BUT LONGER THAN THE DIT]
- return '.';
- if (len > dahLen) //CHECK THE SIGNAL LENGTH [IF IT IS LONGER THAN THE DAH SHOULD BE]
- return '-';
- }
- void convert()
- {
- static String letters[] = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-",
- ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", ".-.-.-", "--..--", "-----", ".----", "..---", "...--",
- "....-", ".....", "-....", "--...", "---..", "----.", "---.", "..--..", ".--.-.", "---...", ".----.", "-....-", "-..-.",
- ".-..-.", "-...-", "W"
- }; // ARRAY OF MORSE
- static char Alphabet[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '.', ',',
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!', '?', '@', ':', '\'', '-', '/', '"', '='
- }; // ARRAY OF ENGLISH CHARS
- int i = 0; // SET THE index TO 0
- if(code == "-----."){ // IF CODE IS -----. ...
- string = ""; // ... CLEAR THE STRING
- Serial.println(""); //BLEAK THE LINE IN SM
- }
- while (letters[i] != "W") // WHILE NOT ARRAY ENDED [COULD BE MADE A LOT BETTER BUT I DON'T HAVE A TIME]
- {
- if (letters[i] == code) // IF THE CODE MATCHES...
- {
- lastChar = Alphabet[i]; // ...ASSIGN lastChar
- Serial.print(Alphabet[i]); // ...SHOW IT IN THE SM
- string += lastChar; // ...ADD IT TO THE STRING TO DISPLAY ON THE SCREEN
- break; // BREAKS THE WHILE 'COZ WE DON'T NEED IT ANYMORE
- }
- i++; // GROW UP
- }
- code = ""; // THE CODE IS CONVERTED TO THE LETTER; NOW WE HAVE TO CLEAR THE CODE
- }
Add Comment
Please, Sign In to add comment