Связать Uno с компом через com1.

uno
Offline
Зарегистрирован: 16.06.2016
void setup() {
  // put your setup code here, to run once:
Serial1.begin(9600)
}

void loop() {
  // put your main code here, to run repeatedly:
 Serial1.println("Hello Serial 1");
}

 

uno
Offline
Зарегистрирован: 16.06.2016

Собсно у меги есть Сериал 1,2, 3 у уно вроде есть выводы ТХ-РХ или это не одно и тоже . Если один и тоже то как к ним обратиться.

задача связать плату с компом по ком порту. если подключать юсб шнурок то после 1,5 метров уже работает нестабильно протокол ком порта позволяет работать на шнурке до 25 метров.

 

Araris
Offline
Зарегистрирован: 09.11.2012

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

Выводы RX и TX на Arduino Uno - это Serial (без цифры), такой же, как у Меги.

uno
Offline
Зарегистрирован: 16.06.2016
// инициализируем библиотеку LCD
//LiquidCrystal lcd(12, 13, 11, 10, 9, 8);
#include "U8glib.h"
U8GLIB_ST7920_128X64 u8g(37, 35, 39, U8G_PIN_NONE); // настройка пинов
//U8GLIB_ST7920_128X64 u8g(51, 49, 53, U8G_PIN_NONE); // настройка пинов
#include "HX711.h"
HX711 scale(43, 41, 128);    // "усиление" - опущено; значение по умолчанию 128 используется библиотека
String s1="00.00";
String s2="00.00";
String s0=" 00.00";
String s3=" 000 ";
int p = 33; //объявляем переменную с номером пина, на который мы выводим звук
float  v1 = 0; float  v2 = 0; float  v3 = 0; float  v4 = 0; float  v5 = 0;
float  v6 = 0; float  v7 = 0; float  v8 = 0; float  v9 = 0; float  v10 = 0;
float  v = 0; float  yp = 0;
void setup(){
  // устанавливаем параметры дисплея: 
 // u8g.setFont(u8g_font_gdb20);
   scale.set_scale(2280.f);   // this value is obtained by calibrating the scale with known weights; see the README for details
   Serial1.begin(9600); //9585здесь не забываем указать скорость вашего порта роутера
   u8g.setRot90();
 // Serial.setTimeout (1000);
  pinMode(p, OUTPUT); //объявляем пин как выход
}
 
void loop()
{
  char s;  
  String str;
 // u8g.setRGB(100,200,200);
 // u8g.drawStr( 66, 0, "Color Page");
      //Serial.println(scale.read_average(10), 3);
//  Serial1.println(1, 1);
  v1=v2; v2=v3; v3=v4; v4=v5;
  v5=v6; v6=v7; v7=v8; v8=v9;v9=v10;
  v10=scale.get_units(2);
  v=(v1+v2+v3+v4+v5+v6+v7+v8+v9+v10)/10;
  int y=v*10;
  int y1=v1*10; 
  if (y==y1) {
    if (y==yp) {delay(300);
    }
    else {
        Serial1.println(v, 1);
        yp=y;
    }
  }

  
  if (Serial1.available()) 
  {

    while (Serial1.available() > 0) 
    {
      s=Serial1.read();
       if (s=='^') {
        switch (Serial1.read()) {
          case '0':
            s0=""; str="0";Serial1.read(); break;
          case '1':
            s1=""; str="1";Serial1.read(); break;
          case '2':
            s2=""; str="2";Serial1.read();break;
          case '3':
            s3="";  str="3";Serial1.read();break;
          case '4':
            tone (p, 500,1000);//включаем на 500 Гц
            Serial1.read();break;
          case '5':
            tone (p,800,300);//включаем на 1000 Гц
            Serial1.read();
            break;
          case '6':
            tone (p, 1500,1000);//включаем на 1500 Гц
            Serial1.read(); break;
        } //switch
      }
      else {
          if (str=="1") { s1=s1+s; }
          else {
            if (str=="2") { s2=s2+s; }
            else {
            if (str=="3") { s3=s3+s; }
            else {
            if (str=="0") { s0=s0+s; }
            }
            }
          }
       }
    }
  }
  
  u8g.firstPage();
  do 
   {
     u8g.setFont(u8g_font_gdb14);
     u8g.setPrintPos(0, 14);
     u8g.print("  BEC ");
     u8g.setFont(u8g_font_gdb17);
     u8g.setPrintPos(0, 35);
     u8g.print(s1);
//     u8g.println(-(scale.get_units(10)+3.707)/10.024, 3);
     u8g.setPrintPos(0, 60);
     u8g.print(s2);
     u8g.setFont(u8g_font_gdb14);
     u8g.setPrintPos(0, 80);
     u8g.print(s0);
     u8g.setPrintPos(0, 105);
     u8g.print("  KOP ");
     u8g.setPrintPos(0, 127);
     u8g.setFont(u8g_font_gdb17);
     u8g.print(s3);
  }
  while( u8g.nextPage() );
}

 

uno
Offline
Зарегистрирован: 16.06.2016

Подключил мегу 18-19 порт и землю к реальному компорту. подключены тензодатчики и экран. инфа с тензодатчиков в пор не идет и на экран не пишит. через вертуальный ком конда было не сериал1, а просто сериал все работало.

 

uno
Offline
Зарегистрирован: 16.06.2016

Araris пишет:

COM-порт у Вас - виртуальній, а USB-соединение - реальное. Поэтому "дальнобойность" протокола COM-порта тут никакого значения не имееет. Всё определяется "дальнобойностью" USB (до 5-ти метров, если не ошибаюсь).

Выводы RX и TX на Arduino Uno - это Serial (без цифры), такой же, как у Меги.

если бы перепробывал нацать шнуров 1,5 метровый еще работает стабильно. На 3 метровом раз в полчаса виснин. на 5 уже нестартует. доппитание подключено. ;(

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Зачем Вы понасоздавали кучу тем? Не будет оно работать ни с УНО, ни с МЕГА.

Уже ответил в другой теме:

"Реальный ком порт" это физический COM-порт на компьютере? Так не будет работать. У комьютера RS232, у ардуины UART. Они не совместимы между собой по логическим уровням. Нужно использовать конвертер RS232-UART, например MAX232.

Тип линии и логический уровень RS-232 Напряжение RS-232 Напряжение от ТТЛ к MAX232 или обратно
Линия данных, логический «0» от +3В до +15В
Линия данных, логическая «1» от −3В до −15В

https://ru.wikipedia.org/wiki/MAX232

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

Jeka_M пишет:

Зачем Вы понасоздавали кучу тем?

я приказал

Araris
Offline
Зарегистрирован: 09.11.2012