Иногда бывает полезно иметь внешний монитор последовательного порта, как, например, Serial Monitor в Arduino Editor, чтобы удобнее было отлаживать программу и работать с данными. Поэтому ниже предлагается такое устройство под названием ESM (External Serial Monitor).

В основе ESM лежит микроконтроллер Atmel Atmega328. Его оперативная память составляет 2 КБ, этого достаточно для обработки относительно больших объемов данных. Благодаря меню ESM вы также можете устанавливать скорость передачи данных и останавливать и возобновлять считывание.


Шаг 1: схемы
Ниже приведены все схемы этого проекта.





Шаг 2: список компонентов

C1,C8,C10 100нФ/50В
C2,C3 22пФ/50В
C4,C5,C6 1мкФ
C7,C9 47µF/16V
D1,D2,D3,D4 LED-SMD OSRAM TOPLED, 9 мКд, зеленые
Display1 EA_DOG-S102-6
IC1 ATMEGA328(DIL28S)
IC3 преобразователь напряжения L7805 5В
K1 разъем-мама
Q1 16 МГц
R1,R2,R3,R4 100 КОм
R5,R6,R7,R8 100 Ом
R9 3,3 КОм
R10 1КОм
S2,S3,S4,S5 кнопка JTP-1230
S6 переключатель
9V батарейка
Шаг 3: Arduino-скетч
esm.ino
Основной скетч.
vars.h
Здесь определяются глобальные переменные.
menu.h
Функции меню.
buttons.h
Определяются кнопки.
programs.h
Функции:
menu()
startSerial()
settings()
mode()
myDOG.h
Функции для дисплея DOGS-102.
static void setChipSelectPin(номер вывода как const int)
static void writeByte(unsigned int)
static void Init()
static void begin()
static void drawPic(byte[8][102])
static void displayClear()
static void print(текст как char*)
static void print(текст как char*, строка как int)**
static void print(текст как as char*, столбец как int, строка как int)**
static void print(Number long, столбец как int, строка как int)**
** Col = от 0 до 102 пикселей, Row 0 - 7
myfont.h
Функции и определеня для шрифта.
myPic.h
Начальное изображение.
mySPI.h
Функция для интерфейса SPI.
Всё это в файле esm.zip.
Шаг 4: пример
Arduino содержит следующий код:
/ *
sender.ino
Serial Test Program
* /
void setup () {
Serial.begin (9600);
}
void loop () {
for (int a = 0; a <1000; a + +) {
Serial.print ("int a =");
Serial.println (a);
delay (100);
}
}
Программа посылает каждые 100 мс данные счетчика «int a =» от 0 до 1000. ESM (исходная плата Arduino) соединяется с другим Arduino через выводы TX и RX (крест на крест). Нажав на кнопку play, можно увидеть на дисплее передаваемые данные.
Перевод © digitrode.ru