Show Posts
Pages: [1] 2
1  International / Deutsch / Variablen bitweise/direkt beschreiben on: February 07, 2013, 02:02:35 am
Hallo @all,
ich bin nicht der C-Profi, deshalb schon wieder eine Frage: Ich möchte einen Float-Wert in einem Eeprom speichern. Der Eeprom arbeitet ja Byte-Orientiert und der Float-Wert ist (lt. Doku) ja 4 Byte groß.

Wie kann ich unter C eine Float-Variabel direkt (also die 4 Byte) auslesen und schreiben, damit ich die Werte in ein Eeprom schreiben kann oder aus dem Eeprom wieder herstellen kann?

Vielen Dank für jeden Tipp
2  International / Deutsch / Re: int aus String extrahieren. on: February 07, 2013, 01:56:17 am
Vielen Dank jurs für deine Hilfe. Das ist es, was ich gesucht habe.

Genial!
3  International / Deutsch / int aus String extrahieren. on: February 05, 2013, 03:22:42 pm
Hallo @all,
ich brauche mal eure Programmiererfahrungen. Ich programmiere normalerweise nur unter Windows. Das Stringhandling ist unter Arduino echt "schwer":

Folgendes Beispiel:

// aus der Variable cZeile...
char cZeile[] = "GET //231=25,77 HTTP/1.1";

//Sollen folgende Werte extrahiert werden:
int iPosition = 231;
float fWert = 25.77;
 
Hat hier jemand ein Beispielcode, womit ich aus der obigen Zeile die Werte extrahieren kann und den Variablen zuweisen kann.

Vielleicht zum Hintergrund: Ich versuche eine Webschnittstelle zu programmieren, über die ich verschiedene Parameter meines Prorgammes anpassen kann. Diese Parameter speichere ich in einem i2c-eeprom und lese Sie wärend des Programmablaufes aus. Zum Beispiel die Wiederholfrequenz in meinem Programm in Sekunden. Ich möchte die Parameter wie folgt übergeben:
http://<ip-arduino>/231=25,77.
Die 231 ist die Startadresse im eeprom und die 25,77 ist der Wert, der ab dort geschrieben werden soll.

Vielen Dank im Voraus
4  International / Deutsch / convert byte[] to float and int on: February 03, 2013, 02:38:57 pm
Hallo @all,

ich möchte variable Einstellungen zu meinem Programm in einer Datei auf der SD-Karte speichern (so wie die INI-Dateien unter Windows früher). Hierfür dachte ich, mach ich einfach eine Datei mit einer festen Zeilenlänge (immer 18 Zeichen + 2 Zeichen Zeilenschaltung). So brauche ich immer nur mit "seek" um 20 Zeichen weiterspringen und kann geziehlt Werte auslesen.

So nun zu meinem Problem: Ich habe natürlich auch in der einen oder anderen Zeile eine Integer oder Float-Zahl gespeichert. Wenn ich die einlese, werden diese in einem Byte-Array gespeichert.

Wie kann ich eine Float/Int-Zahl die in einem Byte-Array gespeichert sind in die korrekte Variable übertragen?

Vielen Dank für jeden Tipp.
5  International / Deutsch / Re: suche Altenative zu delay(); on: January 25, 2013, 04:22:56 pm
Danke,
hätte ich gewust, das es millis() heißt, hätte ich's gesucht und gefunden.

Hatte mir extra das Buch "C programming for Arduino" gekauft. Mal ein Buch ohne Sketche Vordergrund, sondern mit der Programmierung im Vordergrund. Aber von millis() steht nix drin.

Wer kennt mal ein umfassendes Werk, in dem solche Tricks stehen?

Habs gerade gefunden:
Time
    millis()
    micros()
    delay()
    delayMicroseconds()

Ich bin schon blind :-)
6  International / Deutsch / suche Altenative zu delay(); on: January 25, 2013, 04:05:14 pm
Hallo Zusammen, ich hänge schon wieder.

ich möchte in sehr schneller Abfolge mehrere Ports schalten und abfragen und in einem 2 Sekunden-Takt ein LCD aktualisieren.

Nun dachte ich mir, ich lasse die Endlosschleife (loop()) einfach immer durchlaufen. Bei jedem Durchlauf erhöhe ich einen Zähler. Wenn der Zähler einen bestimmten Grenzwert überschritten hat, rufe ich eine Funktion (für die notwendigne Aktionen) auf und setze den Zähler auf 0 zurück.

Wie häufig wird die loop-Schleife pro Sekunde durchlaufen, mit welchen Werten muss ich arbeiten?

Oder gibt es hier andere Ansätze für die Umsetzung?

Danke im Voraus
7  International / Deutsch / Re: Arduino Mega und Ethernet on: January 25, 2013, 03:34:17 pm
Hallo,

es handelt sich um das "Arduino Ethernet Shield R3" (nehme extra schon original, um ärger zu verhindern)

der 6polig ICSP-Anschluss ist ok und sieht zumindest ordentlich verbunden aus.

Ja, ich nehme eine externes Netzteil mit 9V.
8  International / Deutsch / Arduino Mega und Ethernet on: January 25, 2013, 02:20:02 pm
Hallo zusammen, ich brauche mal wieder eine Info:

Da mir der Programmplatz in meinem Arduino-Ethernet zu klein wurde, habe ich mir einen Arduino-Mega mit einem Arduino Ethernet Shield gekauft.
Ich habe das nur kurz angeschlossen, da ich in wenigen Sekunden fühlen konnte, wie der Spannungsregler auf dem Mega-Board heiß wurde. Nach dem abziehen des Shields war alles wieder ok.
Also, sobald ich das Arduino Ethernet Shield aufstecke, wird der Spannungsregler heiß.

Nun habe ich gelesen, das die Ethernetanbindung beim Ethernet-Board über die Ports 10,11,12 und 13 ist und beim Mega über die Ports 10,50,51 und 52. Doch diese Ports werden von dem Shield natürlich nicht erreicht.

Kann es sein, dass dieses Shield gar nicht auf das Mega-Board passt?
9  International / Deutsch / Re: Probleme mit I²C Bus wenn Arduino an externer Stromquelle on: January 23, 2013, 04:21:47 pm
Quote
Das folgende steht im originalen Datenbaltt: DC CHARACTERISTICS: VDD = 2.5 to 6 V
-Das heißt erst mal, dass in diesem Bereich der Baustein ordentlich arbeitet (zwischen 2,5 und 6 Volt)

Nein da irrst Du Dich. Der Arduino UNO hat den Controller ATmega328P-PU http://www.atmel.com/Images/doc8161.pdf

in diesem Datenblatt steht:
Operating Voltage: 1.8 - 5.5V for ATmega48PA/88PA/168PA/328P (Betriebsspannung)

Maximum Operating Voltage ............................................ 6.0V  (maximale Spannung die das IC verträgt ohne kaputt zu gehen).

Grüße Uwe
Hallo Uwe, ich habe mich da auf den PCF8574 bezogen und nicht auf das Arduino-Board, war wohl nicht so ersichtlich.

Was ich auch damit auch zum Audruck bringen wollte, ist dass ich eine zu geringe Spannung als Ursache für das Fehlverhalten am i2c-Bus für unwahrscheinlich halte. Aber, man wird mit jeden Satz hier schlauer: Wenn ich das jetzt richtig verstanden habe, wird hier ein Netzteil verwendet, das sowohl einen 5V als auch einen 12V Ausgang hat. Die 12V sind nun am Arduino Klinkenstecker angelegt und die 5V an den i2c-bus und die Massen von 12V und 5V sind wahrscheinlich schon im Netzeil zusammengeschaltet.

Die lastabhängigen Spannungsschwankungen auf der 5V Seite sind doch eher eine Sache der Netzteilqualität. Oder?
10  International / Deutsch / Re: Probleme mit I²C Bus wenn Arduino an externer Stromquelle on: January 21, 2013, 03:42:06 pm
Hi LoopingLouie Team,

>>2. Sind auch die notwendigen PullUp-Wiederstände bei den Anschlüssen SCL/SDA vorhanden?
>zu 2.: meinst du damit, ob wir die Pins in der Software auf "High" gesetzt haben oder Hardware Widerstände?

Also, Ihr habt doch die SCL und SDL Anschlüsse des PCF8574 an den dafür vorgesehenen Anschlüssen des Arduion (Port 20/21) angeschlossen. Diese beiden Leitungen benötigen je einen separaten PullUp-Wiederstand (i.d.R. 10K) gegen 5V+.
(siehe angefügte Grafik)

>>Vorher warens 5,29V am i2c, mittlerweile (nach Erhöhung der Spannung an der Arduino Buchse) 5,49V
Zum Thema Spannung:
Das folgende steht im originalen Datenbaltt: DC CHARACTERISTICS: VDD = 2.5 to 6 V
-Das heißt erst mal, dass in diesem Bereich der Baustein ordentlich arbeitet (zwischen 2,5 und 6 Volt)
Eine Veränderung von 0,2 Volt sollte normalerweise nicht über die einwandfreie Funktion entscheiden.

sy. mcGeorge
11  International / Deutsch / Re: Bitte um kurze Hilfe bei der Programmierung on: January 20, 2013, 04:37:16 pm
Danke für das Mitdenken. Habe die Lösung gefunden.

Der Geltungsbereich der Variable was das Problem. Nun habe ich die Deklaration in den Kopf gelegt und damit den Geltungsbereich projektweit. Nun klappt es!

Danke erstmal.
12  International / Deutsch / Re: Probleme mit I²C Bus wenn Arduino an externer Stromquelle on: January 20, 2013, 03:47:11 pm
Sorry, ich bin ja auch noch Neuling. Aber in meinen aktuellen Projekt adaptiere ich alles über den i2c-Bus und es klappt einwandfrei auch bei einer Spannung von 4.98 V.

