Advertisement
Guest User

IR test with WS2801 Sparkfun method

a guest
Aug 6th, 2013
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. #include <IRremote.h>
  2.  
  3. #define NUM_BITS = 672; // 28 LED's * 24 bits
  4.  
  5. int RECV_PIN = 7;
  6. IRrecv irrecv(RECV_PIN);
  7. decode_results results;
  8.  
  9. int SDI = 8; // Data
  10. int CKI = 9; // Clock
  11.  
  12. void setup()
  13. {
  14. Serial.begin(9600);
  15. pinMode(SDI, OUTPUT); // Initialize the 2801 data pin
  16. pinMode(CKI, OUTPUT); // Initialize the 2801 clock pin
  17. irrecv.enableIRIn(); // Start the receiver
  18. }
  19.  
  20. void loop() {
  21. if (irrecv.decode(&results)) {
  22. Serial.println(results.value, HEX);
  23. irrecv.resume(); // Receive the next value
  24.  
  25.  
  26. // The 'On' switch
  27. if(results.value == 0xff2ad5) {
  28. onner();
  29. } // fi results.value
  30.  
  31.  
  32. // The 'Off' switch
  33. if (results.value == 0xffaa55) {
  34. offer();
  35. } // fi results.value
  36.  
  37.  
  38. // Momentary 'On' switch
  39. if (results.value == 0xff926d) {
  40. onner();
  41. delay(5000);
  42. offer();
  43. } // fi results.value
  44.  
  45. } // irrecv.decode
  46.  
  47. } // loop
  48.  
  49.  
  50. void onner() {
  51. Serial.println("LED on.");
  52. for (long i=0; i<NUM_BITS; i++) {
  53. digitalWrite(CKI, LOW);
  54. digitalWrite(SDI, HIGH);
  55. digitalWrite(CKI, HIGH);
  56. } // for
  57. delay(50);
  58. } // onner
  59.  
  60. void offer() {
  61. Serial.println("LED off.");
  62. for (long i=0; i<NUM_BITS; i++) {
  63. digitalWrite(CKI, LOW);
  64. digitalWrite(SDI, LOW);
  65. digitalWrite(CKI, HIGH);
  66. } // for
  67. delay(50);
  68. } // offer
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement