Как открыть монитор порта arduino

Содержание

Всем привет! В интернете бытует заблуждение, что для управления компьютером при помощи самодельной электроники нужны только специальные платы, которые могут распознаваться как USB HID устройства. А касаемо Arduino все только и говорят о Arduino Leanardo. Такие популярные библиотеки как Keyboard и Mouse, которые позволяют создавать эмуляцию работы мыши или клавиатуры посредством микроконтроллера предназначены только для пары плат Arduino, Leonardo в их числе.

Я расскажу о том, как наладить связь любого микроконтроллера Arduino (для примера взята Arduino Uno) и своей программы на Processing. Добавив ко всему прочему знания о Java, на котором основывается Processing, можно будет дописать проект под управление всем компьютером, а не только собственным приложением. Тема управления компьютером программой на Java не есть чем то секретным, погуглите и все найдете, уверяю вас.

Скачиваем среды для разработки (IDE)

Существует много интегрированных сред разработки для программирования микроконтроллеров на чистом Си. Из них можно отметить самые удобные: Atollic, Eclipse, Keil.

Уроки Arduino #2 — работа с монитором COM порта

Однако для простоты и доступности данного руководства я буду использовать редактор Arduino IDE и писать на Ардуино Си. Скачать такой редактор можно с официального сайта Arduino.

Среду разработки для программирования на Procrssing так же можно скачать с официального сайта.

Стоит отметить, приличия ради, что данные IDE очень похожи, потому что написаны на одном движке. И когда создавался Arduino основатели старались как можно больше упростить свой редактор кода, как это и было сделано в Processing редакторе.

Arduino. Собираем схему и пишем код

В данном примере я буду использовать Arduino Uno. К ней будет подключена кнопка, потенциометр и светодиод. Соответственно я могу выдавать логический 0 или 1. Читать логический 0 или 1. И проводить Аналого-цифровое преобразование(ADC или АЦП), получая числа от 0 до 1023 (в Arduino Uno 10-ми разрядный АЦП) в зависимости от положения потенциометра. Большего для примера и не нужно, так как это основные функции, которые может делать микроконтроллер.

На схеме светодиод анодом подключен к 5V через ограничивающий резистор ( минимум 220 Ом, желательно 500 Ом), катодом к пину D11. Кнопка замыкает землю и пин D2. Потенциометр меняет потенциал на пине A1.

Задача микроконтроллера следующая: Если по последовательному интерфейсу (Serial COM port) приходит сообщение «LED — H» — засветить светодиод. Если приходит сообщение «LED — L» — затушить светодиод. Каждые 250мс отправлять сообщение в последовательный порт (в данном случае на экран компьютера) сообщение «Pot — » и число, полученное аналоговым чтением пина A1. При нажатии кнопки единожды отсылать сообщение «Button is pressed!».

Вот мое предложение решения данной задачи (не пример для подражания):

Прошивка для Arduino Uno

