Show Posts
Pages: 1 ... 85 86 [87] 88 89 ... 94
1291  International / Deutsch / Re: Arduino Facebook notificator on: February 08, 2012, 01:12:45 pm
Dann poste doch mal den Code, vielleicht kann Dir hier geholfen werden.
1292  International / Deutsch / Re: Ethershield, HTTP Fragen on: February 08, 2012, 12:14:10 pm
Genau so sieht es aus.

Ein Link würde dann so aussehen: <a href="/temp_innen.html?password=XXXX">Link-Text</a>
temp_innen.html ist natürlich nur ein Beispiel.
Mario.
1293  International / Deutsch / Re: Welche Programmiersprache ist dem Arduino am ähnlichsten ? on: February 08, 2012, 12:11:21 pm
In Berlin gibt es regelmäßig Treffen der "bausteln" Gruppe, soweit ich weiss. Wie das in anderen Städten aussieht weiss ich nicht.
Allerdings finde ich Programmierkurse in größeren Gruppen nicht sehr effektiv. Jeder entwickelt ein anderes Verständnis für den Stoff und hat andere Fragen,
somit ist es für den Kursleiter sehr schwer auf die individuellen Fragen einzugehen.

Ich würde Dir empfehlen einen Einsteigerkurs im Netz zu suchen und den auf Deinem PC mal durchzuarbeiten. Und zwar erstmal ohne Arduino.
Für Windows kannst Du mit http://www.bloodshed.net/dev/devcpp.html eine freie, einfache Entwicklungsumgebung runterladen. Für Linux und Mac OS gibts von Hause aus den gcc-Compiler.
Da Du ja später wieder zum Arduino zurückkommen willst, brauchst Du Dich auch nicht mit der Entwicklung von GUIs oder Graifk beschäftigen. Es reicht einfach kleine Programme zu schreiben, die Ein- und Ausgaben auf der Konsole (Eingabeaufforderung, bzw. Shell) machen.
Wichtig sind vor allem die Grundkonzepte wie Schleifen, Verzweigungen, Variablen und deren Typen. Und dann natürlich die Sache mit dem Speicher und den Pointern (Zeiger).

VG,
Mario.
1294  International / Deutsch / Re: Ethershield, HTTP Fragen on: February 08, 2012, 11:54:19 am
Zunächstmal fehlt Deinem <form> Tag der Parameter "action".
also sowas wie <form action="/" method=get>...</form>
Der Trick ist nun (nicht schön aber erstmal funktionabel) dem Action-Parameter wieder den GET-Parameter für das Passwort mitzugeben:
<form action="/?password=XXXXX" method=get>...</form>, wenn Du die Seite mit dem IO-Formular an den Browser ausgibst.
Damit steht zwar Dein Passwort im Quelltext der Webseite, aber erst nach dem Login. Außerdem steht beim Login das Passwort eh in der URL, daher ist das aus sicherheitstechnischer Sicht auch nicht schlimmer. Alternativ müßtest Du Dir eine Sessionverwaltung programmieren.

1295  International / Deutsch / Re: Online-Abfrage von Bahn-Verbindung on: February 08, 2012, 01:41:13 am
Fall Du den Parameter "ld=xxx" doch benötigst, dann schau Dir mal http://www.arduino.cc/playground/Code/TextFinder an. Du musst ja nicht die gesamte Webseite in den Speicher lesen, wenn Du nur einige Bytes benötigst. Die Lib liest die Daten aus einem Stream und müllt daher nicht den Speicher zu. Wenn Du es geschafft hast, Deinen HTML-Request loszuschicken, musst Du ja auch noch die Antwort parsen, hier kann die TextFinder Lib sicher auch helfen.

Mario.
1296  International / Deutsch / Re: Welche Programmiersprache ist dem Arduino am ähnlichsten ? on: February 07, 2012, 12:51:19 am
Der Arduino wird in C / C++ programmiert und zwar ausschliesslich. Daher ist es das beste, wenn Du Dich mit genau dieser Sprache auseinander setzt. Andere Sprachen wie z.B. Java sind ähnlich und alle imperativen Programmiersprachen haben gemeinsame Elemente wie Schleifen, Verzweigungen, Vergleiche, Variablen und Funktions- bzw. Unterprogrammaufrufe, aber der Teufel steckt ja sprichwörtlich im Detail. Im Fall von C sind das Zeiger die auf bestimmte Stellen im Speicher zeigen und mit denen gerechnet, verglichen und gezählt wird. Das ist für Einsteiger am Anfang in der Regel der schwierigste Teil und auch der frustrierendste, da man hier schnell Fehler macht, die kaum auf den ersten Blick zu erkennen sind. Aber genau dafür gibt es ja solche Foren wie hier.

