Advertisement
esref_21

Arduino 7 Segment Display-IR

Feb 28th, 2015
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.69 KB | None | 0 0
  1. #include <IRLib.h>
  2. int RECV_PIN = 13;
  3. IRrecv My_Receiver(RECV_PIN);
  4. IRdecode My_Decoder;
  5. IRsend My_Sender;
  6. IRTYPES codeType;
  7. unsigned long codeValue;
  8. int codeBits;
  9. unsigned int rawCodes[RAWBUF];
  10. int rawCount;
  11. bool GotOne, GotNew;
  12. void setup()
  13. {
  14. pinMode(2, OUTPUT);
  15. pinMode(3, OUTPUT);
  16. pinMode(4, OUTPUT);
  17. pinMode(5, OUTPUT);
  18. pinMode(6, OUTPUT);
  19. pinMode(7, OUTPUT);
  20. pinMode(8, OUTPUT);
  21. pinMode(9, OUTPUT);
  22. digitalWrite(9, 0);
  23. GotOne=false; GotNew=false;
  24. codeType=UNKNOWN;
  25. codeValue=0;
  26. Serial.begin(9600);
  27. delay(2000);while(!Serial);//delay for Leonardo
  28. Serial.println(F("Send a code from your remote and we will record it."));
  29. Serial.println(F("Type any character and press enter. We will send the recorded code."));
  30. My_Receiver.enableIRIn();
  31. }
  32. void storeCode(void) {
  33. GotNew=true;
  34. codeType = My_Decoder.decode_type;
  35. if (codeType == UNKNOWN) {
  36. Serial.println("Received unknown code, saving as raw");
  37. rawCount = My_Decoder.rawlen-1;
  38. for (int i = 1; i <=rawCount; i++) {
  39. rawCodes[i - 1] = My_Decoder.rawbuf[i];
  40. };
  41. My_Decoder.DumpResults();
  42. codeType=UNKNOWN;
  43. }
  44. else {
  45. Serial.print(F("Received "));
  46. Serial.print(Pnames(codeType));
  47. if (My_Decoder.value == REPEAT) {
  48. Serial.println(F("repeat; ignoring."));
  49. }
  50. else {
  51. codeValue = My_Decoder.value;
  52. codeBits = My_Decoder.bits;
  53. }
  54. Serial.print(F(" Value:0x"));
  55. Serial.println(My_Decoder.value, HEX);
  56. if (My_Decoder.value ==0xFF6897)
  57. {
  58. sifir();
  59. }
  60. if (My_Decoder.value ==0xFF30CF)
  61. {
  62. bir();
  63. }
  64. if (My_Decoder.value ==0xFF18E7)
  65. {
  66. iki();
  67. }
  68. if (My_Decoder.value ==0xFF7A85)
  69. {
  70. uc();
  71. }
  72. if (My_Decoder.value ==0xFF10EF)
  73. {
  74. dort();
  75. }
  76. if (My_Decoder.value ==0xFF38C7)
  77. {
  78. bes();
  79. }
  80. if (My_Decoder.value ==0xFF5AA5)
  81. {
  82. alti();
  83. }
  84. if (My_Decoder.value ==0xFF42BD)
  85. {
  86. yedi();
  87. }
  88. if (My_Decoder.value ==0xFF4AB5)
  89. {
  90. sekiz();
  91. }
  92. if (My_Decoder.value ==0xFF52AD)
  93. {
  94. dokuz();
  95. }
  96. }
  97. }
  98. void sendCode(int repeat) {
  99. if(codeType== UNKNOWN) {
  100. My_Sender.IRsendRaw::send(rawCodes,rawCount,38);
  101. Serial.println(F("Sent raw"));
  102. return;
  103. }
  104. if( !GotNew ) {
  105. if (codeType == RC5) {
  106. codeValue ^= 0x0800;
  107. }
  108. else if (codeType == RC6) {
  109. codeValue ^= 0x10000;
  110. }
  111. }
  112. GotNew=false;
  113. My_Sender.send(codeType,codeValue,codeBits);
  114. Serial.print(F("Sent "));
  115. Serial.print(Pnames(codeType));
  116. Serial.print(F(" Value:0x"));
  117. Serial.println(codeValue, HEX);
  118. }
  119.  
  120. void loop() {
  121. if (Serial.read() != -1) {
  122. if(GotOne) {
  123. sendCode(0);
  124. My_Receiver.enableIRIn();
  125. }
  126. }
  127. else if (My_Receiver.GetResults(&My_Decoder)) {
  128. My_Decoder.decode();
  129. GotOne=true;
  130. storeCode();
  131. delay(1000);
  132. My_Receiver.resume();
  133. }
  134. }
  135. void dokuz ()
  136. {
  137. digitalWrite(2, 1);
  138. digitalWrite(3, 1);
  139. digitalWrite(4, 1);
  140. digitalWrite(5, 0);
  141. digitalWrite(6, 0);
  142. digitalWrite(7, 1);
  143. digitalWrite(8, 1);
  144. }
  145. void sekiz ()
  146. {
  147. digitalWrite(2, 1);
  148. digitalWrite(3, 1);
  149. digitalWrite(4, 1);
  150. digitalWrite(5, 1);
  151. digitalWrite(6, 1);
  152. digitalWrite(7, 1);
  153. digitalWrite(8, 1);
  154. }
  155. void yedi ()
  156. {
  157. digitalWrite(2, 1);
  158. digitalWrite(3, 1);
  159. digitalWrite(4, 1);
  160. digitalWrite(5, 0);
  161. digitalWrite(6, 0);
  162. digitalWrite(7, 0);
  163. digitalWrite(8, 0);
  164. }
  165. void alti ()
  166. {
  167. digitalWrite(2, 1);
  168. digitalWrite(3, 0);
  169. digitalWrite(4, 1);
  170. digitalWrite(5, 1);
  171. digitalWrite(6, 1);
  172. digitalWrite(7, 1);
  173. digitalWrite(8, 1);
  174. }
  175. void bes ()
  176. {
  177. digitalWrite(2, 1);
  178. digitalWrite(3, 0);
  179. digitalWrite(4, 1);
  180. digitalWrite(5, 1);
  181. digitalWrite(6, 0);
  182. digitalWrite(7, 1);
  183. digitalWrite(8, 1);
  184. }
  185. void dort ()
  186. {
  187. digitalWrite(2, 0);
  188. digitalWrite(3, 1);
  189. digitalWrite(4, 1);
  190. digitalWrite(5, 0);
  191. digitalWrite(6, 0);
  192. digitalWrite(7, 1);
  193. digitalWrite(8, 1);
  194. }
  195. void uc ()
  196. {
  197. digitalWrite(2, 1);
  198. digitalWrite(3, 1);
  199. digitalWrite(4, 1);
  200. digitalWrite(5, 1);
  201. digitalWrite(6, 0);
  202. digitalWrite(7, 0);
  203. digitalWrite(8, 1);
  204. }
  205. void iki ()
  206. {
  207. digitalWrite(2, 1);
  208. digitalWrite(3, 1);
  209. digitalWrite(4, 0);
  210. digitalWrite(5, 1);
  211. digitalWrite(6, 1);
  212. digitalWrite(7, 0);
  213. digitalWrite(8, 1);
  214. }
  215. void bir ()
  216. {
  217. digitalWrite(2, 0);
  218. digitalWrite(3, 1);
  219. digitalWrite(4, 1);
  220. digitalWrite(5, 0);
  221. digitalWrite(6, 0);
  222. digitalWrite(7, 0);
  223. digitalWrite(8, 0);
  224. }
  225. void sifir ()
  226. {
  227. digitalWrite(2, 1);
  228. digitalWrite(3, 1);
  229. digitalWrite(4, 1);
  230. digitalWrite(5, 1);
  231. digitalWrite(6, 1);
  232. digitalWrite(7, 1);
  233. digitalWrite(8, 0);
  234. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement