Show Posts
Pages: [1] 2 3 ... 44
1  International / Deutsch / Re: Serielle Kommunikation zwischen php und Arduino on: August 11, 2014, 03:22:28 pm
Was scheint darin zu stecken und was genau verstehst du am Code nicht ?

2  International / Deutsch / Re: USB->TTL auf RS485 Adapter eigenbau on: August 11, 2014, 07:29:26 am
Mit den ersten beiden Links die du genannt hast, sollte das klappen.

Eigentlich werden im RX mit TX usw. verbunden. Es gibt seltene außnahmen, aber ich glaub nicht dran, außer ich werd vom besseren überzeugt.
Oft sind die RX / TX   Pins als Tristate Anschlüsse ausgeführt und werden bei einer Verpolung nicht direkt vernichtet.

Bei USB auf Com muss du aufpassen ob RX / TX mit 12 V Betrieben werden, falls du den letzten Adapter verwendest.
3  International / Deutsch / Re: Serielle Kommunikation zwischen php und Arduino on: August 11, 2014, 02:41:53 am
Puh, da ist Jomelo ne super Hilfe. Nur mit der Zeit happerts bei den hier smiley-grin

Da hast du recht, aber in einer Woche werde ich die Masterarbeit abgeben, dann ist wieder mehr Zeit zum Basteln und ich glaube ich hab dann auch mal wieder ein Wochenende, dass einfach frei ist ;-)

Zum Thema:
Von PHP aus habe ich noch nie direkt auf die Serielle Schnittstelle zugegriffen, nur über Umwege,
z.B: mit einer Datenbank und Python oder C++ Programmen.
Oder mit einem Seriell Ethernet-Wandler und dann per Socket.

4  International / Deutsch / Re: Stromzähler überwachen on: August 05, 2014, 05:53:51 am
Hi, mit dem Raspberry Pi ein Bild alle 24 Stunden mit einer Webcam zu speichern ist kein Problem. Das auslesen der Zahlen ist auch möglich. Auf dem Raspberry Pi läuft, wenn man Raspian als Betriebssystem installiert Python. Für Python kann man openCV installieren, das ist eine Bildverarbeitungsbibliothek. Mit der lassen sich auch Zahlen auslesen und speichern. Alternativ kann man auch in C++ in Kombination mit OpenCV die Software schreiben. Ich habe beide Sprachen in Kombination mit openCV bereits verwendet.

In einer Hausarbeit im Studium haben wir mit drei Webcams und dem Raspberry Pi Insekten die eine bestimmte Größe haben und an einem Pflanzenstiel hochklettern fotografiert und die Bild gespeichert. Es war auch möglich mehrere Insekten zu erkennen ;-)

Das Raspberry Pi benötigt maximal 3,5 Watt + den Verbrauch der Webcam. Wenn der Aufbau nun 1 Jahr durchläuft liegen die Stromkosten  auch bei ein paar Euro.
Bei der Therorie und der Einführung in die Technik könnte ich dir helfen, ich hab nur nicht die Zeit die komplette Software zu schreiben. 
5  International / Deutsch / Re: Stromzähler überwachen on: August 01, 2014, 07:30:12 am
entweder über den Energieversorger

oder z.B. Raspberry Pi mit Webcam oder eine alternative günstige Embedded Lösung, dann per Wlan oder Netzwerkkabel auslesen (kostet aber Energie)

oder nur eine Webcam mit einem langen USB Kabel aus dem Raum legen, Sobald du dann das Kabel außerhalb der verschlossenen Tür anschließt, kannst du den Zähler ablesen.
6  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: July 31, 2014, 10:52:04 am
Update: 31.07.2014
- Kann nun auch in der Arduino Version 1.5.x kompeliert werden
- Kann nun auch unter Linux übersetzt werden (Ubuntu 14.04)
- Leicht anders Verfahren um Menüelemente zu erzeugen (das alte funktioniert auch noch)
- zwei neue Makros die zu einer Element-ID den Text aus dem Flash laden
- eine neue Funktion in der Lib: getCursorPos(); => liefert die aktuelle Kursor Position.


Initialisierung des Menüs:
Code:
LCDMenuLib_add(0  , root         , 1  , "Information"        , FUNC_information);
LCDMenuLib_add(1  , root         , 2  , "Zeit Info"          , FUNC_timer_info);
LCDMenuLib_add(2  , root         , 3  , "Einstellungen"      , FUNC);
LCDMenuLib_add(3  , root_3       , 1  , "Werte veraendern"   , FUNC);
LCDMenuLib_add(4  , root_3       , 2  , "Irgendwas"          , FUNC);
LCDMenuLib_add(5  , root         , 4  , "Programme"          , FUNC);
"roor" steht für die Ebene 0. Sobald ein Element zu einer neuen Ebene hinzugefügt werden kann, ist dies mit root_"bezeichnung_der_ebene_davor" möglich. Die alte Intialisierung mit LCDMenuLib_element(....) ist weiterhin möglich. 

LCDMenuLib_getElementName(variable, element_id)
Kann, wenn das Element nicht existiert zu abstürzen führen.
Code:
char test[20];
LCDMenuLib_getElementName(test, 0);
Serial.println(test);

LCDMenuLib_getElementNameChecked(variable, element_id, check_variable)
Überprüft zusätzlich ob das Element existiert.
Code:
char test[20];
boolean check = False;
LCDMenuLib_getElementName(test, 0, check);
if(check == true) {
  Serial.println(test);
}

@flansch
Das kompilieren mit der neusten gcc Komiler Version ist nun möglich