#define pinPot A1 #define pinLed 11 #define pinBtn 2 void setup() < pinMode(pinPot, INPUT); pinMode(pinLed, OUTPUT); pinMode(pinBtn, INPUT_PULLUP); Serial.begin(9600); Serial.println(«The program starts.nn»); >void loop() < /* INITIAL VARIABLES. Segment 1 */ static char potMes[] = «Pot — «; static char btnMes[] = «Button is pressed!»; static char passLight[] = «Led — «; static int passLength = sizeof(passLight) — 1; static int sizepm = sizeof(potMes) — 1; static int sizebtn = sizeof(btnMes) — 1; static bool flagLedState = LOW; static bool flagBtnPress = false; static long int curTime = 0; static const int period = 200; static bool flagEnableRead = false; /* INITIAL VARIABLES. Segment 1 */ /* FUNCTIONS CALL. Segment 2 */ /* * Led is attached to HIGH voltage from one side * And to pin on the other side * By that the inverting logic */ ReadSerialForLed(passLight, passLength, digitalWrite(pinLed, !flagLedState); /* * Button pin always is pulled to the HIGH voltage * And only when button is pressed — Voltage on pin goes to GROUND * So it is need to invert logic when read pins */ if(!Bounce(pinBtn) flagBtnPress == false)< for(int i = 0; i < sizebtn; i++)< Serial.write(btnMes[i]); >Serial.print(«n»); flagBtnPress = true; if(!flagEnableRead) < curTime = millis(); flagEnableRead = true; >>else if(Bounce(pinBtn)) < flagBtnPress = false; >/* * Read and send Info «Pot — » + var Only after first press on button * Every ‘period’ms */ if(millis() — curTime > period flagEnableRead) < SendData(pinPot, potMes, sizepm); curTime = millis(); >/* FUNCTIONS CALL. Segment 2 */ > /* * Pot — pin with potentiometer * pMes — Array with message before Pot value * sp — size of potentiometer message */ void SendData(int Pot, char* pMes, int sp) < static int varP[2]; varP[0] = analogRead(Pot); varP[1] = varP[0]/256; // 0 — 3 (256 — 1024) varP[0] = varP[0]%256; // 0 — 255 //Send Message for(int i = 0; i < sp; i++)< Serial.write(char(pMes[i])); >//Send 2 bits of data //Serial.write(varP[0]); //Serial.write(varP[1]); Serial.print(analogRead(Pot)); Serial.print(«n»); > /* * Function, which is reads button pin with the bounce */ bool Bounce(int btn)< if(digitalRead(btn) == true)< delay(15); if(digitalRead(btn) == true)< return true; >else < return false; >>else < return false; >> /* * If Message from Serial port, which you read will be the same to passLight * So look at the next symbol after Pass Message. If it is symbol ‘H’ — make LED to light * If it is ‘L’ — make LED off. */ void ReadSerialForLed(char *passLight_f, int passLength_f, bool* flagLedState_f) < static char sym; static int cntPass = 0; static bool readyGetLed = LOW; while (Serial.available() >0) < sym = Serial.read(); if(sym == passLight_f[cntPass] !readyGetLed)< cntPass++; >else if (!readyGetLed)< cntPass = 0; >else if(readyGetLed)< if(sym == ‘H’)< *flagLedState_f = HIGH; >else if(sym == ‘L’) < *flagLedState_f = LOW; >> if(cntPass == passLength_f) < readyGetLed = HIGH; >> >

Комментарий: Светодиод подключен анодом к питаю. Это инвертирует логику состояния светодиода и больше никакой пользы не приносит. Кнопка не обвязана подтягивающим резистором из соображений экономии, так как в Arduino Uno имеются встроенные подтягивающие резисторы, которые включаются в схему при инициализации пина в режим INPUT_PULLUP.
Так же в прошивке сообщения о значении снятого с потенциометра отсылаются только после первого нажатия на кнопку!

Еще по теме:  ЖК монитора принцип работы кратко

Что бы залить прошивку в плату не забывайте выбрать порт и плату.

Если вы не знаете какой COM порт у вас отведен для платы Arduino, то на Windows заходим в
Панель управления -> Диспетчер устройств и нажимаем на вкладку «Порты COM»

Если у вас COM порт не подписан как у меня — всегда можно отсоединить Arduino и посмотреть который порт пропадет. А вот если никакой не пропал и Ардуина вовсе не распознается компьютером — значит пора поискать решение в интернете. Но начните с обновления драйверов или смены платы.

Когда все получится — попробуйте открыть монитор порта и ввести «Led — H», «Led — L», по нажимайте на кнопку, покрутите потенциометр и смотрите на экран, все ли правильно выводится.

Наигрались — поменяйте слегка код.

Замените последнюю строку кодом из комментария.

//Send 2 bits of data //Serial.write(varP[0]); //Serial.write(varP[1]); Serial.print(analogRead(Pot));

