Loading...
  Show Posts
Pages: 1 ... 65 66 [67] 68 69 ... 87
991  International / Deutsch / Re: ADC Differenzeingang on: April 11, 2012, 02:27:33 am
Auch auf die Gefahr, das ich am Ende als "doof" dastehe :-)
Du willst einen der analogen Eingänge nutzen, um die Spannung eines Sensors zwischen 10 und 50 mV zu messen.
Das würde aus meiner Sicht durch setzen der Referenzspannung gehen, siehe
http://arduino.cc/it/Reference/AnalogReference. Wobei 0,05V schon ziemlich "dünn" ist.
Du könntest aber mittels eines Operationsverstärkers die Spannung auf 1 bis 5 V anheben.
Da fehlt mir etwas die Erfahrung, aber aus meiner Sicht dürfte folgendes Schaltung verwendbar sein:
http://de.wikipedia.org/wiki/Operationsverst%C3%A4rker#Nichtinvertierender_Verst.C3.A4rker_.28Elektrometerverst.C3.A4rker.29

Eingelesen wird der Wert einfach per analogRead(analogPin), was einen Wert zwischen 0 und 1023 liefert, den Du dann auf die tatsächlichen Werte mappen kannst.
Mario.

Ich hoffe das war jetzt nicht komplett an der Frage vorbei :-)
992  International / Deutsch / Re: Arduino fernsteuern dank Webserver mit Ajax on: April 10, 2012, 10:58:36 pm
Quote
Ich sehe das ich mir hier eine eher anspruchsvolle Aufgabe gesetzt habe ;-)
Das stimmt wohl. Trotzdem sollte die Aufgabe lösbar sein.
Vielleicht solltest Du die Aufgaben auf 2 Arduinos aufteilen.
- Arduino 1  mit einem RedFly Shield und einem SD-Card Breakout für den Webserver.
- Arduino 2 für die eingentliche Aufgabe.

