Show Posts
Pages: 1 ... 42 43 [44] 45 46 ... 164
646  International / Deutsch / Re: Problem bei GPS Shield on: December 03, 2013, 02:00:21 pm
Meine Arduino Pins gehen nur bis 7 ?

???
Schriebst Du oben nicht UNO?
Ein UNO sieht so aus: http://arduino.cc/de/Main/ArduinoBoardUno
Das ist ein "R3" Board, aber die anderen UNOs sind ungefähr genau so.

Obere Reihe rechts ist RX-0, links daneben TX-1, links daneben 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
Wieso hat Dein Board keinen Pin-8?
647  International / Deutsch / Re: Problem bei GPS Shield on: December 03, 2013, 01:26:40 pm
Danke für den Tipp ... werde mal versuchen den Quellcode daraufhin anzupassen ...

Ja ich benutze das UNO.

Quellcode für UNO anbei, um schnell mal die Rohdaten zu checken, die das Modul sendet.
Du mußt ggf. nur die Baudrate Deines GPS-Moduls anpassen.
Und im seriellen Monitor die richtige Baudrate einstellen.
Und beachten, dass AltSoftSerial am UNO unbedingt an D8 empfangen möchte.

Code:
// GPS module test sketch for Arduino UNO
#include <AltSoftSerial.h>

// Connect module to Arduino: GPS-TX to Arduino-RX-Pin-8
AltSoftSerial gpsSerial(8, -1); // RX, TX (-1 = not used)

void setup(){
  Serial.begin(115200);   // Serial Monitor Arduino (HardwareSerial)
  gpsSerial.begin(9600);  // Serial GPS Module (AltSoftSerial)
  Serial.println("Good night and good luck!");
}

void loop(){
  while(gpsSerial.available())
    Serial.write(gpsSerial.read());
}
648  International / Deutsch / Re: Problem bei GPS Shield on: December 03, 2013, 01:01:59 pm
Bekomme ich als einzige Ausgabe, eine Folge Kryptischer Zeichen(ketten).

Vermeide die SoftwareSerial-Library!

Wenn Du ein Arduino-Board mit mehr als einer seriellen Schnittstellen hast (z.B. "MEGA"), verwende für das GPS-Modul auch eine HardwareSerial-Schnittstelle!

Und wenn Du ein Arduino-Board mit nur einer einzigen seriellen Schnittstelle hast (z.B, "UNO"), dann verwende die AltSoftSerial-Library!
649  International / Deutsch / Re: WS2812 RGB LEDs Stromversorgung on: December 03, 2013, 12:57:28 pm
Ich würde gern an meinen Arduino 3-5 dieser RGB  Leds anschließen ohne extra Stromversorgung. Laut dem Datenblatt benötigt eine LED 18 mA. Kann der Arduino über die 5V Pins diese Leistung bringen?

Zumindest bei Stromversorgung über USB sollten die zusätzlichen maximal ca. 270 mA (5 LEDs * 3*18mA) kein Problem sein, wenn Du den Arduino entweder an den USB-Anschluß eines Desktop-PCs oder ein USB-Netzteil anschließt und mit 5V versorgst.

Bei USB-Anschlüssen an mobilen Notebook-PCs oder bei Versorgung mit Netzteil höherer Spannung ist das ggf. aber auch nicht mehr im Rahmen. Viele Notebook-PCs haben ein USB-Rating von deutlich unter 500 mA Maximalstrom und bei Versorgung mit 12V-Netzteil könnte der Spannungsregler am Arduino überhitzen und durchbrennen, wenn am 5V Pin zusätzliche Ströme gezogen werden.

BTW: Ich habe hier für Tests auch ohne Bedenken einen LED-Streifen mit 10 LEDs am Arduino mit USB-Stromversorgung am PC hängen. Aufgrund von Farbspielereien wird dabei aber im Schnitt von mir wohl nicht mal die Hälfte der Maximalleistung angesteuert. Den Maximalstrom ziehen die LEDs nur bei Ansteuerung mit maximal weiß, RGB(255,255,255).
650  International / Deutsch / Re: Arduino Piano on: December 03, 2013, 06:45:40 am
Dieser Ton ist allerdings ziemlich schlecht und man kann kaum etwas hören, der ton ist wie ein leises brummen! Hat jemand dafür eine Lösung?

http://farm6.static.flickr.com/5295/5579703277_3ed8d18103.jpg

Hast Du mal technische Daten zum angeschlossenen Lautsprecher und den Wert des zur Anpassung angeschlossenen Widerstands oder Kondensators?

Wenn der Lautsprecher direkt an Pin-13 und GND hängt (in Deinen Postings kann ich zwar irgendwo "Lautsprecher" lesen aber nichts von Widerstand/Kondensator), kannst Du von Glück reden, wenn Du den Controller nicht bereits durch Überlastung geschrottet hast, weil dann viel zu viel Strom durch den Controllerpin  fließt.

Rechenbeispiel für Lautsprecherimpedanz 8 Ohm, Spannung an Pin-13 5V, dann fließt nach Ohm wenn sonst der Strom nicht gebremst wird:
I = U/R = 5 V / 8 Ohm = 0,625 A = 625 mA.

So viel kann natürlich nicht fließen, weil die Arduino-Pins (max. erlaubt 40 mA) gar nicht so viel Strom hergeben. Aber so im Kurzschlussversuch mal eben gut den 15-fachen des erlaubten Stroms ziehen zu wollen, kann natürlich nicht zu einem schönen Ausgangssignal führen. Höchstens zu einem durchgebrannten Controller.
651  International / Deutsch / Re: Dallas DS18B20 delay on: December 03, 2013, 01:34:54 am
Ja das würde reichen, gut muss ich mal schaun wie ich das hinbekomme mit gerade und ungerade sekunden.
Das würde heißen ich bräuchte ne Uhrenkarte? Bin noch eher blutiger anfänger -.-

Nein, Du brauchst keine Uhrenkarte, sondern nur einen Sekundentakt im Programm.

Den Sekundentakt kannst Du Dir vom millis() Timer ableiten.
In einfachen Fällen und wenn das Programm immer nur weniger als 50 Tage am Stück läuft (dann läuft der millis() Timer über und fängt bei 0 an), oder sich alle 50 Tage einmal verhaspeln darf, brauchst Du als Sekundentakt nur den Stand des millis() Zählers durch 1000 zu teilen.

Und mit einer Modulo-Division (Operator "%", berechnet den ganzzahligen Rest einer Ganzzahldivision) kannst Du ausrechnen, ob es eine gerade Sekunde ist oder nicht. Modulo 2 (%2)  ergibt in geraden Sekunden keinen Modulo-Rest (0) und in ungeraden Sekunden ergibt die Modulo-Division einen Modulo-Rest von 1.

Testcode für verschiedene Aktionen, die zu Beginn einer neuen Sekunde gestartet werden, und zwar unterschiedliche Aktionen in  ungeraden und in geraden Sekunden:
Code:
void setup() {
  Serial.begin(9600);
}

unsigned long sekundenTakt()
// Funktion zählt im Sekundentakt hoch, liefert millis()/1000 zurück
// Achtung: Millis läuft nach ca. 50 Tagen über und fängt wieder bei 0 an.
{
  return millis()/1000;
}

boolean neueSekundeAngebrochen()
// Funktion liefert true zurück, wenn seit dem letzten Aufruf eine
// neue Sekunde angebrochen ist, sonst false
{
  static unsigned long alteSekunde=4711; // beliebiger Wert ungleich 0 als Startwert
  unsigned long neueSekunde=sekundenTakt();
  if (neueSekunde==alteSekunde) return false;
  alteSekunde=neueSekunde;
  return true;
}