Теперь значения с потенциометра не будут выглядеть читабельными, но такой маневр требуется для программы на Processing.

Processing. Пишем программу, которая взаимодействует с микроконтроллером

Суть связи программы на Processing и микроконтроллера очень проста. Для этого языка программирования существует библиотека Serial, которая позволяет принимать сообщения, отправленные как Serial.write(); , а так же позволяет отправлять сообщения как Serial.print(); . Важно отметить, что при подобной отправке сообщения оно будет записано в буфер порта, а значит будет прочитано микроконтроллером. Так что нам осталось только подключиться к нужному Serial порту и принимать/отправлять на него сообщения.

Следующая программа подключит библиотеку Serial и напишет в консоли редактора список всех COM портов, к которым можно подключиться.

import processing.serial.*; void setup() < String[] port = Serial.list(); for(int i = 0; i < port.length; i++)< print(«Port number #» + i + » «); println(Serial.list()[0]); >> void draw() <>

Когда вы напишете код в редактор и нажмете на кнопку «Пуск» (стрелочка 1 на картинке), то появится окно приложения(2) и в консоли(3) выведется список COM портов.

У меня только один такой COM порт и в листе, как в массиве, он будет находиться под номером 0. Из этих соображений объекту класса Serial: Serial port; при его создании будет указан именно первый элемент списка портов port = new Serial(this, Serial.list()[0], 9600);

Залейте в Ардуину нашу последнюю прошивку с изменением. После чего напишите вот эту программу и запустите ее. В ней Каждые 500 миллисекунд отправляется сообщение в COM порт потушить или зажечь светодиод. И если все у вас сделано правильно, то после запуска приложения светодиод должен мигать.

import processing.serial.*; Serial port; // Create object from Serial class void setup() < port = new Serial(this, Serial.list()[0], 9600); >void draw()

Или вот другой пример. Светодиод будет менять свое состояние после любого нажатия на окно приложения (размеры которого 800х800px) кнопкой мыши.

import processing.serial.*; Serial port; // Create object from Serial class int cnt = 0; void setup() < size(800, 800); port = new Serial(this, Serial.list()[0], 9600); >void draw()<> void mousePressed() < cnt++; if(cnt % 2 == 1)< port.write(«Led — H»); >else < port.write(«Led — L»); >>

Processing. Пример многофункционального приложения

Данное элементарное приложение симулирует «полет в космосе», если это можно так назвать.

Значение с потенциометра изменяет скорость полета, нажатие на кнопку меняет направление полета. А любое нажатие кнопки мыши на окно приложения — меняет состояние светодиода (да, ничего оригинальнее я не придумал).

Мой код далек от совершенства, не принимайте его как хороший пример. Это просто пример, который работает. Вот, собственно, он.

Пример многофункциональной программы

import processing.serial.*; Serial port; // Create object from Serial class int val; // Data received from the serial port (symbol) int pot; // Data from potentiometer String potMes = «Pot — «; String btnMes = «Button is pressed!»; int cntPM = 0; // Counter Potentiometer Message. // When it equals to length of Pot Mess — get value. int cntBM = 0; int cntBtnPress = 0; int cntMousePress = 0; Star[] stars = new Star[1000]; float speed; int dir = 1; void setup() < size(800, 800); for(int i = 0; i < stars.length; i++)< stars[i] = new Star(); >frameRate(60); // 60 Frames per second port = new Serial(this, Serial.list()[0], 9600); // Wait for first message from Arduino delay(2000); while (port.available() > 0) < val = port.read(); print(char(val)); >> void draw() < if (port.available() >0) < val = port.read(); cntPM = CheckSymbol(potMes, cntPM, char(val), cntPM); cntBM = CheckSymbol(btnMes, cntBM, char(val), cntBM); >DrawRain(pot, 0, 1023); > void DrawRain(int speed_f, int min, int max) < background(0); translate(width/2,height/2); speed = dir*map(speed_f, min, max, 0, 50); for(int i = 0; i < stars.length; i++)< stars[i].go(); stars[i].update(); stars[i].show(); >> int CheckSymbol(String mes, int index, char sym, int ret_val)< if(mes.charAt(index) == sym ret_val < (mes.length() — 1))< return (ret_val + 1); >else if( ret_val == (mes.length() — 1) mes.equals(potMes) ) < if(port.available() >0) < pot = port.read(); // First 0-255 value >if(port.available() > 0) < pot += 256*port.read(); // Last 2 bits 256 — 1024 >>else if( ret_val == (mes.length() — 1) mes.equals(btnMes) ) < cntBtnPress++; dir = -dir; >return 0; > void mousePressed() < cntMousePress++; if(cntMousePress % 2 == 1)< port.write(«Led — H»); >else < port.write(«Led — L»); >>

Думаю, нужно написать, что идею последней программы я подцепил у одного программиста — Daniel Shiffman, который снимает ролики, понятные даже детям, о программировании на Processing (решено более 140 визуальных задач).

Когда я пытался сам разобраться в том что и как нужно делать для связи Processing и Arduino мне очень помогли вот эти сайты:

  1. developer.alexanderklimov.ru/arduino/processing.php
  2. arduino-diy.com/arduino-processing-osnovi

Источник: habr.com

Работа с последовательным портом UART (serial) на Arduino

Последовательный интерфейс (serial) предназначен передачи данных через универсальный асинхронный порт UART. Порт UART очень часто используется для передачи данных с Ардуино на компьютер, и обратно, а также для связи нескольких плат ардуин между собой.

Для многопортовых DUE/MEGA см. здесь.

Основные функций для работы с последовательным портом (Serial)

Serial.begin(rate) — Открывает последовательный порт и задаёт скорость для последовательной передачи данных. Типичная скорость обмена для компьютерной коммуникации — 9600.

Еще по теме:  Как узнать модель матрицы монитора

Очевидно, когда задействован последовательный порт, выводы 0 (RX) и 1 (TX) не могут использоваться для других целей.

Serial.println(data) — Передаёт данные в последовательный порт, сопровождая автоматическим возвратом каретки и переходом на новую строку.

Serial.print(data) — тоже самое без возврата каретки и перехода на новую строку.

Serial.begin(скорость_передачи); — Инициализация порта. Задает скорость передачи в битах в секунду. Нормированные скорости: 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, или 115200.

count = Serial.available(); — Принимаемые по последовательному порту байты попадают в буфер микроконтроллера, откуда Ваша программа может их считать. Функция возвращает количество накопленных в буфере байт. Последовательный буфер может хранить до 128 байт.

if (Serial.available() > 0) < // Если в буфере есть данные // здесь должен быть прием и обработка данных >

char = Serial.read(); — Считывает следующий байт из буфера последовательного порта. возвращает -1 если нет входящих данных

Serial.flush(); — Ожидает окончания передачи исходящих данных (до версии Arduino 1.0 функция очищала буфер последовательного соединения)..

Разные варианты функции print:

Serial.print(b, DEC); — выводит ASCII-строку — десятичное представление числа b.

Serial.print(b, BYTE) — выводит младший байт числа b.

(аналогично HEX, OCT, BIN).

Serial.print(str) // если str — строка или массив символов, побайтно передает str на COM-порт.

Serial.println(); — отличие заключается в том, что после данных дополнительно выводятся два символа – символ возврата каретки (ASCII 13, или ‘r’) и символ новой линии (ASCII 10, или ‘n’).

Функция write:

Serial.write(uint8_t c); — Записывает данные в последовательный порт. Данные посылаются как байт или последовательность байт.

Serial.write(val); // где val — переменная для передачи, как единственный байт

Serial.write(str); // где str — строка для передачи, как последовательность байт

Serial.write(buf, len); // где buf — массив для передачи, как последовательность байт; len — длина массива.

Пример 1. Передача данных по Serial-порту с Arduino на компьютер

Инициализация порта со скоростью 9600 бот и передача данных (от Arduino на внешние устройства, например на компьютер):

void setup() < Serial.begin(9600); // открывает порт и устанавливает скорость 9600 бит/c Serial.println(«Hello Computer»); >void loop() <>

Пример 2. Передача данных по Serial-порту с компьютера на Arduino

serialEvent() — функция вызывается автоматически, когда поступают данные.

String inputString = «»; void serialEvent() < // Далем что то с поступившими данными while (Serial.available()) < char inChar = (char)Serial.read(); // get the new byte inputString += inChar; if (inChar == ‘n’) < stringComplete = true; >>

Serial.setTimeout() — задает максимальное время (в мс) для работы Serial.readBytesUntil();

Возможные проблемы

1) auto-reboot DTR : возможна автоперезагрузка МК при передаче на него данных по serial-пору. Чтобы отключить это, надо поставить конденсатор 10мкФ между RES и GND. Я ставил электролитический кондер (естественно, + на RES).

Как соединить две ардуины по UART (serial) порту

Схема соединения двух ардуин:

Длина провода и скорость: RS-232 (англ. Recommended Standard 232) — стандарт физического уровня для асинхронного интерфейса (UART).

Расстояние связи по RS232 максимум 15 метров.

Но всё зависит от скорости.

Работа Arduino MEGA/DUE с несколькими последовательными serial портами

Многопортовые ардуино.

Как вы уже заметили, на ардуиновских платах Mega и Due имеется по 4 последовательных порта, а именно:

Serial — выводы 0 (RX) and 1 (TX);

Serial1 — выводы 19 (RX) and 18 (TX);

Serial2 — выводы 17 (RX) and 16 (TX);

Serial3 — выводы 15 (RX) and 14 (TX).

Естественно, что на Due используется напряжение 3.3 В (на MEGA как обычно 5 В).

Как с ними работать?

Здесь синим цветом выделены собственно имена объектов ( Serial , Serial1 , Serial2 , Serial3 ), которые используются в коде программы для работы с их методами. Всё просто! Например,

// Пример работы с несколькими serial-портами: void setup() < // инициализируем те порты, котор: Serial.begin(9600); Serial1.begin(9600); Serial2.begin(9600); Serial3.begin(9600); >// и так же с ними работаем: void loop() < // выводим строку в порт-2: Serial2.print(«Hello World!»); // читаем данные из порта-1 и пишем в порт-3: if (Serial1.available()) < int inByte = Serial1.read(); Serial3.write(inByte); >>

