Show Posts
Pages: [1] 2 3 ... 203
1  International / Deutsch / Re: Ethernet Fehlermeldung on: Today at 09:14:45 am
Hab die IDE und Bibliotheken ersetzt und nun werden keine Fehlermeldungen mehr angezeigt.
Dennoch kann ich die Webseite nicht öffnen, wenn ich meine IP Adresse eingebe.

An was könnte das liegen?

Zu 99% sitzt die Fehlerursache ca. einen halben Meter vor Deinem PC.

Der von Dir gepostete Sketch funktioniert auf einem Arduino UNO mit Ethernet-Shield, funktionsfähigem Heim-Netzwerk und eingestöpselten LAN-Kabel völlig einwandfrei, wenn man die von Dir vor dem Posten des Quellcodes absichtlich gelöschten Inhalte mit ein wenig Sinn und Verstand wieder ergänzt.

Wenn Dir nichts einfällt, was Du prüfen kannst, dann prüfe als erstes:
Hast Du bei Dir ein Heim-Netzwerk mit Router eingerichtet?
IP-Adresse des Routers?
Und ist überhaupt des Netzwerkkabel ins Ethernet-Shield eingesteckt und ans Netzwerk angeschlossen?

Nachtrag: Ich habe Deinen Code nochmal getestet und dabei festgestellt, dass der Code offenbar unter bestimmten Bedingungen zum Absturz des Ethernet-Shields führen kann, der auch nach einem Controller-Reset nicht behoben ist, sondern bis zum Power-Off bestehen bleibt. Im Zweifelsfall: Stromstecker vom USB ziehen, 10 Sekunden warten, wieder anstöpseln. Und dann ggf. mal diesen in einigen wenigen Zeilen geänderten Code testen:
Code:
#include <SPI.h>
#include <Ethernet.h>

byte MACAdresse[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,2, 177);
int const HTTPPORT = 80;
String Farben[] = {"ff0000", "00ff00", "00ffff", "ffff00", "ff00ff", "550055"};

#define HTML_TOP "<html>\n<head><title>Arduino Web-Server</title></head>\n<body>"
#define HTML_BOTTOM "</body>\n</html>"
EthernetServer myServer(HTTPPORT);

void setup()
{
  Ethernet.begin(MACAdresse,ip);
  myServer.begin();
}

void loop()
{
  EthernetClient myClient = myServer.available();
  if(myClient)
  {
    while (myClient.available() > 0) char thisChar = myClient.read();
    myClient.println("HTTP/1.0 200 OK");
    myClient.println("Content-Type: text/html");
    myClient.println();
   
    myClient.println(HTML_TOP);
    showValues(myClient);
    myClient.println(HTML_BOTTOM);
    myClient.flush();
    myClient.stop();
    while (myClient);
  }
}

void showValues(EthernetClient &myClient)
{
  for(int i = 0; i < 6; i++)
{
    myClient.print("Analog Pin ");
    myClient.print(i);
    myClient.print(": ");
    myClient.print(analogRead(i));
    myClient.print("<div style=\"height: 15px; background-color: #");
    myClient.print(Farben[i]);
    myClient.print("; width:");
    myClient.print(analogRead(i));
    myClient.println("px; border: 2px solid;\"></div>");
  }
}

MAC und IP-Adresse im Sketch ggf. anpassen!
2  International / Deutsch / Re: Hacklace (RaumZeitLabor) konfigurieren on: Today at 07:33:24 am
Der Serial Monitor sagt mir dann: HDCHi World
Das wars.

Dann warst Du zu schnell und hast den von mir zuerst fehlerhaft geposteten Sketch verwendet, bevor ich ihn geändert habe.

Der Sketch muß auf "Serial1" senden, wo Du das Modul angeschlossen hast.
Dann erscheint nichts im seriellen Monitor.
3  International / Deutsch / Re: Hacklace (RaumZeitLabor) konfigurieren on: Today at 07:17:46 am
Hast Du ein Arduino-Board mit mehr als einer seriellen Schnittstelle, z.B. ein MEGA?

Ja

Und die Betriebsspannung Deines Moduls ist 5V, genau wie am Arduino?

Dann verbinde doch mal Serial1 (Pin-18/19) des MEGA-Boards mit der seriellen Schnittstelle Deines Moduls, gekreuzte Leitungen:
GND Modul - GND MEGA
RX Modul - TX1 MEGA
TX Modul - RX1 MEGA (diese Verbindung ist wohl sogar überflüssig)
und sende über einen Arduino Sketch mit:

Code:
void setup()
{
  Serial1.begin(2400);
  Serial1.write(0x1B);
  Serial1.print("HDCHi World");
}

Wie sieht's denn damit aus?
4  International / Deutsch / Re: Hacklace (RaumZeitLabor) konfigurieren on: Today at 05:24:06 am
Habe leider kein UNIX, aber es gibt doch sicher auch Möglichkeiten, das ganze unter Windows zu machen, oder?
Mit dem Serial Monitor vom Arduino komme ich nicht weiter.
Habt ihr einen Vorschlag?

Hast Du ein Arduino-Board mit mehr als einer seriellen Schnittstelle, z.B. ein MEGA?
5  International / Deutsch / Re: Problem mit Beispielprogramm für AS3935 Lightning Sensor Breakout on: Today at 01:43:47 am
Ich finde leider den Fehler nicht selbst und bitte deshalb hier um Hilfe.
Spinnt evtl. die Wire-Library wenn Registeradresse  0x00 angesprochen wird?

Lade Dir einen I2C-Scanner Sketch auf das Board und lasse die verfügbaren I2C-Adressen suchen!
http://playground.arduino.cc/Main/I2cScanner

Wenn der I2C-Scanner nichts findet, hast Du kein funktionierendes I2C-Gerät an Deinem Arduino hängen und brauchst mit einem anderen Sketch erst gar nicht erst irgendwas zu versuchen!

Also was sagt der I2C-Scanner?
Es wurde ein I2C-Gerät gefunden ==> Fehler in der Software
Es wurde kein I2C-Gerät gefunden ==> Fehler in der Hardwareschaltung
6  International / Deutsch / Re: DCF77 – macht keinen Spaß on: Today at 01:14:07 am
Das einzig positive daran ist, das mein Code erkennt das das Signal fehlerhaft ist.
Aber an ein Einrasten ist erst gar nicht zu denken.  
Mein Code arbeitet nach der konventionelle Methode,  Udo geht einen anderen Weg.

Der ist wohl um so viel besser, obwohl das Signal verrauscht ist funktioniert es noch  smiley-cool.
Ich verstehe nicht mal das Prinzip, wäre nett wenn mir das jemand erklären könnte. (in Deutsch  smiley-red)  

Die von Udo in seine Auswertung eingebauten Features verstehe ich auch nicht alle.

Aber der Hauptunterschied zwischen einer "schlechten" und einer "guten" Auswertung ist im Prinzip der:

Die "schlechte" Auswertung:
Eine schlechte Auswertung geht von einem optimalen Signal aus, das weitgehend dem Sendeschema entspricht. Es mißt, wann ein Pegel "HIGH" und "LOW" geht, bildet daraus die "HIGH-Zeit" und die "LOW-Zeit", und immer wenn die HIGH-Zeit in der Nähe von 100ms oder 200ms liegt, wird entweder ein 0-Bit (100ms) oder ein 1-Bit (200ms) erkannt.

Die schlechte Auswertung ist deshalb so schlecht, weil damit selbst kürzeste Fehler im Signal nicht erkannt werden. Mal angenommen das ungestörte Signal wäre: 200ms HIGH und 800ms LOW, empfangen wird aber:
49 H, 1 L, 49 H, 1 L, 99 H, 600 L, 1 H, 200 L
Dann erkennt die schlechte Auswertung hier: Ah, 99 ms High, das muß ein 0-Bit sein, weil es in der Nähe von 100ms High liegt und fertig ist die falsche Auswertung.

Die "gute" Auswertung:
Die gute Auswertung bildet gleitende Mittelwerte des empfangenen Signals über längere Zeiträume und glättet das Signal damit. Dadurch erkennt die gute Auswertung, dass 49 H, 1 L, 49 H, 1 L, 99 H die Entsprechung ist für 199 ms lang ein Signal, das während 197/199ms = ca. 99% der Zeit HIGH ist. Und dann sagt die gute Auswertung, dass ein Signal, dass während einer Zeit von 199ms zu 99% HIGH gewesen ist, eben ein 200ms langes Signal gewesen sein muß und erkennt daraus ein 1-Bit.

Kurze Störungen werden durch Glättung/Mittelwertbildung/Tiefpassfilter quasi ausgefiltert.

Der programmtechnisch größte Unterschied ist, dass für die gute Auswertung nicht mit Hardwareinterrupts versucht wird, die Zeitpunkte des Flankenwechsels zu erkennen, sondern dass das Signal mit einem Timer-Interrupt "gesampelt" wird. Ein Timer-Interrupt mißt exakt 1000 mal pro Sekunde, ob das Signal HIGH oder LOW ist, und weil die Zeitabstände zwischen zwei Messungen immer gleich lang sind, läßt sich sehr gut ein im Zeitverlauf gleitender Mittelwert des Signals bilden, aus dem die langsamen Schwankungen (das Original-Signal wechselt den Pegel nur 2x pro Sekunde)  sehr viel genauer erkennbar sind als nur aus dem Vergleich von HIGH-Zeiten.

Natürlich läßt sich auch die schlechte Auswertung noch verbessern. Man könnte die schlechte Auswertung z.B. anweisen, dass sehr kurze Zeiten zwischen den Pegelwechseln ignoriert werden sollen, z.B. alles unter 10ms wird einfach weggefiltert. Dann wird aus;
49 H, 1 L, 49 H, 1 L, 99 H, 600 L, 1 H, 200 L
Die gefilterte Folge:
49 H, 49 H,  99 H, 600 L,  200 L
faßt man nun die nebeneinanderliegenden HIGH und LOW Werte zusammen:
197 H, 800 L
Und voila, kommt in dem Fall dann mit etwas Zusatzaufwand auch die schlechte Auswertung auf das richtige Signal.
Allerdings müßte man sich dabei genau festlegen, bis zu welcher zeitlichen Dauer Störungen komplett ignoriert und ab welcher Dauer vollständig berücksichtigt werden sollen.

Bei der guten Auswertung mit Sampling und Tiefpassfilterung sind die Übergänge mehr fließend: Ein kurzer Störimpuls verzerrt den Mittelwert wenig, ein großer Störimpuls stark, so dass die Auswerteresultate besser sind, wenn über die Dauer von Störimpulsen in einer bestimmten Kombination aus DCF-Modul und Betriebsumgebung nichts bekannt ist.
7  International / Deutsch / Re: DCF77 – macht keinen Spaß on: August 31, 2014, 06:25:11 am
Meine Library: http://blog.blinkenlight.net/experiments/dcf77/dcf77-library/ hingegen hat das Ziel die Entstörung soweit zu treiben wie man es auf einem Arduino hinbekommen kann.

Hallo Udo, kleine Anmerkung zu Deinem Code, in dem immer noch von einer "Backup Antenna" die Rede ist:

Die total marode und sowieso kaum genutzte Reserveantenne mußte die PTB schon im Jahr 2003 verschrotten und diese konnte wegen Geldmangel auch nicht durch eine neue Reserveantenne ersetzt werden.

Seitdem hat das Bit-15 seine Bedeutung von "Reserveantenne" auf "Rufbit" geändert.

Siehe auch Seiten der PTB unter "Rufbit":
http://www.ptb.de/cms/fachabteilungen/abt4/fb-44/ag-442/verbreitung-der-gesetzlichen-zeit/dcf77/zeitcode.html
Und der Wikipedia-Artikel zu DCF: http://de.wikipedia.org/wiki/DCF77
8  International / Deutsch / Re: Anfänger braucht Hilfe bei LED Stuerung mit Arduino on: August 30, 2014, 07:47:14 am
Hallo ich möchte eine zeitsteuerung mit meinem arduino uno machen die leds ansteuert könnt ihr mir vll helfen?
MFG

Vll o vll n.
MFG
9  International / Deutsch / Re: DCF77 – macht keinen Spaß on: August 29, 2014, 01:54:21 pm
Schon der Testsketch von jurs ist wieder mal schon sehr gut gemacht.
Baue gerade eine DCF Lib für ein Nucleo Board der auch funktioniert,nur zum Sammeln der Bits habe ich ein unsigned char rawdata[60]  genommen und schreibe dort 0 ..1  rein.
Ist natürlich eine Verschwendung mir ist aber nichts bessers eingefallen, was nimmt jurs: long long  smiley-cool   "again what learned" würde Lothar Mathäus sagen.

Tja, warum 60 Bytes für etwas verschwenden, das man auch in 8 Bytes (=64 Bits) unterbringen kann, habe ich mir gesagt.

Aber Vorsicht mit den Arduino Bit-Makros (bitRead, bitSet, bitWrite etc.), diese Makros funktionieren mit "long long" nicht für die oberen 32 Bits!

Eben gerade habe ich auch noch zwei Fehler in meinem Code entdeckt,

Erstens werden wohl die Parity-Bits im DCF-Zeittelegramm nicht korrekt ausgewertet.

Und der Beispiel-Sketch funktioniert leider nur täglich zwischen Mitternacht und 18:12 Uhr.

In meinem Bestreben, ein paar Bytes zu sparen, ist mir wohl irgendwie eingefallen, die "Sekunden seit Mitternacht" in einer unsigned int Variablen zu übergeben. Das reicht leider nicht, denn es müssen bis 23:59 Uhr Zahlen übergeben bis hoch zu:
23*3600+59*60 = 86340
Das passt natürlich nicht mit unsigned int, wo bei 65535 Schluss ist.

Korrekterweise müßte die Callback-Funktion in meinem Test-Sketch also auf "unsigned long" statt "unsigned int" umgeschrieben werden:
Code:
int dcfCallback(byte result, unsigned long param1, unsigned long param2, byte param3)
Sonst funktioniert der Code nur täglich von Mitternacht bis vor 18:12 Uhr am Abend.

Irgendwas ist ja immer, wenn man etwas neu programmiert hat.
 smiley-roll-sweat
10  International / Deutsch / Re: Arduino automatisc h aus-und auf Knopfdruck wieder einschalten on: August 29, 2014, 05:36:35 am
Sleep-Modus verbraucht wirklich so wenig daß den Aufwand den Du betreiben willst nicht lohnt.

Vielleicht möchte er ein Standard-Board verwenden und keine eigene Schaltung, so dass er mit Sleepmode gar nicht auf 0mA runterkommt?

Die Selbsthalteschaltung hat einen gravierenden Nachteil. Der Taster muß solange gedrückt sein bis der Arduino das Relais ansteuert, was einige Sekunden dauert. Wird der Taster zu schnell losgelassen schaltet sich der Arduino nicht ein.

Das kann er allerdings durch Plattmachen des Bootloaders umgehen: Einfach den Sketch mit einem ISP-Programmer hochladen, Bootloader ist weg, dann startet der Controller in wenigen Millisekunden sein Programm und kann die Selbsthaltung durchschalten.
11  International / Deutsch / Re: Arduino automatisc h aus-und auf Knopfdruck wieder einschalten on: August 29, 2014, 05:21:45 am
Daher auch kein Relais-zu viel Stromverbrauch (ja, ich weiss, so schlimm isses auch nicht, trotzdem ohne).

