Show Posts
Pages: 1 [2] 3 4 ... 39
16  International / Deutsch / Re: Arduino YUN keine TCP Verbindung nach WLAN aus. on: February 06, 2014, 04:36:04 pm
Welches Linux läuft denn darauf, ich hab mich die letzten Tage intensivest mit dem Raspberry Pi beschäftigt, unteranderem mit Wlan problemen.
Vielleicht hilft dir diese Seite weiter.
http://www.gieseke-buch.de/raspberrypi/wlan-verbindung-automatisch-wiederherstellen
17  International / Deutsch / Re: Globaldaten in verschiedenen Librarys on: February 06, 2014, 04:28:38 pm
Es macht nur Sinn dein Projekt in Klassen zu zerlegen, wenn du die Klassen später in anderen Projekten weiterverwenden kannst. Wenn diese nur speziell für deine Anwendung existieren, dann macht eine Klasse kaum einen Sinn.
18  International / Deutsch / Re: blink_without_delay für Fortgeschrittene on: February 06, 2014, 09:31:06 am
Ich verweise nochmal auf diese Lib: http://forum.arduino.cc/index.php?topic=165552.0
Den Link habe ich dir schonmal bezüglich eines anderen Themas geschickt.

Falls es noch komplexer werden sollte macht es Sinn, da du deine Aufgaben dann einfach miteinander Verschachteln kannst ohne dass zuviele If Abfragen benötigt werden.

Der Code würde dann wie folgt aussehen:
Code:
#include <simpleThread.h>

#define _sT_cnt _sT_cnt_2
simpleThread_init(_sT_cnt);
simpleThread_new_timebased_dynamic (_sT_P1  , _sT_millis, 30, _sT_start  , LED_Blink);
simpleThread_new_timebased_dynamic (_sT_P2  , _sT_millis, 1000, _sT_start  , Start_LED_Blink);

uint8_t g_blink_cnt = 0;
uint8_t g_led_status = 0;

// Thread LED Blink
  void simpleThread_setup(LED_Blink)
  {
    g_blink_cnt = 0;  
  }
  void simpleThread_stable(LED_Blink)
  {
    //Led ausschalten
    digitalWrite(13, LOW);
  }
  boolean simpleThread_loop(LED_Blink)
  {  
    if(g_blink_cnt < 8) { //8*30 = 240 ms
      // LED Blink
      g_led_status = !g_led_status;
      digitalWrite(13, g_led_status);
      g_blink_cnt++;
    } else {
      // Thread wird sich selbst deaktivieren
      simpleThread_stopStable(LED_Blink);
    }
    return 0;  
  }

// Thread Start Led Blink
  void simpleThread_setup(Start_LED_Blink)
  {}
  boolean simpleThread_loop(Start_LED_Blink)
  {  
    simpleThread_restart(LED_Blink);  
    return 0;  
  }

// Setup
void setup()
{    
  pinMode(13, OUTPUT);
  /* Threads initialisieren */
  simpleThread_initSetup(_sT_cnt);
}

void loop() {
  /* calls the threads */
  simpleThread_run(_sT_priority);
  
  // hier der andere Code, besser noch in einem eigenen Thread
}

Falls noch mehr Zeiten bei dir hinzukommen sollten, führt auf dauer kein Weg dran vorbei eine Lib zu verwenden die diese oder eine Ähnliche Funktionalität bietet.
19  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: February 05, 2014, 10:43:38 am
So wie du es geschrieben hast wird das Objekt auch angelegt:
Code:
LiquidCrystal_I2C lcd(_LCDMenuLib_LCD_addr, _LCDMenuLib_LCD_e, _LCDMenuLib_LCD_rw, _LCDMenuLib_LCD_rs, _LCDMenuLib_LCD_dat4, _LCDMenuLib_LCD_dat5, _LCDMenuLib_LCD_dat6, _LCDMenuLib_LCD_dat7, _LCDMenuLib_LCD_backlight, _LCDMenuLib_LCD_backlight_pol);

Aber nirgens unter 12 - 15 werden die  dat0 - dat3 verwendet. Wieso er das nun als Fehlermeldung ausgibt weiß ich nicht. Kannst du mal bei dir in der LCDMenuLib_class.h unter in Zeile 86 - 107 nachschauen ob irgendwo  das definiert ist ?