1. sicherlich müssen die Massen alle zusammengeschlossen werden.
2. Sind auch die notwendigen PullUp-Wiederstände bei den Anschlüssen SCL/SDA vorhanden?
3. Für die Ansteuerung der LED's sind doch noch zusätzliche Bauteile notwendig wie PCF8574 (nutze ich zurzeit).
4. Ist die Leistung der separaten Spannungsversorgung für den i2c ausreichend?
13  International / Deutsch / Re: Bitte um kurze Hilfe bei der Programmierung on: January 20, 2013, 03:06:48 pm
Wie gewünscht einen Auszug aus meinen Sketch:

Das folgende steht in der "Humidor_1.ino":
Quote
#include <Ethernet.h>

void setup() {
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop() {

  EthernetClient client = server.available();

  if (client) {
    WebAnswer();
    delay(1);
    client.stop();
  }
}


Die Funktion WebAnswer() steht in der Datei "WebDienst.ino":
Quote
void WebAnswer() {
  boolean currentLineIsBlank = true;

  while ( client.connected() ) {
    if ( client.available() ) {
      char c = client.read();

      if (c == '\n' && currentLineIsBlank) {
        client.println("HTTP/1.1 200 OK");
        client.println("Content-Type: text/html");
        client.println("Connnection: close");
        client.println();
        client.println("<!DOCTYPE HTML>");
        client.println("<html><head></head><body>");

        client.print( "Sensor 1 - Temperatur:" );
        client.print( Temperatur_1 );
        client.print( " - Feuchte:" );
        client.print( Feuchte_1 );
        client.println("<br />");

        client.println("</body></html>");
        break;
      }
      if (c == '\n') {
        currentLineIsBlank = true;
      } 
      else if (c != '\r') {
        currentLineIsBlank = false;
      }
    }
  }
}


Dort entsteht folgender Fehler:
Humidor_1.cpp.o: In function `WebAnswer()':
C:\#_Elektronik\arduino-1.0.1/WebDienst.ino:7: undefined reference to `client'
C:\#_Elektronik\arduino-1.0.1/WebDienst.ino:7: undefined reference to `client'
C:\#_Elektronik\arduino-1.0.1/WebDienst.ino:8: undefined reference to `client'
C:\#_Elektronik\arduino-1.0.1/WebDienst.ino:8: undefined reference to `client'
C:\#_Elektronik\arduino-1.0.1/WebDienst.ino:11: undefined reference to `client'
Humidor_1.cpp.o:C:\#_Elektronik\arduino-1.0.1/WebDienst.ino:11: more undefined references to `client' follow
14  International / Deutsch / Bitte um kurze Hilfe bei der Programmierung on: January 20, 2013, 02:29:34 pm
Hallo Ng,
sorry, ich bin zurerst davon ausgegangen, dass Arduino eine eigene Sprache hat, die der C/C++ angeglichen ist. Aufgrund dessen hatte ich mich gewundert, dass ich in anderen Sketchen Programmierbefehle gefunden hatte, die in der Reference-Page nicht aufgeführt wurden. Nun habe ich so nach und nach verstanden, dass es nicht ganz richtig ist.

Deshalb meine Frage: Kann mir jemand ein Buch empfehlen, in dem vordringlich die Programmierung und nicht die Technik beschrieben ist. Oder ein alternatives Buch für die C/C++ Sprache, welches aber weitgehend auf Arduino passt.

Und nun zu meiner aktuellen Frage: Ich schreibe ein umfangreiches Programm. Deshalb möchte ich es in mehrere Dateien aufteilen. Das läßt sich ja mit dem Punkt "Zusätzlichen Tab" schnell realisieren.
Nun habe ich aber das Problem gehabt, dass bei Zugriff auf bestimmte Variablen die Fehlermeldung kam, dass die Variabel in der aktuellen Datei nicht existiert. Das konnte ich mit dem Statement "extern" umgehen. Danach kam die Meldung nicht mehr. Hoffe das war richtig?
Nun ist es aber so, dass ich einen WebServer hinzuprogrammieren möchte, das heißt, dass ich in der ersten Datei die folgende Zeile habe: "EthernetClient client = server.available();" Wenn ich nun in meiner anderen Datei (Tab) auf das Objekt "client" zuzugreifen, erhalte ich die Meldung das ein Zugriff auf "client" nicht möglich ist. Das läßt sich auch nicht mit dem extern-Statement lösen.

Was muss ich machen, damit ich auf das Objekt "client" Zugriff erhalte?

Vielen Dank.

15  International / Deutsch / Re: Eigenes PCB mit 2561 on: January 07, 2013, 08:46:24 am
Vielen Dank, für die tollen Tipps.
Das hat mir wirklich schon weitergeholfen.

Habe mir gestern ein YouTube zum Thema Reflow-Löten angesehen. Einen Pizzaofen mit Steuerung für 300 Euro.
Wenn das gut geht und man damit auch einen 2560 verarbeiten kann ... mal sehen .... dann bräuchte ich nicht zu experimentieren.

Ich suche noch nach der idealen Lösung.
Pages: [1] 2