UART TTL терминал на базе Arduino Pro Mini

Код товара: Terminal v1.1
Доступность: На складе
Артикул: 1004-1119

  • 180.00грн




 Большое количество современных электронных устройств, таких как компьютеры, маршрутизаторы, микроконтроллерные устройства, планшеты и др. имеют на борту интерфейс UART, хотя далеко не всегда он доступен обычному пользователю. Обычно это просто три или четыре расположенных вместе отверстия под пайку на плате. Для электронщиков UART является удобным инструментом для отладки, настройки, обмена данными между устройствами, изучения схемы работы устройства и многих других полезных вещей.

 Перед тем, кто использует данный интерфейс стоит вопрос: какое же устройство использовать для отображения даных с UART. Удобным выбором является компьютер, но во-первых для его использования нужен переходник RS232-TTL или USB-TTL (почти все устройства используют именно TTL-уровни), во-вторых для этого необходим собственно сам компьютер с необходимыми программами, и во-третьих - не всегда есть желание подключать к компьютеру девайс, над которым идет работа (например если Вы отлаживаете работу контроллера высоковльтных нагрузок).

Многим хотелось бы иметь под рукой компактный и недорогой UART TTL терминал.  Подобное желание было и у автора данного проекта. В итоге было разработано простое устройство, которое описано ниже. Вы можете собрать его по нашей инструкции из своих комплектующих (подойдет почти любая Arduino-плата), или же купить у нас готовый комплект со всем необходимым.

 Комплект состоит из платы Arduino Pro Mini ATMega328, USB-UART конвертера , дисплея Nokia 5110 LCD и необходимых проводов.

  Программа часть написана на языке Wiring, а аппаратная часть состоит из легко соединяемых отдельных модулей, благодаря чему UART TTL терминал на базе Arduino Pro Mini может быть собран своими руками людьми без глубоких знаний электроники и программирования. 

Комплектация:

  • Arduino Pro Mini ATMega328 в антистатической упаковке
  • 3 контактных PLS-планки 
  • USB-TTL конвертер PL2303HX USB-UART
  • дисплей Nokia 5110 LCD  
  • 11 проводов для соединения модулей

 

Инструкция по сборке:

1) Скачайте и установите Arduino IDE. На указанном сайте также можно найти информацию по первичной настройке и работе с IDE, а также ответы на основные вопросы по работе с ней.

2) Скачайте библиотеку LCD5110_Graph и распакуйте ее в папку arduino-1.0.4\libraries

3)Подключите Arduino Pro Mini к компьтеру посредством USB-TTL конвертера и загрузите в плату следующий скетч:




#include <LCD5110_Graph.h> // Подключение библиотеки LCD5110_Graph
LCD5110 myGLCD(8,9,10,11,12); // SCLK, DN(MOSI), D/C, RST, SCE
extern uint8_t TinyFont[]; // Будет использоваться внешний шрифт TinyFont
char screen[168];
int currentPosition=0;
//--------------------------------
void setup()
{
  Serial.begin(9600);
  myGLCD.InitLCD(); // Инициализация дисплея
  myGLCD.setFont(TinyFont); // Установка шрифта
  myGLCD.print("Terminal v1.1 ", CENTER, 0);
  myGLCD.print("by mini-tech.com.ua", CENTER, 6);
  myGLCD.update(); // Обновление содержимого дисплея
  delay (3000);
  myGLCD.clrScr();
}
//--------------------------------
void loop()
{
byte incomeByte;  
while (Serial.available()>0) // Если в буфере Serial порта есть доступные даные 
{
  incomeByte=Serial.read(); // Считывание байта в переменную incomeByte
  switch (incomeByte)
  {
    case '
':{
      while ((currentPosition+1)%21 != 1){
        screen[currentPosition]=' ';
        currentPosition++;}
        break;} 
    case '
':{ 
      while ((currentPosition+1)%21 != 1){
        currentPosition--;
        screen[currentPosition]=' ';}
        break;}
    default:
      screen[currentPosition]=char(incomeByte); // Преобразование полученного байта в тип char 
      currentPosition++; // и его помещение в массив screen. Переход на след. позицию  
  }
  if (currentPosition > 167){ // Если экран заполнен
    screenShift(); // Вызов функции сдвига экрана вверх на одну строку
    currentPosition=147;} // Перемещение в начало последней строки   
}
screenPrint(screen); // Вызов функции вывода данных на дисплей
}
//--------------------------------
void screenPrint(char displayMatrix[168]) // Функция вывода данных на дисплей
{
  char line[21]; // Строка экрана
  int i, j;
  for(i=0; i<8; i++){ // Цикл для строк
    for(j=0; j<21; j++){ // Цикл для символов
       line[j]=displayMatrix[i*21+j];} // Наполнение текущей строки
    myGLCD.print(line, 0, i*6); // Печать строки в буффер дисплея
    myGLCD.update();} // Обновление содержимого дисплея
}
//--------------------------------
void screenShift()// Функция сдвига содержимого дисплея на одну строку вверх
{
for (int i=0; i<147; i++){ // Каждый символ по очереди копируется на ту же 
  screen[i]=screen[i+21];} // позицию в верхней строке
for (int i=147; i<168; i++){ // Последняя строка 
  screen[i]=' ';} // заполняется пробелами
}  

Примечание: если использовать такой же конвертер, как у нашем комплекте или подобный (без отдельного вывода RESET), то необходимо вручную нажать кнопку RESET на плате после завершения процесса компиляции, когда внизу окна Arduino IDE появится надпись "Загрузка".

4)  Если после загрузки скетча Вы получили сообщение "Done uploading.", значит все сделано правильно и можна приступать к следующему этапу - подключению дисплея. Это необходимо сделать согласно следующей схеме:

Выводы Arduino                Выводы дисплея
+5V, GND VCC, GND
8 SCLK
9 DIN (MOSI)
10 D/C
11 RST
12 SCE

 

5) После подключения дисплея еще раз проверьте правильность соединения выводов, если все правильно - устройство можно включать. Для этого необходимо:

  •  подать на терминал питание.  Можно питать через USB-TTL конвертер от любой зарядки с разъемом USB, или же отключить конвертер и питать напрямую от источника питания с напряжением 5В
  •  после включения на дисплее должна в течении 3 секунд отображаться надпись "Terminal v1.1 by mini-tech.com.ua"

6) Подключите к входу RX платы Arduino UART-устройство, с которого мы хотим отображать данные, после чего на дисплее появится соответствующий текст


 

/span

Внимание: HTML не поддерживается! Используйте обычный текст!