Advertisement
Guest User

Untitled

a guest
Sep 15th, 2022
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.73 KB | None | 0 0
  1. #define LED_ON digitalWrite(ledPin, HIGH)
  2. #define LED_OFF digitalWrite(ledPin, LOW)
  3.  
  4. #define DATA_HIGH digitalWrite(dataPin, HIGH)
  5. #define DATA_LOW digitalWrite(dataPin, LOW)
  6.  
  7. int ledPin = 2;
  8. int dataPin = 22;
  9.  
  10. int TimeUS = 400;
  11.  
  12. void setup()
  13. {
  14.   LED_ON;
  15.   Serial.begin(115200);
  16.   pinMode(ledPin, OUTPUT);
  17.   pinMode(dataPin, OUTPUT);
  18.   DATA_LOW;
  19.  
  20.   delay(1000);
  21.   LED_OFF;
  22.   // mySwitch.enableTransmit(dataPin);
  23.   delay(1000);
  24.   LED_ON;
  25.   delay(1000);
  26.   LED_OFF;
  27.   Serial.println("Finished ini");
  28. }
  29. void loop()
  30. {
  31.  
  32.   if (Serial.available() > 0) {
  33.     LED_ON;
  34.  
  35.     // Parse input
  36.     String newVals = Serial.readString();
  37.     int Length = newVals.length() - 1;
  38.     uint16_t newRawData[Length] = {};
  39.  
  40.     for (int i = 0; i < Length; i++ ) {
  41.       int intVal = newVals.substring(i, i + 1).toInt();
  42.       newRawData[i] = intVal;
  43.     }
  44.  
  45.     // Print it to Serial for Debugging    
  46.     Serial.print("Sending (size: ");
  47.     Serial.print(Length);
  48.     Serial.print(") ;");
  49.     for (int i = 0; i < Length; i++)
  50.     {
  51.       Serial.print(newRawData[i]);
  52.     }
  53.     Serial.print("; ");
  54.  
  55.  
  56.     unsigned long before = micros();
  57.     for (int i = 0; i < Length; i++)
  58.     {
  59.       if (newRawData[i] == 0)
  60.       {
  61.         DATA_HIGH;
  62.         delayMicroseconds(TimeUS);
  63.         DATA_LOW;
  64.         delayMicroseconds(TimeUS * 3);
  65.       }
  66.       else
  67.       {
  68.         DATA_HIGH;
  69.         delayMicroseconds(TimeUS * 3);
  70.         DATA_LOW;
  71.         delayMicroseconds(TimeUS);
  72.       }
  73.     }
  74.     unsigned long after = micros();
  75.     unsigned long deltaTime = after - before;
  76.  
  77.     Serial.println(deltaTime);
  78.    
  79.     // mySwitch.send(newVals.c_str());  // Send a raw data capture at 38kHz.
  80.  
  81.     delay(500);
  82.     LED_OFF;
  83.   }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement