IPS-Nano-Terminal

Hallo Michael,

hier mal mein Testscript.
Funktioniert natürlich nur mit meinem negative/schwarz Display 162, andere Farbkombinationen habe ich noch nicht getestet :smiley:

Getriggert wird mit der Variablen „Display_DOG_Data“ OnChange und alle 5 Minuten mit Timerevent. So ist gewährleistet, das spätestens 5 Min. nach anklemmen der Versorgungsspannung das Display was zeigt. Kontrast ist hier fix eingestellt, war für mich der beste Wert.
Hast du das 163 schon da zum testen?

Gruß,
Doc


/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Display_DOG_Programm.ips.php
Trigger  : 
Interval : 
*/
$id = 52493;
//------------------- INIT --------------------
if ($IPS_SENDER == "TimerEvent") {
   TMEX_F29_SetStrobe($id, TRUE);
   IPS_Sleep(100);
   TMEX_F29_WriteBytes($id, chr(0x03).chr(0x03).chr(0x03).chr(0x02).chr(0x02).chr(0x09).chr(0x01).chr(0x0C).chr(0x05).chr(0x02).chr(0x06).chr(0x09).chr(0x07).chr(0x04).chr(0x00).chr(0x0F).chr(0x00).chr(0x01).chr(0x00).chr(0x06));
}
//---------------- Steuerung ------------------
$text = GetValueString("Display_DOG_Data");

$lcd = new OneWireLCD(2, 16);
$lcd->SendLCDText($text);

class OneWireLCD {

 private $rows;
 private $cols;

 public function __construct( $rows, $cols ) {
  $this->rows = $rows;
  $this->cols = $cols;
 }

 public function SendLCDText($text) {

   $id = 52493;
   $sendbuf="";
   $currentline=0;
   $lines = explode("|", $text);
//   $tempbuf = $lines[2];
//   $lines[2] = $lines[1];
//   $lines[1] = $tempbuf;

   //Clear Display
   $sendbuf .= chr(0);
   $sendbuf .= chr(1);

   //Disable Cursor
   $sendbuf .= chr(0);
   $sendbuf .= chr(12);

   foreach($lines as $line) {

    if ($currentline >= $this->rows) {
     break;
    }

    //Position
    if($currentline > 1) {
     $shift=20;
    } else {
     $shift=0;
    }

    $sendbuf .= chr(((($currentline%2)*4*16+$shift) | 128) >> 4);
    $sendbuf .= chr(((($currentline%2)*4*16+$shift) & 15));

    //Text
    //$line = str_pad($line, $this->cols);
    $line = substr($line, 0, $this->cols);

    for($i=0; $i<=strlen($line)-1; $i++) {
     $sendbuf .= chr((ord($line{$i}) >> 4) | 16);
     $sendbuf .= chr((ord($line{$i}) & 15) | 16);
    }

    $currentline++;
   }
     TMEX_F29_WriteBytes($id, $sendbuf);
   }
}
?>

Chique !! Doc … ist dies GNU ? darf ich ubernehmen ?

ehhmmm,
ausser der $ID ist da nicht wirklich viel von mir drin, das meiste stammt wohl von Paresy, Steiner oder HJH.

Ist auch nur mal zum Testen gedacht, aber funktioniert ohne Probleme. Kannst du gerne nehmen.
Wenn ich das 3 zeilige Display habe, werde ich mit dem Entwurf der 1-Wire FHT mit Eingabemöglichkeit übers Display starten. Ideen hätte ich da schon viele, nur die Zeit fehlt im Moment.

Doc

… klasse es funktioniert auch bei mir!
Und wenn ich die Spannung richtig erhöhe, bekomme ich auch einen Farbwechsel von blau nach hellrot :smiley:

MST

… klasse, und Rauchzeichen kann es auch :smiley:

Habe gerade Reichelt wegen des EA DOGM163S-A angeschrieben, mal sehen, für welchen Kurs die es besorgen können.

Doc

Hallo,
nee frage: Hat schon jemand eine Laufschrift mit ca je 40 Zeichen (Zeile 1 und 2) über das IPS-Nano-Terminal gejagt ? Sollte weich und dynamisch ausehen. Wenn ja, wie?

Gruß
Luggi

Nein. :mad:

Und dafür ist 1-Wire auch nicht gedacht. Damit müllst du dir nur deinen Bus zu.

paresy

Hallo paresy,
…und schon bin ich wieder auf dem Boden der Tatsachen! Na klar, an den Bus habe ich garnicht gedacht. Danke paresy. Dann werde ich mir wohl was anderes überlegen.
Gruß
Luggi

Hallo Luggi,

