rs-232 pal demos
CircuitPython and Arduino RS-232 Pal demos. uses serial console to send commands
This commit is contained in:
parent
4df862a98c
commit
4aa63fd4ec
3 changed files with 78 additions and 0 deletions
0
RS-232_Pal_Demos/Arduino_RS-232_Pal/.uno.test.only
Normal file
0
RS-232_Pal_Demos/Arduino_RS-232_Pal/.uno.test.only
Normal file
46
RS-232_Pal_Demos/Arduino_RS-232_Pal/Arduino_RS-232_Pal.ino
Normal file
46
RS-232_Pal_Demos/Arduino_RS-232_Pal/Arduino_RS-232_Pal.ino
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
// SPDX-FileCopyrightText: 2024 Liz Clark for Adafruit Industries
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
#include <SoftwareSerial.h>
|
||||||
|
|
||||||
|
// update this for your RS-232 device baud rate
|
||||||
|
#define baud 38400
|
||||||
|
// define RX and TX pins for the software serial port
|
||||||
|
#define RS232_RX_PIN 2
|
||||||
|
#define RS232_TX_PIN 3
|
||||||
|
|
||||||
|
SoftwareSerial rs232Serial(RS232_RX_PIN, RS232_TX_PIN);
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(115200);
|
||||||
|
while ( !Serial ) delay(10);
|
||||||
|
|
||||||
|
rs232Serial.begin(baud);
|
||||||
|
|
||||||
|
Serial.println("Enter commands to send to the RS-232 device.");
|
||||||
|
Serial.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
if (Serial.available() > 0) {
|
||||||
|
String userInput = Serial.readStringUntil('\n');
|
||||||
|
userInput.trim(); // remove any trailing newlines or spaces
|
||||||
|
if (userInput.length() > 0) {
|
||||||
|
// send the command with a telnet newline (CR + LF)
|
||||||
|
rs232Serial.print(userInput + "\r\n");
|
||||||
|
Serial.print("Sent: ");
|
||||||
|
Serial.println(userInput);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// check for incoming data from RS-232 device
|
||||||
|
while (rs232Serial.available() > 0) {
|
||||||
|
char response = rs232Serial.read();
|
||||||
|
// print the incoming data
|
||||||
|
Serial.print(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
delay(50);
|
||||||
|
}
|
||||||
32
RS-232_Pal_Demos/CircuitPython/code.py
Normal file
32
RS-232_Pal_Demos/CircuitPython/code.py
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
# SPDX-FileCopyrightText: 2024 Liz Clark for Adafruit Industries
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
import time
|
||||||
|
import board
|
||||||
|
import busio
|
||||||
|
|
||||||
|
# baud rate for your device
|
||||||
|
baud = 38400
|
||||||
|
uart = busio.UART(board.TX, board.RX, baudrate=baud)
|
||||||
|
|
||||||
|
print("Enter commands to send to the RS-232 device. Press Ctrl+C to exit.")
|
||||||
|
while True:
|
||||||
|
user_input = input("Please enter your command: ").strip()
|
||||||
|
if user_input:
|
||||||
|
# send the command with a telnet newline (CR + LF)
|
||||||
|
uart.write((user_input + "\r\n").encode('ascii'))
|
||||||
|
|
||||||
|
# empty buffer to collect the incoming data
|
||||||
|
response_buffer = bytearray()
|
||||||
|
|
||||||
|
# check for data
|
||||||
|
time.sleep(1)
|
||||||
|
while uart.in_waiting:
|
||||||
|
data = uart.read(uart.in_waiting)
|
||||||
|
if data:
|
||||||
|
response_buffer.extend(data)
|
||||||
|
|
||||||
|
# decode and print
|
||||||
|
if response_buffer:
|
||||||
|
print(response_buffer.decode('ascii'), end='')
|
||||||
|
print()
|
||||||
Loading…
Reference in a new issue