Господа, нужна помощь знающих. Написал код на жаве, отсылаю единичку но ардуино не видит, ну как не видит принимает, моргает светодиод TX затем тухнет сведоиод L потом загорается, но ардуино не видит что я что то послал. Посылаю единичку через ардуино IDE все работает все прекрасно, прикреплю код на ардуинке и часть на жаве, если кто шарит откликнитесь.
int controlPin = 9;
void setup() {
pinMode(controlPin, OUTPUT);
digitalWrite(controlPin, HIGH); // Изначально установите HIGH, чтобы разомкнуть цепь
Serial.begin(9600); // Укажите такой же битрейт, как в вашем Java-скрипте
}
void loop() {
if (Serial.available() > 0) {
int receivedData = Serial.parseInt();
// Выведем полученные данные в Serial Monitor
Serial.print("Получены данные: ");
Serial.println(receivedData);
// Проверяем, является ли полученный байт числом 1
if (receivedData == 1) {
Serial.println("Получено число 1");
digitalWrite(controlPin, LOW); // Замкнуть цепь
delay(1000); // Подождать 1 секунду
digitalWrite(controlPin, HIGH); // Размкнуть цепь
} else {
Serial.println("Получены данные, но это не число 1");
digitalWrite(controlPin, LOW);
delay(10000);
// Делайте здесь что-то, что нужно выполнить, если получены данные, отличные от числа 1
}
}
}
********************************* код на жаве
package com.example.botfx;
import com.fazecast.jSerialComm.SerialPort;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class ArduinoCommunication {
String portName = “COM4”; // Замените “COMX” на имя вашего порта (например, “COM3” на Windows, “/dev/ttyUSB0” на Linux)
int baudRate = 9600;
public void sendSignal() throws IOException {
SerialPort sp = SerialPort.getCommPort(portName);
sp.setComPortParameters(baudRate,8,1,0);
sp.setComPortTimeouts(SerialPort.TIMEOUT_WRITE_BLOCKING,0,0);
if (sp.openPort()) {
System.out.println("norm");
sp.getOutputStream().write(1);
sp.getOutputStream().flush();
sp.closePort(); // Закрываем порт после передачи данных
} else {
System.out.println("piz");
}
}
}