Show Posts
Pages: 1 ... 77 78 [79] 80 81 ... 199
1171  International / Deutsch / Re: Arduino Uno + LCD Keypad Shield + Temperatursensoren on: August 26, 2013, 11:41:54 am
Und hat dein LCD Keypad Shield auch einen SD Card Adapter ?
Oder hast du ein zusätzliches SD Card Shield das du huckepack mit draufsetzt?
Funktioniert der SD Card Adapter generell ? Beispiel-Sketche ...
Es gibt einige DataLogger Beispiele, funktionieren diese ? ( jurs' schon früher erwähntes Beispiel zum Daten aufzeichnen )
( Zusammen mit deinem LCD Shield ? )

Wie man generell zwei Beispiele in einen Sketch zusammenbringt hast du schonmal probiert ?

Für alle Fälle:
 - Alle #include zusammen, alle globalen Variablen zusammen, alles was beide Beispiele in setup und loop haben, zusammen, alle Funktionen zusammenkopieren ...
Dann sich Gedanken um die Fehlermeldungen beim "Sketch Überprüfen" machen  ...  smiley-wink
1172  International / Deutsch / Re: Kleinen Leuchtturm für meinen Gartenteich mit dem Arduino steuern on: August 26, 2013, 07:26:28 am
Falsch gedacht smiley-wink

Eine LED ist ungefähr das Gegenteil...

Normale Dioden (z.B.  1N4001 ) haben in Durchlassrichtung ca.  0.6V Spannungsabfall,
Schottky-Dioden z.B. nur 0.3V und sind also effektiver, wenn es auf diesen Spannungsabfall ankommt.

LED haben in Vorwärtsrichtung 1.8 .. 3.3 V je nach Farbe, und können auch nicht so hohe Ströme ab.
Ausserdem taugen sie nicht sonderlich als Sperr-Dioden, worauf es hier ja auch ankommt.
1173  International / Deutsch / Re: Webserver lange Antwortzeiten on: August 26, 2013, 06:04:25 am
Ich würde
1. die Serial - Testausgabe ansehen ( kommt die auch verzögert ?)
2. evtl. weitere Testausgaben einbauen um die Verzögerung zu erkennen
3. Prüfen, on da evtl. ein Reset passiert, z.B. eine Testausgabe in void setup() einbauen.
4. String Objekte rausschmeissen und durch char Arrays ersetzen ( falls das mit dem reset stimmt )
5. All die konstanten Texte direkt aus dem Flash ausgeben ( s. F-Makro ), um weiter RAM zu sparen.
Code:
     client.println(F("HTTP/1.1 200 OK"));
1174  International / Deutsch / Re: Arduino Uno + LCD Keypad Shield + Temperatursensoren on: August 26, 2013, 05:53:22 am
Da solltest du schon schreiben, was du aus jurs'  "Beispielen" gemacht hast, und womit du warum nicht weiter kommst...

Hast du Schwierigkeiten, dies

Code:
void logTemperatures(float t1, float t2, float t3)
{
 ...
}
von  hier : http://forum.arduino.cc/index.php?topic=180875.msg1344151#msg1344151 auf deine Bedürfnisse anzupassen ?

Manche mögen den kompletten Code sehen, andere bevorzugen einen Sketch der nur dein Problem zeigt.
Ich seh gern beides : nur das Problem, aber komplett kompilierbar smiley-wink

1175  International / Deutsch / Re: Rückfahrsensoren "Radar Sensor" on: August 26, 2013, 04:58:06 am
Frag doch den Händler, der z.B. auch einen Komplett-Set verkauft,
incl 4 Sensoren, Anzeige-Einheit, engl. Handbuch, ... , doppelseitigem Klebeband und Lochsäge,
ob er dir einen Link auf das Handbuch oder ein Datenblatt geben kann.
1176  International / Deutsch / Re: Arduino Uno + LCD Keypad Shield + Temperatursensoren on: August 26, 2013, 04:47:00 am
Quote
...damit ich diese Daten auf meinem PC mit Excel lesen und weiterverwenden kann?

Du kannst mit Excel ( oder openoffice-calc ) jede Textdatei importieren und dabei angeben, wie einzelne Spalten getrennt werden sollen (z.B. durch Tab  ( dann müsste der Arduino ein '\t' in die Datei zwischen zwei Werte schreiben ), oder ein Semikolon )

Wenn die Datei die Endung .csv hat und du bei Excel deutsche Einstellungen hast, ist das Semikolon als Spaltentrenner schon vordefiniert und du kannst die Datei direkt in Excel öffnen.
1177  International / Deutsch / Re: Arduino <-> Visual basic on: August 26, 2013, 04:25:21 am
VBA hat nun ausser der Syntax mit Basic - Ausdrücken wie "Dim" und "End While"  nicht mehr viel mit VB.NET zu tun.

Und wird von Microsoft totgeschwiegen und möglichst blockiert. Was heisst "notwendig" in diesem Zusammenhang ?
Klar, es "war" eine tolle Möglichkeit, Excel als Programmierumgebung zu verwenden und normale Tabellenkalkulation mit Programmierung zu kombinieren.
1178  International / Deutsch / Re: Arduino <-> Visual basic on: August 23, 2013, 10:49:29 am
Quote
Aha, und was ist daran jetzt besser / anders?
Unterschiede zwischen VB und C# sind:
 - zeilenorientiert gegen  ;
 -  {  } gegen "Next" "End While"  und änhliche Schlüsselworte
 - " Dim i As Integer " gegen " int i;"
 

C++ und C# sehen ähnlich aus, sind aber unterschiedlich.
C# und VB sehen unterschiedlich aus, sind aber dasselbe.

Manche finden es leichter, wenn wenigstens vieles gleich aussieht.
Andere finden es leichter, wenn es gar keine Verwechslungen gibt.

Du kannst auch auf dem PC in c++ programmieren, Gratis mit einem gnu - C++ Compiler ( davon würde ich aber dringend abraten )

Ein Hinweis:
Ich hab noch von keinem gehört, der mit C# angefangen hat und irgendwann auf VB gewechselt ist. Umgekehrt schon.

Wenn du VB nicht kannst, dann fang am besten erst gar nicht damit an. Nimm C#. Das ist wesentlich besser und die Syntax ist ähnlich zu C/C++. Beides ist .NET, daher sind die Klassen und Tools gleich.

Wieso heute noch Leute VB verwenden ist mir ein Rätsel. Die Syntax ist einfach grauenhaft vorsintflutlich und schlecht lesbar smiley
Ich würde das Wort "wesentlich" streichen und "schlecht lesbar" durch "nur für Leute, die nicht davon loskommen" ersetzen, aber sonst Serenifly recht geben... smiley-wink

Kann ich da auch Forms erstellen?
Es ist dasselbe ...

TUT soll Tutorial heissen?
Wenn du schon VisualStudio Express hast und beim Suchen msdn nimmst, siehst du, dass Beispiele meist in beiden Sprachen geliefert werden.
1179  International / Deutsch / Re: Array ohne Anfang und Ende on: August 23, 2013, 02:48:13 am
Quote
"Unendliche" Arrays kannst Du mit einem Modulo realisieren.
Wenn es so glatte Größen wie 16, 8, 4 ( wie bei sschultewolter sind ), reicht auch eine Bitmaske  (  & 0x03  in deinem Fall  )

Code:
    static int l;  // ein byte reicht auch
    unsigned long aktuelleZeit = millis();
    static unsigned long vorherigeZeit;

    if(aktuelleZeit - vorherigeZeit > pause)  {
      vorherigeZeit = aktuelleZeit;
      byte pos = l & 0x03;        //   0, 1, 2, 3, 0 ...
      byte vor = (l-1) & 0x03;   //  3, 0, 1,  2, 3 ...
      byte nach = (l+1) & 0x03; // 1, 2, 3, 0,  1 ...

      ShiftPWM.SetAllRGB(0,0,0);       
      ShiftPWM.SetRGB(pos,   r, g, b);
      ShiftPWM.SetRGB(vor,   r, g, b);
      ShiftPWM.SetRGB(nach, r, g, b);
      l++;  // l darf auch überlaufen !
     }
1180  International / Deutsch / Re: Probleme mit ShiftPWM on: August 23, 2013, 02:15:46 am
Code:
int rgbModus;
 
  switch(modus) {
  case 0:
   rgbModus[] = {
      0, 2, 4, 6, 1, 3, 5, 7                      }; // RB RB RB RB
    break;

Müsstest du erklären was du da eigentlich willst ?

Sieht aus als sollte rgbModus ein byte-Array von 8 Byte sein ?
Bzw. ein Pointer auf eines von mehreren konstanten ByteArrays ?

Falls ich richtig rate, mach doch ein Array aus solchen ByteArrays und hol dir das richtige, abhängig von modus.

Code:
byte rgbModusList[8][8] = {
    { 0, 2, 4, 6, 1, 3, 5, 7  } , // 0 =  RB RB RB RB
    { 1, 3, 5, 7, 0, 2, 4, 6  }   // 1 =  BR BR BR BR

// ... usw.
}
// ...
void blinklicht ( unsigned int wz, unsigend int modus) {

    if (modus < 8)  {
        byte * rbgModus = rgbModusList[modus];

        // rgbModus[k] ist jetzt ok
        // ...
        for(int k = 0; k < 4; k++) ShiftPWM.SetRGB(rgbModus[k], 255, 0, 0);
        for(int k = 4; k < 8; k++) ShiftPWM.SetRGB(rgbModus[k], 0, 0, 0);
    }
}
1181  International / Deutsch / Re: Zwei ähnliche Libraries machen Probleme on: August 22, 2013, 10:11:09 am
Quote
Ich nehme an, dass der Befehl zum Abholen und Darstellen der Uhrzeit in der RTClib.h anders aufzurufen ist als in der DS1307.h

Wo kann ich nachlesen, wie die Befehle für das Auslesen und die Ausgabe lauten?

--> In  RTClib.h und in  DS1307.h

Das ist der Zweck dieser sogenannten include-Dateien: Sie definieren, welche Funktionen mit welchen Parametern existieren, damit der Compiler deinen Sketch richtig übersetzen kann und evtl. Fehler finden kann.

Das sind allerdings eher formale Deklarationen, in der Praxis helfen oft die beigefügten Example-Sketche weiter.

In deinem Fall musst du "raten", welches die entsprechende Funktion in RTCLib.h sind, die dasselbe machen wie die in DS1307.h
Die eine nutzt ein DateTime - Objekt, die andere liefert einzelne Werte (sec, min, h, tag, mon, jahr)  mit RTC.get()
In der Praxis lernst du notgedrungen selber programmieren smiley-wink

Was meinst du mit "Darstellen der Uhrzeit" ? Das ist eigentlich nicht Sache der RTC Libraries...

1182  International / Deutsch / Re: NMEA Parser on: August 21, 2013, 04:01:24 pm
Sehr richtig, Serenifly!
Quote
Das kann man verständlicher machen indem man Minus 48 oder Minus 0x30 macht. Einfach weil '0' den ASCII Wert 48 hat
Noch verständlicher wird es, wenn man sich nur merkt, dass die Zahlen aufeinanderfolgen :
Also muss man von dem Ascii-Zeichen nur das Zeichen '0' subtrahieren.

'9' - '0' = 9

Code:
byte b = buffer[i] - '0';  // liefert eine Zahl 0 .. 9, wenn in buffer[i] eins der Zeichen '0' .. '9' steht.

Dass '0' die Zahl 0x30 ist, merkt man sich mit der Zeit auch leicht smiley-wink
Aber -'0' ist genausoschnell gerechnet wie &0x0F, wenn mich nicht alles täuscht. Bräuchte man also gar nicht zu wissen...

@Mirko:
ja , buffer ist ein Array, buffer[0] ist das erste Element.

String ist übrigens ein missverständliches Wort : in der Referenz findest du  
Quote
string - char array
String - object

buffer ist vermutlich ein char array...
1183  International / Deutsch / Re: Gerät per RS232 ansteuern on: August 21, 2013, 03:18:48 pm
a) ( Text von Anfang bis Zeilenende mit einer Liste von Texten vergleichen, und die Elementnummer der Vergleichstabelle, oder -1 falls nicht gefunden, liefern ) ist einfach.
Noch einfacher wäre es, wenn es nicht um Tiernamen, sondern um Kommandos mit fester Länge geht.
Etwas mühsamer wird es, wenn die konstante Vergleichsliste nicht im RAM, sondern aus Optimierungsgründen im FLASH liegen soll...

Vielleicht erbarmt sich jurs und liefert eine Musterlösung smiley-wink

1184  International / Deutsch / Re: Datenlogger schreibt nicht auf SD on: August 21, 2013, 10:25:18 am
Da du uns nicht den ganzen Sketch zeigst, vermute ich, dass das ganze deutlich größer ist, und du ein Problem mit den 2k RAM hast, die zu einem Großteil für die SD Library draufgehen.
Das Ganze geht nur halbwegs, weil der Compiler gleiche Texte nur einmal anlegt.
Mit 2 unterschiedlichen Headern hast du dann nicht genug RAM. (Meine Vermutung)

Eine Abhilfe ist, feste Texte nicht im RAM zu haben:
Such mal nach dem F-Makro  Serial.print(  F("Text im Flash")  ); ,  PROGMEM,  und wie man dem Compiler noch helfen kann, gleiche Texte nur einmal anzulegen. 
1185  International / Deutsch / Re: Gerät per RS232 ansteuern on: August 21, 2013, 10:11:46 am
Mehrere Möglichkeiten:
a) es gibt ein Endezeichen ( z.B. '\n' ) : dann wird auch der Puffer gelöscht und neu angefangen
b) Du prüfst gleich jedes Zeichen auf den passenden Partner im Vergleichsstring
Dann erkennst du auch z.B. "xLibyzLibelle"

Code:
const char comparevalue[]="Libelle";
if (Serial3.available())
{
    c=Serial3.read();
    commandbuffer[i] = c;
    if (commandbuffer[i] == comparevalue[i])
    {
        i++;
        if (i == sizeof(comparevalue))
        {  
            //OK
             Serial.println("Libelle gefunden");
              i = 0;
              memset(commandbuffer,0,sizeof(commandbuffer));
        }
   }
   else
   {
         // BAD
          Serial.print(commandbuffer); Serial.println ("  ist falsch");
          i = 0;
          memset(commandbuffer,0,sizeof(commandbuffer));
   }
}

im Beispiel "xLibyzLibelle" erhältst du
x ist falsch
Liby ist falsch
z ist falsch
Libelle gefunden


aber damit LibLibelle funktioniert, musst du noch ein bisschen feilen, denn so gibts
LibL ist falsch
i ist falsch
b ist falsch
e ist falsch
...



Aber du willst sicher gar nicht so was, sondern lieber mit festen (Zeilen-)Anfängen arbeiten.

edit: besser, aber immer noch ungetestet; die Idee sollte aber klar sein smiley-wink
Pages: 1 ... 77 78 [79] 80 81 ... 199