Beide Arduinos "reden" über eine serielle Schnittstelle miteinander. Das sollte reichen. Arduino 1 kann dann sogar als Datenspeicher herhalten und die Daten des 2. Arduino auf die SD-Karte loggen.
993  International / Deutsch / Re: Bitte um Hilfe bei Servo und ultrasonic on: April 10, 2012, 08:22:03 am
Die delay() Funktion zu verwenden ist bei sowas immer ungünstig, denn damit wartet Dein programm immer 2 komplette Sekunden, ohne irgendetwas zu machen.
Ich würde das Messen und Ton ausgeben in eine Funktion auslagern. Dann kannst Du in Deiner Loop, nachdem Du den nächsten Punkt mit dem Servo angefahren hast, die Funktion aufrufen, welche die Entfernung misst und für eine Zeit X den passenden Ton ausgibt. Wenn die Funktion zurückkehrt in die loop() macht das Programm weiter mit dem nächsten Punkt.
Wenn alles durchgelaufen ist, fängt loop() wieder von vorn an und Dein Servo läuft wieder zum ersten Punkt.
994  International / Deutsch / Re: Arduino fernsteuern dank Webserver mit Ajax on: April 10, 2012, 07:53:52 am
Oder schon in "Fertig":
http://www.matthiasrosenthal.de/blog/?p=272
Da wird zwar ein Roboter gesteuert, aber das ist im Prinzip erstmal das Gleiche beim Übertragen von Daten.
995  International / Deutsch / Re: Arduino fernsteuern dank Webserver mit Ajax on: April 10, 2012, 07:47:39 am
Evtl. ist dann das folgende Shield für Dich interessant. Ich hab das auch gerade erst entdeckt. Das hat zumindest schon mal einen eingebauten HTTP-Server.
Ich habe nur kurz die Beschreibung überflogen, aber vielleicht kannst Du ja dort den HTML-Kram ablegen und reichst die eigentlichen Nutzdaten für die Konfig nur an den Arduino durch. Zumindest sparst Du Dir auf jeden Fall schonmal den AP.
http://littlebirdelectronics.com/products/wifly-shield
Alternativ gehen sicher auch die preiswerteren Shields
http://asynclabs.com/store?page=shop.product_details&flypage=flypage.tpl&product_id=29&category_id=6
http://www.watterott.com/en/Arduino-RedFly-Shield
996  International / Deutsch / Re: Arduino fernsteuern dank Webserver mit Ajax on: April 10, 2012, 06:51:59 am
OK, bei der Outdoorlösung und Netzwerkkonfig braucht Du aber dann auch noch WLAN-Equipment, oder hat Dein Tablet ein RJ45 Anschluss? Und ein Kabel hast Du dann trotzdem zum Arduino hin. Wenn es nur um die Konfiguration geht, würde ich lieber ein Bluetooth-Modul verwenden, das dann ohne Kabel wie eine serielle Schnittstelle angesprochen werden kann. Dann kannst Du super einfach mit einer Anwendung Daten zum Arduino hin und von ihm auch wieder weg transportieren. Wenn es ein Android-Tablet bzw. Phone ist, sollte die Softwareentwicklung dafür recht einfach werden, da man die gebauten Pakete direkt auf das Tablet kopieren und ausführen.
Bei iPhone und iPad wird es schwieriger, da hier der Zugriff auf Bluetooth nicht so einfach ist. Dazu gab es schon mehrere Threads hier im Forum.
997  International / Deutsch / Re: Arduino fernsteuern dank Webserver mit Ajax on: April 10, 2012, 04:46:37 am
Quote
Ziel wäre es den Arduino per Ethernet einmal zu konfigurieren, z.B. über Smartphone oder Tablet...
Was meinst Du damit? Nur einmal am Anfang konfigurieren, danach wird die Netzwerkschnittstelle nicht mehr benötigt? Das ist overkill.
Es sollte möglich sein Webseiten recht "ram-schonend" direkt von der SD-karte lesend auf den Output-Stream der Webverbindung zu schreiben und dabei z.b. bestimmte Platzhalter durch aktuelle Werte (Zustand eines Aus- oder Eingangs etc.) zu ersetzen. Dabei gibt es aber folgendes zu beachten, SD-Karte und Ethernet-Chip verwenden beide die SPI-Schnittstelle und werden nur über ein entsprechendes Chip-Select aktiviert und deaktiviert. Hier muss man vermutlich genauer schauen, ob das alles sauber läuft.

Das eigentliche Problem das ich bei solchen Lösungen aber sehe, ist das Du recht viel Ressourcen für das Webfrontend auf dem Arduino verpulverst. Gerade wenn ein HTTP-Request kommt und der Arduino zum großen Teil damit beschäftigt ist, diesen zu bearbeiten. Zumal Du nie vorhersehen kannst, wann ein Request kommt, oder wieviele.

Eine andere Möglichkeit, die ich z.B. bei meiner Wetterstation verwende ist, den Arduino aktiv Daten über HTTP auf einen "normalen" Webserver schreiben zu lassen, bzw. Daten von diesem zu holen. Dabei entscheided der Arduino wann Zeit für Netzwerkzugriffe ist.
Die in meinem Fall ermittelten Wetterdaten (Temperatur, Luftdruck, Feuchtigkeit, Wind etc.) werden wie im IDE-Beispiel Web-Client auf eine spezielle URL (Werbserver) per GET Request übertragen und dort durch ein PHP-Script verarbeitet. Das komplette Webfrontend läuft auf dem Webserver, nicht auf dem Arduino. Gleichzeitig werden alle ermittelten Daten noch lokal auf dem Arduino auf eine SD-Karte geloggt, falls mal kein Zugriff auf den Webserver möglich ist.
Der Arduino holt sich regelmäßig auch per GET (wieder über eine spezielle URL) Requests ab. Z.B. um die Daten eines bestimmten Tages auszulesen. Die Daten werden dann wieder per HTTP (diesmal per POST) auf den Webserver geschrieben. Damit vermeide ich, den Arduino als Webserver betreiben zu müssen. Als Webclient hat er es deutlich einfacher.
998  International / Deutsch / Re: Programierung für RBG Led´s on: April 09, 2012, 11:34:54 am
Das "intensitaet" ist eine Variable, die den aktuellen Helligkeitswert (PWM-Wert für den PWM-Ausgang) mit dem Du die entsprechende Farbe dimmst, speichert.
999  International / Deutsch / Re: Projektvorstellung Holzvergaser on: April 09, 2012, 10:01:25 am
Dann würde ich das Ethernet-Shield empfehlen, da hat auch gleich den SD-Slot eingebaut.
1000  International / Deutsch / Re: array verbesserung on: April 09, 2012, 09:59:48 am
row ist eine Variable die ich in der Schleife definiert habe, um die einzelnen "Zeilen" des Arrays zu zählen. Das Array kannst Du im Prinzip wie eine Tabelle betrachten. Der erste Wert steht für die Zeile und der zweite Wert für die Spalte. Arrays können auch mehr als 2 Dimensionen haben, wenn es notwendig ist. z.b. für Koordinaten mit x,y und z Wert.
1001  International / Deutsch / Re: array verbesserung on: April 09, 2012, 09:16:47 am
Wie wäre es mit einem mehrdimensionalen Array?
Code:
const int values[5][24] = {   { 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3500, 1500,    0,    0,    0,    0,    0,    0,    0,    0,    0, 1500, 3500, 4095,    0,    0} ,
                                    { 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3500, 1500,    0,    0,    0,    0,    0,    0,    0,    0,    0, 1500, 3500, 4095,    0,    0} ,
                                    { 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3500, 1500,    0,    0,    0,    0,    0,    0,    0,    0,    0, 1500, 3500, 4095,    0,    0} ,
                                    { 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3500, 1500,    0,    0,    0,    0,    0,    0,    0,    0,    0, 1500, 3500, 4095,    0,    0} ,
                                    { 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 3500, 1500,    0,    0,    0,    0,    0,    0,    0,    0,    0, 1500, 3500, 4095,    0,    0} };

Der Zugriff erfolgt dann z.b. über values[1][12]

Code:
void fadeLight() {
    if (hour<23) {
      for(row=0;row<5;row++)
          i[row] =values[row][hour] + ((3600000 - (3600000 - ((mins * 60000) + (sec * 1000)))) / (3600000 / (Blau1[hour+1] - Blau1[hour])));
1002  International / Deutsch / Re: Programierung für RBG Led´s on: April 09, 2012, 04:42:26 am
Poste doch mal den Code, den Du schon hast. Dann schauen wir was fehlt und wie Du Dein Problem lösen kannst. Bite verwende beim Code posten die "#" Tags oben in der Editorleiste. Das macht das Lesen für alle einfacher.
Mario.
1003  International / Deutsch / Re: Linux auf ATMega 1284p laufen lassen on: April 08, 2012, 11:43:28 am
Eben genau das meinte ich damit. "Lösung" sollte in diesem Zusammenhang auf die Lösung des Problems "Kann da Linux drauf laufen?" bezogen sein.
Mario.
1004  International / Deutsch / Re: Interrupt Service Routine: Verzögerungen und Entprellung? on: April 08, 2012, 09:13:19 am
Innerhalb einer ISR sollte immer so wenig Code wie möglich ausgeführt werden. Da Du ja innerhalb der ISR Interrupts verhinderst, werden auch alle anderen Intteruptgetriebenen Dinge (z.B. Serielle Kommunikation, Timer etc.) auch nicht ausgeführt. Es reicht doch, innerhalb der ISR ein Flag zu setzen, das dann in der "normalen" Loop ausgewertet wird.
Auf was reagiert denn Deine ISR? genereller Flankenwechsel, oder wechsel von HIGH auf LOW, bzw. umgekehrt? Das würde sicher das doppelte Ausführen erklären.
Mario.
1005  International / Deutsch / Re: Linux auf ATMega 1284p laufen lassen on: April 08, 2012, 07:46:23 am
Ok. Dann Hut ab! :-)
Aber wenn das Dingens mehrere Stunden zum booten braucht, hat diese Lösung eher esotherischen Character.
Pages: 1 ... 65 66 [67] 68 69 ... 87