Ich hab gerade schon die alten Versionen der Lib durchgeschaut, aber dort habe ich die definitionen auch nicht deklariert. Sind vielleicht zwei Einträge in der ___config.h aktiv ?

20  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: February 04, 2014, 11:09:01 am
Was ist denn der 4bit Modus mit I2C ?  Einfacher ist es wenn du mir sagst welche Konfiguration du in der LCDMenuLib___config.h eingestellt hast. Ich habs gerade bei mir mit dem Typen 10 - 15 getestet und habe keine Fehlermeldungen beim kompelieren. Definierte Variablen:
Code:
/* i2c address */
#define _LCDMenuLib_LCD_addr             0x20

#define _LCDMenuLib_LCD_e 0
#define _LCDMenuLib_LCD_rw 1
#define _LCDMenuLib_LCD_rs 2
#define _LCDMenuLib_LCD_dat4              3
#define _LCDMenuLib_LCD_dat5              4
#define _LCDMenuLib_LCD_dat6              5
#define _LCDMenuLib_LCD_dat7              6
#define _LCDMenuLib_LCD_backlight         7
#define _LCDMenuLib_LCD_backlight_pol     POSITIVE // NEGATIVE
21  International / Deutsch / Re: Einbindung meines Programms in ROS on: February 03, 2014, 07:51:13 pm
Hi, in der Zeile 11 wird nur ein Objekt vom Type String angelegt, eigentlich das gleiche wie in Zeile 9 und 12. Zeile 26 ruft eine Funktion auf, die etwas mit dem Objekt macht.

Vielleicht solltest du dir die Grundlagen nochmal anschauen, diese lassen sich auch in deutsch finden:
Such am besten nach ROS in Verbindung mit Hochschule bzw Unis, irgendwie müssen die Studenten das ja auch lernen ;-)

http://users.informatik.haw-hamburg.de/projects/robotvision/Einsatz%20des%20ROS-Frameworks%20zur%20Umgebungskartierung%20und%20Navigation%20des%20SCITOS%20G5-Service-Roboters%20-%20Felix%20Kolbe%20PJ2%20Projektbericht.pdf
http://www.betriebssysteme.org/Aktivitaeten/Treffen/2012-Koblenz/Programm/docs/slides_kathe.pdf
http://www.is.uni-due.de/fileadmin/lehre/11w_projekt/Folien.pdf
http://enricojoerns.de/docs/ros_ausarbeitung_final_twosided.pdf


22  International / Deutsch / Re: Eine generelle Frage zum Thema Arduino und Matlab/Simulink on: February 03, 2014, 07:31:55 pm
Hi,
du kannst den Regler ruhig mit Matlab/Simulink erstellen und den generierten C Code später im Arduino einsetzen, dir sollte nur bewusst sein, dass ein Arduino (die meisten) nur 2 Kb Ram besitzen und somit komplizierte Berechnungen mit vielen Float Werten die Hardware schnell an die Grenzen bringen.
Den generierten Quellcode musst du von Hand kopieren und eventuell minimal anpassen. 
23  International / Deutsch / Re: Fehler beim Kompilieren on: February 03, 2014, 02:59:46 pm
Wo kommt den die Firmware her, meistens muss man diese ja selbst nicht übersetzen. Mit welchem Programm versuchst du das zu übersetzen.

Ist dieses Thema allgemein oder nutzt der Drucker einen Arduino ?
24  International / Deutsch / Re: Einbindung meines Programms in ROS on: February 03, 2014, 12:48:36 pm
Hi,
ROS ist schon sehr speziell, vielleicht erhälst du qualitativ bessere Antworten wenn du in einem ROS Forum nachfragst, da die meisten hier sich nur mit Mikrocontrollern auskennen, deine Frage sich aber Hauptsächlich auf ROS Funktionen bezieht.
25  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: February 03, 2014, 03:34:54 am
Hi,
ich selbst habe noch nicht mit Schieberegistern gearbeitet, wie du nun genau die einzelnen Funktionen aufrufst weiß ich nicht genau. Allgemeine Fragen dazu kann man besser in einem eigenem Thema stellen.

