Связать Uno с компом через com1.
- Войдите на сайт для отправки комментариев
Втр, 08/11/2016 - 15:03
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");
}
Собсно у меги есть Сериал 1,2, 3 у уно вроде есть выводы ТХ-РХ или это не одно и тоже . Если один и тоже то как к ним обратиться.
задача связать плату с компом по ком порту. если подключать юсб шнурок то после 1,5 метров уже работает нестабильно протокол ком порта позволяет работать на шнурке до 25 метров.
COM-порт у Вас - виртуальный, а USB-соединение - реальное. Поэтому "дальнобойность" протокола COM-порта тут никакого значения не имееет. Всё определяется "дальнобойностью" USB (до 5-ти метров, если не ошибаюсь).
Выводы RX и TX на Arduino Uno - это Serial (без цифры), такой же, как у Меги.
// инициализируем библиотеку 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() ); }Подключил мегу 18-19 порт и землю к реальному компорту. подключены тензодатчики и экран. инфа с тензодатчиков в пор не идет и на экран не пишит. через вертуальный ком конда было не сериал1, а просто сериал все работало.
COM-порт у Вас - виртуальній, а USB-соединение - реальное. Поэтому "дальнобойность" протокола COM-порта тут никакого значения не имееет. Всё определяется "дальнобойностью" USB (до 5-ти метров, если не ошибаюсь).
Выводы RX и TX на Arduino Uno - это Serial (без цифры), такой же, как у Меги.
Зачем Вы понасоздавали кучу тем? Не будет оно работать ни с УНО, ни с МЕГА.
Уже ответил в другой теме:
"Реальный ком порт" это физический COM-порт на компьютере? Так не будет работать. У комьютера RS232, у ардуины UART. Они не совместимы между собой по логическим уровням. Нужно использовать конвертер RS232-UART, например MAX232.
https://ru.wikipedia.org/wiki/MAX232
Зачем Вы понасоздавали кучу тем?
я приказал
Перемещаемся в http://arduino.ru/forum/programmirovanie/mega-rabota-s-serial1-som1-kompa