void loop() {
  if (neueSekundeAngebrochen())
  {
    if (sekundenTakt()%2 == 0)
    {
      Serial.println("Temperatur anfordern.");
    }
    else
    {
      Serial.println("Messwert abholen und anzeigen.");
    }
  }
  // Ab hier den Rest des Codes für die loop-Funktion,
}
652  International / Deutsch / Re: Ethernet Shierl anfangsprobleme on: December 02, 2013, 03:01:12 pm
ich hab mir ein Ethernet-Shield gekauft. Leider finde ich nirgends die MAC Adresse.

Mit dem Befehl arp /a all ipconfig/all finde ich einige IPAdressen, aber ich wüsste nicht welche die des Shields sein sollte...

Kann mir jemand helfen?

Ja, Du Dir selbst.

Die MAC-Adresse, die Du gerne für Dein Shield haben möchtest, mußt Du in den Sketch einsetzen.

Das Shield hat von Haus aus keine MAC-Adresse, sondern diese bekommt es erst von der "Firmware", die Du für Deinen Arduino programmierst.
653  International / Deutsch / Re: Schulproket on: December 02, 2013, 07:14:56 am
Habit Ihr noch andere Fotos?

Das Originalprojekt "Propeller Clock", von dem der OP sich das Bild ausgeliehen hat, wird hier vorgestellt:
http://www.elektronika.ba/779/pov-propeller-clock-build/

Mit drahtloser Energieübertragung zu der sich drehenden Elektronik.

Das sieht für mich absolut nicht nach einem Projekt für blutige Anfänger aus.
654  International / Deutsch / Re: Dallas DS18B20 delay on: December 01, 2013, 04:26:28 pm
Ich hab ein kleines Problem mit der Dallas Lib, und zwar dauert jetzt ein durchlauf der schleife ca 1sec 0o, hab es schon mit millis probiert aber iwie komm ich da nicht weiter, währe super wenn ihr mir weiter helfen könnt.

Der Senser benötigt zur Ausführung einer angeforderten Messung eine knappe Sekunde.

Bei Verwendung Deiner Library forderst Du eine Messung mit "requestTemperatures" an und Du holst den Messwert ab mit "getTempC".

Wenn zwischen den Aufrufen "requestTemperatures"  und "getTempC" weniger als die mindestens notwendige Messzeit vergangen ist, legt die Library automatisch ein "delay" ein und blockiert so lange jede weitere Programmausführung.

Diese Zwangspausen kannst Du vermeiden, indem Du darauf achtest, den Messwert nicht früher abzufragen als er verfügbar ist. Beispielsweise könntest Du im Programm auf den Wechsel der laufenden Sekunde reagieren und:
- bei Anbruch einer geraden Sekunde ==> Messung anfordern mit "requestTemperatures"
- bei Anbruch einer ungeraden Sekunde ==> Messwert ablesen mit "getTempC"

Damit würdest Du - ohne Blockierung des Programms - alle zwei Sekunden eine neue Messung erhalten. Reicht das nicht?
655  International / Deutsch / Re: Wie kann ich im Seriellen Monitor einen Text eingeben welcher er im Prog erkennt on: December 01, 2013, 04:08:21 pm
Hey Leute, ich kenne es bisher nur, dass man im Seriellen Monitor bytes eingeben kann. Ich will aber es so machen, dass wenn ich z.b. "relais 1 an" eingebe das Programm dann abfragt ob der text so ist wie ich ihn eingebe und damit dann eine Aktion ausführt.

Wie kriege ich das hin ?

Um bis zu 26 EIN/AUS Funktionen zu steuern, brauchst Du keine Romane zu senden, die Du hinterher nur schwierig wieder in die diversen lyrischen Bestandteile zerlegen kannst, sondern Du sendest einfach Buchstaben, z.B. einen Großbuchstaben zum Einschalten und einen Kleinbuchstaben zum Ausschalten. Etwa nach dem Schema:
A= Relais 1 EIN
a= Relais 1 AUS
B= Relais 2 EIN
b= Relais 2 AUS
C= Relais 3 EIN
c= Relais 3 aus
etc.

