Добрый день. Есть прибор E7-20 и ардуино нано. У E7-20 есть com-порт. Необходимо данные, которые он измеряет писать на карту памяти. Купил конвертор RS232 to TTL, перепаял на нём разъём мама на папа, соединил с Е7-20 комплектным кабелем и через SoftwareSerial сделал программный Serial. Пытаюсь принять данные, но не получается. На ардуино моргает TX, но это, как я понимаю, данные передаются на комп.
На комп бесконечно приходит такая строка, независимо от того, что показывает Е7-20.
Через родную программу работает, значит порт и кабель исправны. Посоветуйте, куда копать дальше. Просьба пинать не сильно, и в нужном направлении, это мой первый проект на ардуино
В инструкции есть описание протокола
скетч:
#include <microDS18B20.h>
#define BUF_SIZE 22
SoftwareSerial mySerial(10, 11); // RX, TX
//массив полученных данных
byte buf[BUF_SIZE];
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
}
void loop()
{
if(mySerial.available())
{
mySerial.readBytes(buf, BUF_SIZE);
for(int i = 0; i < BUF_SIZE; i++)
{
Serial.print(buf[i]);
Serial.print(":");
}
Serial.print("END\n");
}
}
Код:
255:255:255:255:255:255:255:255:255:255:255:255:255:255:255:255:255:255:255:255:255:255:END
В инструкции есть описание протокола
Протокол обмена прибора с компьютером
Прибор непрерывно находится в режиме передачи. Формат передаваемого кадра: 0xAA,
Offset, Level, Frequency, Flags, Mode, Limit, ImParam, SecParam, SecParam_Value,
ImParam_Value, onChange, CS, где;
0xAA – байт синхронизации;
Offset – младший и старший байт значения смещения;
Level – байт значения уровня измерительного сигнала;
Frequency – младший, старший байт значения частоты и байт множителя 10 частоты;
Flags – байт флагов:
4-й бит – автовыбор схемы замещения;
3-й бит – допуск;
2-й бит – параллельная/последовательная схема замещения;
1-й бит – автоматический режим переключения поддиапазонов;
Mode – режим работы прибора: 0х1 – режим измерения;
Limit – предел измерения;
ImParam – измеряемый параметр:
0х0 – Ср;
0х1 – Lp;
0x2 – Rp;
0x3 – Gp;
0x4 – Bp;
0x5 – |Y|;
0x6 – Q;
0x7 – Cs;
0x8 – Ls;
0x9 – Rs;
0xA – ;
0xB – Xs;
0xC – |Z|;
0xD – D;
0xE – I;
SecParam – дополнительный измеряемый параметр;
SecParam_Value – старший, средний, младший байты и байт множителя 10
дополнительного измеряемого параметра в дополнительном коде;
ImParam_Value – старший, средний, младший байты и байт множителя 10 измеряемого
параметра в дополнительном коде;
OnChange – байт флагов редактирования:
3-й бит – изменение поддиапазона;
2-й бит – изменение частоты;
1-й бит – изменение смещения;
0-й бит – изменение уровня;
CS – контрольная сумма.
Прибор принимает однобайтные команды соответствующие нажатию клавиш управления:
0х0 – Меню;
0х1 – Вправо;
0х2 – Z/;
0х3 – режим R;
0х4 – Вниз;
0х5 – Ввод;
0х6 – Вверх;
0х7 – режим L;
0х8 – калибровка;
0х9 – Влево;
0хА – режим I;
0хВ – режим С;
0хС – изменение смещения;
0хD – изменение частоты;
0xE – изменение уровня сигнала;
0xF – изменение поддиапазона.
Прибор непрерывно находится в режиме передачи. Формат передаваемого кадра: 0xAA,
Offset, Level, Frequency, Flags, Mode, Limit, ImParam, SecParam, SecParam_Value,
ImParam_Value, onChange, CS, где;
0xAA – байт синхронизации;
Offset – младший и старший байт значения смещения;
Level – байт значения уровня измерительного сигнала;
Frequency – младший, старший байт значения частоты и байт множителя 10 частоты;
Flags – байт флагов:
4-й бит – автовыбор схемы замещения;
3-й бит – допуск;
2-й бит – параллельная/последовательная схема замещения;
1-й бит – автоматический режим переключения поддиапазонов;
Mode – режим работы прибора: 0х1 – режим измерения;
Limit – предел измерения;
ImParam – измеряемый параметр:
0х0 – Ср;
0х1 – Lp;
0x2 – Rp;
0x3 – Gp;
0x4 – Bp;
0x5 – |Y|;
0x6 – Q;
0x7 – Cs;
0x8 – Ls;
0x9 – Rs;
0xA – ;
0xB – Xs;
0xC – |Z|;
0xD – D;
0xE – I;
SecParam – дополнительный измеряемый параметр;
SecParam_Value – старший, средний, младший байты и байт множителя 10
дополнительного измеряемого параметра в дополнительном коде;
ImParam_Value – старший, средний, младший байты и байт множителя 10 измеряемого
параметра в дополнительном коде;
OnChange – байт флагов редактирования:
3-й бит – изменение поддиапазона;
2-й бит – изменение частоты;
1-й бит – изменение смещения;
0-й бит – изменение уровня;
CS – контрольная сумма.
Прибор принимает однобайтные команды соответствующие нажатию клавиш управления:
0х0 – Меню;
0х1 – Вправо;
0х2 – Z/;
0х3 – режим R;
0х4 – Вниз;
0х5 – Ввод;
0х6 – Вверх;
0х7 – режим L;
0х8 – калибровка;
0х9 – Влево;
0хА – режим I;
0хВ – режим С;
0хС – изменение смещения;
0хD – изменение частоты;
0xE – изменение уровня сигнала;
0xF – изменение поддиапазона.