Пример вывода на дисплей LCD1602 через последовательный порт UART Arduino из-под Linux средствами языка Python

Короче говоря, есть комп с линуксом, к которому подключена Arduino через USB, а к арудине подключен дисплей LCD1602, и мы хотим на него выводить инфу.

Сначала привожу полный код программы для Arduino UNO, к которой подключен дисплей LCD1602:

#include gt LiquidCrystal_I2C lcd(0x27,16,2); /* или 0x3F. */ const char TERM_SYMBOL = ‘#’; String inputString = «»; void serialEvent() < while (Serial.available()) < char inChar = (char)Serial.read(); // get the new byte Serial.print(inChar); if (inChar != TERM_SYMBOL) < inputString += inChar; >else < lcd.setCursor(0, 0); lcd.print(inputString); // Выводим текст inputString = «»; >> > void setup() < Serial.begin(9600); Serial.println(«Hi Computer»); lcd.init(); // Инициализация lcd.backlight(); // Включаем подсветку lcd.print(«Ready to work»); // Выводим текст >void loop() // цикл

Я сделал здесь решетку ‘#’ в качестве символа завершения передачи пакета данных. Как только в потоке данных встречается символ #, данные выводятся на дисплей, и буфер обнуляется, при этом сам символ ‘#’ не выводится. Конечно, можно было бы использовать ‘n’ или др.

