HC-SR04 Sensor fehlt da was?

selfmade:
zu früh gefreut

hatte gestern noch einen 4MHZ Quarz besorgt und aufgelötet.
Die Werte die er jetzt ausgab sind auch nicht berauschend.
Er gibt z.B. ständig zw. 140 und 155 cm aus ob ich etwas davor halte oder nicht und deren Entfernung verändere.

Schade.

Ersetze mal Deinen Code zur Langzeittriggerung:

 digitalWrite(trigPin, HIGH);
  delayMicroseconds(1000);
  digitalWrite(trigPin, LOW);

durch Code mit einem kurzen Triggerimpuls:

  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

Ändert sich dann etwas?

Hallo,
das mach ich morgen gleich, komme heute nicht mehr dazu. Gebe dann aber bescheid.

Ich hatte auch einen anderen Beispielsketch verwendet. auch ohne Erfolg

Probier Deinen Vorschlag und gebe dann bescheid

Vielen Dank!

Hallo,

habe nun nochmal den Sensor mit dem neuen geänderten Sketch probiert (by jurs)
weiter habe ich gestern noch probiert meine DS1307 Real Time Clock zum Laufen zu bringen.
Der zeigt mir alles an, egal welchen Sketch ich verwendet /habe bestimmt 3-4 Bibliotheken und 4-5 versch sketches ausprobiert.

Keine Chance. Er zeigt unwirkliche Datums und Uhrzeiten an.
Beim Sensor ist es jetzt so als hänge er gar nicht dran da er nur "Out of Range" anzeigt

Ich glaube ich muss mal das Board irgendwie testen...
entweder ich stelle mich total doof an oder es gibt hier ein ganz anderes Problem

Was meint ihr wie kann ich checken ob das Arduino (Sainsmart) mega 2560 R3 Board richtig funktioniert?

Grüße
Jürgen

selfmade:
Keine Chance. Er zeigt unwirkliche Datums und Uhrzeiten an.
Beim Sensor ist es jetzt so als hänge er gar nicht dran da er nur "Out of Range" anzeigt

Ich glaube ich muss mal das Board irgendwie testen...

Also mal ganz doof zurückgefragt, weil in Deinem Sketch der Kommentar etwas anderes sagt als der Code

*
 HC-SR04 Ping distance sensor]
 VCC to arduino 5v GND to arduino GND
 Echo to Arduino pin 13 Trig to Arduino pin 12
 More info at: http://goo.gl/kJ8Gl
 */

#define trigPin 3
#define echoPin 2

Laut Kommentar soll Echo-13 und Trig-12 angeschlossen werden.
Aber im Code steht, dass Echo-2 und Trig-3 angeschlossen sein sollen.

In einem gut kommentierten Sketch sollten die Kommentar zum Code passen und ihn näher erläutern, was hier nicht der Fall ist. In jedem Fall gilt: Der Kommentar dient nur als Hinweis für den Menschen, der ihn liest. Der Code ist das, was vom Compiler kompiliert und auf den Controller geladen wird. Also hast Du entsprechend dem Code den Trigger-Pin an Pin-3 des Arduino angeschlossen und den Echo-Pin des Sensors an Pin-2 des Arduino?

Oder hast Du Dich beim Anschließen an den fehlerhaften Kommentar am Anfang des Sketches gehalten?

Hallo!
Die DS hängt am Pin 20 / 21 und kriegst lauter 128.128 ?
Einfach 20/21 tauschen....sollte eigentlich keine Probleme machen.

Beim Sensor solltest mal die Ultrasonic oder die NewPing Librarys versuchen.
Damit klappts einigermassen genau.

Zum Testen gibts das:
http://forum.arduino.cc/index.php?topic=50203.0
....würde ein Cooles Projekt abgeben, am Mega....

mfg Martin

Ich habe den Sensor Trigger und Echo schon an verschiedenen Pins angehängt. bei den ersten Versuchen und jetzt auch wieder.
Natürlich bin ich strickt nach den Schaltplänen gegangen und habe dann im Sketch die Pins entsprechend angepasst
wenn dort also stand Trigger = 20 und echo = 21 dann habe ich den Sensor auch so verbunden.
Die von Dir genannten 128.128.. ja das hatte ich am Anfang... das wurde dann aber behoben.. weiss jetzt nicht mehr was der Grund war.
Die ganzen Librarys NewPing etc. habe ich alle durch.

Was mich jetzt wundert ist, dass er gar nichts mehr bringt... also nur noch "Out of Range"

Ich hatte auch versucht ganz von vorne zu beginnen.

Also erstmal eine LED an pin 13 da dieser ja laut Doku mit Vorwiderstand belegt ist.
Das funktioniert!
Dann habe ich die LED an einen anderen Port gehängt z.B Pin8.
dort habe ich vor der Plus-Seite 4 Widerstände in Reihe geschaltet. Laut meinem Multimeter ergeben die 4 zusammen die geforderten 220 Ohm.
Es passiert nichts an der LED (die zuvor auf PIN 13 noch ging)
Dann bin ich her gegangen und habe mal eine Multimeter reingeklemmt.
Siehe da. Er zeigt mir seltsame 5V (aufgerundet und das nach den Widerständen) an .
Wie gesagt die LED blinkt dort nicht.
Alles wird auf einem Breadboard getestet.
Es ist wie verhext oder ich habe hier eine grundsätzlichen Denkfehler drin

Viele Grüß
Jürgen
ps. die 5v die mir mein Multimeter angezeigt haben (oben beschrieben) waren im Blinkmodus... ich sah also im Multimeter das der Blink-sketch zwar funktioniert und der Strom auch ausgegeben wird aber irgendwie klappte es doch nicht

das ist wirklich wie verhext.
zumindest funktioniert nun das Blink-Sketch an versch. Ports.
Zum Glück hat der Arduino keinen Treffer. Entweder hatte ich Tomaten auf den Augen.. keine Ahnung ich probier es später nochmal ganz von vorne mit dem Sensor

Pin 13 hat keinen Vorwiderstand, vermutlich hast Du die LED gekillt. Oder verpolt angeklemmt.
Ich halte es daher für denkbar, dass Du grundsätzlich bei der Schaltung ein Problem hast.

Auch die vielen Libs die Du probiert hast für den HC halte ich im aktuellen Stadium für wenig hilfreich. Nimm die Karo-einfach-Variante mit 40 micros delay, PulseIn zur Messung und zeig uns ein Bild, wie Du verdrahtet hast.

Hast du bei deinem Test auch die Pins richtig auf Output gesetzt? Ein Multimeter ist extrem hochohmig, weshalb es die 5V anzeigt, selbst wenn der Pin als Eingang definiert ist und der interne Pullup aktiviert wird. Für eine Led reicht der mögliche Strom dann nicht.

Hallo!
Langsam, an Pin 20/21 ( TWI / I2C ) sollte ja nur die Clock....
Step by Step..räum mal auf, nur den Minimalcode für den HC rauf , den Sketch und dein Pinout (Foto) posten.
(wie bereits gepostet wurde)..
Das mit der LED versteh ich gar nicht.. wennst die LED mit den Widerständen an Masse direkt an 5V klemmst,
sollte sie doch leuchten ?
Und dann an den Pins gehts nicht ???? Verwendest den "Blink" mit geändertem Pin ?

mfg Martin

Hallo,

ich trau es mich fast nicht sagen.
Sorry.
Ich hatte doch alles auf dem Breadboard (ein größeres langes) getestet.
Ich hatte wirklich zum ersten mal sowas in der Hand.
das ist mittig ja geteilt. :blush:

ich räume jetzt mal alles sauber auf und teste alles durch.
Der Temp-Sensor der heute eingetroffen ist DHT22 funktioniert
die LED funktioniert auch
ich teste gerade noch den DS18B20 Temp-Sensor. Da gibt es wohl versch. Anschlussmöglichkeiten
aktuell zeigt er mir noch 55,00° Grad an. Das ist doch etwas zuviel

Später werde ich nochmals den Ultraschallsensor testen. Hoffe das es tatsächlich nur meine Dummheit bezüglich des Breadborads war

Das Gute daran ist: Du wirst diese Stolperfalle nie mehr vergessen XD

Hi,
ich dachte schon " bin ich nun total verblödet"

ja diesen Fehler werde ich wohl nie mehr vergessen

der zweite Sensor geht auch, bin auch auf das 1Wire gestossen. Das ist super da kann ich ja mit den Adressen der Sensoren gleich mehrere an einem Pin auslesen. Das ist perfekt.
Jetzt baue ich gerade den Ultraschallsensor wieder auf.
Hoffe es war auch so ein dummer Fehler von mir.

Viele Grüße und vielen Dank für Eure Geduld

Jürgen

So, jetzt habe ich nochmal den HC-SR04 angeschlossen.
und mit diesem sketch probiert
(habe die Zeilen ausgetauscht die mir hier in diesem Thread empfohlen wurden)

#define trigPin 10
#define echoPin 9

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  int duration, distance;
   digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  if (distance >= 200 || distance <= 0){
    Serial.println("Out of range");

  }
  else {
    Serial.print(distance);
    Serial.println(" cm");
  }
  delay(500);
}

wie zu sehen hängt der Trigger an 10 und Echo an 9

sind alle Anschlüsse verbunden also 5v, Trig, Ech, GND so erhalte ich
Out of Range (nach der Bedingung im Sketch)
entferne ich trig und echo kommen Entfernungen von 140-160cm

Ich vermute jetzt doch fast der Sensor hat vielleicht doch einen ganz tiefe Macke

Hallo!
Dein Code funktioniert nicht.
Lade diese Lib runter:

Und dann das Beispiel Ultrasonic Demo
Pin 12 Trigger und 13 Echo...geht sofort und schon recht genau von ca. 3cm bis 2 Meter.
zudem gibt die Lib gleich die Laufzeit und Distanz in cm und Inch aus.
Schmeiss zuvor die anderen Ultrasonic Libs raus, sonst gibts wieder Probleme...

mfg Martin

Wasjetzt:
Dein Code funktioniert nicht.

Was soll das denn?

Der Code funktioniert!
Habe es gerade nochmal selbst getestet.
Der Code in Reply #32 funktioniert und auch der Code im Ausgangsposting mit dem überlangen Trigger-Impuls funktioniert mit dem HC-SR04.

Aber: Wenn auf der einen Seite der Platine ein Bauteil (der Schwingquarz) fehlt, könnte es natürlich sein, dass auf der anderen Seite der Platine auch ein oder mehrere Bauteile fehlen. Auf der Seite, die bisher nicht als Foto gezeigt wurde, sitzen ja noch viel mehr Bauteile.

Vielleicht auch mal kontrollieren, ob auf der anderen Platinenseite alle Bauteile bestückt sind:
http://www.robodino.de/wp-content/gallery/arduino-sensoren/img_6517.jpg

Ok
habe es mit Deinem Vorschlag probiert und auch überprüft ob Bibliotheksleichen rumliegen

hier die Ausgabe...:frowning: ich glaub der Sensor ist wirklich hinüber. Wenn die dem schon in China den Quarz nicht aufgebaut haben, wer weiss was der noch alles hatte .
Gut in 2-3 Wochen sollte der neue da sein. Bis dahin habe ich hier eh viel zu schrauben
Ich bin schon heil froh das die anderen Teile und Sketche funktionieren. Ich hatte ja eh den Wurm am Anfang total drin.

MS: 33481, CM: 606.03, IN: 238.59
MS: 33158, CM: 600.18, IN: 236.29
MS: 32149, CM: 581.92, IN: 229.10
MS: 32146, CM: 581.86, IN: 229.08
MS: 32132, CM: 581.61, IN: 228.98
MS: 32173, CM: 582.35, IN: 229.27
MS: 32180, CM: 582.48, IN: 229.32
MS: 32129, CM: 581.56, IN: 228.96
MS: 32131, CM: 581.59, IN: 228.97
MS: 32157, CM: 582.06, IN: 229.16
MS: 32169, CM: 582.28, IN: 229.24
MS: 32117, CM: 581.34, IN: 228.87
MS: 32121, CM: 581.41, IN: 228.90
MS: 32176, CM: 582.41, IN: 229.29
MS: 32175, CM: 582.39, IN: 229.29
MS: 32138, CM: 581.72, IN: 229.02
MS: 32162, CM: 582.15, IN: 229.19
MS: 32162, CM: 582.15, IN: 229.19
MS: 32162, CM: 582.15, IN: 229.19
MS: 32127, CM: 581.52, IN: 228.94
MS: 32173, CM: 582.35, IN: 229.27
MS: 32165, CM: 582.21, IN: 229.22
MS: 32124, CM: 581.47, IN: 228.92

