5 codes for my light sockets:
7 1000100110110000000000010
8 1011001001011111000000010
13 int int_0 = 300; // ms
14 int int_1 = 900; // ms
15 int wait = 2000; // ms
16 int repeat = 5; // times
18 char code[27]; // 26 bits + null
22 Serial.println("1 or 2 to turn light sockets");
23 Serial.println("q/a - 0 inteval +/- 100 ms");
24 Serial.println("w/s - 1 inteval +/- 100 ms");
25 Serial.println("e/d - wait +/- 100 ms");
26 Serial.println("r/f - repeat +/- 1");
27 Serial.println("U1000100110110000000000010 - send 26 bit user code");
32 pinMode(LED_PIN, OUTPUT);
33 pinMode(TX_PIN, OUTPUT);
40 void send(char *code) {
41 Serial.print("send ");
44 // we have to send same signal at least two times
45 for(int r = 0; r < repeat; r++ ) {
47 digitalWrite(LED_PIN, HIGH);
49 for(int i = 0; i < strlen(code); i++) {
52 if (code[i] == '1' ) {
56 digitalWrite(TX_PIN, HIGH);
57 delayMicroseconds(i1);
58 digitalWrite(TX_PIN, LOW);
59 delayMicroseconds(i2);
62 delayMicroseconds(wait); // guess
65 digitalWrite(LED_PIN, LOW);
69 if(Serial.available()) {
70 int in = Serial.read();
72 send("1000100110110000000000010");
73 } else if (in == '2') {
74 send("1011001001011111000000010");
76 } else if (in == 'q') {
78 Serial.print("inteval 0 = ");
79 Serial.println(int_0);
80 } else if (in == 'a') {
82 Serial.print("inteval 0 = ");
83 Serial.println(int_0);
85 } else if (in == 'w') {
87 Serial.print("inteval 1 = ");
88 Serial.println(int_1);
89 } else if (in == 's') {
91 Serial.print("inteval 1 = ");
92 Serial.println(int_1);
94 } else if (in == 'e') {
96 Serial.print("wait = ");
98 } else if (in == 'd') {
100 Serial.print("wait = ");
101 Serial.println(wait);
103 } else if (in == 'r') {
105 Serial.print("repeat = ");
106 Serial.println(repeat);
107 } else if (in == 'f') {
109 Serial.print("repeat = ");
110 Serial.println(repeat);
112 } else if (in == 'U') {
113 Serial.readBytesUntil('\n', code, sizeof(code));
115 Serial.println( code );
118 } else if (in == '?') {
122 Serial.print("ignored ");