Advertisement
Underhing

Untitled

Nov 22nd, 2021
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.32 KB | None | 0 0
  1. // Подключаем библиотеку для работы с ИК-приемником
  2. #include <IRremote.h>
  3.  
  4. // Вход для ИК-приемника (Out)
  5. int RECV_PIN = 4;
  6.  
  7. // Вход контактов микросхемы
  8. int EN1 = 5;
  9. int IN1 = 2;
  10. int IN2 = 3;
  11.  
  12. // Переменные для хранения значений кнопок пульта
  13. unsigned long Up = 0xFF18E7;
  14. unsigned long Down = 0xFF4AB5;
  15. unsigned long Left = 0xFF10EF;
  16. unsigned long Right = 0xFF5AA5;
  17. unsigned long Ok = 0xFF38C7;
  18. unsigned long One = 0xFFA25D;
  19. unsigned long Two = 0xFF629D;
  20. unsigned long Three = 0xFFE21D;
  21. unsigned long Four = 0xFF22DD;
  22. unsigned long Five = 0xFF02FD;
  23. unsigned long Six = 0xFFC23D;
  24. unsigned long Seven = 0xFFE01F;
  25. unsigned long Eight = 0xFFA857;
  26. unsigned long Nine = 0xFF906F;
  27. unsigned long Zero = 0xFF9867;
  28.  
  29. IRrecv irrecv(RECV_PIN); // Инициализируем подключение к ИК-приемнику на входе RECV_PIN
  30. decode_results results; // Получаем данные от пульта управления
  31.  
  32. // Получаем данные от пульта управления
  33. void setup()
  34. {
  35.  
  36. Serial.begin(9600);
  37. irrecv.enableIRIn(); // Включаем ИК-приемник
  38.  
  39. pinMode(EN1, OUTPUT);
  40. pinMode(IN1, OUTPUT);
  41. pinMode(IN2, OUTPUT);
  42. digitalWrite(EN1, HIGH);
  43. digitalWrite(IN1, LOW);
  44. digitalWrite(IN2, LOW);
  45.  
  46. }
  47.  
  48. // Основной цикл
  49. void loop()
  50. {
  51.  
  52. if (irrecv.decode(&results))
  53. {
  54.  
  55. Serial.print("[ИК] Получено значение - ");
  56. Serial.println(results.value, HEX);
  57.  
  58. if( results.value == Up)
  59. {
  60. Serial.println("[Двигатель] Движние вперед");
  61. analogWrite(EN1, 250);
  62. digitalWrite(IN1, HIGH);
  63. digitalWrite(IN2, LOW);
  64. }
  65. else if( results.value == Down)
  66. {
  67. Serial.println("[Двигатель] Движение назад");
  68. analogWrite(EN1, 250);
  69. digitalWrite(IN1, LOW);
  70. digitalWrite(IN2, HIGH);
  71. }
  72. else if( results.value == Ok)
  73. {
  74. Serial.println("[Двигатель] Остановка..");
  75. digitalWrite(IN1, LOW);
  76. digitalWrite(IN2, LOW);
  77. }
  78. else if( results.value == Left)
  79. {
  80. Serial.println("[Двигатель] Поворот вала в лево");
  81. analogWrite(EN1, 250);
  82. digitalWrite(IN1, LOW);
  83. digitalWrite(IN2, HIGH);
  84. delay(100);
  85. digitalWrite(IN1, LOW);
  86. digitalWrite(IN2, LOW);
  87. }
  88. else if( results.value == Right)
  89. {
  90. Serial.println("[Двигатель] Поворот вала в право");
  91. analogWrite(EN1, 250);
  92. digitalWrite(IN1, HIGH);
  93. digitalWrite(IN2, LOW);
  94. delay(100);
  95. digitalWrite(IN1, LOW);
  96. digitalWrite(IN2, LOW);
  97. }
  98. else if( results.value == One)
  99. {
  100. Serial.println("[Скорость] Установлена - 80");
  101. analogWrite(EN1, 80);
  102. }
  103. else if( results.value == Two)
  104. {
  105. Serial.println("[Скорость] Установлена - 100");
  106. analogWrite(EN1, 100);
  107. }
  108. else if( results.value == Three)
  109. {
  110. Serial.println("[Скорость] Установлена - 120");
  111. analogWrite(EN1, 120);
  112. }
  113. else if( results.value == Four)
  114. {
  115. Serial.println("[Скорость] Установлена - 140");
  116. analogWrite(EN1, 140);
  117. }
  118. else if( results.value == Five)
  119. {
  120. Serial.println("[Скорость] Установлена - 160");
  121. analogWrite(EN1, 160);
  122. }
  123. else if( results.value == Six)
  124. {
  125. Serial.println("[Скорость] Установлена - 180");
  126. analogWrite(EN1, 180);
  127. }
  128. else if( results.value == Seven)
  129. {
  130. Serial.println("[Скорость] Установлена - 200");
  131. analogWrite(EN1, 200);
  132. }
  133. else if( results.value == Eight)
  134. {
  135. Serial.println("[Скорость] Установлена - 220");
  136. analogWrite(EN1, 220);
  137. }
  138. else if( results.value == Nine)
  139. {
  140. Serial.println("[Скорость] Установлена - 250");
  141. analogWrite(EN1, 250);
  142. }
  143.  
  144. irrecv.resume(); // Получаем следующее значение с ИК-приемника
  145.  
  146. }
  147.  
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement