Отправка данных на программируемый источник питания от Arduino по RS232
У меня есть программируемый источник питания, который имеет последовательный порт связи. Если я отправлю строку "VSET1: 11.00", то источник питания будет установлен на 11.00В. Но мне нужно написать программу, которая увеличит напряжение источника питания на 0,10 В Например, от 0 В до 11,00 В с шагом увеличения 0,10 В. Кроме того, для источника питания необходим фиксированный формат фрейма данных, такой как бит четности, биты данных, стоп-бит. Итак, как создать структуру фрейма данных и отправить ее с arduino.
Нужно ли мне использовать последовательную библиотеку программного обеспечения?
PS. Я новичок в arduino, так что это может показаться глупым.
1 ответ
Сначала вам понадобится адаптер TTL к RS-232. Они наиболее широко известны как "MAX232" и доступны в виде небольшого модуля.
Это преобразует TTL-сигнал 0-5 В, создаваемый Arudino, в сигнал ± 10 В, используемый RS-232. В Интернете есть множество руководств о том, как их использовать.
Затем вам нужно сгенерировать сигнал. Да, для Arduino UNO библиотека SoftwareSerial - это то, что вам нужно. Опять же, есть много руководств по его использованию.
Чтобы на самом деле отправить инструкции, это может быть что-то вроде:
#include <SoftwareSerial.h>
SoftwareSerial PSU(10, 11); // RX, TX
void setup() {
PSU.begin(9600);
}
void loop() {
for (int i = 0; i < 11000; i += 100) { // Здесь я работаю в милливольтах.
PSU.print("VSET1:");
PSU.println(i / 1000.0, 2); // Преобразовать милливольты в вольты с помощью 2 DP
delay(10); // задержка 10 мс
}
}
Я не тестировал его, но это должно дать вам 0-11 В, повышающееся на 0,1 В за 10 мс.
Спасибо, сэр, я попробую то же самое., @Hrishikesh Dixit
- Ардуино для чтения с преобразователя RS232 в последовательный модуль TTL
- Использование Arduino для чтения и записи данных на устройство RS232
- Искаженный серийный номер устройства GPS
- Joy-IT RS232 Shield и уровни напряжения RS232
- Как скрыть команды Serial.write на последовательном мониторе Arduino?
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Использовать все контакты как цифровые входы/выходы
Это похоже на тот же блок питания, что и у меня. Мой помечен как TENMA, хотя я видел то, что выглядит так же, как и у других людей..., @Majenko
Одна вещь, которую я действительно нахожу раздражающей в этом блоке питания, заключается в том, что, как только вы отправляете что-либо через последовательный порт, он на некоторое время полностью блокирует переднюю панель., @Majenko
Да, это так. Это источник питания TENMA., @Hrishikesh Dixit