@clic
Danke für den Tipp mit den digitalen Anschlüssen 0 und 1, diese sind natürlich für die Serielle-Schnittstelle und nicht für Buttons unter  LCDMenuLib_control_digital zu verwenden. Die Beispiele sind nun angepasst.
7  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: July 31, 2014, 04:39:56 am
Hi,
change my function to this and it works in all other functions:
Code:
/* copy this variable to your globals */
int sensorCounterOld = 0;

void FUNC_astra(void)
{
  /* setup function */      
  if(!LCDML.FuncInit())
  {    
    lcd.print(sensorCounter);  // <== this line is new        
    lcd.clear();      
  }
  
  /* loop area: this is the part, to add code  */  
  if(sensorCounter != sensorCounterOld) { // only update your lcd when new data is available
sensorCounterOld = sensorCounter;  // your lcd is not so fast
lcd.clear();
lcd.setCursor(0,0);
lcd.print(sensorCounter);
  }
  /* end loop area */
  
  /* end function for callback */
  if(LCDML.FuncEnd(0, 1, 1, 1, 1, 1)) /* (direct, enter, up, down, left, right) */  
  {
    /* do something bevor this function is closed */      
  }
}
8  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: July 29, 2014, 07:30:35 am
Hello,

you can post code in code tags  with  [ code ] ... [ /code ] without spaces.

Your Problem is, that you try to change the content in the function setup. This setup is run only at first call or on an recall if you have chosed another menu element before.

Look on the examples with Timer or on this code:
Code:
/* copy this variable to your globals */
int sensorCounterOld = 0;

void FUNC_astra(void)
{
  /* setup function */      
  if(!LCDML.FuncInit())
  {
    /* do nothing else here */          
    lcd.clear();      
  }
  
  /* loop area: this is the part, to add code  */  
  if(sensorCounter != sensorCounterOld) { // only update your lcd when new data is available
sensorCounterOld = sensorCounter;  // your lcd is not so fast
lcd.clear();
lcd.setCursor(0,0);
lcd.print(sensorCounter);
  }
  /* end loop area */
  
  /* end function for callback */
  if(LCDML.FuncEnd(0, 1, 1, 1, 1, 1)) /* (direct, enter, up, down, left, right) */  
  {
    /* do something bevor this function is closed */      
  }
}
I hope it help you.
9  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: July 28, 2014, 07:13:43 am
Globale Variablen kannst du überall definieren, ich mach das immer entweder im ersten Tab, oder nur über den Funktionen in denen ich diese benötige. Der beste Weg ist mein erster Vorschlag.

Zu den anderen Fragen, erstell bitte ein neues Thema, da die Diskussion hier nur Verwirrung stiftet, bzw. benutz die Boardsuche zum F(..) Makro ;-)
10  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: July 27, 2014, 01:34:00 am
Hi, ich installier mir mal eben Ubuntu (VirtualBox) und werde das testen, aber bis ich dann dazu eine Lösung herausgefunden habe, die sich in allen Versionen übersetzen lässt kann es etwas dauern.
11  International / Deutsch / Re: Zeitscheiben für Ereignisse vernünftig programmieren on: July 23, 2014, 07:21:52 am
Hi,
zu deinem Delay Problem schau dir mal dieses Thema an:
http://forum.arduino.cc/index.php?topic=165552.0

Stell es dir einfach als ganz viele Loop Schleifen vor, nur das diese nicht immer Aufgerufen werden, sondern zu einem Intervall (alle x Milli-/Mikrosekunden/Minuten/...). Genauso können diese gestoppt und neu gestartet werden.
12  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: July 23, 2014, 03:18:59 am
Hi,
irgendwie haben damit mehrere Leute ab und zu Probleme. Ab und zu läuft es auch ohne Probleme.
Es gibt eine debounce Lib die sich um das Entprellen von Tastern / Schaltern kümmert.

Kommentier in der Loop mal LCDMenuLib_control_digital aus und binde direkt die Lib ein mit den Funktionen die du benötigst.

Pseudocode:
Code:
if(debounce_dein_button_enter() ...)
   LCDML.Button_enter();

if (...)
   LCDML.Button_up_down_left_right(_LCDMenuLib_button_up);

if ..
   LCDML.Button_up_down_left_right(_LCDMenuLib_button_down);

// oder einen dieser virtuellen Menu Buttons
LCDML.Button_up_down_left_right(_LCDMenuLib_button_left);
LCDML.Button_up_down_left_right(_LCDMenuLib_button_right);
LCDML.Button_quit();

Ich hoffe das führt zum Ziel.
Falls du eine Lauffähige Version hast, würde ich mich über die Lösung freuen und den Code bei mir integrieren.
13  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: July 22, 2014, 04:04:07 pm
Was heißt: "unzuverlässig direkt nach dem einschalten".
Beschreib mal genauer was passiert und was wann unzuverlässig ist.
Welchen Arduino verwendest du ?
In welcher Form hast du die Lib verändert, weil du ja sagtest, du hättest alle Versionen ausprobiert ? Welche Versionen ?
14  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: July 22, 2014, 06:18:52 am
Es scheint als sei deine g_LCDMenuLib_press_time Zeit zu klein. Wie hast du den Wert eingestellt ?

Hast du direkt das Beispiel getestet oder schon modifikationen am Code vorgenommen ?
15  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: July 04, 2014, 01:24:02 am
Hi,
das ist nur der letzte Ausschnit der Fehlermeldung, kannst du bitte auch einen Screenshot vom Anfang hochladen ?

Mögliche Fehler:
- Falsche I2C Lib eingebunden benötigt wird: (LiquidCrystal_new Version 1.2.1)
- In der LCDMenuLib___config.h  darf nur eine Zeile aktive sein, alles andere sollte auskommentiert sein.
- Ist das richtige Beispiel geladen ?
Pages: [1] 2 3 ... 44