Создал свою первую рабочую схему по видеоурокам

Лампа 1 включается нажав 1, и т.д. 2, 3. Что и как надо справить в коде чтобы лампы включались нажав по две кнопки 01, 02, 03. Это надо чтобы можно было включить любую из 99 ламп. В видеоуроках пока такого не встречал (

// C++ code
//
#include <Adafruit_LiquidCrystal.h>
#include <IRremote.h>

Adafruit_LiquidCrystal lcd_1(0);
IRrecv irrecv (A0);
decode_results results;


void setup()
{
  lcd_1.begin(16, 2);
  
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(A0, INPUT);
  
  lcd_1.noBlink();
  lcd_1.setBacklight(1);
  
  Serial.begin(9600);
  irrecv.enableIRIn();
}

void loop()
{
  if ( irrecv.decode(&results))
  {
  Serial.println(results.value, HEX);
  
     if (results.value == 0xFD08F7)
    {
      digitalWrite(7,HIGH);
      lcd_1.print("1");
      lcd_1.setCursor(0, 0);
      delay(3000);
      digitalWrite(7,LOW);
      lcd_1.clear();
     }
     if (results.value == 0xFD8877)
    {
      digitalWrite(6,HIGH);
      lcd_1.print("2");
      lcd_1.setCursor(0, 0);
      delay(3000);
      digitalWrite(6,LOW);
      lcd_1.clear();
     }
     if (results.value == 0xFD48B7)
    {
      digitalWrite(5,HIGH);
      lcd_1.print("3");
      lcd_1.setCursor(0, 0);
      delay(3000);
      digitalWrite(5,LOW);              
      lcd_1.clear();
     }
   irrecv.resume();
  
  }}
 
 

Получаете код первой клавиши, запоминаете, пока ничего не делаете. Получаете второй код - соединяете первый со вторым чтоб получить двузначное число.

Только будет путаница, как отличить “первую” кнопку от “второй”. Лучше использовать какой-то префикс или постфикс - то есть сначала, скажем, нажимаете кнопку “#” , а после нее две цифры. Это чтоб программе было проще отличить двухцифровые комбинации от от одиночных.

Что тут эта тема делает?! Тема перемещена в песочницу.

как соединять ? Так ? if (results.value == 0xFD8877+0xFD48B7)

Синей изолентой …

1 лайк

что опять не так ? вопрос по программированию

В разделе программирования не обсуждают «как сделать кнопки» и тп. Если вы этого ещё не умеете - вам в песочницу.

песочницу почти не читают люди, которые помогают новичкам

нет
Зачем соединять коды, когда вас интересует номер лампы?
Если код 0xFD8877 соответвует цифре 2, а 0xFD48B7 - 6, то и соединять надо цифры, а не коды.
Как из цифр 2 и 6 получить число 26 - знаете?

Все зависит от новичка и как он себя проявит. Пока за вами «грешков» не замечено. Не переживайте так сильно, что тема в песочнице. :slight_smile:

не знаю, вот именно (

Не переживайте так, разделы на этом форуме вообще значения не имеют. Я захожу на форум и открываю категорию “Последние”, где свалено все что изменилось с моего прошлого прихода. Во всех разделах.

2 лайка

Поэтому тема в песочнице ))))

1 лайк

добро пожаловать во второй класс…

Дети, чтобы из цифр 2 и 6 получить число 26, нужно первое число умножить на 10 и к нему прибавить второе.

1 лайк

А я ему в ЧЧ пишу, он просто вторую тему создал.

1 лайк

В коде числа в формате HEX, что умножать и складывать пока не пойму. ладно, логику понял, утром что-нибудь попробую. уже ночь.

я сначала там спросил, а потому подумал что там же тема про железо, а тут вопрос был про программирование, и создал тут

Это не формат, а система счисления - причём 16-ричная.

1 лайк

не надо так делать.
Одному проекту - одна тема, чтобы не вынуждать других прыгать из темы в тему. отыскивая, где вы на какой вопрос ответили.

1 лайк

Вы продолжаете путать коды клавиш и их “значения”. Для зажигания лампы вам нужно “значение”, а не код пульта.
Значение клавиши у вас вот

простое и незатейливое, никаких Хексов

1 лайк