Einzelne Buchstaben kannst Du aus der seriellen Schnittstelle leicht auslesen und darauf vergleichen.

2. Sache:
Gibt es die Möglichlkeit eine HTML Datei zu schreiben auf der man 4 Flächen hat (kein Problem), aber man beim Drauf klicken einen Befehl an den Arduino sendet ?

Wurden bei HTML eigentlich schon die "Links" erfunden, wo man draufklickt und es wird etwas an einen Webserver gesendet?
656  International / Deutsch / Re: 3 RF Sender, ein Empfänger ? on: December 01, 2013, 03:50:17 pm
Hallo allerseits,
ich beschäftige mich z.Zt. mit den billigen RF Modulen aus Fernost.
Und ich frage mich, habe im Netz nichts dazu gefunden, ob und wie man z.B. 3 RF Sender mit einem Empfänger verbindet?
Geht das ? Hat da jemand Erfahrung,Tip, etc ?

Ich habe vor, 2 Temperatur-Sender und 1 Voltmeter-Sender (3x Attiny85), aber nur einen Empfänger (Arduino Nano).

Um vier verschiedene Sender in einem Funkprotokoll unterscheiden zu können, reserviert man im Funkprotokoll üblicherweise vier zwei Bits, in denen die Sendercodierung mitgesendet wird.

Nachtrag: Mit vier Bits könntest Du schon 16 verschiedene Sender unterscheiden, und wenn Du ein ganzes Byte reservierst, kannst Du bis zu 256 verschiedene Sender-IDs haben.
657  International / Deutsch / Re: RCswitch tristate an ethernet.client schicken == verstümmelt on: December 01, 2013, 03:47:34 pm
  char returnValue[50];

Diese Variable hat nur innerhalb der Funktion Gültigkeit, in der sie so deklariert ist. Der Speicher dieser Variablen wird nach Beendigung der Funktion sofort freigegeben und danach für andere Dinge verwendet.

Wenn der Speicher dieser Variablen das Ende der Funktion überleben soll, z.B. weil Du einen Zeiger auf diesen Speicher als Rückgabewert verwenden und von anderen Programmteilen darauf zugreifen möchtest, mußt Du den Speicher so deklarieren, dass er das Ende der Funktion überlebt und dauerhaft reserviert bleibt:
Code:
static char returnValue[50];
658  International / Deutsch / Re: GPS Shield an Arduino Mega on: November 30, 2013, 02:29:41 pm
Etwas, was bei dieser Fehlersuche noch extrem nervt, ist das man immer auf Verdacht auf Empfang warten muss... das kostet immens viel Zeit, bei vielen versuchen... schade

Deine "immens viel Zeit" scheinst Du aus reiner Lust und Laune zu warten, und nicht, weil Du "auf Verdacht auf Empfang warten musst".

Das Neo-6M GPS-Modul haut seine Daten über die serielle Schnittstelle raus, sobald es mit Strom versorgt wird, und sendet unvollständige bzw. ungültige Daten. Aber davon massenhaft.

Nur das Senden gültiger Positionsdaten in den Datensätzen, mit dann blinkender LED, erfolgt erst nach einem Positions-Fixing, was mehrere Minuten dauern kann. Aber das Modul sendet nichtsdestotrotz haufenweise Zeichen über die serielle Schnittstelle, auch wenn die LED aus ist. Oder wenn die Antenne gar nicht angeschlossen ist.

Testcode für einen Arduino MEGA:
Code:
// Test-Sketch für GPS-Modul an Arduino-MEGA
// Verkabelung: GPS-TX an Arduino-RX3
void setup()  
{
  Serial.begin(38400);
  Serial.println("Goodnight moon!");
  Serial3.begin(9600);
}

void loop()  
{
  while(Serial3.available())
    Serial.write(Serial3.read());
}

