From meow, 2 Weeks ago, written in C.
Embed
  1. #define LONGCAT 769   // 769us
  2. #define SHORTCAT 276  // 276us
  3. #define ALLCAT 1018   // 1018us
  4. #define SPACECAT 7851 // 7851us
  5.  
  6. void setup() {
  7.   Serial.begin(115200);
  8.   Serial.println("Meow?");
  9.   Serial.println("o + - l r");
  10.   pinMode(5, OUTPUT);
  11. }
  12.  
  13. void meow() {
  14.   digitalWrite(5, HIGH);
  15.   delayMicroseconds(SHORTCAT);
  16.   digitalWrite(5, LOW);
  17.   delayMicroseconds(ALLCAT - SHORTCAT);
  18.   Serial.print("0");
  19. }
  20.  
  21. void meooow() {
  22.   digitalWrite(5, HIGH);
  23.   delayMicroseconds(LONGCAT);
  24.   digitalWrite(5, LOW);
  25.   delayMicroseconds(ALLCAT - LONGCAT);
  26.   Serial.print("1");
  27. }
  28.  
  29. void purrpurr() {
  30.   for (int uwu = 0; uwu < 4; uwu++) {
  31.     meooow();
  32.     meow();
  33.   }
  34.   for (int uwu = 0; uwu < 4; uwu++) {
  35.     meow();
  36.     meooow();
  37.   }
  38.   for (int uwu = 0; uwu < 5; uwu++) {
  39.     meow();
  40.   }
  41. }
  42.  
  43. void loop() {
  44.   char ming;
  45.  
  46.   if (!Serial.available()) return;
  47.  
  48.   ming = Serial.read();
  49.   switch (ming){
  50.     case 'o':
  51.       ming = 6;
  52.       break;
  53.     case '+':
  54.       ming = 8;
  55.       break;
  56.     case '-':
  57.       ming = 4;
  58.       break;
  59.     case 'l':
  60.       ming = 10;
  61.       break;
  62.     case 'r':
  63.       ming = 2;
  64.       break;
  65.     default:
  66.       Serial.println("Hisssssss!");
  67.       Serial.println("o + - l r");
  68.       return;
  69.   }
  70.  
  71.   for (int uwu = 0; uwu < 5; uwu++) {
  72.     purrpurr();
  73.     for (int owo = 3; owo >= 0; owo--) {
  74.       (ming >> owo) & 1 ? meooow() : meow();
  75.     }
  76.     delayMicroseconds(SPACECAT);
  77.     Serial.println("");
  78.   }
  79. }