Da es C schon sehr lange gibt (ca. 40 Jahre), finden sich im Netz jede Menge Tutorials auch für Anfänger. (z.B. http://www.c-howto.de/tutorial.html)
C++ ist eine Erweiterung von C auf objektorientierte Programmierung. Hier geht es sehr vereinfacht ausgedrückt um die Abstraktion und Wiederverwendbarkeit von Code. Am Anfang ist das für die Programmierung des Arduino nicht zwingend. Viele Libraries verwenden Objekte und Klassen, liefern aber meist auch Doku wie diese zu benutzen sind.

Am besten schaust Du Dir das eine oder andere Tutorial an und versuchst das Gelernte auf den Arduino zu übertragen. Einfache Tests wie "Hello World" kann man auch sehr schön mit Hilfe der seriellen Konsole umsetzen.
Wenn Du konkrete Fragen hast, wird Dir hier sicher schnell geholfen.

Mario.
1297  International / Deutsch / Re: Anfaenger sucht sowas wie ne WAIT funktion on: February 01, 2012, 12:38:02 pm
Wozu brauchst Du dann aber die Variable "getPrev"? Die wird immer parallel auf den gleichen Wert wie "clockPrev" gesetzt. Dann kannst Du auch gleich nur clockPrev verwenden.
Irgendwie scheint der Code auch ziemlich abgespeckt zu sein. Statt einer LED gibt's nun zwei Potis.
Aber egal, wenn es das war, was Du wolltest, dann herzlichen Glückwunsch zum Erfolg.

Grüße,
Mario.
1298  International / Deutsch / Re: analog Eingänge als Digital beim MEGA on: January 30, 2012, 07:58:14 am
Folgendes sollte im Sketch funktionieren:
Code:
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
#define MY_AVR_TYPE 1
#else
#define MY_AVR_TYPE 0
#endif

...

if(MY_AVR_TYPE) {
    Serial.println("I'm a MEGA Board");
} else {
    Serial.println("I'm a UNO Board");

}
Zumindest verwenden auch die Base-Libs ein ähnliches Konstrukt z.B. um die Zahl der externen Interrupt-Pins zu definieren.
1299  International / Deutsch / Re: Probleme mit Ansteuerung der 2.Zeile seit arduino-1.0-rc2 on: January 27, 2012, 09:11:30 am
Eben genau das meinte ich. Die Beschreibung der Pin-Zuordnung und der im gleichen Post beschriebene Aufruf des Konstruktors passten nicht zusammen.
1300  International / Deutsch / Re: Probleme mit Ansteuerung der 2.Zeile seit arduino-1.0-rc2 on: January 27, 2012, 01:23:02 am
Auf die Idee mit der falschen Verkabelung bin ich durch den folgenden Post gekommen:
Quote
Display - 16x2 LC-Display mit Hintergrundbeleuchtung von Displaytech mit Hitachi HD44780 Controller

Anschlüsse:
E - LCD-Pin6 an digiPin11
RS - LCD-Pin4 an digiPin12
DB4E - LCD-Pin11 an digiPin3
DB4E - LCD-Pin12 an digiPin4
DB4E - LCD-Pin13 an digiPin5
DB4E - LCD-Pin14 an digiPin6
Da ist es nämlich genau anders herum beschrieben, also D4 an Pin3 und nicht D7 an Pin3.
Aber dann sollte es tatsächlich gar nicht funktionieren und nicht erst ab der 2. Zeile.
1301  International / Deutsch / Re: Probleme mit Ansteuerung der 2.Zeile seit arduino-1.0-rc2 on: January 26, 2012, 12:56:45 pm
Leider sind die Bilder recht klein, daher kann man nicht sehr viel erkennen. Allerdings sieht das Display so aus, als wären die Pins recht unregelmäßig angelötet. Hast Du schon mal die Display-Anschluss Pins auf Lötbrücken geprüft?
Stimmt die Zuordnung der Datenpins? Also D4 bis D7 an Arduino-Pin 3 bis 6?
Dein Aufruf "LiquidCrystal lcd(12, 11, 6, 5, 4, 3);"

würde bedeuten, das

D4 an Pin 6
D5 an Pin 5
D6 an Pin 4
D7 an Pin 3

angeschlossen ist.

siehe http://arduino.cc/en/Reference/LiquidCrystalConstructor
Quote
Syntax
LiquidCrystal(rs, enable, d4, d5, d6, d7)

Mehr fällt mir erstmal auch nicht ein.
1302  International / Deutsch / Re: BLIPTRONICS LED Pixel 15mm Naked PCB on: January 26, 2012, 12:47:11 pm
Aus aktueller Erfahrung in Sachen Zoll folgende Hinweise:

1) Außen auf dem Paket muss die Rechnung angebracht werden, damit der Zoll die Ware prüfen kann. Zusätzlich muss auf dem Zollzettel der auf das Paket geklebt wird der Wert der Ware angegeben sein
2) Auf dem Zollzettel muss die Art der Ware angegeben sein. Wie ich selbst gerade herausfinden durfte, reicht "electronic parts" nicht aus.
3) Man sollte eine Rechnung mit Zahlungsnachweis haben. Nur der Nachweis das man z.b. per PayPal gezahlt hat, reicht leider nicht. Auf der Rechnung muß die Art der Ware klar erkennbar sein.

Je nach Art der Ware zahlt man in der Regel 19% Einfuhrsteuer, was dem Mehrwertsteuersatz entspricht. Ab einem bestimmten Wert und bei bestimmten Warengruppen muss man zusätzlich noch Zollgebühren bezahlen.
Wieviel und bei welchen Waren, das weiss nur der Zoll. Wer mal versucht hat das auf www.zoll.de herauszufinden, weiss was ich meine :-)
Achso, der Zoll selbst ist im übrigen nicht verplichtet eine Auskunft zu erteilen ... Allerdings sind die meistens recht umgänglich, wenn man Fragen hat, da sich die Damen und Herren damit ja auch das Leben leichter machen.

Mein Paket ist nun zurück auf dem Weg nach Amerika, weil der Händler wirklich alles falsch gemacht hat, was nur geht. Zur Zeit läuft ein Antrag auf Käuferschutz bei Paypal und ich hoffe ich sehe meine 77 Dollar wieder.
Allerdings ist das bisher von 5 Päckchen (3x Hongkong, 1x Polen, 1xAmerika) das einzige, wo es schief gegangen ist.
1303  International / Deutsch / Re: Arduino als HTTP Client - Daten auslesen on: January 23, 2012, 03:24:55 pm
Schau Dir mal http://www.arduino.cc/playground/Code/TextFinder an. Um mir  UDP / NTP zu ersparen und da meine Wetterstation eh als Webclient arbeitet, habe ich mir eine Funktion gebaut, die den aktuellen Unix-Timestamp über einen Webrequest bekommt:
Die Ausgabe unter der URL sieht wiefolgt aus:
Quote
CURRENT TIME 1327349909
Folgender Code wertet das dann aus:
Code:
#include <Ethernet.h>
#include <TextFinder.h>
...
Client client(server, 8888);
TextFinder finder( client);
...
void getTime() {
  if (client.connect()) {
    Serial.print("connected... ");
    client.println("GET /time HTTP/1.0");
    client.println("Host: wetter.office.das-tierhausi.de");
    client.println();
  } else {
    Serial.println("connection failed");
  }
  if (client.connected()) {
    gettime = 0;
    if(finder.find("CURRENT TIME")){   
         gettime = finder.getValue(',');
         Serial.print(gettime);
         Serial.println(" seconds since 1970");         
    }
    if(gettime == 0){
      Serial.println("No time. ");
    }   
    client.stop();
    //time offset abziehen
    //damit kann immer mittels time + millis() / 1000 der aktuelle timestamp berechnet werden.
    time = gettime - millis() / 1000;
  }
}
Der "Trick" sind die beiden Zeilen "if(finder.find("CURRENT TIME")){  ", hier wird nach dem Markierungsstring gesucht, und
"gettime = finder.getValue(',');". Damit wird der nächste Wert nach dem Markierungsstring ermittelt. Das klappt bei mir hervorragend.
1304  International / Deutsch / Re: LCD Display am Schieberegister on: January 21, 2012, 01:55:44 pm
Ich bin noch mit der 0.22 unterwegs. Folgender "diff" sollte helfen (ungetestet)
Code:
diff -ur ShiftRegLCD/ShiftRegLCD.cpp ShiftRegLCD_1_0/ShiftRegLCD.cpp
--- ShiftRegLCD/ShiftRegLCD.cpp 2011-07-02 23:56:17.000000000 +0200
+++ ShiftRegLCD_1_0/ShiftRegLCD.cpp 2012-01-21 19:49:34.000000000 +0100
@@ -223,8 +223,9 @@
   send(value, LOW);
 }
 