Wenn dieser Testcode nicht funktioniert, hast Du zu 99% Dein Modul falsch am MEGA angeschlossen oder die Baudrate des Seriellen Monitors nicht auf 38400 eingestellt (dann erscheint nicht mal die Begrüßungsmeldung).
659  International / Deutsch / Re: Tchibo Wetterstation 433 MHz - Dekodierung mal ganz einfach on: November 27, 2013, 10:44:57 am
Erstmal Danke, weiß aber nicht genau wie ich die Bit`s so aufteilen soll, in vierer schritten oder ist die Temperatur breiter als 4 bititge Einzel-Ziffern und muss dann umgerechnet werden?

Ja, so ist das, wenn Du nur Bits bekommst und keine technische Dokumentation des Bit-Stroms. Das mußt Du Dir bei unbekannten Sensoren alles selbst herausfinden und austüfteln. Wenn Du es kannst.

Da mußt Du möglichst die Fähigkeiten eines Kryptografie-Experten haben, und eine gehörige Portion Phantasie, um es herauszufinden, welches Bit was bedeutet.

Ah ok nen bissel weiter bin ich gerade gekommen
Der Invertierte mittlere 12 Bit String wäre 227 in Dez

Korrekt, da in der Mitte steckt die 227, wenn man die Bitfolge invertiert:
Code:
100101100011110001110000011010111111 Bitfolge
011010011100001110001111100101000000 invertierte Bitfolge
          xxxx11100011 = 227         Temperatur in Zehntelgrad binär codiert

Allerdings steckt die 227 auch drin, wenn man die Bitfolge nur rückwärts aufschreibt:
Code:
100101100011110001110000011010111111 Bitfolge
111111010110000011100011110001101001 Bitfolge rückwärts
            xxxx11100011 = 227       Temperatur in Zehntelgrad binär codiert

Welche der beiden Möglichkeiten die richtige ist, um die Temperatur abzulesen, kann man anhand eines einzigen Datensatzes nicht sagen. Man braucht mehrere exakt erfasste Datensätze, die Bitfolge und die dazugehörigen decodierten Werte, um tatsächlich definitiv entschlüsseln zu können, welche Bits wie und als was decodiert werden können.

Die vier Stellen davor gehören dann jeweils bestimmt auch noch zur Temperatur, denn es müssen ja auch noch betragsmäßig deutlich höhere Temperaturen darstellbar sein.

Interessant dürfte noch sein, wie es mit dem Vorzeichen gehandhabt wird, d.h. Du müßtest auch mal einen Wert unterhalb 0°C auswerten, wie das Bitmuster dann aussieht.

Code:
probiere jetzt mal weiter rum, aber für einen Tipp bei der Feuchte wäre ich auch dankbar.
Super Arbeit hier im Forum

Bei der Luftfeuchte geht meine Vermutung dahin, dass sich dessen Codierung unmittelbar rechts/links an den Code der Temperatur anschließt. Um die Codierung zu verifizieren wäre es allerdings erforderlich, nochmal (mindestens) zwei oder drei Bitfolgen bei anderen bekannten Temperatur- und Luftfeuchtewerten zu haben, also ein wenig abweichend von 22,7C/58% rF.
660  International / Deutsch / Re: Tchibo Wetterstation 433 MHz - Dekodierung mal ganz einfach on: November 26, 2013, 03:28:05 pm
Aber ich erkenne da jetzt keinen Zusammenhang mit der Temperatur und der Luftfeuchte.  Stehe da irgendwie auf dem schlauch, habt ihr eine Idee?

Also die Temperatur sehe ich eindeutig da stehen, die ist ganz simpel binär codiert.
Hinweis: Invertiere mal die Bitfolge, bevor Du die Temperatur suchst!

Die Luftfeuchte ist vermutlich etwas anders (komplizierter) codiert, aber eine Idee habe ich auch dafür.

Findest Du die Temperatur, wenn Du die Bitfolge zuerst invertierst, oder brauchst Du weitere Hilfestellung?
Pages: 1 ... 42 43 [44] 45 46 ... 164