Show Posts
Pages: 1 ... 63 64 [65] 66 67 ... 94
961  International / Deutsch / Re: DS1307 Uhrzeit und Datum einstellen on: June 20, 2012, 05:42:52 am
Die Definition von "LOGFORMAT" muss ausserhalb der Funktion setup() erfolgen. Sonst ist es nur eine lokale Variable die nur innerhalb von setup() bekannt ist.
Also das
Code:
const char LOGFORMAT[] = "%02u.%02u.%04u %02u:%02u:%02u";
einfach vor setup() { ...} setzen.
962  International / Deutsch / Re: Sharp Is471f mit dem Arduino steuern on: June 19, 2012, 03:23:49 am
Dann würde ich ab jetzt schrittweise vorgehen.
Versuch erstmal mit folgendem Sketch heraus zu finden, ob der Sensor überhaupt was liefert:
Code:
const int sharp = 6;     
int buttonState = 0;       

void setup() {
  Serial.begin(9600);
  pinMode(sharp, INPUT);     
}

void loop(){
 
  buttonState = digitalRead(sharp);
 
  //status auf die serielle Konsole ausgeben
  Serial.print("state = ");
  Serial.println(buttonState);
 
  //eine Sekunde warten
  delay(1000);

}
Und poste mal bitte, wie Du den Sensor an den Arduino angeschlossen hast. Wenn der Sensor eine eigene Spannungsversorgung hat und nicht über den Arduino versorgt wird, müssen die beiden Massen verbunden sein, sonst passiert da nix.
963  International / Deutsch / Re: Sharp Is471f mit dem Arduino steuern on: June 18, 2012, 11:49:55 pm
Ein Fehler steckt schon mal im Code.
Code:
void loop(){
 
  buttonState = digitalRead(sharp);

 
  if (sharp == HIGH {     
 
    digitalWrite(ledPin, HIGH); 
  }
  else {
   
    digitalWrite(ledPin, LOW);
  }

sharp ist die Variable in der Du die Pin-Nr speicherst, an das Dein Sensor angeschlossen ist. buttonState ist die Variable, in der Du den aktuellen Zustand des Sensors speicherst. Allerdings prüfst Du im if-Block auf "sharp == HIGH" statt auf "buttonState == HIGH"
Du prüfst also schonmal die falsche Variable.
Mario.
964  International / Deutsch / Re: Ausgang per Uhrzeit/Datum schalten on: June 18, 2012, 01:49:30 pm
Du kannst den "komplizierten" Teil der Berechnung ja auch das PHP übernehmen lassen, also z.B. das Berechnen der Einschalt- und Ausschaltzeit in das RTC.time2000 Format (also Sekunden seit 01.01.2000) Damit hast Du nur zwei Sekunden-Werte (32Bit Werte, also unsigned long) die Du übertragen und vergleichen musst, um die  Einschalt- und Ausschaltzeit zu haben. Das spart das ganze Wochentags und Stunden-Gerechne.
Dein Sketch hat dann pro Timer einfach zwei Werte statt nur einem für die Dauer. Wert 1 ist der time2000 Wert zum einschalten des Ventils und Wert 2 ist der time2000 Wert zum Ausschalten. Du musst nun nur jede Sekunde (besser 2x pro Sekunde, damit man den Zeitpunkt auch wirklich trifft) prüfen, ob bei irgendeinem Timer einer der Werte erreicht ist, und dann entsprechend schalten.
965  International / Deutsch / Re: Eclipse Problem on: June 18, 2012, 01:41:20 pm
Nicht Arduino/Eclipse, sondern Android/Eclipse Forum (Arduino != Android). Dein Problem ist NICHT auf der Arduino-Seite, sondern auf der Android-SDK Seite. Zumindest vermute ich das anhand der wenigen Fehlermeldungen die Du gepostet hast.
966  International / Deutsch / Re: Lichtsensoren und Taster funktionieren nicht? on: June 18, 2012, 01:07:58 pm
Hallo TinkTank,

willkommen im Forum. Bei Posts mit konkreten Fragen ist es für die mitlesenden hilfreich, wenn Du Links zu den von Dir verwendeten Komponenten postest, denn mittlerweile gibt es so viele Erweiterungen und Shields, das wir nicht alle kennen können.
Weiterhin ist es gut zu Deinem Problem zusätzlich zu schreiben, welche Version der IDE Du verwendest. Hier gab es in jüngerer Zeit einen größeren Versionswechsel, der dazu führt, das viele ältere Beispiele und Bibliotheken Probleme bereiten. In solchen Fällen sind die Fehlermeldungen des Compilers / der IDE hilfreich, da man so das Problem schnell eingrenzen kann.

Da Du vermutlich den Code angepasst hast, damit die IDE ihn übersetzt, wäre es gut, wenn Du den Code auch postest. Am besten in den "#" Code-Tags, das macht das Lesen einfacher.

Mario.
967  International / Deutsch / Re: Eclipse Problem on: June 18, 2012, 12:55:09 pm
Also aus dem Hut kann ich auch keine Erklärung zaubern. Ein Link zu dem Beispiel das Du versuchst zu bauen wäre schon mal hilfreich. Dazu kommt, und daher die FRage ob das Forum das richtige ist, handelt es sich ja nicht um einen Arduino Fehler. Auch verwendest Du ja Eclipse nicht für die Programmierung des Arduino, sondern um ein Programm für Dein Android Tablet oder Smartphone zu bauen. Evtl. solltest Du Dich an ein Android / Eclipse Forum wenden.

Wichtig ist vor allem:

  • Welche Version von Eclipse
  • Welche Version des Android SDK
  • Welches Beispiel willst Du compilieren
  • Möglichst die vollständige Fehlermeldung, weil die sehe ich nirgendwo
968  International / Deutsch / Re: Kurze Frage zu char* on: June 18, 2012, 12:00:38 pm
Das Der Code mit dem Komma funktioniert ist "Zufall", denn vermutlich interpretiert der Compiler die nachfolgende Zeile mit dem dtostrf() zur Zeile Temp = 77.5, dazu.
Setzt man nämlich ein syntaktisch korrektes "int i = 0;" zwischen die Zeilen, meckert der Compiler.

Das nur der Vollständigkeit halber. Keine Ahnung welche Seiteneffekte Dein Code mit dieser "Pseudozuweisung" auslöst, da Temp ja eigentlich ein float und die dtostrf() der AVR LibC (siehe http://www.nongnu.org/avr-libc/user-manual/group__avr__stdlib.html) liefert eigentlich ein char* (also 16 Bit Pointer) zurück.
969  International / Deutsch / Re: Eclipse Problem on: June 18, 2012, 10:32:45 am
Bist Du sicher, das Du hier im richtigen Forum bist?
Das ist kein Fehler der sich auf den Arduino bezieht, sondern ein Android-SDK Problem. Zumindest legt das die Fehlermeldung nahe.
Etwas mehr Infos bezüglich Projekt, Umgebung, Betriebssystem, usw. wären beim Befragen der Glaskugel hilfreich.

Versuchst Du evtl. eine Android <-> Arduino Verbindung und willst den Android-Teil in Eclipse bauen?
970  International / Deutsch / Re: Kurze Frage zu char* on: June 18, 2012, 10:29:26 am
nein, das brauchst Du nicht. In C können char[] und char* quasi synonym verwendet werden.
Wenn Du ein
Code:
//definiere ein Array mit 25 Zeichen (24 können für den String verwendet werden, 25. für \0)
char meinString[25] = "ich bin der Text";
// (fast) identisch ist:
char* meinString2 = "Ich bin der Text 2";
definierst, kannst Du einfach ein
Code:
Serial.println(meinString);
//bzw.
Serial.println(meinString2);
machen und der String wird ausgegeben. Dabei wird die Nullterminierung automatisch beachtet.

Dein ursprüngliches Problem war, das Du NUR den Adresspointer definiert hast, aber nicht den Speicherbereich, der dann die eigentlichen Daten aufnimmt.
Der Funktion dtostrf() ist das aber wurscht, die schreibt ab der Adresse in den Speicher und überschreibt dabei vermutlich andere Variablen Deines Programms die im Speicher hinter Deinem Pointer liegen.

Abgesehen davon, sehe ich gerade das Dein Sketch noch nicht mal compilieren dürfte, da Du hinter
Temp = 22.5,
ein Komma statt eines Semikolon steht.
Hast Du den originalen Sketch gepostet der nichts anzeigt, oder ist das nur ein Beispiel gewesen?
Mario.
971  International / Deutsch / Re: Ethernet shield externen DNS mitgeben? on: June 18, 2012, 09:59:33 am
Noch eine Ergänzung, das "Ethernet.begin()" wurde offensichtlich auch erweitert:

Code:
void begin(uint8_t *mac_address, IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet);
Man kann also in der Reihenfolge (MAC,IP,DNS,GATEWAY,SUBNET) auch gleich am Anfang mit einen DNS-Server angeben. Dieser wird automatisch verwendet, wenn man ein EthernetClient.connect(char* hostname, int port) macht. Ein Auflösen von Hand ist da nicht mehr nötig.
Am besten mal auf die Referenz-Seite schauen: http://arduino.cc/en/Reference/EthernetBegin
Leider fehlt in der Referenz der Ethernet-Lib noch die Beschreibung der DNSClient und DhcpClass Klassen. Ich hab mir das gerade aus den Sourcen zusammengewürfelt.
Mario.
972  International / Deutsch / Re: Ethernet shield externen DNS mitgeben? on: June 18, 2012, 09:42:06 am
Ab Version 1.0 der IDE gibt es einen DNSClient.

Folgendes sollte klappen (achtung, ungetestet)
Code:
//DNS-Client
DNSClient dns;

//DNS-Server
IPAddress dnsserver(8,8,8,8);
IPAddress result;

void setup() {
    dns.begin(dnsserver);
...
}

void loop() {
...
    //namen auflösen. Ergebnis steht in result
    dns.getHostByName("www.arduino.cc",result);
}

Ausserdem kann man noch mit dns.inet_aton("1.2.3.4",result) einen IP-String in eine IP-Adresse umwandeln.
Es gibt bei den Examples auch ein Beispiel "DnsWebClient.ino".

Mario.
973  International / Deutsch / Re: Ausgang per Uhrzeit/Datum schalten on: June 18, 2012, 09:31:41 am
Hier mal ein kurzer Denkanstoss:

Was Du ja schon hast ist eine Funktion wo Du per PHP eine Zeit (z.B. 15min) übertragen. Das kannst Du ja problemlos auf zusätzliche Werte erweitern. Also zusätzlich zur Dauer noch den Wochentag, oder ein Datum und eine Uhrzeit oder was auch immer mitschicken. Du musst halt nur den Sketch zum auslesen der Kommandos erweitern.
Diese Werte für die Steuerung merkst Du Dir auf dem Arduino wieder in einem Array. Du merkst Dir also eigentlich den Start-Wert (Zeit) und den End-Wert (Zeit)
Der Trick ist nun folgender. Das Ventil wird nicht sofort geöffnet, sondern jede Sekunde wird geschaut, ob ein Ausgang geschaltet werden muss (Einschalten oder Ausschalten).

Mario.
974  International / Deutsch / Re: Kurze Frage zu char* on: June 18, 2012, 07:13:36 am
Quote
Das Ergebnis der Umwandlung sollte doch in dem character-array 'line' stehen.
Das ist richtig, nur hast Du kein Character-Array erstellt. Deine Variable "line" enthält nämlich nur einen Zeiger auf ein Chracter-Array, nicht das Array selbst.

Entweder machst Du einfach ein
Code:
char line[10];

Dann kannst Du "line" auch als "char*" Typ verwenden. Alternativ kannst Du auch mittels
Code:
char* line;
line = malloc(10);
den notwendigen Speicher (ich hab im Beispiel immer 10 Bytes genommen) reservieren.
975  International / Deutsch / Re: Messwerte in irgendeiner Form weiterverarbeiten? on: June 18, 2012, 04:47:08 am
Schau Dir mal "http://processing.org/" an. Das entspricht weitestgehend der Arduino-IDE und verwendet Java. Es gibt viele Beispiele, die auch mit dem Arduino arbeiten. Man kann sehr einfach Graphen u.ä. "zeichnen".
Mario.
Pages: 1 ... 63 64 [65] 66 67 ... 94