-void ShiftRegLCD::write(uint8_t value) {
+size_t ShiftRegLCD::write(uint8_t value) {
   send(value, HIGH);
+  return 0;
 }
 
 // For sending data via the shiftregister
diff -ur ShiftRegLCD/ShiftRegLCD.h ShiftRegLCD_1_0/ShiftRegLCD.h
--- ShiftRegLCD/ShiftRegLCD.h 2009-11-05 03:20:00.000000000 +0100
+++ ShiftRegLCD_1_0/ShiftRegLCD.h 2012-01-21 19:47:49.000000000 +0100
@@ -73,7 +73,7 @@
 
   void createChar(uint8_t, uint8_t[]);
   void setCursor(uint8_t, uint8_t);
-  virtual void write(uint8_t);
+  virtual size_t write(uint8_t);
   void command(uint8_t);
 private:
   void init(uint8_t srdata, uint8_t srclock, uint8_t enable, uint8_t lines, uint8_t font);
Tausche einfach in den beiden h und cpp Dateien die Zeilen mit dem "-" durch die Zeilen mit dem "+". (inkl. der ergänzenden Zeile "return 0;").
Damit sollte es gehen, außer es wurde noch eine Methode von "Print" in der Version 1.0 verändert.

Es wäre von den Arduinoentwicklern besser gewesen, die Methode "void write()" nicht zu ersetzten, sondern "size_t write()" in der Print Klasse zu ergänzen, dann gäbe es die Probleme nicht.
1305  International / Deutsch / Re: Anfaenger sucht sowas wie ne WAIT funktion on: January 21, 2012, 01:45:26 pm
Quote
jetzt geht gateStatus irgendwann auf LOW und dann wieder auf HIGH. Also das gleiche spiel von vorn, nur das jetzt step 2
spiele Step 2 =>  digitalWrite(greenLed,LOW);
                            delay
                            digitalwrite(greenLed,LOW);
Das verstehe ich auch noch nicht so ganz? Außer die LED auf LOW setzen, brauchst Du doch im Step 2 nix machen, oder? warum dann noch ein delay und dann nochmal die LED auf LOW setzen? Um sicher zu sein, das sie wirklich aus ist?  smiley

Richtig verstanden habe ich Dein Ziel leider immer noch nicht, isgt es richtig, das Du über das clockGateOut irgendetwas externes triggern willst? Die Geschwindigkeit soll dabei von einem Wert abhängen, die über ein Poti am analogen Eingang eingestellt wird?
Dazu die erste Frage, über welche Zeiten für den Clock-Impuls reden wir? analogRead() liefert maximal den Wert 1023, das wäre dann knapp eine Sekunde, wenn Du mit millis() arbeitest. Bis auf die Steps zum blinken der LED sehe ich im orginalem Sketch keine weiteren Funktionen. Daher würde ich erstmal schrittweise anfangen.

Code:
#define CLOCK_OUT 13
#define LED_OUT 11
#define POTI_PIN A2

int clockState = LOW;
unsigned long previousTime = 0;
int clockSpeed = 0;

void setup() {
  Serial.begin(9600);
  pinMode(CLOCK_OUT, OUTPUT);
  pinMode(LED_OUT, OUTPUT);
 
}


void loop() {
  clockSpeed = getSpeed(POTI_PIN);
  if(millis() - clockSpeed > previousTime) {
   
      // LOW <-> HIGH     
      clockState = !clockState;
     
      //Clock Out schreiben
      digitalWrite(CLOCK_OUT,clockState);
     
      //LED blinkt im Takt von Clockout
      digitalWrite(LED_OUT,clockState);
     
      //zeit merken
      previousTime = millis();
  }
}


int getSpeed(int pin) {
   //spaeter kann hier noch zusätzlicher code zum setzen der geschwindigkeit rein
   return analogRead(pin);
}

Das kann als Basis für Erweiterungen dienen. Im o.g. Beispiel blinkt die LED immer im Takt von Deinem ClockSpeed. Wenn die LED häufiger blinken soll, und das vom Clock-Wechsel getriggert werden soll, dann kann man das auch recht einfach ergänzen.
Pages: 1 ... 85 86 [87] 88 89 ... 94