RX TX объясните ламмеру

Тема в разделе "Arduino & Shields", создана пользователем Ardubino Tupo, 4 июл 2017.

  1. Ardubino Tupo

    Ardubino Tupo Нерд

    Есть две UNO
    есть на одной
    int a;
    int b;
    int c;
    int d;

    Надо на другой получить тоже самое через UART
    Киньте ссылку где это разжевано для полного идиота.

    PS Что программеру смех то ламеру смерть.
     
  2. NikitOS

    NikitOS Public enemy Администратор

    Кто такой ламмер?
    В личку напишу
     
    Ardubino Tupo нравится это.
  3. ostrov

    ostrov Гуру

    Есть прмер на ардуино вики, что то там про офисную активность. Часть примера именно про передачу данных по UART.
     
  4. Airbus

    Airbus Радиохулиган Модератор

    А что конкретно непонятно?Через USART можно передавать всё что угодно главное правильно подключить RX к TX и наоборот. Можно так. Но я бы написал попроще.
     
  5. Ardubino Tupo

    Ardubino Tupo Нерд

    Если это это, то это не совсем то что надо.
    Собственно уже сделал на NRF24 . (nRF24L01.h + RF24.h ).
     
  6. Ardubino Tupo

    Ardubino Tupo Нерд

    Не понятно как и на что разобрать массив с int чтобы пропихнуть его через byte и на то стороне собрать обратно в int
     
  7. NikitOS

    NikitOS Public enemy Администратор

    В личку скину пример через 20 мин
     
  8. Airbus

    Airbus Радиохулиган Модератор

    А разве компилятор это не делает за Вас?Что отправляете то и получаете char отправляете получаете char.Если int то и получите int.Это в ассемблере передаете побитно а здесь все скопом,Или я чего то неправильно понял в вопросе?В чем собственно проблема?
     
  9. Ardubino Tupo

    Ardubino Tupo Нерд

    Arduino № 1
    есть
    int a
    int b
    int c
    int d

    Arduino № 2
    Надо получить
    Тоже самое по UART
    Сравнить полученное с некими значениями и вывести на OLED 0.96. a b c d и нечто типа
    if (a > Z) myOLED.print("Ok", 0 ,0);

    На дисплей выводится все что угодно от "каши" до каких то чисел не имеющих отношения к программе .
    Я немного знаю PHP, с контроллерами дела не имел.

    Код (C++):
    //// ******************************************* Трансивер

    #include <nRF24L01.h>    
    #include <RF24.h>        
    RF24           radio(9, 10);



    int            data_Radio[4];



    void setup() {

    radio.begin();            
        radio.setChannel(5);    
        radio.setDataRate     (RF24_1MBPS);
        radio.setPALevel      (RF24_PA_HIGH);
        radio.openWritingPipe (0x2234567890LL);

    }

    void loop() {
     

       data_Radio[0] = 1;  
       data_Radio[1] = 12345;                
       data_Radio[2] = 987656;
       data_Radio[3] = 765;
       radio.write(&data_Radio, sizeof(data_Radio));                    

    }


    // ********************************************************
    // ******************************************* Приемник

    // Бла бла бла

    void setup() {
             
          myOLED.begin();

         radio.begin();                                      
         radio.setChannel(5);                                
         radio.setDataRate     (RF24_1MBPS);                  
         radio.setPALevel      (RF24_PA_HIGH);                
         radio.openReadingPipe (1, 0x2234567890LL);          
         radio.startListening  ();                            
       
    }
    void loop() {
     

    if(radio.available())
      {
           radio.read(&data, sizeof(data));                
                                                           
          a=data[0];
          b=data[1];
          c=data[2];
          d=data[3];
         
      }

      myOLED.setFont(SmallFont);
      myOLED.print("OK", 0 ,0);
      myOLED.printNumI(a, 0 ,10);
      myOLED.printNumI(b, 0 ,20);  
      myOLED.printNumI(c, 0 ,30);    
      myOLED.printNumI(d, 0 ,40);      
      myOLED.update();
    }
     

    Это все работает я так и оставлю по радиоканалу.
     
  10. Airbus

    Airbus Радиохулиган Модератор

  11. Ardubino Tupo

    Ardubino Tupo Нерд

    Да.
    А с UART потом буду разбираться...