Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Подключаем библиотеку для работы с ИК-приемником
- #include <IRremote.h>
- // Вход для ИК-приемника (Out)
- int RECV_PIN = 4;
- // Вход контактов микросхемы
- int EN1 = 5;
- int IN1 = 2;
- int IN2 = 3;
- // Переменные для хранения значений кнопок пульта
- unsigned long Up = 0xFF18E7;
- unsigned long Down = 0xFF4AB5;
- unsigned long Left = 0xFF10EF;
- unsigned long Right = 0xFF5AA5;
- unsigned long Ok = 0xFF38C7;
- unsigned long One = 0xFFA25D;
- unsigned long Two = 0xFF629D;
- unsigned long Three = 0xFFE21D;
- unsigned long Four = 0xFF22DD;
- unsigned long Five = 0xFF02FD;
- unsigned long Six = 0xFFC23D;
- unsigned long Seven = 0xFFE01F;
- unsigned long Eight = 0xFFA857;
- unsigned long Nine = 0xFF906F;
- unsigned long Zero = 0xFF9867;
- IRrecv irrecv(RECV_PIN); // Инициализируем подключение к ИК-приемнику на входе RECV_PIN
- decode_results results; // Получаем данные от пульта управления
- // Получаем данные от пульта управления
- void setup()
- {
- Serial.begin(9600);
- irrecv.enableIRIn(); // Включаем ИК-приемник
- pinMode(EN1, OUTPUT);
- pinMode(IN1, OUTPUT);
- pinMode(IN2, OUTPUT);
- digitalWrite(EN1, HIGH);
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, LOW);
- }
- // Основной цикл
- void loop()
- {
- if (irrecv.decode(&results))
- {
- Serial.print("[ИК] Получено значение - ");
- Serial.println(results.value, HEX);
- if( results.value == Up)
- {
- Serial.println("[Двигатель] Движние вперед");
- analogWrite(EN1, 250);
- digitalWrite(IN1, HIGH);
- digitalWrite(IN2, LOW);
- }
- else if( results.value == Down)
- {
- Serial.println("[Двигатель] Движение назад");
- analogWrite(EN1, 250);
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, HIGH);
- }
- else if( results.value == Ok)
- {
- Serial.println("[Двигатель] Остановка..");
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, LOW);
- }
- else if( results.value == Left)
- {
- Serial.println("[Двигатель] Поворот вала в лево");
- analogWrite(EN1, 250);
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, HIGH);
- delay(100);
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, LOW);
- }
- else if( results.value == Right)
- {
- Serial.println("[Двигатель] Поворот вала в право");
- analogWrite(EN1, 250);
- digitalWrite(IN1, HIGH);
- digitalWrite(IN2, LOW);
- delay(100);
- digitalWrite(IN1, LOW);
- digitalWrite(IN2, LOW);
- }
- else if( results.value == One)
- {
- Serial.println("[Скорость] Установлена - 80");
- analogWrite(EN1, 80);
- }
- else if( results.value == Two)
- {
- Serial.println("[Скорость] Установлена - 100");
- analogWrite(EN1, 100);
- }
- else if( results.value == Three)
- {
- Serial.println("[Скорость] Установлена - 120");
- analogWrite(EN1, 120);
- }
- else if( results.value == Four)
- {
- Serial.println("[Скорость] Установлена - 140");
- analogWrite(EN1, 140);
- }
- else if( results.value == Five)
- {
- Serial.println("[Скорость] Установлена - 160");
- analogWrite(EN1, 160);
- }
- else if( results.value == Six)
- {
- Serial.println("[Скорость] Установлена - 180");
- analogWrite(EN1, 180);
- }
- else if( results.value == Seven)
- {
- Serial.println("[Скорость] Установлена - 200");
- analogWrite(EN1, 200);
- }
- else if( results.value == Eight)
- {
- Serial.println("[Скорость] Установлена - 220");
- analogWrite(EN1, 220);
- }
- else if( results.value == Nine)
- {
- Serial.println("[Скорость] Установлена - 250");
- analogWrite(EN1, 250);
- }
- irrecv.resume(); // Получаем следующее значение с ИК-приемника
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement