Show Posts
Pages: 1 [2] 3 4 ... 203
16  International / Deutsch / Re: DCF77 – macht keinen Spaß on: August 27, 2014, 03:46:24 pm
der empfänger hängt innen am fenster verbunden mit einem langen usb-kabel 1,5 bis 2 m lang. das fenster ist richtung westen mainflingen liegt aber auf der anderen seite... smiley-wink

Zwei Meter USB-Kabel sind schon mal schön, um damit aus dem Funk-Störnebel von PC und Monitor herauszukommen. Fensternähe muss bei DCF-Empfängern nicht sein (ist dagegen bei GPS-Empfängern vorteilhaft), aber vorteilhaft wäre in einem Gebäude die oberste Etage für besten Empfang, mindestens aber ein Mindestabstand von 2m zu allen potentiellen Störquellen sollte sein.

im zimmer ist alles vorhanden, handy, notebook, wlan, etc. also volles programm. mein alter 80er jahre junghans funkwecker funktioniert aber.

Dein DCF-Wecker hat insofern bessere Empfangsbedingungen als er nicht an einem USB-Kabel angeschlossen ist: Auf USB-Kabeln laufen Signale mit hohen Megabit-Raten und alleine deshalb geben auch USB-Kabel einen Funk-Störnebel ab, der das Signal-Rauschverhältnis und den Empfang auf Langwelle verschlechtern.

Das Pollin-Modul ist hin bis zu mittleren Störpegeln eigentlich keine schlechte Wahl, wenn Du eine Library mit Schwächen bei der Signalauswertung verwendest (so wie es eigentlich bei fast allen Arduino-DCF-Libraries der Fall ist). Denn das Pollin-Modul hat einen eingebauten Tiefpassfilter, der dafür sorgt, dass von kleinen bis hin zu mittleren Störpegeln ein sauber gefiltertes Signal am Ende herauskommt.

Schau Dich nochmal in Fensternähe um, ob da nicht doch noch ein Störer herumliegt: Vielleicht liegt das DECT-Schnurlostelefon auf der Fensterbank? Eine Energiesparlampe oder ein Schaltnetzteil in der Nähe? Zwei Meter Mindestabstand sollten reichen.

Ansonsten kann ich Dir mal anbieten, ein "DCF-Testprogramm" hier zu posten, das ich vor kurzem mal gemacht habe, speziell für Empfänger, die kein sauberes Signal ausgeben, sondern bei denen der Ausgang etwas "zappelig" ist.
17  International / Deutsch / Re: DCF77 – macht keinen Spaß on: August 27, 2014, 03:14:54 pm
Dass ich seit 5 Minuten so etwas erhalte liegt am schlechten Empfang:
0:04:51    1.1.1970


Was für störende Geräte Du im Umkreis des DCF-Empfängers vermeiden mußt, hatte ich hier erst vor zwei Tagen in einem anderen Thread gepostet, aber ich kopiere es Dir gerne nochmal heraus:

Falls Du DCF verwendest, dann achte bitte darauf, dass Du ALLE FUNK-STÖRQUELLEN IN ZWEI METER UMKREIS um das DCF-Modul entfernst. Also alles dies muß mindestens zwei Meter entfernt vom DCF-Modul sein, wenn Du Empfang haben möchtest (unvollständige Liste):
- GSM Handys und Smartphones
- UMTS Handys und Smartphones
- Schnurlose Telefone mit DECT oder anderen Funkstandards
- 433 und 868 MHz Short Range Devices (z.B. Funk-Wettersensoren, Babyphones, schnurlose Kopfhörer)
- alles mit WLAN (Handy, mobile Computer, Router)
- alles mit Bluetooth
- alle Monitore
- alle Computer
- alle Leuchtstoffröhren
- alle Energiesparlampen
- alle Schaltnetzteile
All das (und anderes mehr) darf in zwei Metern Umkreis um das DCF-Modul nicht betrieben werden, sonst stört es.
18  International / Deutsch / Re: Beispielprogramm funktioniert nicht! on: August 27, 2014, 02:43:30 pm

Sorry! Hier den Quelltext mit Fehlermeldung!!

Den ersten Fehler machst Du, wenn Du Quelltexte "abtippst", die Du einfach auch downloaden und direkt verwenden könntest - ohne Tippfehler und Auslassungen.

Den zweiten Fehler machst Du, wenn Du hier Screenshots von Quellcode und Screenshots von Fehlermeldungen postest.

Betriebssysteme haben heute üblicherweise eine (wie sie unter Windows heißt) "Zwischenablage", wo Du Quelltext und Textmeldungen reinkopieren und dann wieder irgendwoanders (z.B. im Browser beim Schreiben eines Beitrags) einfügen kannst. Code hier im Forum am besten zwischen "Code-Tags", die Du beim Schreiben eines Beitrags mit Klick auf  "#" in der Editor-Funktionsleiste einfügen und den Quellcode dann dazwischensetzen kannst.

Deine Fehlermeldung besagt, dass Du wohl nur einen kleinen Teil des Programms abgetippt hast und wenigstens eine Funktion fehlt.

Um welches Programm aus dem Tutorial geht es denn, nenne doch bitte mal das Kapitel/Chapter!

Nachtrag: Ich glaube, ich hab's gefunden, das ist Dein Programm (nein, ich habe es nicht "abgetippt"):
Code:

const int ON =  HIGH ;
const int OFF = LOW ;

int latchPin = 5;
int clockPin = 4;
int dataPin = 2;

int ledState = 0;

void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}
void loop() {
  int delayTime = 100 ;
  for(int i=0;i<256;i++)
  {
     updateLEDs(i);
     delay(delayTime);
  }
}
void updateLEDs(int value)
{
  digitalWrite(latchPin,LOW);
  shiftOut(dataPin, clockPin, MSBFIRST, value);
  digitalWrite(latchPin,HIGH);
}

void updateLEDsLong(int value)
{
  digitalWrite(latchPin,LOW);
  for(int i=0;i<8;i++)
  {
    int bit = value&B10000000;
    value = value<<1;
    if(bit==128)
    { 
        digitalWrite(dataPin,HIGH);
    }
    else
    { 
        digitalWrite(dataPin,LOW);
    }
    digitalWrite(clockPin,HIGH);
    delay(1);
    digitalWrite(clockPin,LOW);
  }
  digitalWrite(latchPin,HIGH);
}

int bits[] = {B00000001,B00000010,B00000100,B00001000,B00010000,B00100000,
B01000000,B10000000};
int masks[] = {B11111110,B11111101,B11111011,B11110111,B11101111,B11011111,
B10111111,B01111111};
void changeLED(int led,int state)
{
  ledState = ledState & masks[led];
  if(state == ON){ ledState = ledState|bits[led]; }
  updateLEDs(ledState);
}

Nun übe mal schön, den Text des Programms aus Deinem Browser heraus in die Zwischenablage zu kopieren, und von dort dann in einem leeren Editor-Fenster der Arduino-IDE wieder einzufügen!
19  International / Deutsch / Re: Arduino Mega und die Carrera-Bahn on: August 25, 2014, 12:49:13 pm
Was in meinem Code verbrät denn die 800 Takte oder was ist besonders zeitauswendig?

So auf den ersten Blick sehe ich drei Stellen, wo Du überflüssige Extrazeit verbrätst:

1. Du verwendest die vergleichsweise langsamen Arduino-Komfortbefehle "digitalRead" und "digitalWrite" anstelle schneller direkter Registerzugriffe auf PINx und PORTx Register zum Lesen und Setzen digitaler Ein-/Ausgänge.

2. Zur Zeitmessung aktivierst Du den Timer1, obwohl die Arduino-Software standardmäßig bereits eine Zeitmessung über Timer0 aktiviert, mit 4µs zeitlicher Auflösung über die Funktion "micros()".

3. Du verläßt die loop-Funktion.

Zu 3. Wenn die Funktionen in einer loop extrem zeitkritisch sind, kannst Du bei Arduino-Boards, die für die USB-Seriell Verbindung zum PC einen zweiten Chip draufhaben (FTDI, Atmega16U2) wie auch beim MEGA-Board die loop-Funktion problemlos mit einer Endlosschleife versehen, dass die Funktion gar nicht zum Ende kommt:

Code:
void loop() {
  while (1)
  {
    // hier der Code
  }
}

Bei loop-Funktionen, die extrem oft laufen sollen und extrem schnell/zeitkritisch sind, kannst Du die Drehzahl der loop damit etwas erhöhen.
20  International / Deutsch / Re: Probleme mit der DCF77 Library bzgl der Impulszeiten on: August 25, 2014, 09:56:38 am
Ich habe die Impulslängen mit einem Digitalen-Oszilloskop schon geprüft...Außerdem zeigt mir das Programm, welches ich oben beschrieben habe, das Bit an, mit dem jeweiligen Wert. Ist der Wert nicht 0 oder 1, ist das ein Fehler.

Und das Signal ist völlig sauber? Keinerlei Störungen? Auch nicht im Millisekundenbereich?

Ich habe Dir mal ein kleines Testprogramm für die Impulse mit Tiefpassfilterung gemacht, lasse mal laufen:
Code:
#define DCFPIN A0

float lowPass(float curVal)
{
  #define N 36
  static float lowPassVal;
  lowPassVal= ((N-1)*lowPassVal+curVal)/N;
  return lowPassVal;  
}

void setup() {
  Serial.begin(9600);
  pinMode(DCFPIN, INPUT_PULLUP);
}

void loop() {
  static unsigned long lastSwitch;
  static byte lastLogicalSignal=0;
  static unsigned int hipulse, lowpulse;
  byte signal=digitalRead(DCFPIN);
  float signalLowpass=lowPass(signal);
  if (lastLogicalSignal==1 && signalLowpass<0.33)
  {
    hipulse=millis()-lastSwitch;
    Serial.print("H ");Serial.print(hipulse);
    lastSwitch=millis();
    lastLogicalSignal=0;
  }
  else if (lastLogicalSignal==0 && signalLowpass>0.67)
  {
    lowpulse=millis()-lastSwitch;
    Serial.print("\tL ");Serial.print(lowpulse);
    Serial.print("\tP ");Serial.println(hipulse+lowpulse);
    lastSwitch=millis();
    lastLogicalSignal=1;
  }
  
  delay(1);
}

Poste mal einen kleinen Auszug, über die Windows-Zwischenablage aus dem seriellen Monitor herauskopiert und hier im Forum am besten zwischen Code-Tags eingefügt. Wie sieht es aus?

Und dann zum Vergleich mal das nicht-gefilterte Signal mit einem außer Kraft gesetzten Tiefpassfilter:
Code:
float lowPass(float curVal)
{
  return curVal;
}

Auch davon bitte mal einen kurzen Ausschnitt aus dem seriellen Monitor posten!

Zu der Änderung im Quellcode:
Ich hab da auch schon reingeguckt und auch die Variable gefunden, wusste nur nicht, welche Zeit man da genau einstellt.
Allerdings ändert das auch nichts... :/
Ich habe den Wert mal auf 150 gestellt aber nach 14 min hat der immernoch kein Signal...

Ich habe mir die Library mal vor 2 Jahren angesehen, die erschien mir damals deutlich mangelhafte Leistung bereits bei geringfügig gestörten Signalen zu liefern. Wenn Du diese Library verwenden möchtest, würde ich Dir empfehlen, eher das DCF-Modul von Pollin als das Conrad-Modul einzusetzen:
http://www.pollin.de/shop/dt/NTQ5OTgxOTk-/Bausaetze_Module/Module/DCF_Empfangsmodul_DCF1.html

Das Pollin-Modul hat im Gegensatz zum Conrad-Modul nämlich nach meinen Tests bereits einen Tiefpassfilter eingebaut. Bei zunehmenden Störungen liefert das Pollin-Modul jedenfalls noch ein anfangs ungestörtes Ausgangssignal, dann gibt es bei zunehmenden Störungen einen sehr kleinen Bereich, in dem das Signal zappelt, und dann ist das Signal komplett weg.

Das Conrad-Modul dagegen liefert schon bei kleinen Störungen ein leicht zappeliges Signal, das mit zunehmenden Störungen einfach nur immer zappeliger wird.

Zum GPS:
Gute Idee, habe aber auch keine Sicht gegen Himmel... :/

Moderne GPS-Module brauchen nicht unbedingt eine direkt freie Sicht zum Himmel, die werten auch Reflektionen an Wänden aus und Signale, die zum Fenster hereinkommen. Insbesondere in den Abend- und Nachtstunden funktioniert das gut. Erst Recht, wenn Du keine GPS-Position benötigst (was mindestens das Signal dreier Satelliten erfordert), sondern nur die Zeit (erfordert nur das Signal eines Satelliten).

Falls Du lieber DCF verwendest, dann achte aber darauf, dass Du ALLE FUNK-STÖRQUELLE IN ZWEI METER UMKREIS um das DCF-Modul entfernst. Also alles dies muß mindestens zwei Meter entfernt vom DCF-Modul sein, wenn Du Empfang haben möchtest (unvollständige Liste):
- GSM Handys und Smartphones
- UMTS Handys und Smartphones
- Schnurlose Telefone mit DECT oder anderen Funkstandards
- 433 und 868 MHz Short Range Devices (z.B. Funk-Wettersensoren, Babyphones, schnurlose Kopfhörer)
- alles mit WLAN (Handy, mobile Computer, Router)
- alles mit Bluetooth
- alle Monitore
- alle Computer
- alle Leuchtstoffröhren
- alle Energiesparlampen
- alle Schaltnetzteile
All das (und anderes mehr) darf in zwei Metern Umkreis um das DCF-Modul nicht betrieben werden, sonst stört es.
21  International / Deutsch / Re: Arduino Mega Treiber Installation will nicht.... on: August 25, 2014, 07:35:54 am
Hammer es war der Treiber...

Wie ich schon schrieb: 
Mit 99% Wahrscheinlichkeit sitzt das Problem ca. einen halben Meter vor Deinem PC-Monitor.

Defekte Boards werden nämlich normalerweise bei der Endkontrolle erkannt und nicht an Endkunden ausgeliefert.

Für mein verständniss seh ich das richtig das der Chip "der kleiner" die Schnittstelle von USB cu I2C macht?

Nein, der Chip macht USB-to-Serial/TTL, mit I2C hat der Chip nichts zu tun.

Juppi ich kan Programmieren.

Na dann hau rein!  smiley-cool
22  International / Deutsch / Re: Arduino Mega Treiber Installation will nicht.... on: August 25, 2014, 07:18:45 am
und auf dem kleinen CH34OG 202685401

bringen die Infos mehr?

Auf ebay.de gegangen, so ein Board herausgesucht und in der Angebotsbeschreibung gelesen:

> CH340G Driver Download link : http://www.wch-ic.com/download/list.asp?id=126

Dort steht:
> Install driver of USB convert to serial port chip CH340/CH341,
> Supports WINDOWS 98/ME/2000/XP/Server 2003/
> VISTA/Server 2008/Win7/Win8 32-bit/64-bit.
> Got Microsoft WHQL Drive Signature.

Offizielle Treiber offenbar nur für Windows-Betriebssysteme.

Keine Ahnung, ob der dort downloadbare Treiber funktioniert.

Da Du nicht geschrieben hast, dass Du diesen Treiber bereits getestet hast, gehe ich mal davon aus, dass Du es bisher nicht gemacht hast.
23  International / Deutsch / Re: Arduino Mega Treiber Installation will nicht.... on: August 25, 2014, 06:55:23 am
Kan es sein das das Board Defekt ist

Nichts ist unmöglich.

Aber mit 99% Wahrscheinlichkeit sitzt das Problem ca. einen halben Meter vor Deinem PC-Monitor.

oder könnt ihr mir einen Tip geben . wie ich das Board trotzdem zum laufen bringe..

Kannst Du uns einen Tipp geben, um welches Board es sich genau handelt?