Далее мы напишем скрипт на Python, который будет выводить инфу на дисплей. Я выбрал Python, потому что это прикладной язык и он лучше всего подходит для подобных задач. С такими языками как C++/C# и т.п. больше возни с библиотеками, а здесь всё просто, особенно если это дело происходит под линуксом.

Первым делом устанавливаем необходимые библиотеки (для 2-ой или 3-ей версии python)

$sudo apt-get install python-serial

$sudo apt-get install python3-serial

Далее в интерпретаторе python пишем:

import serial ser = serial.Serial(«/dev/ttyUSB0») ser.baudrate = 9600 ser.write(‘ #’) # очищаем строку ser.write(«123; It’s work#») # выводим какие-либо данные

Здесь ардуина у меня подключена к порту /dev/ttyUSB0 — это я узнавал из Arduino IDE. Обычно она всегда на этом порту сидит, если других устройств на последовательный порт не подключено.

Как вы уже догадались, и в первой, и во второй программы должна быть указано одинаковая скорость в бодах. В моем случае это 9600 — стандартная, хотя и маленькая скрость. Может быть и больше (читай выше).

Платы ARDUINO по низкой цене

Нажми на изображение, чтобы заказать в интернет-магазине:

Now 25.09.23 6:19:42, Your IP: 93.185.27.206; arduino.zl3p.com/basic/serial
ePN

Еще по теме:  Как узнать размер монитора компьютера

Источник: arduino.zl3p.com

Arduino serial порт. Как сохранить файл.

Сегодня я расскажу как используя только одну Ардуино или плату ESP, сохранять полученные значения от датчиков в файл на компьютере. Для примера я буду использовать Ардуино, так как она проще и быстрее прошивается. Но всё сказанное в полной мере относится и к ESP.

Для начала надо скачать программу PUTTY.
Это бесплатная программа. Помимо всего прочего, она может работать с COM портом компьютера. Если говорить проще, то, то что вы видите когда подключаетесь к монитору порта в Ардуино IDE, то тоже самое можно увидеть через эту программу. А ещё и сохранить в файл.
Для чего это может понадобиться. Ну, например для вывода температуры с датчика в Эксель с построением графика. А ещё если в мониторе порта установить привязку ко времени, то и модуль часов точного времени не потребуется.
Вот так выглядит интерфейс программы. Ничего сложного. Нам понадобятся только вот эта вкладка.

Скачивать желательно с официального сервера программы https://www.putty.org/
Нажав на ссылку вас перебросит на вот этот сайт, где можно выбрать последнюю сборку программы.

Но можно скачать и русскую версию, вот по этому адресу. https://putty.org.ru/download.html
Я правда её не устанавливал, но может вам понравится.

Думаю как устанавливать программы объяснять не надо. Среди нас маленьких нет. По статистике мой канал смотрят. Жалко, что второй половинки у нас совсем мало. Но ничего, возможно подтянутся потом.
А вот из каких стран больше всего заходят. Если вашей страны нет в этом списке, то вы можете это исправить. Кто не понял – это всё была шутка.

Теперь запускаем программу и смотрим, что это за зверь такой.
Здесь очень много возможностей, но мы сегодня рассмотрим только то что необходимо для сегодняшнего видео.
В левой части – меню с раскрывающимся списком.
В правой части – настройки.

Сегодня нам понадобится только вкладка сессия. В ней мы будем настраивать подключение к удаленному компьютеру. В нашем случае – это Ардуино или ESP. Здесь вводятся такие параметры как:
• параметры подключения IP адрес или имя хоста
• порт
• тип подключения

Теперь давайте посмотрим как это всё работает.
Запускаем Arduino IDE и откроем какой-нибудь пример, например пример AnalogReadeSerial и немного подредактируем его. Этот пример выводит значения с аналогового порта А0. Так как к нему сейчас ничего не подключено и он не притянут к земле или к плюсу питания, то на нём сейчас некий шум. Случайные значения.
Скорость передачи в серийный порт 9600.
Немного увеличим delay чтобы цифры не так быстро бегали.
Прошиваем и смотрим что выводится в монитор порта.

Видим как бегают цифры. Но так как в конце этого урока мы построим график из этих данных, то нам надо будет их как-то отделять. Например точкой с запятой. Для этого отредактируем скетч.

Прошиваем и смотрим. Видим, что теперь после каждой цифры стоит точка с запятой. Это то что нам и было нужно. Теперь закроем монитор. Одновременно получить доступ к одному COM порту может только одна программа.

Хоть мы закрыли монитор, но данные с Ардуино всё равно поступают в COM порт. Ещё раз смотрим на каком порту у нас Ардуино. Это COM порт3.
Теперь приступим к настройке PUTTY.

и выбираем нашу сессию. Проверяем что бы порт был указан верно. Теперь немного подождём что бы побольше данных. Теперь мы видим как бегают наши данные. Теперь сохраним всё это.

  • Сначала выбираем тип подключения – В нашем случае это SERIAL
  • Затем указываем порт к которому подключена Ардуина.
  • Теперь скорость обмена. Такая же как в скетче.
  • Нажимаем OPEN и видим что наша Ардуина всё ещё передают значения в COM порт.

Чтобы каждый раз не вводить значения – это можно сделать 1 раз и сохранить их.
Потом использовать при следующем запуске программы.
Даём имя этой сессии чтобы потом вспомнить что это такое и нажимаем сохранить.
Теперь закроем и снова откроем нашу сохранку, чтобы увидеть, что всё сохранилось.
Теперь перейдём на вкладку LOGGING.
Установим printable output – Вывод на печать.
Выберем always overwrite – Всегда перезаписывать.
И укажем путь для файла в котором всё будем сохранять.
Я указал, что файл будет называться putty.txt и будет он лежать на рабочем столе.
Снова нажимаем Сессию и жмём сохранить.
Вот и все настройки.

Давайте теперь сохраним в файл некоторое количество данных, а затем построим из них график.
Запускаем PUTTY и загружаем нашу сохранённую сессию. Немного подождём, чтобы данных было побольше.
Теперь открываем сохранённый файл и смотрим что в нём есть. Видим ряд цифр – это данные которые были переданы из Ардуино в COM порт и которые мы сохранили на компьютере. Теперь давайте выведем их в виде графика.

Я уверен, что вы и без меня знаете как добавлять данные в Эксель, но всё равно расскажу. Может кто не знает.
Нажимаем вкладку данные и выбираем вставить из текста. Идём туда, куда вы сохранили файл открываем его. У меня Эксель сразу определил, что у меня данные с разделителем точка с запятой. Нажимаем загрузить и все данные вставляются в один столбик. Можно почистить файл.

Я убираю первую строчку и непонятно откуда взявшийся второй столбик.

Теперь копируем весь столбик и переходим на вкладку вставить и выбираем любую из диаграмм. Я выбрал самую простую. В виде столбиков. И данные сразу отобразились в виде графика.
Какай-то слишком однородный график получился. Давайте по приколу изменим пару цифр и посмотрим как это скажется на графике. Видим, что теперь у нас образовался провал в данных.

Можно для сравнения открыть исходный текстовой файл.
Подведём итог, что нового вы сегодня узнали.
Из бесполезной информации – это то какой возраст моей аудитории и из каких стран больше всего сюда заходят.
А надеюсь, что из полезной, это как не используя никаких дополнительных модулей в виде SD карт, можно сохранять данные в файл на компьютере и как их потом можно обрабатывать.
Если вам была полезна эта информация, то не забудьте поставить лайк.
До встречи в новых видео. Они будут ещё интереснее, а частота их выхода будет зависеть от вашей активности.

Источник: arduino-kid.ru

Оцените статью
Добавить комментарий