Show Posts
Pages: 1 2 3 [4] 5 6 ... 26
46  International / Deutsch / Re: UTFT: String als Farbe vorgeben on: February 04, 2014, 06:10:50 pm
P.S. deine Funktion gibt den RGB Wert nicht zurück! Du musst die Parameter schon als Referenzen deklarieren. Sonst arbeitest du lediglich mit lokalen Kopien:
Hehe, du bist echt gut. Und ich ne richtige C-Pfeife smiley-cry

Hab mir gerade den Arsch abgesucht, wieso ich immer "0" zurückbekomme.
Ich mach einfach zu wenig mit C. Und wenn ich wieder mal rumprogrammiere, dann fall ich über die einfachsten Sachen.

Danke dir für deine Hilfe!
47  International / Deutsch / Re: UTFT: String als Farbe vorgeben on: February 04, 2014, 05:39:25 pm
Ja mit den Strings steh ich voll auf Kriegsfuss.  smiley-cry
Ich könnte die Funktion ja für beide Ausgabearten schreiben: Dann brauch ich nichts im HTML-Code ändern.
Code:
  void color (float tempin, String &stringout, byte red, byte green, byte blue) {
      if  (tempin >= 90.0 && tempin < 100.0) {
//        stringout = "(175,0,0)";
        red = 175; green = 0; blue = 0;
      }
      else if  ((tempin >= 75.0) && (tempin < 90.0)) {
.....
 stringout = "(" + red + "," + green + "," + blue +")";  
  }

Allerdings ärgert mich da wieder die letzte Zeile. Anscheinend kann ich nur immer 2 Teilstrings zusammenführen.
Ich wollte mir halt sparen die Zuweisung für stringout in jeder if-Anweisung zu schreiben, sondern die nur einmal am Ende der Funtion "berechnen"
Der Befehl sprintf() ist ja nur für die Ausgabe gedacht. Oder kann ich den hier auch verwenden?
48  International / Deutsch / Re: UTFT: String als Farbe vorgeben on: February 04, 2014, 05:12:52 pm
Ok,
Ich hatte die Hoffnung, dass man es irgendwie so hinbekommt:
Code:
String temp1 = "128,0,128";
[color=red]myGLCD.setColor(temp1);[/color] // irgendwie geht die Farbfunktion nicht im code-tag :-(

aber auch mit nem C-String muss ich zerlegen und wandeln. Oder?

Dann schreib ich mir liebe ne neue Funktion, bei der ich gleich drei Byte mit den Farbwerten rausbekomme.
49  International / Deutsch / Re: UTFT: String als Farbe vorgeben on: February 04, 2014, 04:57:51 pm
Hi Serenifly,
leider großes "S".
Also ein String object.

Hintergrund: Ich habe eine Funktion, die mir für die grafische Ausgabe des Temperaturgefälles meines Warmwasserspeichers abhängig von der Temperatur bestimmte Farben ausgibt.
Die sende ich dann innerhalb einer HTML-Seite.
Code:
  void color (float tempin, String &stringout) {
      if  (tempin >= 90.0 && tempin < 100.0) {
        stringout = "(175,0,0)";  
      }
      else if  ((tempin >= 75.0) && (tempin < 90.0)) {
        stringout = "(255,0,0)";
...........


Jetzt bau ich noch ein Touchdisplay an den Arduino für die Vorort anzeige. Da will ich die Funktion gleich mitbenutzen, um auch hier die entsprechenden Farben anzuzeigen.
50  International / Deutsch / UTFT: String als Farbe vorgeben on: February 04, 2014, 04:44:56 pm
Hi,
ich bräuchte mal wieder die Hilfe von den C-Experten.

Ich verwende die UTFT-Bibliothek von Henning Karlsen.
Da gibt es den Befehl myGLCD.setColor(r,b,g)
Für r b g kann man entweder feste Werte, oder auch 3 Byte-Variablen vorgeben.
Das sagt der Compiler:
Code:
candidates are: void UTFT::setColor(byte, byte, byte)

Jetzt bekomme ich aus einer anderen Funktion die Farbe als String; z.B.: "128,0,128"
Habt ihr eine Idee, wie man den String als Vorgabe für die Farbdefinition verwenden kann?
Ich probier jetzt schon zwei Stunden rum, aber meine C-Kenntnisse sind dazu etwas zu mangelhaft.

Danke vorab/hk007
51  International / Deutsch / Re: Mega + Ethernet-Shield (W5100): Probleme als WebServer on: February 04, 2014, 11:58:50 am
Hi,

ich glaub ich habs gefunden. smiley smiley smiley
Zumindest hab ich jetzt so 30 mal aus dem Browser angesteuert, und es war immer OK.

Das Problem war eine doppelte MAC-Adresse. Ich hab schon einen Arduino mit Ethernet-Shield im Hausnetz. Zum Auslesen des Stromzählers. Da ich diese Software auch auf ein Beispiel aus der Arduino Bibliothek aufgebaut habe, hatte der natürlich die selbe MAC-Adresse. Daran hab ich Esel nicht gedacht.
Man oh man: 281.474.976.710.656 verschiedene MAC-Adressen kann man einstellen. Und ich schaffs doch wirklich zwei mal dieselbe zu nehmen. smiley-cry

Muss man erst mal drauf kommen. Bei der IP, da führ ich über alle Geräte bei mir im Hausnetzwerk peinlichst Buch, damit ich da keine Überschneidungen habe, aber die MAC-Adresse hab ich nie beachtet, da ja jedes Gerät eine einzigartige hat, oder zumindest haben sollte. Der Arduino ist halt das einzige Gerät, bei dem man sie manuell vergibt.

Ich hoffe das war auch wirklich das Problem. Deutet aber alles drauf hin.
52  International / Deutsch / Re: Mega + Ethernet-Shield (W5100): Probleme als WebServer on: February 04, 2014, 03:18:09 am
Hi,
sorry, hast natürlich recht. Dachte nur, weil es das "offiziele" Beispiel aus der Arduino IDE ist.
Code:
/*
  Web Server
 
 A simple web server that shows the value of the analog input pins.
 using an Arduino Wiznet Ethernet shield.
 
 Circuit:
 * Ethernet shield attached to pins 10, 11, 12, 13
 * Analog inputs attached to pins A0 through A5 (optional)
 
 created 18 Dec 2009
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe
 
 */

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,91);

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}


void loop() {
  // listen for incoming clients
  EthernetClient client = server.available();
   if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // the connection will be closed after completion of the response
//   client.println("Refresh: 5");  // refresh the page automatically every 5 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            server.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(sensorReading);
            client.println("<br />");       
          }
          client.println("</html>");
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        }
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(100);
    Serial.println("now 100ms delay");   
    // close the connection:
     client.stop();
     Serial.println("client disconnected");
  }
}
53  International / Deutsch / Mega + Ethernet-Shield (W5100): Probleme als WebServer on: February 03, 2014, 03:58:44 pm
Hi,
da mein aktuell programmierter Webserver nur "leidlich" läuft, habe ich einmal das WebServer Programm aus den Beispielen verwendet. Ich habe nur die Zeile mit dem Refresh entfernt, da ich die Seite nur einmal anfragen und empfangen will, um die Probleme besser eingrenzen zu können.