Allgemein LiquidCrystal_SR,  LCDMenuLib:
In der LCDMenuLib nutze ich eine externe Lib die eingebunden werden kann. Diese kann die Schieberegister für das LCD passend setzen.
Die Dokumentation zu der Lib findest du hier:  https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
(alte LiquidCrystal an einen Ort außerhalb des Lib Verzeichnis kopieren und die Neue einfügen, anschließend die Arduino Software [alle Instanzen] schließen und neu öffnen)

In meiner Lib müsstest du nun in das Lib Verzeichnis wechseln und die LCDMenuLib___config.h öffnen. Hier kommentierst du die erste Zeile aus (Nummer 0) und die letzte Zeile ein (Nummer 20). Dies aktiviert den Schieberegister Modus.

Anschließend öffnest du z.B. das normale Beispeil aus meiner Lib.

Hier musst bei den Dateien die eingebunden werden die Zeile mit  #include <LiquidCrystal.h>  durch    <LiquidCrystal_SR.h> ersetzen.
Danach müssen noch die Konstanten für das Schieberegister definiert werden
Code:
#define _LCDMenuLib_LCD_srdata     0     //data pin    
#define _LCDMenuLib_LCD_srclk        1     //clock pin
#define _LCDMenuLib_LCD_enable     TWO_WIRE

Die Verdrahtung eines Schieberegisters mit dem LCD kann man hier finden:
https://code.google.com/p/arduinoshiftreglcd/

Eine ausführliche Anleitung zur Ansteuerung der Schieberegister findet man auch in den *.h Dateien der neuen LiquidCrystal Lib: Dort stehen viele Information wie z.B.:
für SR Register:
Quote
// Connection description:
//
// SR output:
// Bit  #0   - N/C - not connected, used to hold a zero
// Bit  #1   - N/C
// Bit  #2   - connects to RS (Register Select) on the LCD
// Bits #3-6 - connects to LCD data inputs D4 - D7.
// Bit  #7   - enables the LCD enable-puls (via the diode-resistor AND "gate")
//
// 2 or 3 Pins required from the Arduino for Data, Clock and (optional) Enable
// If not using Enable, the Data pin will be used for the enable signal.
// 2 wire mode can be indicated by:
// - ommitting the enable pin in constructor
// - defining the same pin for Enable as for Data in constructor
// - by using the token TWO_WIRE for the enable pin.

SR2W:
Quote
// 2 Pins required from the Arduino:
// - Data/Enable
// - Clock
// The Data pin is also used to control the enable signal
// LCD RW-pin hardwired to LOW (only writing to LCD).
// Busy Flag (BF, data bit D7) is not read.
//
//  Original project homepage: http://code.google.com/p/arduinoshiftreglcd/
//
// Shift register bits
// Bit  #0   - (cannot be used on 74HC595)
// Bit  #1   - optional backlight control
// Bit  #2   - connects to RS (Register Select) on the LCD
// Bit  #3   - connects to LCD data inputs D4
// Bit  #4   - connects to LCD data inputs D5
// Bit  #5   - connects to LCD data inputs D6
// Bit  #6   - connects to LCD data inputs D7
// Bit  #7   - enables the LCD enable-puls (via the diode-resistor AND "gate")

SR3W:
Quote
//   +--------------------------------------------+
//   |                 MCU                        |
//   |   IO1           IO2           IO3          |
//   +----+-------------+-------------+-----------+
//        |             |             |
//        |             |             |
//   +----+-------------+-------------+-----------+
//   |    Strobe        Data          Clock       |
//   |          8-bit shift/latch register        | 74HC595N
//   |    Qa0  Qb1  Qc2  Qd3  Qe4  Qf5  Qg6  Qh7  |
//   +----+----+----+----+----+----+----+----+----+
//        |    |    |    |    |    |    |    
//        |11  |12  |13  |14  |6   |5   |4   (LCD pins)
//   +----+----+----+----+----+----+----+----+----+
//   |    DB4  DB5  DB6  DB7  E    Rw   RS        |
//   |                 LCD Module                 |

Die SR2W und SR3W Versionen der neuen LiquidCrystal sind bisher noch nicht in der Lib eingebunden. Dies könnte ich aber heute Abend umsetzen.


