Nun in JAVA

Hallo,

ich habe eine Frage, ich habe eine einfache Schaltung gebaut ein DigitalREAD meinetwegen einen Taster und als DigitalWRITE dann eine LED auf einen Ausgang gelegt die dann für 10 Sekunden an ist.
Jetzt möchte ich über JAVA mir den den Zustand der LED anzeigen lassen z.B. LED EIN, LED AUS.

Meine Frage/n: Ist die möglich und wenn ja wie?

Gruss nebel

Ja. Serielle Verbindung zwischen dem Arduino und Java aufbauen! Warum denn Java? Scheinbar hast du noch nichts oder nicht viel in Java programmiert.

http://www.mikrocontroller.net/articles/Serielle_Schnittstelle_unter_Java

Du musst eine serielle Verbindung herstellen. Dann sendest du einen String mit dem Zustand an den PC und lässt dort einen kleinen Parser drüberlaufen.

z.B. "5,0" für Pin 5, Aus, oder "5,1" für Pin 5, An

Für eine LED reicht auch erst mal "0" und "1". Aber wenn es mehr werden muss man sie nummerieren. Da gibt es viele Möglichkeiten

hi,

ich kann kein java, nur programmiersprachen :grin:

aber ich nehme an, sogar java kann daten auf der seriellen schnittstelle empfangen. also kannst Du den arduino den zustand senden lassen und in java anzeigen.

gruß stefan

Ich hab ehr wenig Erfahrung damit das stimmt, kann ich mir die Zustandsdaten, Ablaufprotokoll auch normal in der Konsole oder im Arduino-Programm ausgeben lassen?

Ich hab bisher ehr mit LOGO und S7 gearbeitet und NICHTS in die Konsole oder im JAVA anzeigen lassen, weil ich im Simatic alles sehen konnte....

Hallo,

naja, die IDE und Processing laufen auch unter Java. Vielleicht reicht Processing für Deine Zwecke schon aus.

Die Programmierung ist an Arduino angelehnt. Bsp. gibts auch.
Nimm davon lieber die 32Bit Version, läuft unter Windows laut meinen damaligen Tests schneller. Warum weis ich nicht.

Die Serielle Console kannst du vom Arduino Uno dann nicht mehr verwenden. Denn du brauchst die COM Schnittstelle für dein Java Programm. Macht aber auch keinen Unterschied.

Du kannst entweder die Konsole oder dein Java Programm nutzen. Das Protokoll sollte so simple sein, dass die Steuerung auch über die Konsole möglich ist.

Zum Beispiel:

  1. Kommuniktation herstellen
    Konsole oder Java Programm sendet B1:1;
    Nun musst du entsprechend den Buchstabensalat auseinanderplücken.
    B1 = Button/Taster 1
    1 = HIGH/gedrückt.
    Das ; dient dazu, dass der Arduino weiß, dass der Befehl komplett ist.
    Mehrere Befehle auf einmal senden sähe dann so aus, B1:0;B4:1;B13:0;

Doc_Arduino:
Die Programmierung ist an Arduino angelehnt. Bsp. gibts auch.

Wäre es nicht richtiger zu schreiben, dass die Arduino-Programmierung an Processing angelehnt ist?

Grüße

Sven

Wäre es nicht richtiger zu schreiben, dass die Arduino-Programmierung an Processing angelehnt ist?

Richtig wäre - Arduino ist an C (++) angelehnt.

Arduino ist C/C++. Nicht nur daran angelehnt. Die Abstraktion der IDE ändert daran nichts.

Er hat schon etwas recht. Es gibt an paar Punkte bei denen die Arduino Sprachmittel bewusst an Java angelehnt wurden. Besten Beispiel ist der Datentyp boolean. Das war lange Zeit nur ein typedef auf unsigned char, wie in C Urzeiten, was an manchen Stellen Probleme bereitet. Besser wäre hier von Anfang an der native C++ Datentyp bool gewesen.

nebelfieber:
Meine Frage/n: Ist die möglich und wenn ja wie?

Hi,

das ist gar nicht ganz trivial. Zunächst musst Du die RXTX-Lib für Java installieren und mit Deinem Projekt verknüpfen. Wenn das passiert ist, kannst Du mit folgendem

import gnu.io.*;
import java.util.Enumeration;

public class SerPort {

  public static void main(String[] args) {
    CommPortIdentifier serPortID;
    Enumeration commPorts;

    commPorts = CommPortIdentifier.getPortIdentifiers();
    while (commPorts.hasMoreElements()) {
      serPortID = (CommPortIdentifier) commPorts.nextElement();
      if (serPortID.getPortType() == CommPortIdentifier.PORT_SERIAL) {
        System.out.println("Port gefunden: " + serPortID.getName());
      }
    }

    System.out.println("Kein Fehler aufgetreten.");
  }
}

testen, ob ein Arduino am Seriellen Port angeschlossen ist. Ich habe das unter Ubuntu für Netbeans gemacht, deswegen kann ich Dir für Windows leider nicht genau erklären, wie die RXTX-Lib korrekt einzubinden ist.

Gruß,
Ralf