Лазерный дальномер для arduino

Тема в разделе "Посоветуйте детальки", создана пользователем Roman Koff, 6 июн 2017.

  1. Переделал на 2 порта и на пины 10 и 11

    Код (Text):


    #include <SoftwareSerial.h>
    SoftwareSerial mySerial(10, 11); // RX, TX
    void setup() {
      // Open serial communications and wait for port to open:
      Serial.begin(9600);
      while (!Serial) {
      ; // wait for serial port to connect. Needed for native USB port only
      }  
      mySerial.begin(19200);
      while (!Serial) {
      ; // wait for serial port to connect. Needed for native USB port only
      }
      mySerial.println("O");
      // set the data rate for the SoftwareSerial port  
    }
    void loop()
    {
      mySerial.println("F");
      mySerial.flush();
     
      float x = 0;
    x = mySerial.read();
      mySerial.flush();
      delay(2000);  
      Serial.println(x);
      delay(2000);
    }


     
     
  2. только легче не стало.
    Все равно подлец шлет херню:

    255.00
    44.00
    79.00
    75.00
    33.00
    13.00
    10.00
    255.00
    58.00
    32.00
    48.00
    46.00
    49.00
    50.00
    48.00
    109.00
    44.00
    48.00
    48.00
    53.00
    57.00
    13.00
    10.00
    255.00
    58.00
    32.00
    48.00
    46.00
    49.00
     
  3. Roman Koff

    Roman Koff Нерд

    Вот здесь пример: https://www.arduino.cc/en/Tutorial/TwoPortReceive
    Нужно правильно выставить скорость и конец строки в мониторе порта IDE. Возможно чушь из-за этого. Скорость встроенного порта должна быть такой же, как при заливке прошивки.
     
    Сергей Ф нравится это.

  4. победил!
    Код (Text):


    #include <SoftwareSerial.h>
    SoftwareSerial mySerial(10, 11); // RX, TX
    void setup() {
      // Open serial communications and wait for port to open:
      Serial.begin(19200);
      while (!Serial) {
      ; // wait for serial port to connect. Needed for native USB port only
      }  
      mySerial.begin(19200);
      while (!Serial) {
      ;
      }
    }
    void loop()
    {
      mySerial.listen();
      mySerial.write("D");
      while (mySerial.available()>0)
      {
      char otvet = mySerial.read();
      Serial.print(otvet);
      }
      Serial.print("");
      delay(1000);  
    }


     

    D: 2.660m,0065
    D: 2.660m,0060
    D: 2.660m,0057
    D: 2.660m,0051
    D: 2.660m,0050
    D: 2.661m,0051

    Спасибо за помощь!
     
  5. Rf
    Добрый день! У меня те же самые мытарства как у Сергея с тем же самым модулем. Залил на Ардуино его скетч, под которым он написал что "Победил". Рулетка меряет. В Serial Port Ардуино - пустота. В Serial Port лазерного дальномера все те же байты:
    b'O' F ( 2 )
    b'M' S ( 2 )
    b'\xff' F ( 3 )
    b'\x7f' S ( 3 )
    b'E' F ( 4 )
    b'' S ( 4 )
    b'' F ( 5 )
    b'' S ( 5 )
    b'' F ( 6 )
    b'\xfe' S ( 6 )
    b'\xba' F ( 7 )
    b'\xf7' S ( 7 )
    b'\xff' F ( 8 )
    b'' S ( 8 )
    b'' F ( 9 )
    b's' S ( 9 )
    b'e' F ( 10 )
    b'' S ( 10 )