Advertisement
Guest User

Untitled

a guest
Sep 14th, 2022
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Duration in milliseconds for each symbol
  2. #define DEL 420
  3. // Transmit a digital zero / LOW
  4. #define TXNULL digitalWrite(data, HIGH); delayMicroseconds(DEL); digitalWrite(data, LOW); delayMicroseconds(DEL*3);
  5. // Transmit a digital one / HIGH
  6. #define TXONE digitalWrite(data, HIGH); delayMicroseconds(DEL*3); digitalWrite(data, LOW); delayMicroseconds(DEL);
  7.  
  8. // Pins for CHJ-FST1000M
  9. int gnd = 10;
  10. int vcc = 11;
  11. int data = 12;
  12. // On-board LED for debugging
  13. int led = 13;
  14.  
  15. unsigned char msg_a[] = { 0b00000001, 0b01010101, 0b00001100 };
  16. //unsigned char msg_a[] = { 0x88, 0x88, 0x88, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x88, 0x88, 0x88, 0x88, 0x80 };
  17. //unsigned char msg_a[] = { 0x88, 0x88, 0x88, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x88, 0x88, 0x88, 0xee, 0x80 }; // REDDOOOOO
  18. //unsigned char msg_a[] = { 0x88, 0x88, 0x88, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x88, 0x88, 0xee, 0x88, 0x80 }; // BLUEEEEO
  19. //unsigned char msg_a[] = { 0x88, 0x88, 0x88, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x88, 0x88, 0xee, 0xee, 0x88 }; // GREENOOO
  20. //unsigned char msg_a[] = { 0x88, 0x88, 0x88, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x88, 0xee, 0x88, 0x88, 0x80 }; // PINKIE
  21. //unsigned char msg_a[] = { 0x88, 0x88, 0x88, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x88, 0xee, 0x88, 0xee, 0x80 }; // YELLOW
  22. //unsigned char msg_a[] = { 0x88, 0x88, 0x88, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x88, 0xee, 0xee, 0x88, 0x80 }; // TURQUOIOUIOUISE
  23. //unsigned char msg_a[] = { 0x88, 0x88, 0x88, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x88, 0xee, 0xee, 0xee, 0x88 }; // WHITE-O
  24.  
  25.  
  26. unsigned char *message;
  27.  
  28. void setup() {                
  29.   pinMode(vcc, OUTPUT);
  30.   pinMode(data, OUTPUT);
  31.   pinMode(led, OUTPUT);
  32.   pinMode(gnd, OUTPUT);
  33.   pinMode(A0, INPUT_PULLUP);
  34.   pinMode(A1, OUTPUT);
  35.   pinMode(0, INPUT_PULLUP);
  36.   pinMode(1, INPUT_PULLUP);
  37.   pinMode(2, INPUT_PULLUP);
  38.   pinMode(3, INPUT_PULLUP);
  39.   pinMode(4, INPUT_PULLUP);
  40.   pinMode(5, INPUT_PULLUP);
  41.   pinMode(6, INPUT_PULLUP);
  42.   pinMode(7, INPUT_PULLUP);
  43.   digitalWrite(vcc, HIGH);
  44.   digitalWrite(gnd, LOW);
  45.  
  46.  
  47.   Serial.begin(9600);
  48. }
  49.  
  50. int sent = 0, i, j, del_cnt;
  51. int col = 1;
  52.  
  53. void txColor(unsigned char color) {
  54.   digitalWrite(led, HIGH);
  55.  
  56.   for (i = 0; i < 18; i++) {
  57.     if (msg_a[i / 8] & (1 << (7 - i % 8))) { TXONE; }
  58.     else { TXNULL; }
  59.   }
  60.  
  61.   for (i = 2; i >= 0; i--) {
  62.     if (color & (1 << i)) { TXONE; TXONE; }  
  63.     else { TXNULL; TXNULL; }
  64.   }
  65.  
  66.   digitalWrite(led, LOW);
  67.   digitalWrite(data, LOW);
  68.   delay(10);
  69. }
  70.  
  71. void txMode(unsigned char mode) {
  72.   digitalWrite(led, HIGH);
  73.  
  74.   for (i = 0; i < 16; i++) {
  75.     if (msg_a[i / 8] & (1 << (7 - i % 8))) { TXONE; }
  76.     else { TXNULL; }
  77.   }
  78.  
  79.   TXONE; TXONE;
  80.  
  81.   for (i = 2; i >= 0; i--) {
  82.     if (mode & (1 << i)) { TXONE; TXONE; }  
  83.     else { TXNULL; TXNULL; }
  84.   }
  85.  
  86.   digitalWrite(led, LOW);
  87.   digitalWrite(data, LOW);
  88.   delay(10);
  89. }
  90.  
  91. void loop() {
  92.   Serial.println(col);
  93.  
  94.   /*
  95.   //if (digitalRead(A0) == HIGH) {
  96.     if (digitalRead(7) == LOW) {
  97.       col = 0;
  98.     }
  99.    
  100.     if (digitalRead(6) == LOW) {
  101.       col = 1;
  102.     }
  103.     if (digitalRead(5) == LOW) {
  104.       col = 2;
  105.     }
  106.    
  107.     if (digitalRead(4) == LOW) {
  108.       col = 3;
  109.     }
  110.    
  111.     txMode(col); txMode(col); txMode(col);
  112.   */
  113.   //} else {
  114.     txColor(col); txColor(col); txColor(col);
  115.     col++;
  116.   //}
  117.  
  118.  
  119.   if (del_cnt == 4) { delay(150); del_cnt = 0; }
  120.   del_cnt++;
  121.  
  122.   if (col == 8) col = 1;
  123.  
  124.   delay(1000);
  125. }
  126.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement