Ввод чисел

XJ7aM
Offline
Зарегистрирован: 25.05.2019

Здраствуйте не подскажите как на жк экран в первую строку вводить числа с ик пульта,

после нажатия кнопки на пулте допустим ентер,это число перевести в переменую и покозать на

второй строке экрана?

 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А сами-то пробовали? В чём затык? Показывайте.

XJ7aM
Offline
Зарегистрирован: 25.05.2019
#include <LiquidCrystal.h>  // Лобавляем необходимую библиотеку
#include <IRremote.h> // подключение библиотеки
int RECV_PIN = 12; // контакт подключения ИК-приемника
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7)
#include<AccelStepper.h>
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
AccelStepper s28BYJ(8, IN1, IN3, IN2, IN4);




int Wag = 0;
void setup() {
  lcd.begin(16, 2);                  // Задаем размерность экрана
  irrecv.enableIRIn(); // включить приемник
  s28BYJ.setMaxSpeed(1500);
  s28BYJ.setAcceleration(300.0);
}

void loop() {
  if (irrecv.decode(&results)) // have we received an IR signal?
  {
    switch (results.value)

    {

      case 0xE0E0E01F: // UP button pressed
        Wag += 100;
        break;

      case 0xE0E0D02F: // DOWN button pressed
        Wag -= 100;
        break;

      case 0xE0E020DF: // Start
        s28BYJ.move(Wag);
        s28BYJ.runToPosition();
        lcd.clear();
        Wag = 0;
        break;

    }

    irrecv.resume(); // receive the next value
    s28BYJ.disableOutputs();
  }

  lcd.setCursor(10, 1);
  lcd.print(Wag);
  lcd.setCursor(0, 1);
  lcd.print("Step:");

}

вот код хачу вводить число с пулта потом перевадить его в шаги

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Я Вас спросил "в чём затык". Расскажите в каких строка что Вы делаете и что именно у Вас не получается. Что идёт не так. Или Вы предлагаете мне догадываться?

XJ7aM
Offline
Зарегистрирован: 25.05.2019

не могу понять как используя цыфры на пульте вести число через

 case 0xE0E0E01F: один

33      кнопка на пулте 1
34         break;
35  
36       case 0xE0E0D02F: два
37    кнопка на пулте 2  
38

        break;

кнопки от 0 до 9

водим число нажимаем на пулте ентр это число переводится в int Wag = 0;

sadman41
Offline
Зарегистрирован: 19.10.2016

Чтобы число переводилось через цыфры и ентр в int wag = 0; нужно написать соответствующую программу. А до того потренироваться на более простых примерах: например простых кнопках, светодиодах.

XJ7aM
Offline
Зарегистрирован: 25.05.2019

код который я скинул работает хочу добавить ввод числа с пульта ввивод на 1 строку жк экрана

после нажатия ентер перевод в int wag и ввывод этого числа в 2 строку жк

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

XJ7aM пишет:

код который я скинул работает хочу добавить ввод числа с пульта ввивод на 1 строку жк экрана

На форуме есть определённые правила, котрые изложены в разделе "Песочница". Там чёрным по белому написано,что если Вы не попытались решить свою задачу сами, Вам помогать никто не будет.

Выкладывайте (по правилам) свою попытку (не "код в который надо добавить", а свою попытку решить эту задачу) и описывайте что именно не получается.

Не хотите или не можете попытаться - запостите заказ в коммерческом разделе. Тем, кто сам не делает, помогают там.

Morroc
Offline
Зарегистрирован: 24.10.2016

XJ7aM пишет:

код который я скинул работает хочу добавить ввод числа с пульта ввивод на 1 строку жк экрана

Т.е. это не ваш код ? (непонятен уровень)

Вам нужно после ввода каждой цифры умножать предыдущий результат на 10 и добавлять новую цифру.

Т.е.

Изначально 0

Нажали 2 - 0*10 + 2 =  2

Нажали 4 - 2*10 + 4 = 24

