Arduino ve java arasındaki seri port bağlantıları aşağıdaki kod yardımıyla yaptım. Ancak arduinoda sayaç değerim var, sensörden almış olduğum. Bu değeri javada nasıl görebilirim ?
package serialcommarduino;
import com.fazecast.jSerialComm.SerialPort;
import java.util.Scanner;
public class SerialCommArduino {
public static void main(String[] args) {
SerialPort ports[]=SerialPort.getCommPorts();
System.out.println("Bir port seçimi yapınız:");
int i=0;
for(SerialPort port: ports){
System.out.println(i++ + " "+ port.getSystemPortName());
}
Scanner scan=new Scanner(System.in);
int selectPort=scan.nextInt();
SerialPort port =ports[selectPort];
port.setBaudRate(9600);
if(port.openPort()){
System.out.println("Bağlantı Başarılı");
}
else{
System.out.println("Bağlantı Başarısız");
return;
}
port.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING,10000,0);
Scanner data=new Scanner(port.getInputStream());
while(data.hasNextLine()){
System.out.println(data.nextLine());
}
}
}
Arduino tarafındaki kodlarım
int pirPin = 3;
int ledPin = 4;
int deger;
int sayac=0;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop()
{
deger = digitalRead(pirPin);
if(deger==1){
digitalWrite(ledPin, HIGH);
sayac++;
Serial.println(sayac);
}
else{
digitalWrite(ledPin,LOW);
}
delay(1000);
}
Araştırdığım bütün programlarda, javadan arduinoya gönderebiliyoruz. Arduinodan javaya veri göndermek için nasıl bir kod yazmalıyım ?
processing.org (http://processing.org)
Belki işinize yarayabilir...
Ben pek anlayamadım kusura bakmayın Processing ile ne ilgisi olduğunu
ports.readInt gibi bir ifade kullanmalıyım ancak kodu yazamadım
Yardımcı olacak kimse yok mu :/
Scanner sayac = new Scanner(System.in);
String syc=sayac.nextLine();
int deger=Integer.parseInt(syc);
System.out.println(deger);
Son olarak while içerisine bu kodları ekledim ancak yine sayac degerini çekemiyorum