koennte man realisieren, da musst Du Dich aber noch etwas gedulden. Ich nehme es mal in die Wunschliste fuer das 1-Wire LCD Modul auf.

Gruss Torro

Du könntest das ULA200 nehmen. Das geht über USB und dafür gibt es zufällig schon ein IPS-Modul :http://www.ipsymcon.de/wiki/index.php/ULA200.

Tommi

Hallo Tommi,

das ist ne gute Loesung, um beim PC gleich was zu haben. Aber an den Stellen, wo ich mir die LCDs „hinhaengen“ will, bin ich froh, gerade mal CAT Kabel hinbekommen zu haben. Aber USB - und dann auch noch betraechtliche Meter - da haengt dann sicher der Hausfrieden bei mir schief.

Aber wer USB benutzen kann, fuer den ist das ne gute Loesung.

Gruss Torro

Die Entfernung ist doch auch bei USB nicht mehr so ein Problem. Die Frage ist eher, was man dafür ausgeben möchte.

Z.B. Aktive USB-Verlängerung über CAT-Kabel
Artikel-Nr.: 982414 - 62 beim großen C für 69,95

Hallo,

es wird demnächst eine PHP-Klasse und ein Beispiel-Script für das NanoTerminal zum allgemeinen Download geben.
Bei mir läuft es bereits.

Folgende Funktionen sind implementiert:

  1. Constructor mit Angabe von Controller-Typ, Spalten, Zeilen…
  2. LCD-Initialisierung abhängig vom Controller-Typ
  3. Display löschen
  4. Textausgabe an bestimmter Cursor-Position
  5. Textausgabe auf das gesamte Display
  6. Definition eigener Zeichen
  7. Kontrasteinstellung beim ST7036-Controller

Damit während der Textausgabe über die freien Ports keine unerwünschten Schaltvorgänge ausgeführt werden, müssen noch einige Vorkehrungen getroffen werden. Dies wird z.Z. geklärt.

Gruß
HJH

Hallo HJH,

da lass’ ich mich mal überraschen. Hört sich auf jeden Fall sehr gut an.
Spiele auch gerne den Betatester.

Gruß,
Doc

Damit die drei freien Ports des IPS-Nano-Terminals nicht bei einer LCD-Ausgabe überschrieben werden, haben wir folgende Funktion: TMEX_WriteBytesMasked hinzugefügt.
Hierbei ist es zwingend notwendig, Ausgänge wirklich auf „Output“ (im OneWire Modul) zu konfigurieren (A, B, C, D, E, H) .

MST

PS: LCD-Software: http://www.ipsymcon.de/scripts.htm

…Ansteuerung eines HD44780 kompatiblen LC-Display…

hat jemand eine Kompatibilitätsliste?

Hallo agotthold,

es gibt unüberschaubar viele kompatible Controller.

Ein Hersteller oder Anbieter wird ziemlich sicher auf eine evtl. bestehende Kompatibilität hinweisen. Schließlich ist es ein starkes Verkaufsargument.

Man kann davon ausgehen, dass grafikfähige Displays einen speziellen Controller benötigen, der nicht kompatibel ist. Aber viele alphanumerische Displays, wenn nicht gar die meisten, sind sind vermutlich kompatibel.

Gruß
HJH

Hi Leute!

Hab ein Problem mit dem NanoTerm, ich brings einfach nicht ins IPS mit „New Devices“. Aber warum? In der ersten Zeile zeigt es mir alle Pixel an am LCD Display, das heißt Spannung liegt an …

Die Temp-Sensoren find ich alle wunderbar, ganz kurzes Kabel, nur mal zum testen. Hab die fertige Platine von Steiner. Gerades Kabel mit RJ12 Stecker und USB Adapter mit Nanoterm verbunden. Tut sich nix!

Mach ich was falsch? Die Buchse am NanoTerm ist nach meinen Erkenntnissen richtig angelötet.

Pin 1 -> J1/2 VDD
Pin 2 -> J1/1 GND Power
Pin 3 -> J1/4 OW 1-Wire Data

Bitte um eure Hilfe!

Markus

… leider nein: http://www.ipsymcon.de/images/nanoterm_schalt.jpg
Wozu löten :confused:
Zu Testzwecken wird das Nano-Terminal mit einer RJ-Buche ausgeliefert - ein 1:1 Kabel reicht!

MST

Eben darum! Ich habe zur SICHERHEIT nochmal die Lötpunkte angegeben bzw. kontrolliert! Hätte ja sein können das ab „Werk“ was schief gegangen ist. NanoTerm ist mit 1:1 Kabel verbunden! An was kanns liegen? Defekter DS2408?

Lg, Markus