Нажали 7 - 24*10 + 7 = 247

и т.д.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Morroc пишет:
непонятен уровень
Ага, "вечно эта неопределённость" :)))

XJ7aM
Offline
Зарегистрирован: 25.05.2019
#include <LiquidCrystal.h>  // Лобавляем необходимую библиотеку
#include <IRremote.h> // подключение библиотеки
int RECV_PIN = 12; // контакт подключения ИК-приемника
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7)





int Wag = 0;
void setup() {
  lcd.begin(16, 2);                  // Задаем размерность экрана
  irrecv.enableIRIn(); // включить приемник

}

void loop() {
  if (irrecv.decode(&results)) // have we received an IR signal?
  {
    switch (results.value)

    {

      case 0xE0E0E01F: // 1

        break;

      case 0xE0E0D02F: // 2

        break;

      case 0xE0E0E01F: // 3

        break;

      case 0xE0E0D02F: // 4

        break;

      case 0xE0E0E01F: // 5

        break;

      case 0xE0E0D02F: // 6

        break;

      case 0xE0E0E01F: // 7

        break;

      case 0xE0E0D02F: // 8

        break;

      case 0xE0E0E01F: // 9

        break;

      case 0xE0E0D02F: // 0

        break;


      case 0xE0E016E9: // Enter
        lcd.clear();
        Wag = Число введеное с пулта;
        break;

    }

    irrecv.resume(); // receive the next value

  }
  lcd.setCursor(0, 0);
  lcd.print(Число введеное с пульта);
  lcd.setCursor(10, 1);
  lcd.print(Wag);
  lcd.setCursor(0, 1);
  lcd.print("Step:");

}

 

XJ7aM
Offline
Зарегистрирован: 25.05.2019

Это все с примеров

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так, ну, вот в последний раз спрашиваю (больше не буду). Вы объясните где (в каких строках) этого кода Вы пытаетесь накопить своё число и что именно идёт не так?

Или Вы не пытались? Если второе. то Вам в раздел "Ищу исполнителя".

XJ7aM
Offline
Зарегистрирован: 25.05.2019

сам по очереди эти коды пробовал с примеров потом решил совместить их

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Понятно, т.е. Вы не пытались сделать самостоятельно, а просто  

XJ7aM пишет:

решил совместить их

только тут беда. Вы не решили совместить их, Вы решили, чтобы кто-то за Вас их совместил.

Перепостите Вашу хотелку Ищу исполнителя. Там Вам совместят, если в цене сойдётесь.

XJ7aM
Offline
Зарегистрирован: 25.05.2019

как вести число с пулта нажимая


      case 0xE0E0E01F: // 1

        break;

      case 0xE0E0D02F: // 2

        break;

      case 0xE0E0E01F: // 3

        break;

      case 0xE0E0D02F: // 4

        break;

      case 0xE0E0E01F: // 5

        break;

      case 0xE0E0D02F: // 6

        break;

      case 0xE0E0E01F: // 7

        break;

      case 0xE0E0D02F: // 8

        break;

      case 0xE0E0E01F: // 9

        break;

      case 0xE0E0D02F: // 0

        break;

нажав Ентер перевести число веденое с пулта от 0 до 999999 в intWag

  case 0xE0E016E9: // Enter
        lcd.clear();
        Wag = Число введеное с пулта;
        break;

и вывести все на жк

 }
  lcd.setCursor(0, 0);
  lcd.print(Число введеное с пульта);
  lcd.setCursor(10, 1);
  lcd.print(Wag);
  lcd.setCursor(0, 1);
  lcd.print("Step:");

}

 

Morroc
Offline
Зарегистрирован: 24.10.2016

XJ7aM пишет:

сам по очереди эти коды пробовал с примеров потом решил совместить их

Попробуйте проделать в блоках case с переменной Wag то, что я вам написал выше. И сразу же в блоке выводите на экран для наглядности. Если совсем никак, то... (см. предыдущий пост ЕвгенийП), дальше будет не проще (программировать).