Wenn es sich um einen nicht 100% kompatiblen Nachbau mit einem abweichenden USB-Chip auf der Platine handelt, kann man eventuell anhand von Produktbeschreibung, Datenblatt, Schaltbild, Foto etc. irgendwas sehen, welche Treiber benötigt werden, wenn es nicht die originalen Arduino-Treiber sind.
24  International / Deutsch / Re: Probleme mit der DCF77 Library bzgl der Impulszeiten on: August 25, 2014, 04:38:46 am
Um den zu betreiben habe ich die Time und die DCF77 Libary includiert (http://thijs.elenbaas.net/2012/04/arduino-dcf77-radio-clock-receiver-library/).
Jetzt habe ich aber das Problem, dass die Zeit nicht richtig erfasst wird.

Diese Library kommt mit einem Beispielprogramm "DCFPulseLength", mit dem Du Dir die Impulslängen anzeigen lassen kannst. Lasse mal "DCFPulseLength" laufen, dann siehst Du, was mit dem Signal los ist und wie viele Fehler auftreten.

Bei einem einwandfreien Signal siehst Du pro Minute 59 mal ein Signal aus 100/200  und 900/800 ms Dauer, sowie einmal pro Minute einen Sync-Impuls von fast 2s Dauer.

Gestörte Signale wechseln die Impulsflanke mehrmals pro Sekunde und führen zu Störimpulsen.

Meine Frage wäre jetzt, ob es möglich ist, die Grenzen der Pulszeiten oder die Toleranz in der Library zu ändern und wenn ja, wo?

Im Quellcode der Library, wo sonst?

Mal kurz reingeschaut, in der Datei DCF77.h scheint es dieser Eintrag zu sein, den Du beeinflussen kannst:
Code:
#define DCFSplitTime 180

Normalerweise sollen die Impulslängen für 0-Bits 100ms und für 1-Bits 200ms betragen, der Split wäre dann üblicherweise bei 150 ms. Keine Ahnung, warum der Autor der Library den Wert um 30ms nach oben geschoben hat, wahrscheinlich hat er ein DCF-Modul, das ihm diese längeren Impulse liefert. Im Normalfall sollte die DCFSplitTime wohl näher an 150 liegen.

(Sollte es nur am schlechten Empfang liegen, hab ich nen Problem, da der an dem Ort, wo das Board hin soll, noch schlechter ist...)

Grundsätzlich ist es so, dass die ganzen DCF77-Libraries, die als "Open Source" herumschwirren fast immer von Hobbyisten gemacht sind, die es nicht besser wissen und nicht besser können. Bei fehlerfreiem Empfang funktionieren die Libraries und Quellcodes alle gut. Und bei gestörtem Empfangssignal trennt sich die Spreu vom Weizen. An Arduino-DCF Libraries gibt es allerdings fast nur Spreu und kaum Weizen.

Ein Interessantes Konzept für die Auswertung gestörter DCF-Signale hat z.B. Udo Klein Hier entwickelt:
http://blog.blinkenlight.net/experiments/dcf77/binary-clock/
Allerdings habe ich nicht getestet, wie gut die DCF-Library von Udo Klein im Vergleich zur Library von Thijs Elenbaas bei gestörten Signalen abschneidet.

Irgendwie wird DCF auch immer mehr obsolet:
In modernen Wohnungen ist durch hunderte von Funksignalen über GSM, UMTS, DECT, WLAN, Bluetooth und 433/868MHz-SRD Geräte, sowie durch Monitore, Leuchtstoffröhren, Energiesparlampen und Schaltnetzteile das Langwellensignal von DCF77 total verrauscht und kaum noch empfangbar. Auf der anderen Seite sind GPS-Module immer empfindlicher und dabei preiswerter geworden, so dass man zum fast selben Preis und mit weniger Programmieraufwand zumindest in Fensternähe heutezutage per GPS-Modul bequemer und zuverlässiger ein hochgenaues Zeitsignal erhalten kann als über ein DCF-Modul. Denn für den Zeitempfang per GPS braucht man ja nicht wie für eine Positionsbestimmung ständig einen Empfang von mehreren Satelliten, sondern es reicht, wenn ein einziges Satellitensignal zum Fenster reinreflektiert wird.

Aber wie gesagt: Wie gut gestörte DCF-Signale empfangen und ausgewertet werden können, hängt von der Qualität des DCF-Funksignals am Empfangsort, der Empfindlichkeit und Güte des DCF-Empfängers und last but not least von der Fähigkeit der Softwareauswertung ab, fehlerhafte Signale in einer fehlertoleranten Logik vernünftig auszuwerten.
25  International / Deutsch / Re: Arduino Mega und die Carrera-Bahn on: August 25, 2014, 02:00:32 am
Ich möchte mit dem Arduino mit meiner Digitalen Carrera Bahn kommunizieren.
Diese schickt zum einen Daten digital über die Schiene mit der ManchesterCodierung, Flanken alle 50 oder 100µs.

Das sind extrem schnelle Signale.

Mal zum Vergleich: Bei den Leichtathletik-Europameisterschaften wurden sportliche Leistungen auf hundertstel Sekunden genau erfaßt. Eine hundertestel Sekunde gleich 10 Millisekunden gleich 10000 Mikrosekunden. Eine Signaldauer von 50µs entspricht nur fünf tausendstel einer hundertstel Sekunde.

Ein mit 16 MHz getakteter Controller kann in 50µs nur 50*16 = 800 einzelne Clock-Takte ausführen.

Leider habe ich jetzt einige Probleme mit dem Empfangen der Daten, die über die Bahn geschickt werden.

Du bist Dir offenbar nicht darüber im klaren, wie schnell 800 Clock-Takte auf einem AVR-Controller verbraten werden können und programmierst ein Programm, das sich in aller Gemütlichkeit alle Zeit der Welt nimmt.

Dadurch werden Deine Interrupts überlaufen und Dein Programm verarbeitet dann eben nicht jeden Impuls, sondern läßt ab und zu mal einen aus. Wenn Du nur etwas schneller bist als der vorgegebene Takt, ist alles in Ordnung. Und bist Du nur einen winzigen Bruchteil zu spät dran mit der Verarbeitung, summieren sich die fehlenden Zeiten auf bis der Takt Deine Verarbeitung überläuft.

Welche Probleme es beim Arbeiten mit schnellen Taktzeiten geben kann, hat Charlie Chaplin doch schon vor fast 100 Jahren vormacht:


Und Dein Programm ist wie Charlie Chaplin, der mit der hohen Taktfolge nicht klarkommt.


26  International / Deutsch / Re: Schaltung wird zu Warm! on: August 24, 2014, 05:00:45 am
Ja leider. Ich bin was die Elektrotechnik angeht noch ein Anfänger und besitzt nur ein grobes Grundwissen. Würde mich über Effizientere Schaltpläne sehr freuen.

Eine effiziente Versorgung mit Batteriestrom für 5V Betriebsspannung kannst Du beispielsweise erzielen mit:
- 3x 1.5 Volt Batterien (3x AA oder 3x AAA) oder andere Batterien unter 5V
- Step-Up-Wandler auf 5V

Z.B. vom Chinaversender (teils sehr lange Lieferzeiten) eBay Nr. 251619907259 oder von deutschen Versendern zum dreifachen Preis.

Solche kleinen Wandler wandeln Dir eine variable Eingangsspannung von 2-5V in eine stabile Ausgangsspannung von 5V um, und sind daher bestens geeignet, um Batterien bis zum letzten Stromrest auszuquetschen, dabei bis zum Schluß eine konstante Ausgangsspannung von 5V zu liefern, und gleichzeitig die Energie von Batterien nicht sinnlos in Wärme umzuwandeln.
27  International / Deutsch / Re: dynamische Zuweisung für While Anweisung on: August 23, 2014, 04:03:52 pm
Die Zeilen so wie oben laufen nicht durch. Es bleibt in der While Anweisung stecken.

Wenn die if-Bedingung nicht erfüllt ist, behält die Variable taster ihren Wert und wird nicht auf 39 gesetzt.

Und wenn immer noch taster=0; gesetzt ist, fragst Du in der nachfolgenden while-Schleife ab, ob Pin-0, also der RX-Pin der Serial Schnittstelle auf HIGH steht.
28  International / Deutsch / Re: Schaltung wird zu Warm! on: August 23, 2014, 12:55:16 pm
Als Energy Quelle dachte ich mir, benütze ich eine 9V Batterie. Da der Attiny mit nur 5V betrieben wird habe ich ein Spannungsteiler mit zwei Widerständen eingebaut.

Mein Problem ist nun, dass durch die Schaltung ca 140mA Strom fließt und die Widerstände des Spannungsteiler sehr heiß werden. Hätte jemand von euch eine elegantere Lösung oder ein Tipp?

Da wirst Du wohl eher einen Spannungsregler als einen Spannungsteiler verwenden müssen.

Rein rechnerisch würden bei 9 Volt durch Deine 30+40 Ohm Kombination ja bereits
I = U/R = 9/70 = 0,128 A = 128 mA
fließen, wenn der Controller und die LEDs noch nicht mal dranhängen.

Was einer Verlustleistung entspricht von
P = U*I = 9*0,128 = 1,152 Watt

Du mußt zuviel Geld haben, wenn Du eine Heizung baust, die mit 9V-Batterie betrieben wird!
29  International / Deutsch / Re: Arduino Wetterstation mit Ethernet bleibt hängen on: August 22, 2014, 04:46:30 am
Der Code ist wirklich noch sehr wirr, aber ich hoffe, ihr blickt da durch. Vielleicht findet jemand den Fehler.
Der Code ist im Anhang...

Einerseits ist das Konzept leicht wirr:
Wozu brauchst Du für die Verwaltung der Zeit eine RTC, wenn Du doch über den Controller und millis() eine auf Dauer zwar leicht ungenaue Zeitbasis mit Millisekunden-Takt hast, andererseits aber über die Internetanbindung die Zeit in regelmäßigen Intervallen "atomuhrgenau" synchronisieren kannst?

Wozu wird dann als zweite auf Dauer leicht ungenaue Zeitbasis noch die RTC benötigt?
Die RTC ist überflüssig aus meiner Sicht.

Wenn Du die RTC wegläßt und die RTC-Library aus dem Programm rausschmeißt, stattdessen die Zeit vom Controller zählen läßt und gelegentlich per NTP nachsynchronisierst, hast Du die Komplexität des Programms und damit die Fehlermöglichkeiten schon mal reduziert.

Eine vernünftige Fehlersuche an Deinem Programm wird aber letztendlich nicht durch die zu komplexe Hardware verhindert, sondern nur durch den wirren und völlig unstrukturierten Code.

Wenn ich so ein Programm programmieren würde, würde die Loop-Funktion ungefähr so aussehen:

Code:
void loop() {
  syncNtpTime();  // in regelmäßigen Zeitabständen die Zeit über Internet synchronisieren
  updateTime();    // einmal pro Sekunde einen localTime-Sekundenzähler hochzählen
  updateWetter(); // regelmäßig neue Wetterdaten per HTTP holen
  showData(); // Daten anzeigen
}

Fertig ist die loop. Die einzelnen Funktionen können ggf. in weitere Unterfunktionen aufgeteilt werden. Debug-Ausgaben auf Serial sind überall im Programm möglich. Die Datendarstellung auf LCD erfolgt am Ende der loop.

Dein wirres und unstrukturiertes Programm hat trotz Verwendung von mehreren Drittanbieter-Libraries  eine Länge von über 500 Zeilen. Ich bin mir ziemlich sicher, dass man ein strukturiertes Programm, das nur die mitgelieferten Arduino-Libraries verwendet und keine Dritt-Libraries zweifelhafter Qualität, mit eigenem Code mit weniger als 500 Zeilen auskommen kann.

Ich würde das Ding eher komplett Neuschreiben als in dem verwarzten Code mit zweifelhaftem Code aus Drittanbieter-Libraries den Fehler zu suchen. Damit würde ich wahrscheinlich schneller fertig sein.

Edit/Nachtrag: Hast Du mal den Seriellen Monitor mitlaufen lassen und konntest Du feststellen, an welcher Stelle das Programm hängenbleibt? Ist vielleicht "Serial.println("Er versucht zu verbinden");" die letzte Ausgabe im Seriellen Monitor? In dem Fall dürfte der Sketch beim client.connect hängenbleiben.
30  International / Deutsch / Re: Einfache Schaltung, Audio erkennen, brauche Hilfe on: August 22, 2014, 03:48:28 am
Wenn A0 > 40wird soll ein Ausgang (13) HIGH geschalten werden für 15 Sekunden. Diese Zeit soll immer wieder auf 15sek zurückgesetzt werden auch wenn sie schon am Laufen ist wenn A0 > 40wird.

Zeige bitte mal diese "einfache Schaltung", wenn sie so einfach ist!

Es ist nämlich gar nicht so einfach, eine Audio-Wechselspannung so in ein mit Gleichspannung von 0V bis 5V arbeitendes Arduino-Board einzuspeisen, dass ein Nullsignal auch eine Nullspannung liefert.

Das würde ich gerne einmal sehen, was Du da als "einfache Schaltung" hast!

Die mir bekannten einfachen Schaltungen, um ein Audiosignal an den Arduino zu koppeln, liefern kein solches Null-Volt-Signal bei Nichtvorhandensein eines Audiosignals.
Pages: 1 [2] 3 4 ... 203