Hier sieht es allerdings auch nicht wirklich besser aus.  Nach dem Neustart des Aruino zeigt er mir, dass der Webserver unter der programmierten IP gestartet wird.
Wenn ich anschliessend aus dem Browser meines PCs die Seite aufrufe, dann klappt das beim ersten Mal. Die 6 Zeilen mit den Werten der Analogeingängen werden im Browser dargestellt, und in der seriellen Konsole des Arduinos kommt auch das erwartete:
Code:
new client
GET / HTTP/1.1
Host: 192.168.1.91
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cache-Control: max-age=0

client disonnected

Wenn ich dann anschliessend die Seite einige Male neu lade (so im 3 Sekunden Rhythmus), dann kommt es ziemlich bald zu den Problemen. Die Seite wird nicht wieder aufgebaut, im Browser dreht die Sanduhr und der Arduino bringt auch nichts in der seriellen Konsole
Nach einiger Zeit  (20-30 sek) wird die Seite dann doch aufgebaut und in der seriellen Konsole kommen auch die o.g. Zeilen.
In dieser "Wartezeit" sendet der PC immer wieder TCP-Retransmission Telegramme (lt. Wireshark)

Sieht so aus, als ob sich der Arduino oder das WIZnet-Shield irgendwie aufhängen.
- Um einen Hardwaredefekt auszuschliessen hab ich den Mega gegen einen UNO getauscht. Selbes Problem.
- Ethernet-Shield hab ich leider kein Zweites zum Testen hier :-(
- Und ich hab auch schon 3 verschiedene PCs probiert, um hier was auszuschliessen.

Ist das ein generelles Problem, das ich hier habe? Läuft bei euch ein ähnlicher Webserver stabil?

Edit:
Das Problem liegt eigentlich schon bei der server.available Abfrage:
Code:
 // listen for incoming clients
  EthernetClient client = server.available();
   if (client) {
    Serial.println("new client");
In der "Wartezeit" kommt von server.available() eine NULL zurück.
Sieht doch dann so aus, als ob vom Ethernet-Shield keine eingehenden Daten erkannt werden??? Aber lt. Wireshark werden laufend Telegramme an das Ethernet-Shield gesendet.

54  International / Deutsch / Re: Großes Touch-Display für Arduino Mega/DUE gesucht on: February 02, 2014, 09:23:40 am
UTFT Buttons?? Sagt mir erstmal nichts. Muss ich mich mal einlesen.
Fürs Springen im Menu und setzen von Binärinformationen ist das mit den Butons ja ziemlich einfach.
Aber wie machst du es, wenn du Zahlen eingeben willst.
ich könnte es mir so vorstellen. Leere Variable -> Zahl, die gedrückt wird dazu addieren - nächste Zahl: Speicher x 10+gedrückte... bis ein Endezeichen kommt?
Oder gibts da schlaueres?
55  International / Deutsch / Re: Großes Touch-Display für Arduino Mega/DUE gesucht on: February 02, 2014, 02:13:54 am
Ja das rumgelöte am Arduino find ich nicht so glücklich. Man könnte ja noch beim LCD-Schield die Stiftleisten gegen Buchsenleisten tausche. So wie beim Ethernet-Shield. Dann sind alle Pins nach oben geführt und zugänglich. LCD muss halt dann abgesetzt werden.

Ich hab mir dazu auch schon mal das angeschaut:
http://www.aqualedsource.com/shop/product_info.php?cPath=1_5&products_id=32
Da würd ich zwei Fliegen mit einer Klappe erschlagen. Screw-Shield und LCD-Shield

3,2" ist wirklich nicht viel. Hab das rumliegen und zum testen verwendet.
Aber ich werd wohl auf ein 5" ausweichen. Das ist hoffentlich pinkompatibel mit dem 3,2". Dann kann ich mein ITDB02 weiter verwenden.

Was hast du da für ein Menu. Mach mir grad selber Gedanken über Eingabe von Werten u.ä. Mit Bildschirmtastatur für Zahlen. So wie in deinem letzten Bild.
Hab dazu  aber noch gar keinen Plan.
56  International / Deutsch / Re: Großes Touch-Display für Arduino Mega/DUE gesucht on: February 01, 2014, 10:48:25 am
So nach langem Überlegen hab ich jetzt eine Lösung für LCDShield + EthernetShield.

Zuerst den Arduino Mega, dann das Ethernet-Shield und dann das LCD-Shield oben drauf.
Das LCD-Shield ist ein ITDB02. Das LCD ein 3,2" Standard-TFT.
Die 2reihige 36-polige Leiste hab ich mit Buchsenleisten mit längerem Stift verbunden. Sind die selben, die ich immer ins Ethernet-Shield löte, damit das Shield nicht an der USB-Buchse aufliegt.
Allerdings hab ich nicht alle Pins verbunden. Die Pins für die SD-Karte, hab ich offen gelassen, da sonst das Ethernet-Board nicht gelaufen ist.  Siehe rot markierten Bereich im 3.Bild.

Ich hab zum Testen einen Sketch für das LCD und einen fürs Ethernet-Board geladen und beide sind einwandfrei gelaufen.
Da geh ich jetzt davon aus, dass das so passen wird.
Das Display werd ich dann noch mit einem 40pol. IDE-Verlängerungskabel absetzen.


57  International / Deutsch / Re: Großes Touch-Display für Arduino Mega/DUE gesucht on: February 01, 2014, 06:39:17 am
Muss den "alten" Thread noch mal ausgraben.

Kennt jemand dieses Display?
https://www.sparkfun.com/products/11740

Hat einen eigenen Controller und schont die Ressourcen am Arduino. So viel ich auf die schnelle gelesen habe.
Muss halt mit einer eigenen IDE programmiert werden.

Irgendwie nicht uninteressant. Wenn der Preis etwas angenehmer wäre....
58  International / Deutsch / Re: Großes Touch-Display für Arduino Mega/DUE gesucht on: January 29, 2014, 02:40:14 pm
Und da sind wir dann wieder bei einer Steuerung mit Display....
59  International / Deutsch / Re: Großes Touch-Display für Arduino Mega/DUE gesucht on: January 29, 2014, 09:16:14 am
Ich hab jetzt einen ganz anderen Denkansatz.

Nachdem ich sowieso ein Webinterface für meine Steuerung programmiert habe, könnte man doch auch ein billiges Tablet nehmen. Dann muss ich nicht extra einen Programmteil für das Display und einen Programmteil für das Webinterface halten.
Allerdings wirds da wohl an der LAN-Buchse des Tablets scheitern. Die haben ja nur noch WLAN :-(
Und das Tablet immer an lassen.... Glaub ich verwerf die Idee wieder.....
60  International / Deutsch / Re: Großes Touch-Display für Arduino Mega/DUE gesucht on: January 28, 2014, 02:18:48 pm
hier ist es billiger:
http://imall.iteadstudio.com/m120525007.html
gruß stefan
Ja aber 26 Euro Versand  smiley-cry
Pages: 1 2 3 [4] 5 6 ... 26