edem  
                
                  
                    22.Февраль.2023 16:59:22
                   
                  1 
               
             
            
              Доброго дня! Помогите плиз с решением.
  byte x = ((PINB&(1<<0))?(1<<0):0)       \
         | ((PINB&(1<<1))?(1<<1):0)    \
         | ((PINB&(1<<2))?(1<<2):0)    \
         | ((PINB&(1<<3))?(1<<3):0);
Serial.write(x);
так как выше не получается, вторая Ардуина не понимает. Если передаю прSerial.write ('2');
             
            
              
            
           
          
            
              
                edem  
              
                  
                    22.Февраль.2023 17:23:25
                   
                  3 
               
             
            
              if (Serial.available() )
{
char ch=Serial.read();
if (ch=='2') 
 {digitalWrite(ledStart, HIGH);  }
else 
 {digitalWrite(ledStart, LOW);  }
} // if
вот так я пытаюсь получить значение на приемнике
             
            
              
            
           
          
            
            
              
Никак. Вопрос представляет собой бессмысленный набор слов и ответить на него невозможно.
Ну, передавайте не символом, а числом, кто Вам не даёт? Вариантов миллион
Пример №1
byte b = 2;
Serial.write(b);
Пример №2
Serial.write((byte)2);
Пример №3
Serial.write('2'-'0');
Можно ещё десяток вариантов привести.
             
            
              
            
           
          
            
            
              
 edem:
 
if (Serial.available() )
if (ch==‘2’)
} // if
вот так я пытаюсь
 
 
Вам лень код нормально вставить? Или умышленно издеваетесь? Умеете же!
Это “код” не смотрел и смотреть не буду, пока не вставлен по-человечески. И уже начинаю жалеть, что подсказал Вам как передавать.
             
            
              
            
           
          
            
              
                rkit  
              
                  
                    22.Февраль.2023 17:38:52
                   
                  6 
               
             
            
              А с чего ты решил,  что это равно ‘2’?
             
            
              
            
           
          
            
              
                edem  
              
                  
                    22.Февраль.2023 17:45:32
                   
                  7 
               
             
            
              да, фишка в том,что бывает что и равно 2, а бывает  и 8
             
            
              
            
           
          
            
            
              @edem  , у меня складывается впечатление, что Вы не понимаете разницу между 2 и ‘2’.
             
            
              
            
           
          
            
              
                edem  
              
                  
                    22.Февраль.2023 17:59:55
                   
                  9 
               
             
            
              ок, нет проблем, если бы все понимал, то и вопроса не было
итак 2 - это число
Только, что мне это дает? У меня результат выражения имеет тип byte. И именно с этим типом у меня проблемы.
             
            
              
            
           
          
            
              
                v258  
              
                  
                    22.Февраль.2023 18:02:10
                   
                  10 
               
             
            
              
Число 2 - это 0x02, символ ‘2’ - это 0x32. Насколько это одно и то же - вам виднее
             
            
              
            
           
          
            
              
                edem  
              
                  
                    22.Февраль.2023 18:28:58
                   
                  11 
               
             
            
              ок, как мне отправить выражение  через сериал
byte  x = ((PINB&(1<<0))?(1<<0):0)       \
         | ((PINB&(1<<1))?(1<<1):0)    \
         | ((PINB&(1<<2))?(1<<2):0)    \
         | ((PINB&(1<<3))?(1<<3):0);
и принять его
             
            
              
            
           
          
            
              
                Upper  
              
                  
                    22.Февраль.2023 18:31:51
                   
                  12 
               
             
            
              
Не понятно, какие проблемы с типом byte?
Но наверно лучше на приемнике сравнивать
             
            
              1 лайк 
            
            
           
          
            
              
                edem  
              
                  
                    22.Февраль.2023 19:42:00
                   
                  13 
               
             
            
              я там вверху написал, и вероятно, напрасно
именно это вариант у меня не работает.
             
            
              
            
           
          
            
            
              
 edem:
 
if (Serial.available() )
{
char ch=Serial.read();
if (ch=='2') //  
 {digitalWrite(ledStart, HIGH);  }
else 
 {digitalWrite(ledStart, LOW);  }
} // if
вот так я пытаюсь получить значение на приемнике
 
 
В 5 стр. замените
             
            
              
            
           
          
            
              
                edem  
              
                  
                    22.Февраль.2023 20:34:10
                   
                  15 
               
             
            
              
КОНГЕНИАЛЬНО
В итоге:
на передатчике
delay(1000);
    x = ((PINB&(1<<0))?(1<<0):0)       \
         | ((PINB&(1<<1))?(1<<1):0)    \
         | ((PINB&(1<<2))?(1<<2):0)    \
         | ((PINB&(1<<3))?(1<<3):0);
    Serial.write(x);
на приемнике
if (Serial.available() )
{
int ch=Serial.read();
if (ch==2) 
 {digitalWrite(ledStart, HIGH);  }
else 
 {digitalWrite(ledStart, LOW);  }
 
            
              
            
           
          
            
              
                v258  
              
                  
                    23.Февраль.2023 04:27:39
                   
                  16 
               
             
            
              
 edem:
 
КОНГЕНИАЛЬНО
 
 
Похоже, вы сами не понимаете, чего хотите. Попробуйте расписать подробно словами, что вы пытаетесь передать и почему это что-то должно равняться ‘2’ (т.е. 0x32 в шестнадцатеричном или 50 в десятичном исчислении)
             
            
              
            
           
          
            
              
                b707  
              
                  
                    23.Февраль.2023 08:29:50
                   
                  17 
               
             
            
              Что это за ужас???
Если это - чтение четырех младших бит порта B, то это можно записать много короче
byte  x = PINB & 0xF;
Учите битовые операции
             
            
              1 лайк 
            
            
           
          
            
              
                edem  
              
                  
                    23.Февраль.2023 09:27:01
                   
                  18 
               
             
            
              byte  x = PINB & 0xF;
ок! задействованые  пины идут по порядку/ надо попробовать
 v258:
 
Похоже, вы сами не понимаете, чего хотите. Попробуйте расписать подробно словами, что вы пытаетесь передать и почему это что-то должно равняться ‘2’ (т.е. 0x32 в шестнадцатеричном или 50 в десятичном исчислении)
 
 
  byte x = ((PINB&(1<<0))?(1<<0):0)       \
         | ((PINB&(1<<1))?(1<<1):0)    \
         | ((PINB&(1<<2))?(1<<2):0)    \
         | ((PINB&(1<<3))?(1<<3):0);
что по вашему может находится в переменной  x?
             
            
              
            
           
          
            
              
                mykaida  
              
                  
                    23.Февраль.2023 10:04:12
                   
                  20 
               
             
            
              
 Komandir:
 
Ху…ня ?
 
 
Соглашусь с коллегой.
             
            
              
            
           
          
            
              
                edem  
              
                  
                    23.Февраль.2023 10:37:18
                   
                  21 
               
             
            
              
 Komandir:
 
Ху…ня ?
 
 
да, а если пропустить через UART получится - ‘2’