Zur Ansteuerung der LCDMenuLib
Du könntest dir die folgende Funktion so umschreiben, dass das digitalRead durch deine Abfrage des Schieberegisters ersetzt wird. Danach wäre die Ansteuerung schon fertig.
Code:
void LCDMenuLib_control_digital_over_sr()
{
    if(LCDML.Timer(g_LCDMenuLib_press_time, _LCDMenuLib_cfg_press_time))
    {
if(digitalRead(_BUTTON_digital_enter))
   {
LCDML.Button_enter();
}
else if(digitalRead(_BUTTON_digital_up))
{
LCDML.Button_up_down_left_right(_LCDMenuLib_button_up);
}
else if(digitalRead(_BUTTON_digital_down))
{
LCDML.Button_up_down_left_right(_LCDMenuLib_button_down);
}
else if(digitalRead(_BUTTON_digital_left))
{
LCDML.Button_up_down_left_right(_LCDMenuLib_button_left);
}
else if(digitalRead(_BUTTON_digital_right))
{
LCDML.Button_up_down_left_right(_LCDMenuLib_button_right);}      
}
// Button Quit hat Priorität wenn mehrere Gleichzeitig gedrückt werden
if(digitalRead(_BUTTON_digital_quit))
{
LCDML.Button_quit();
}  
}
}

Ich hoffe das Hilft dir erstmal weiter und danke für den Tipp mit dem KeyFile, dass werde ich wenn ich etwas mehr Zeit habe mal anpassen.

Update 03.02.2014
- Beispiele überarbeitet bezüglich definierter Konstanten
- SR Beispiel eingefügt
- SR2W und SR3W werden nun unterstützt
- SR2W und SR3W Beispiele eingefügt
- Konstanten im Keyfile angepasst
26  International / Deutsch / Re: RGB-LED Strip Ansteuerung on: February 01, 2014, 03:11:41 am
Ich hab vor 3 Tagen, diese hier noch bestellt:

http://www.ebay.de/itm/5m-52-LED-m-Digitale-LPD8806-RGB-LED-Light-Stripe-5V-Addressable-Full-Color-/171206672060?ssPageName=ADME:L:OC:DE:3160

Anschlussart, 2 Pin (Clock und Data).  Jede LED ist einzeln in jeder Farbe ansteuerbar (127 Stufen).

Nachteil: für den Preis gibt es nur 5 Meter Stücke.
27  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: January 29, 2014, 03:09:07 am
 smiley-roll-blue
28  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: January 29, 2014, 02:27:45 am
Dann liefern wir dem Fehler einfach den Datentyp den er erwartet:

t_backlightPol ist so definiert:
Code:
typedef enum { POSITIVE, NEGATIVE } t_backlighPol;

Änder mal das define wie folgt um:
Code:
//....
#define _LCDMenuLib_LCD_backlight_pol     POSITIVE  // oder NEGATIVE  so wie dein LCD das benötigt
// ....

Dann wäre es Datentyp technisch korrekt.
Ich weiß nicht wieso er bei mir die "0" annimmt.

Ich hab die Änderung auch in der Beschreibung des ersten Beitrages geändert.
29  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: January 28, 2014, 08:40:01 am
Also die Type 10 - 15 definieren nicht die fehlenden Konstanten. Diese werden dann benötigt, aber nicht festgelegt. Daher müssen sie im Programm festgelegt werden.

Ich hab es gerade nochmals bei mir getestet, ich kann Version 10 - 15 kompilieren ohne Fehlermeldung wenn ich im Arduino Sketch die Konstanten einfüge.

Sieh dir das Bild im Anhang an!
30  International / Deutsch / Re: Projekt: LCDMenuLib - LCD Menü mit mehreren Ebenen (4Bit/I2C/ShiftReg/...) on: January 28, 2014, 05:02:40 am
Hi,
falsch läuft da gar nichts :-)  

Schau dir nochmal Punkt 4 im ersten Beitrag an, vor allem der letzte Satz bevor der Quellcode eingeblendet wird. Dort steht wie man die fehlenden Konstanten definiert.

Unter dem Quellcode steht dann auch was passiert, wenn man diese nicht einbindet  smiley-lol
Pages: 1 [2] 3 4 ... 39