das gibt er aus... egal was ich mache auch wenn sich die Entfernung ändert.

Ps. Gleich noch eine Frage.

Ich habe hier ein Relay-Board für den Arduino, darüber werden später die u.a. Pumpen und Lampen geschaltet .
Mit den 5V vom Arduino habe ich es getetstet und die LED's auf dem Board zeigen mir das wohl versucht wird zu schalten.
habe gelesen das diese Boards um auch wirklich schalten zu können 12V brauchen und damit sie nicht so warm werden kann man sie auch mit 10V anfahren.

Da ich nun Spannung zu versorgen habe von 3,3V über 5V nun 10 V und für eine kleine Pumpe auch noch 12V.
Gibt es da eine Multi-Trafo der mir gleich mehrere Spannungen zur Verfügung stellt.
Ich möchte vermeiden das ich zum Schluss eine 10fach Steckdoese nur für diese Minitrafos benötige

Noch eine Frage:
Das mit den Tempfühlern und dem OneWire hat mich sehr beeindruckt.
Da ich in Aqua-becken die PH-Werte etc. messen muss habe ich für den Arduino ein PH-Shield. An dieses PH-Shield sollen nun 3 Sonden angeschlossen werden (diese Shields sind recht teuer deswegen 3 an eine Sonde).
Die Sonden müssen zwar kalibriert werden, ich werde also eine Mittelwert finden müssen da ja alle vom gleichen Shield bedient werden, aber kann man dann die Sonden nicht via OneWire abfragen (also Hardwareadresse ermitteln etc.)?

Bis dato wollte ich das über ein Schieberegister steuern.
In der Reihenfolge
Arduino <===> PH-Shield <===> Schieberegister <===> 3 PH-Sonden die am Schieberegister hängen und bei Bedarf an das Shield geschaltet werden

Grüße
Jürgen

Hallo!
Hab ich auch aus Post #32 aufgespielt und kriege Werte von 58 und 180 abwechselnd..zwischendurch auch mal ein "Out of Range"
Die Teile können doch nicht alle ein "Eigenleben" führen ?
..und warum schauts dann mit der Lib recht stimmig aus ?? (zumindest bei meinem Sensor).

mfg Martin

Hier mal die neuen Bilder Vorder und Rückseite.
Vielleicht habe ich ihn auch beim Auflöten des Quarz erst noch richtig zerstört.
Meine Lupe hatte ich in der Garage:(

selfmade:
Hier mal die neuen Bilder Vorder und Rückseite.

Das Layout Deiner Platine scheint etwas anders zu sein als bei dem Foto-Link, den ich gesendet hatte.

Aber trotzdem sollten sich beim angeschlossenen Schwingquarz zwei Kondensatoren befinden, auf dem von mir verlinkten Foto C6 und C7 direkt am Quarz angeschlossen und auf Deinem Foto C1 und (sieht aus wie) C5 in unmittelbarer Nähe. Dort sind auf Deinem Foto nur zwei leere Bestückungsplätze für die beiden Kondensatoren zu sehen.

Für mich sieht es auch auf der anderen Platinenseite unvollständig bestückt aus.

ja, ich glaube Du hast recht.
Ich vermute die haben in China nicht nur den Quarz vergessen, wahrscheinlich fehlt da noch einiges andere auch.

Eine andere Frage.
Ich bin ja absoluter Neueinsteiger in Arduino & Co.

Wie muss ich mir das Abspeichern der Sketche auf dem Arduino vorstellen.
Haben da mehrere Sketche Platz?
wieviel MG passen da drauf?
wenn ich einen Sketch nicht mehr brauche wie bring ich den wieder runter oder lösche diesen?
Aktuell teste ich viel, spiele also auch viel Mist auf das Arduino Board.
Wenn ich dann mal alles zusammen habe kann man dann das Arduino komplett säubern, formatieren wird ja nicht funktionieren.

Gibt das für diese grundlegenden Fragen irgendwo eine gute Einsteigerseite auf der sowas gut beschrieben ist?