So ein 5V "Reed-Relais" mit 500 Ohm Spulenwiderstand schluckt 10 mA an 5V:
http://www.conrad.de/ce/de/product/504599/SIL-Reed-Relais-MES1A05-5-VDC-1-Schliesser-Max-05-A-Max-200-VDC-Max-10-W

Wenn das zuviel ist und Du nur sehr kleine Ströme zu schalten hast, tut es vielleicht auch ein Optokoppler.
12  International / Deutsch / Re: Serial Monitor gibt nichts aus on: August 29, 2014, 05:13:57 am
Mit Vorwiderstand funktioniert es auch nicht...

Dein Programm ist völlig für den Eimer:

Erstens kompiliert der von Dir gepostete Code nicht, weil das "Void" bei der setup-Funktion großgeschrieben ist, was zu einem Compilerfehler führt.

Zweitens gehört zwischen den Funktionsnamen "digitalWrite" und die eingeklammerten Parameter kein Komma.

Drittens wird in dem Programm Serial nicht aktiviert und auch nichts über Serial ausgegeben.

Korrigiertes Testprogramm:
Code:
// LED mit Vorwiderstand an Pin-22
#define LED 22

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

void loop ()
{
  digitalWrite(LED,HIGH);
  Serial.println("HIGH");
  delay (1000);
  digitalWrite(LED,LOW);
  Serial.println("LOW");
  delay (1000);
}

Funktioniert das?

Und noch ein Tipp als Nachtrag:
Die meisten Arduino-Boards und auch das MEGA haben bereits eine LED auf dem Board, die Du per Software ansteuern kannst. Sie ist am Pin-13 angeschlossen und wenn Du nur für Testzwecke per Software eine LED blinken lassen möchtest, kannst Du diese verwenden. Bei der kannst Du sicher sein, dass sie richtig angeschlossen ist (passender Vorwiderstand und korrekte Polung).
13  International / Deutsch / Re: Serial Monitor gibt nichts aus on: August 29, 2014, 04:50:20 am
Ich benutze Arduino Mega 2560 und habe als Schaltung einfach die LED (richtigherum smiley ) mit einem PIn und GND verbunden.
Wenn ich die LED an einem normalen Netzgerät mit der selben Stromstärke anschließe, leuchtet sie.

Eine LED hat eine Vorwärtsspannung zwischen  2V (rot) und 3V (weiß, blau), und wenn Du die direkt zwischen einem Pin auf OUTPUT 5V mit GND zusammenschließt, verursachst Du einen Kurzschluss. Das MEGA-Board hat eine Überstromsicherung und schaltet das Board dann ab.

Versuch's mal mit einem Vorwiderstand für die LED in Reihe geschaltet. Minimum 150 Ohm.

Bild und Schaltbild siehe auch: http://arduino.cc/en/Tutorial/Blink?from=Tutorial.BlinkingLED
14  International / Deutsch / Re: Arduino automatisc h aus-und auf Knopfdruck wieder einschalten on: August 29, 2014, 04:37:25 am
Hat da jemand ne Idee zu?

Selbsthalteschaltung.
15  International / Deutsch / Re: Serial Monitor gibt nichts aus on: August 29, 2014, 04:35:03 am
USB-Kabel ist eingesteckt smiley-wink
Ich habe probiert einfach nur eine LED zum leuchten zu bringen und auch das funktioniert nicht. Es scheint also an der Kommunikation zum Arduino zu liegen, aber es wird keine Fehlermeldung angezeigt. (ON-LED und RX und TX leuchten, bzw. blinken kurz auf)

Welches Board verwendest Du?
Welchen Sketch verwendest Du?
Welche Schaltung verwendest Du?

Und meldet Dir die IDE nach dem Hochladen des Programms "Upload abgeschlossen" oder erscheint eine Fehlermeldung im Meldungsfenster?
Pages: [1] 2 3 ... 203