Страница 1 из 2
-
При попытке запуска этого
#include <SoftwareSerial.h>
#include <TinyGPS.h> //подключение необходимых для работы библиотекTinyGPS gps;
SoftwareSerial gpsSerial(3, 4); //номера пинов, к которым подключен модуль (RX, TX)bool newdata = false;
unsigned long start;
long lat, lon;
unsigned long time, date;void setup(){
gpsSerial.begin(9600); // установка скорости обмена с приемником
Serial.begin(9600);
Serial.println(«Waiting data of GPS…»);
}void loop(){
if (millis() — start > 1000) //установка задержки в одну секунду между обновлением данных
{
newdata = readgps();
if (newdata)
{
start = millis();gps.get_position(&lat, &lon);
gps.get_datetime(&date, &time);
Serial.print(«Lat: «); Serial.print(lat);
Serial.print(» Long: «); Serial.print(lon);
Serial.print(» Date: «); Serial.print(date);
Serial.print(» Time: «); Serial.println(time);
}}
}// проверка наличия данных
bool readgps()
{
while (gpsSerial.available())
{
int b = gpsSerial.read();
//в библиотеке TinyGPS имеется ошибка: не обрабатываются данные с r и n
if(‘r‘ != b)
{
if (gps.encode(b))
return true;
}
}
return false;
}на Arduino Nano в монитор порта ничего не идет. GPS приемник тот же,пины RX и TX модуля вроде соединил правильно. Сам модуль проверил на более простом скетче,работает вроде. Как можно решить эту проблему?
P.S. вот тот самый более простой скетч,при его запуске с RX на 3 и TX на 4 в монитор что-то шло.#include <SoftwareSerial.h>SoftwareSerial nss(3, 4);
void setup(void) {
Serial.begin(115200);
nss.begin(9600);
Serial.println(«Fun begins:»);
}void loop(void) {
if (nss.available()) Serial.write(nss.read());
}Последнее редактирование: 20 окт 2019
-
вы предлагаете нам скачать чужой код по ссылке и разбираться в нем? — спросите авторов тех скетчей
Asper Daffy нравится это.
-
А код где? Мы сами должны его по левым ссылкам выискивать?
-
ошибку понял ,исправил. Прошу прощения
-
в первом коде, примерно на девятой строчке с конца, после строки
int b = gpsSerial.read();
вставьте оператор
Serial.write((char)b);
т посмотрите, что будет выдаваться в монитор -
скетч вашей строкой дополнил,RX TX по-прежнему на 3 и 4,монитор порта все равно молчит
UPD: попробовал снова запустить второй скетч,запустил,но не заработало,поменял RX TX местами на пинах и пошел вывод, как это объяснить? (до этого было подключено ,как написал выше)Последнее редактирование: 20 окт 2019
-
RX TX всегда подключаются «крест-накрест» — RX модуля к TX ардуины и наоборот
-
Для соединения двух устройств по UART, а именно так вы соединяете свою Arduino и GPS модуль, используются две рабочие линии(не считая земли). Выходы, к которым они подключаются называются:
TX — Trancieve (отправление), проще говоря передатчик
RX — Recieve (получение), проще говоря приёмник
Модули отправляет данные через передатчик (TX), а Arduino, что вполне логично, принимает их приёмником (RX). Вот так их и надо соединять TX модуля с RX Arduino, в вашем случае пин D3. Для обратной передачи (Arduino — GPS), второй линией соединяем TX Arduino (D4) с RX модуля. Так как в вашем случае Arduino только слушает модуль и ничего ему не передаёт, то вторая линия не обязательна. -
Спасибо за совет. Не знал про это. Но даже с учетом этого факта ,скетч первый ничего не выдает в монитор порта.
-
первый скетч с моей добавленной строкой или нет?
если первый скетч с моей строкой ничего не печатает, а второй — что-то выдает — вы явно что-то напутали с подключением при переходе от одного кода к другому, так как с моей поправкой два эти кода должны выдавать практически одно и тоже -
А ещё глупый вопрос — на GPS модуле всетодиодик моргает?
-
Специально ,чтобы избежать подобного,попробовал по-разному подключать. Результат одинаковый
-
А тестовые скетчи из библиотеки TinyGPS работают?
ЗЫ: Переходник USB-TTL в хозяйстве имеется? -
Переходника нет. Полагаю ,что тестовые скетчи тоже не работают,т.к. на месте координат и времени лишь символы » * » (при запуске test_with_gps_device из TinyGPS-13 светодиод на GPS модуле все еще мигает)
UPD: Сменил значения в ss.begin и Serial.begin на 9600,в монитор порта пошли координатыПоследнее редактирование: 20 окт 2019
-
Раз нет переходника, будем создавать программно.
Залейте этот код#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 4); // RX, TX
void setup()
{
delay(1000); // ждём пока загрузится
Serial.begin(9600); //Скорость порта для связи Arduino с компьютером
Serial.println(«Goodnight moon!»);
mySerial.begin(9600); //Скорость порта для связи Arduino с GPS модулем
}void loop()
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}Он просто транслирует в монитор всё что приходит от модуля. Посмотрите, приходит-ли хоть что-то от модуля GPS.
-
И оно действительно транслирует. Работают уже ваш скетч и скетч из примеров библиотеки
-
А попробуйте такой скетч
//#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
#include <TinyGPS.h>TinyGPS gps;
SoftwareSerial uart_gps(3, 4); // RX, TX
//LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // LCD Shield// Переменные
int seconds;
int timeoffset = 3; // Пользователь должен изменить единицу на соответствующий часовой пояс. В примере используем сдвиг на +1 час.// Объявление функций.
void getgps(TinyGPS &gps);// Функция настройки — запускается только при включении
void setup()
{
Serial.begin(9600); // Запуск последовательного интерфейса для отладки
uart_gps.begin(9600); // Запуск приемника UART для GPS
//lcd.begin(16,2); // Объявление LCD
Serial.println(» GPS clock»); // Сообщение приветствия
delay(1000); // Ждем одну секунду
//lcd.clear(); // Очистить LCD
}// Цикл главной программы — запущен всегда
void loop()
{
while(uart_gps.available())
{
int c = uart_gps.read();
if(gps.encode(c))
{
getgps(gps);
}
}
}/*
* Данная функция получает данные от GPS модуля
* и отображает их на LCD
*/
void getgps(TinyGPS &gps)
{
int year;
float latitude, longitude;
byte month, day, hour, minute, second, hundredths;gps.f_get_position(&latitude, &longitude);
gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths);
hour = hour + timeoffset;//lcd.clear();//lcd.setCursor(0, 0);
Serial.print(«Time: «);if (hour <= 9)
{
Serial.print(«0»); Serial.print(hour);
}
else
{
Serial.print(hour);
}
Serial.print(«:»);
if (minute <=9)
{
Serial.print(«0»); Serial.print(minute);
}
else
{
Serial.print(minute);
}
Serial.print(«:»);
if (second <= 9)
{
Serial.print(«0»); Serial.println(second, DEC);
}
else
{
Serial.println(second, DEC);
}
//lcd.setCursor(0,1);
Serial.print(«Date: «);
if (day <= 9)
{
Serial.print(«0»); Serial.print(day, DEC);
}
else
{
Serial.print(day, DEC);
}
Serial.print(«-«);
if (month <= 9)
{
Serial.print(«0»); Serial.print(month, DEC);
}
else
{
Serial.print(month, DEC);
}
Serial.print(«-«); Serial.println(year, DEC);
delay(100);
//lcd.clear();
//lcd.print(«Lat: «); lcd.print(latitude, DEC);
//lcd.setCursor(0,1);
//lcd.print(«Lon: «); lcd.print(longitude, DEC);
//delay(2000);// Debugging purpose only.
//Serial.print(latitude, DEC); Serial.print(» — «); Serial.println(longitude, DEC);}
Должно в монитор время выводить.
-
Залил-ничего в мониторе порта нет(
-
по-моему, вы нас дурачите — в этом коде как минимум приветствие
Serial.println(» GPS clock»); должно выводится ВСЕГДА.
Не выводится оно не может и с модулем GPS это не связано никак.Может у вас схема на скрутках собрана и провода то контачат, то нет?
Страница 1 из 2
-
#1
В Arduino IDE 2.0 не работает Монитор порта. Данные выводимые платами в порт не отображает ни в каком виде. Нет окна выбора скорости порта. Плату IDE видит и код заливает
-
#3
Проверьте правильность указания порта.
-
#4
скорее вчего порт не инициализирован, @poty дело говорит
-
#5
@Sergey_555,
Дело это Сделать Serial.begin ?
У ТС не показывается скорость порта. У меня в в IDE 2.0 в пустом скетче, с не подключенной ардуиной, с выбранным COM1 портом скорость отображается.
У меня в IDE 2.0 скорость порта не показывается, если порт занят другой программой. Причем никаких сообщений об ошибках нет. В версии 1.8 в случае занятости порта было сообщение об ошибке «Невозможно открыть порт»
-
#6
Serial.begin(9600); в коде присутствует. Сторонние мониторы порта (Terminal 1.9b например) вывод в порт видят. Arduino IDE нет. Окна с выбором скорости нет. Serial Plotter не запускается совсем
Изменено: 3 Фев 2023
-
#7
У IDE 2.0 с монитором порта беда. Сам сталкивался много раз. Но вывод видел всегда, а вот вводить иной раз не мог. С прошивкой проблеме не было.
Тоже самое на том же пк но IDE 1.8 работает без вопросов.
-
#8
@Sergey_555,
Может что то сбилось. Попробуйте в выборе платы выбрать COM1 (если он есть). Выйти из IDE, зайти и попробовать запустить монитор, если запустится с выбором скорости, то верните в настройках COM на правильный.
Если и не поможет, то и времени много на проверку не займет.
-
#9
@Sergey_555,
Я не понял, Вы сейчас попробовали поменять на COM1, перезапустить и проверить монитор порта?
-
#10
Откуда растет проблема найдено. В файле AppDataLocalArduino15packagesbuiltintoolsserial-monitor.12.0serial-monitor.exe
антивирус находит трояна и убивает serial-monitor.exe
by Radu Tyrsina
Radu Tyrsina has been a Windows fan ever since he got his first PC, a Pentium III (a monster at that time). For most of the kids of… read more
Updated on March 4, 2021
- The Arduino board has a Serial Monitor function that you can use to print your coded data. It sometimes happens to get a blank page instead, which is frustrating.
- In this article, we’re looking at some basic things that you can check just to make sure that you’re getting everything right for the Serial Monitor to work.
- If you’re a fan of this programming board, make sure to take a look at our dedicated Arduino Hub.
- Also, in our Developer Tools section, you might find other insightful information.
XINSTALL BY CLICKING THE DOWNLOAD FILE
This software will repair common computer errors, protect you from file loss, malware, hardware failure and optimize your PC for maximum performance. Fix PC issues and remove viruses now in 3 easy steps:
- Download Restoro PC Repair Tool that comes with Patented Technologies (patent available here).
- Click Start Scan to find Windows issues that could be causing PC problems.
- Click Repair All to fix issues affecting your computer’s security and performance
- Restoro has been downloaded by 0 readers this month.
With Arduino, the Serial Monitor is a feature that can help in debugging sketches or controlling the device from your computer’s keyboard. Also, you will use the Serial Monitor to view data sent by a working sketch.
To see the Serial Monitor, the Arduino must be connected by USB to your computer.
However, sometimes the Serial Monitor just shows a blank page. Although, the Arduino sketch contains Serial.print() and Serial.println() functions, the text doesn’t appear in the serial monitor.
In this article we’ll be looking at some basic troubleshooting steps that should be useful.
What should I do if the Arduino Serial Monitor isn’t working?
1. Verify the communication ports
Arduino and the Arduino IDE should be connected to the same communications port. Unplugging and plugging back the Arduino can switch the ports.
For a simple check, re-upload the sketch from the same IDE that you are using to open the Serial Monitor.
2. Match the band rate on the Serial Port
The Serial Monitor on the computer and the Serial Port on the Arduino must have the same data rate (baud rate).
Usually, the baud rate is 9600, so the programming statement is Serial.begin(9600). Set the same value for the Serial Monitor from the dropdown box in the lower-right corner.
3. Make sure the programming statements are being executed
The Serial.begin() and Serial.println() programming statements must be executed. Sometimes a branching statement, such as if and else, will cause these statements to be missed.
Also, if they are not being executed, the Serial Port will not function.
4. Check the statements for syntax errors
Examine the Serial.print() and Serial.println() statements for syntax errors. Since print and println are common among several programming languages, sometimes a usage that is valid in one doesn’t work with the Arduino.
5. Check the wiring
Insect the wiring of any circuit connected to the Arduino. The digital pins 0 and 1 should not be used. Both are connected to the components on the Arduino that performs the serial text communication and may not be simultaneously used for something else.
To conclude, we hope that these indications were somewhat helpful to fix the Serial Monitor issue. Any feedback is welcome in the comments section below.
Проблема с монитором порта
Offline
Зарегистрирован: 30.04.2019
Подскажите пожалуйста разбираюсь с АТ командами! сталкнулся с такой ситуацией ввожу в монитор порта команды? но реакции никакой нет в чем может быть проблема?
#include <SoftwareSerial.h> SoftwareSerial mySerial(8, 9); void setup() { mySerial.begin(9600); while (!mySerial) { } mySerial.print("Serial init OKrn"); Serial.begin(115200); } void loop() { if (Serial.available()) { mySerial.write(Serial.read()); } if (mySerial.available()) { Serial.write(mySerial.read()); } }
У ESP32 есть несколько распространенных проблем, особенно когда вы пытаетесь загрузить новые скетчи или установить плату ESP32 в Arduino IDE. Это руководство посвящено неполадкам ESP32 при программировании ее в среде Arduino. Здесь мы приведём список наиболее распространенных проблем с ESP32, а также расскажем, как исправить их.
Важно: убедитесь, что у вас установлена последняя версия Arduino IDE. Использование другой версии Arduino IDE может вызвать непредвиденные проблемы и ошибки.
Как мне установить пакет ESP32 для Arduino IDE?
Существует пакет ESP32 для среды Arduino, который позволяет вам программировать плату в Arduino IDE. Итак, по порядку:
- В среде Arduino переходим Файл > Настройки;
- В графе дополнительные ссылки для менеджера плат указываем эту ссылку: https://dl.espressif.com/dl/package_esp32_index.json
- Затем переходим в Инструменты > Плата “Arduino UNO” > Менеджер плат, вбиваем в поиске esp32 и устанавливаем пакет для платы.
Не отображается плата ESP32 в меню инструментов Arduino
Если плата не отображается в Arduino IDE, убедитесь, что вы щелкнули по маленькой стрелке (выделенной на рисунке ниже), чтобы найти свою плату:
Если и в этот раз вы не можете найти название своей платы ESP32, рекомендуем повторить процесс установки с нуля.
C:/Users/User/Documents/Arduino/hardware/espressif/esp32/ tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-g ++ »: файл не существует
Если Arduino IDE не может скомпилировать код для платы ESP32 и выдает данную ошибку, рекомендуем переустановить ESP32.
Примечание. На ПК с Windows часто установлено несколько версий Arduino IDE (portable и устанавливаемая). Убедитесь, что вы используете то приложение Arduino, в которое вы установили ESP32.
Не удалось подключиться к ESP32: время ожидания истекло… Подключение…»
В данном случае при попытке загрузить скетч на плату приложение не может подключиться к ней. Это значит, что ESP32 не находится в режиме прошивки / загрузки.
Выполните следующие действия:
- Удерживайте кнопку «BOOT » на плате ESP32.
- Нажмите кнопку «Загрузка» в Arduino IDE, чтобы загрузить новый скетч:
- После того, как вы увидите «Connecting…. » в Arduino IDE, уберите палец с кнопки «BOOT» :
- После этого, вы должны увидеть сообщение о завершении загрузки
Вот и все. На ESP32 должен быть загружен новый скетч. После загрузки нового скетча нажмите кнопку «ENABLE», чтобы перезапустить ESP32 и запустить загруженный скетч.
Ошибка при компиляции скетча WiFiScan
Если вы попытаетесь загрузить скетч ESP32 WiFiScan.ino, который есть в примерах
И он не может скомпилироваться с подобным сообщением об ошибке:
In function ‘void setup()’: ScanNetworks:52: error: ‘class WiFiClass’ has no member named ‘firmwareVersion’ String fv = WiFi.firmwareVersion(); |
То вероятнее всего, среда Arduino компилирует библиотеку WiFi для платы Arduino (вместо использования библиотеки ESP32 WiFi).
Примечание: Вы, вероятно, никогда не будете использовать WiFi-экран с платой Arduino, так ведь? Если вы его не используете, вы можете удалить эту папку (ну или переместить ее на рабочий стол, например).
Библиотека WiFi находится по аналогичному пути:
C:UsersruisantosDownloadsarduino-1.8.7-windowsarduino-1.8.7librariesWiFi
И /или в:
C:UsersruisantosDocumentsArduinolibrarieslibrariesWiFi
После удаления всей папки библиотеки WiFi из одного или обоих мест перезапустите Arduino IDE и попробуйте снова скомпилировать код.
COM-порт не найден / недоступен
Если вы подключаете плату ESP32 к компьютеру, но не можете выбрать порт ESP32, доступный в вашей Arduino IDE (он неактивен):
Это может быть одна из следующих двух проблем:
- Отсутствуют драйверы USB;
- Кабель USB не имеет проводов для передачи данных.
Если вы не видите доступный COM-порт вашего ESP, это может означать, что у вас не установлены драйверы USB. Присмотритесь к микросхеме рядом с регулятором напряжения на плате и проверьте ее название.
Плата ESP32 DEVKIT V1 DOIT, например, использует чип CP2102.
Зайдите в поисковик и найдите свой чип, установите драйверы для него.
Вы можете скачать драйверы CP2102 на сайте Silicon Labs.
После их установки перезапустите Arduino IDE, и вы должны увидеть COM-порт в меню «Инструменты».
Если у вас установлены драйверы, но вы не видите свое устройство, еще раз проверьте, что вы используете USB-кабель с проводами для передачи данных.
USB-кабели от внешних аккумуляторов часто не имеют проводов для передачи данных (они только заряжают). То есть, ваш компьютер не сможет установить последовательную связь с ESP32. Используйте другой USB-кабель.
Монитор порта в Arduino IDE «не работает»
Если ESP32 выводит только странный текст или бессвязные сообщения в мониторе порта среды Arduino, убедитесь, что у вас выбран правильный COM-порт, и установите правильную скорость передачи. В большинстве примеров используется скорость 115200 бод.
Ошибка: «Brownout detector was triggered»
Когда вы открываете монитор порта и появляется повторяющееся сообщение об ошибке «Brownout detector was triggered», скорее всего это значит, что есть какая-то проблема с оборудованием.
Это часто связано с одной из следующих проблем:
USB-кабель плохого качества;
Слишком длинный USB-кабель;
Дефект в плате (плохо припаянные соединения);
Неисправный USB-порт на ПК;
Через USB-порт на ПК идет недостаточно питания.
Решение: попробуйте другой более короткий USB-кабель, попробуйте другой USB-порт компьютера или используйте USB-концентратор с внешним источником питания.
Плата ESP32 не работает с Arduino IDE
Если вы следовали всем советам по устранению неполадок, а ESP32 не работает с Arduino IDE, мы рекомендуем попробовать редакторы Atom и PlatformIO.
Заключение
Мы надеемся, что руководство оказалось полезным. Если у вас возникнут другие проблемы, опубликуйте их в комментариях ниже, и мы постараемся помочь вам решить вашу проблему.
Данный материал был переведен с сайта RandomNerdTutorials.com. Авторские права принадлежат ее автору — Rui Santos. Автор продает очень полезные и толковые курсы по ESP8266 / ESP32 (на английском языке), ознакомиться с которыми можно по ссылке.
Вопросы по прошивке и работе с кодом лучше писать напрямую автору в комментариях к статье (на англ. языке)
Вольтик — это слаженная команда амбициозных и заядлых инженеров. Мы создали этот проект с целью вовлечения вас, талантливых и начинающих профессионалов, в увлекательный мир мейкерской микроэлектроники!