Einfache LED-Taster-Schaltung mit Pieper

Hi,
ich bin noch komplett neu was Arduino angeht und brauche auch ewig, um solche Programmiergeschichten zu lernen - das mal vorweg.

Nun versuche ich schon seit Tagen mit Hilfe von Tutorials folgendes hinzubekommen, jedoch immer ohne Erfolg:

Ich habe zwei Taster an 12 und 13.
Jeder dieser Taster soll je eine LED für 20 Sekunden einschalten - die LEDs sind an 5 und 6.
Dazu soll ein Pieper eine kurze Melodie abspielen, also eine Art Warnton (kurze Tonleiter o.ä. - kann ich später ja noch ändern), wenn eine der LEDs leuchtet.

Ich bekomme es zwar hin, eine LED mit einem Taster ein- und wieder auszuschalten, jedoch nicht für eine bestimmte Zeit.
Auch den Pieper hab ich schon erfolgreich angesteuert (ist ein Lautsprecher aus einem alten Nokia 6110).

Langsam steig ich da aber irgendwie nicht mehr durch…mir fällt es echt schwer, mir die ganzen variablen zu merken und irgendwann sehe ich den Wald vor lauter Bäumen nicht mehr…dabei denke ich mir “Das kann doch nicht so schwer sein??”. Die Probleme hatte ich vor 10 Jahren in der Schule mit C++ schon.

Wäre gut, wenn mir jemand dabei helfen kann…wenn es geht mit Erklärung, damit ich mir das vielleicht doch mal einprägen kann.

Gruß
Jannomag

PS: Hab aktuell einen Uno, das ganze soll aber auf einen Nano, aber das sollte ja nicht zu wichtig sein, oder?

Hab aktuell einen Uno, das ganze soll aber auf einen Nano, aber das sollte ja nicht zu wichtig sein, oder?

Ja, nicht wichtig.

Wäre gut, wenn mir jemand dabei helfen kann...wenn es geht mit Erklärung, damit ich mir das vielleicht doch mal einprägen kann

Da ist hier im allgemeinen ein anderes Verständnis von Hilfe, fürchte ich. Den Millionen Tutorials noch eins hinzufügen, ist Mist. Frag lieber, was du nicht verstehst, bzw. erklär, warum ;)

Ich bekomme es zwar hin, eine LED mit einem Taster ein- und wieder auszuschalten, jedoch nicht für eine bestimmte Zeit.

Das würde ich als erstes probieren. Und wenn es geht, lernen wie es ohne delay geht. (Damit in der gleichen Zeit später der zweite Taster und die zweite Led gehen können) Was probierst du und was verhält sich anders als du denkst?

mir fällt es echt schwer, mir die ganzen variablen zu merken

Dafür haben die Dinger Namen. Ausserdem sollte man bei der Variablendefinition einen Kommentar dazuschreiben. Evtl. auch, welche Werte die Variable annehmen kann und was die bedeuten.

Danke für die Antwort.

Da ist hier im allgemeinen ein anderes Verständnis von Hilfe, fürchte ich. Den Millionen Tutorials noch eins hinzufügen, ist Mist. Frag lieber, was du nicht verstehst, bzw. erklär, warum

Verstehen tue ich die Programme oft, aber das Kombinieren von mehreren Abläufen ist für mich schwer.

Das würde ich als erstes probieren. Und wenn es geht, lernen wie es ohne delay geht. (Damit in der gleichen Zeit später der zweite Taster und die zweite Led gehen können)
Was probierst du und was verhält sich anders als du denkst?

Ich habe nun durch Zufall und langem Suchen ein Sketch gefunden, was beinahe das macht, was ich will.
Nun hab ich das so angepasst, damit es fast so läuft, wie ich es gerne hätte…ich erklär weiter unten, was

Hier mein Sketch:

#include "pitches.h"

// Noten für die Melodie:
int melody1[] = {
   NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};

int melody2[] = {
   NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};

// Notenlänge - 4 = 1/4, 8 = 1/8...
int notedurations1[] = {
   4, 8, 8, 4, 4, 4, 4, 4
};

int notedurations2[] = {
   4, 8, 8, 4, 4, 4, 4, 4 
};


const int button1 = 2;
const int button2 = 4;
const int piezo = 8;
const int led1 = 12;
const int led2 = 11;

int buttonState1 = 0;
int buttonState2 = 0;

void setup() {

     pinMode(piezo, OUTPUT);
     pinMode(button1, INPUT_PULLUP);
     pinMode(button2, INPUT_PULLUP);
     pinMode(led1, OUTPUT);
     pinMode(led2, OUTPUT);
}

void playSong(int OutputPin, int Melody[], int NoteDurations[], int NumberOfNotes){
    for (int thisNote = 0; thisNote < NumberOfNotes; thisNote++) {
    
    int NoteDuration = 1000 / NoteDurations[thisNote];
    tone(OutputPin, Melody[thisNote], NoteDuration);
    int pauseBetweenNotes = NoteDuration * 1.30;
    delay(pauseBetweenNotes); 
   }
   noTone(OutputPin);
}

void loop() {
       
   buttonState1 = digitalRead(button1);
   buttonState2 = digitalRead(button2);
   
   if (buttonState1 == HIGH && buttonState2 == LOW) {
     
     digitalWrite(led1, HIGH);
     playSong(8, melody1, notedurations1, sizeof(melody1)/sizeof(melody1[0]));
     delay(9000);
     digitalWrite(led1, LOW);
   }  
    
   else if (buttonState1 == LOW && buttonState2 == HIGH) {  
     
     digitalWrite(led2, HIGH);
     playSong(8, melody2, notedurations2, sizeof(melody2)/sizeof(melody2[0]));
     delay(9000);
     digitalWrite(led2, LOW);
   }
   else { }

     
}

Aktuell drücke ich einen Taster, die entsprechende LED geht an und es wird eine Melodie gespielt.
Nun kann ich aber nix machen, solange die LED nicht wieder ausgegangen ist.
Das würde ich aber gerne - das heißt, wenn ich erneut einen Taster drücke, soll er abbrechen und wieder von vorne Anfangen.
Außerdem hätte ich gerne, dass die LEDs für ca. 20 Sekunden blinken.

Das ist jetzt ein gutes Beispiel für mein Verständnisproblem.

Wenn ich den Sketch so lese, verstehe ich größtenteils, was passiert.
Aber neue Teile und Funktionen einfügen oder bestehende Funktionen erweitern fällt mir extrem schwer.

Außerdem hätte ich gerne, dass die LEDs für ca. 20 Sekunden blinken.
Das ist jetzt ein gutes Beispiel für mein Verständnisproblem.

Da bist du jetzt an dem Punkt, zu dem ich angemerkt habe, “wenn es geht, lernen wie es ohne delay geht”
Herzlichen Glückwunsch erstmal.

Leider ist das Problem in "dein"playSong()fest eingebaut. Das musst du komplett umschreiben :frowning:

Eine einfache Möglichkeit ist, den Aufruf der zentralen tone( ) Funktion zu lassen wie sie ist. tone () kommt dann erst zurück, wenn der aktuelle Ton nach Ablauf der duration fertig ist. Das bedeutet, dass ein neues Tasteneinlesen nur zwischen zwei Tönen erfolgt, aber immerhin.

boolean playSong(int OutputPin, int Melody[], int NoteDurations[], int NumberOfNotes, int& thisNote) {
  if (thisNote < NumberOfNotes) {
    // einen Ton Spielen
    int NoteDuration = 1000 / NoteDurations[thisNote];
    tone(OutputPin, Melody[thisNote], NoteDuration);
    int pauseBetweenNotes = NoteDuration * 1.30;  // ? ich würde das anders machen, aber egal
    delay(pauseBetweenNotes);
    thisNote++; // nächsten Ton vorbereiten
  }
  // noTone(OutputPin); // Unsinn
  if (thisNote >= NumberOfNotes) return true; // Melodie fertig
  else       return false; // noch nicht fertig;
}

Der Aufruf erfolgt dann so:

const int durationLED=10000; // Dauer der LED
void loop() {
   static int currentTone;
   static unsigned long startTime;    
   buttonState1 = digitalRead(button1);
   if (buttonState1 == HIGH) {
      // Neu starten
      digitalWrite(led1, HIGH);
      currentTone=0;
      startTime = millis();
   }
   if (playSong(piezo, melody1, notedurations1, sizeof(melody1)/sizeof(melody1[0]), currentTone) ) {
     // Lied ist jetzt zu Ende, ...
   }
   if (millis() - startTime > durationLED) digitalWrite(led1, LOW); // So schaltet man die LED nach einer Weile aus
}

ungetestet, nur als Aneregung :wink:

Bleibt für dich, dass die LED nicht die ganze Zeit an ist, sondern blinkt ( s. BlinkWithoutDelay )
und das ganze für 2 Taster und zwei Melodien
und dann eventuell, dass es nicht so kritisch ist, wie lang der Taster gedrückt ist (zur Zeit wird der erste Ton wiederholt, bis der Taster endlich losgelassen wird, stimmts? )

jurs: Was dauert länger: - die Einschaltdauer der LED von 20 Sekunden? - oder das Abspielen der Melodie?

Die Einschalt, bzw. Blinkdauer von 20 Sekunden. Die Melodie ist kurz (sind 4 Noten, erläutere ich weiter unten).

jurs: Und wie ist der Ablauf genau?

Ich drücke Taster 1, dann soll LED 1 blinken und Melodie 1 gespielt werden. Drücke ich Taster 2, dann soll LED 2 blinken und Melodie 2 gespielt werden.

jurs: Soll die LED auf Tastendruck für 20 Sekunden leuchten? Oder für 20 Sekunden blinken? Wie lange ist die Spieldauer der Melodie?

Für 20 Sekunden blinken, 0.5 Sekunden aus, 0.5 Sekunden ein - also 20 Wiederholungen. Die Melodie ist etwa 1 Sekunden lang. Melodien kommen gleich.

jurs: Soll beim Drücken beider Taster dieselbe Melodie oder verschiedene Melodien gespielt werden?

Am besten sind zwei verschiedene Melodien, wenn es sich aber nicht realisieren lässt, geht auch die selbe. Melodien:

int melody1[] = {
   NOTE_D6, NOTE_A6, NOTE_C7, NOTE_A6
};

int melody2[] = {
   NOTE_A6, NOTE_C7, NOTE_A6, NOTE_D6
};

// Notenlänge - 4 = 1/4, 8 = 1/8...
int notedurations1[] = {
   4, 8, 4, 8  
};

int notedurations2[] = {
   4, 8, 4, 8 
};

jurs: Und wenn die LED leuchtet oder blinkt und die Melodie spielt, und der Taster wird nochmals gedrückt, dann soll alles was läuft (leuchten, blinken, Melodie spielen) sofort abgebrochen und neu gestartet werden? Oder erst, wenn die nächste Note gespoelt wird? Oder wie?

Sofort abgebrochen und dann soll die Aktion durchgeführt werden, die dem Taster zugeordnet ist. Habe ich also Taster 1 gedrückt und Melodie 1 spielt, LED 1 blinkt und ich dann Taster 2 drücke, soll sofort Melodie 1 gestoppt und LED 1 ausgeschaltet, dafür Melodie 2 gestartet und LED 2 eingeschaltet werden.

Letzteres ist für mich ein Problem beim Verständnis...scheinbar bin ich noch nicht so ganz durchgestiegen, wie der Arduino an sich funktioniert. Bin selbst Elektriker, daher ist das Wissen über elektrische Schaltungen vorhanden, jedoch nicht das Wissen über C, bzw. programmieren allgemein (Logo und S7 lasse ich mal aus, damit hab ich ewig nicht mehr gearbeitet).

michael_x: Bleibt für dich, dass die LED nicht die ganze Zeit an ist, sondern blinkt ( s. BlinkWithoutDelay ) und das ganze für 2 Taster und zwei Melodien und dann eventuell, dass es nicht so kritisch ist, wie lang der Taster gedrückt ist (zur Zeit wird der erste Ton wiederholt, bis der Taster endlich losgelassen wird, stimmts? )

Danke, ich versuch's mal damit im Laufe des Tages - wenn ich das so lese, verstehe ich wieder was passiert, könnte es aber nicht selbständig wiedergeben :D

Die Melodie spielt komplett durch, auch wenn der Taster losgelassen wird.

Langsam steig ich da aber irgendwie nicht mehr durch...mir fällt es echt schwer, mir die ganzen variablen zu merken und irgendwann sehe ich den Wald vor lauter Bäumen nicht mehr...dabei denke ich mir "Das kann doch nicht so schwer sein??"

Das ist auch nicht schwer....

Logik, Struktur, Disziplin. Das sind die Tugenden, welche wenn gelernt, dir vieles an "denken/suchen" abnehmen. Vergleiche mit "Pudding essen", da suchst du ja auch nicht dauernd den Becher, Löffel und Mund. Nee... dafür hast du angelernte Automatismen.

Tipp 1: Variablen muss man sich kaum merken, wenn sich ihr Gültigkeitsbereich auf eine Bildschirmseite beschränkt.

Tipp 2: Halte dich an das "Prinzip der geringsten Verwunderung"! Was du einmal an einer Stelle tust, tue immer wieder auf die gleiche Art. Bis du eine bessere Methode gefunden hast.

Sofort abgebrochen und dann soll die Aktion durchgeführt werden, die dem Taster zugeordnet ist. Habe ich also Taster 1 gedrückt und Melodie 1 spielt, LED 1 blinkt und ich dann Taster 2 drücke, soll sofort Melodie 1 gestoppt und LED 1 ausgeschaltet, dafür Melodie 2 gestartet und LED 2 eingeschaltet werden.

Letzteres ist für mich ein Problem beim Verständnis...scheinbar bin ich noch nicht so ganz durchgestiegen, wie der Arduino an sich funktioniert.

Es ist kein Arduino Problem. Sondern ein Struktur Problem. Struktur im Programmablauf.

In deinem Fall, solltest du dich um endliche Automaten kümmern. Das ist ein immer wieder kehrendes "Design Pattern". Ich behaupte: Jedes (fast jedes) funktionierende SPS und auch Arduino Programm ist ein endlicher Automat, bzw. ein Verbund aus etlichen endlichen Automaten. Unabhängig davon, ob der Programmierer je von endlichen Automaten gehört hat.

Tipp: Lerne die üblichen "Design Pattern".

Die Melodie spielt komplett durch, auch wenn der Taster losgelassen wird.

Ja klar, aber sie fängt erst richtig an, wenn der Taster losgelassen wurde. (In meinem Beispiel) Vorher wird nach jedem Ton wieder neu erkannt: Taster gedrückt, also die Melodie "wieder auf Anfang gestellt" und der erste Ton gespielt. Das kann man gut finden oder auch nicht. Wenn nicht, kann man es natürlich auch anders programmieren.

Am besten sind zwei verschiedene Melodien, wenn es sich aber nicht realisieren lässt, geht auch die selbe

Jedem Taster seine eigene Melodie zuweisen geht natürlich. Brauchst du nur eine passende Variable. Nach Geschmack einen Merker 0/1 je nach aktuellen "Lied", oder playSong wird nicht direkt mit den zugehörigen Arrays aufgerufen sondern mit beim Start ausgewählten Zeigern. ( Arrays und Zeiger sind in C++ fast gleich )

static int currentTone;
static int* currentMelody;

   if (buttonState1 == HIGH) {
      // Neu starten
      digitalWrite(led1, HIGH);
      currentTone=0;
      currentMelody = melody1;
     ...
   }
   playSong(piezo, currentMelody, ... );

Ob das Blinken oder die Melodie länger dauert, wäre mir eigentlich völlig egal.

Zusätzlich zum Tip: "Denke in endlichen Automaten" würde ich empfehlen: Denk dran, dass loop() nicht "das Programm" ist, und also nicht 20 sekunden braucht bis es fertig ist, sondern eine Zusandsbeschreibung eines Moments. Was ein "Moment" ist, kann man unterschiedlich sehen: kürzer als 1 ms, oder jeder gespielte Ton als ein Moment. Wenn ein Tastendruck "sofort" die Melodie unterbrechen soll, auch wenn der Ton noch eine halbe Sekunde dauern würde, brauchst du die andere Version von tone() und musst die Dauer selber machen, im Ablauf vieler Momente. Geht aber auch...

Na ja. Wenn man "sofort" als "zum Ende des aktuellen Tons" interpretiert, habe ich die Lösung schon skizziert. Hat den auch Seiteneffekt, dass ein Blinken auch frühestens mit Ton-Wechsel stattfindet.

Dies hier heisst ja auch "Einfache LED-Taster-Schaltung mit Pieper"

Wenn man "sofort" strikter auffasst, muss man sich etwas mehr Mühe geben.

Kann aber auch sein, Janomag ist enttäuscht über das nickelige Gefummel und hat die Lust verloren. Da wäre eine der berühmten "jurs-Musterlösungen" für diese Fragestellung vergeudeter Aufwand. Dass es geht, ist uns klar, und dass du das hinkriegen würdest brauchst du uns wirklich nicht zu beweisen, jurs.

Hi,
sorry für die späte Rückmeldung…ich hatte recht viel zu tun und dieses Projekt musste ich erstmal auf Eis legen.
Da die Schaltung als Weihnachtsgeschenk geplant ist, baue ich erstmal alles fertig und kümmere mich dann um die Software.

Ich habe die Taster mit einem 433MHz Empfänger ersetzt und im Sender steckt ein HT12E statt Nano.
Funktioniert auch wunderbar, nun muss ich aber erstmal die Reichweite in den Griff bekommen - das ist das größte Problem aktuell :smiley:

Wenn ich mit der Software weiter Hilfe benötige, schreibe ich hier wieder.
Erstmal aber fetten Dank für die vielen Antworten :wink:

Hab jetzt mal Zeit gefunden alles fertig zu bauen.
Ich habe mir jetzt auch neue Teile gekauft - u.a. auch einen neuen Summer.
Aber dieser Summer spielt keinerlei Melodien - immer nur eine Note.

Jemand ne Idee warum?

Das PDF sieht so aus, dass er nur die 3,4kHz erzeugen kann.

Der Link dahin ist übrigens defekt. Den solltest Du reparieren.

Gruß Tommy

Jannomag: Hab jetzt mal Zeit gefunden alles fertig zu bauen. Ich habe mir jetzt auch neue Teile gekauft - u.a. auch einen neuen Summer. Aber dieser Summer spielt keinerlei Melodien - immer nur eine Note.

Jemand ne Idee warum?

Piezo-Pieper gibt es vom Prinzip her in zwei verschiedenen Bauarten

  1. active piezo ==> mit einer eingebauten Tonerzeugerschaltung, die "aktiv" einen einzigen Ton erzeugt, wenn Spannung angelegt wird.

  2. passive piezo: quasi ein Piezo-Lautsprecher, der genau den Ton spielt, mit dessen Frequenz Du ihn ansteuerst

Wenn Du Melodienspielen möchtest, dann brauchst Du einen "passive piezeo".

Tommy56: Das PDF sieht so aus, dass er nur die 3,4kHz erzeugen kann.

Der Link dahin ist übrigens defekt. Den solltest Du reäarieren.

Gruß Tommy

Oh, hab ich überlesen! Link ist repareiert.

jurs: Piezo-Pieper gibt es vom Prinzip her in zwei verschiedenen Bauarten

  1. active piezo ==> mit einer eingebauten Tonerzeugerschaltung, die "aktiv" einen einzigen Ton erzeugt, wenn Spannung angelegt wird.

  2. passive piezo: quasi ein Piezo-Lautsprecher, der genau den Ton spielt, mit dessen Frequenz Du ihn ansteuerst

Wenn Du Melodienspielen möchtest, dann brauchst Du einen "passive piezeo".

Gut zu wissen...aber wenn ich jetzt z.B. bei Conrad gucke, finde ich nur Dauerton, Fast Pulse und Slow Pulse; was brauch ich denn davon? Ich muss bei Conrad gucken, da es bis Mitte der Woche fertig sein muss. Die Schaltung funktioniert, nur der Summer muss noch mitspielen.

Und jetzt hab ich noch ein weiteres Problem. Die Reichweite vom 433MHz Sender ist mehr als Bescheiden. Ich habe einen 17,3cm langen draht als Antenne im Gehäuse verlegt. Auch als Spule hab ich das mal getestet. Ich komme nicht über 3m Reichweite ohne Hindernisse. Strecke ich die Antenne über die gesamte Länge, komme ich weiter, aber auch nur max. 6-7m. Sobald ich im Raum nebenan stehe, klappt gar nix mehr. Dabei soll das Signal direkt durch den Fußboden in den Keller, keine Zwischenetage. Der Sender wird mit einer 9V Batterie betrieben.

Der Empfänger wird ebenfalls mit 9V betrieben, aber mit Netzteil. Auch hier das selbe Spiel mit der Antenne.

Jannomag: wenn ich jetzt z.B. bei Conrad gucke, finde ich nur Dauerton, Fast Pulse und Slow Pulse; was brauch ich denn davon?

Warum guckst Du jetzt bei Conrad, wenn Du doch bereits am 26. November, als Du diesen Thread gestartet hast, offenbar einen funktionierenden Piezo-Lautsprecher hattest?

Vor über drei Wochen schriebst Du weiter oben:

Auch den Pieper hab ich schon erfolgreich angesteuert (ist ein Lautsprecher aus einem alten Nokia 6110).

Dann kann es doch jetzt gar nicht angehen, dass Du nun plötzlich diesen Lautsprecher gar nicht mehr hast und auch gar nicht mehr weißt, was für ein Lautsprecher für Deine Zwecke funktioniert. Ist mir unbegreiflich!

Jurs hat es ja schon geschrieben, du springst bei deinem Post hin und her und man hat Probleme zu folgen.

Jannomag: Und jetzt hab ich noch ein weiteres Problem. Die Reichweite vom 433MHz Sender ist mehr als Bescheiden. Ich habe einen 17,3cm langen draht als Antenne im Gehäuse verlegt. Auch als Spule hab ich das mal getestet. Ich komme nicht über 3m Reichweite ohne Hindernisse.

Warum verwendest du nicht den Lautsprecher, der schon funktioniert ? Was den Piezo betrifft, ist das generell eine schlechte Wahl. Wenn du eine Melodie abspielen möchtest, ist ein Lautsprecher besser, der auch das gesamte Frequenzspektrum wieder geben kann.

Bei der 433 MHz Reichweite ist sicher der Empfänger (nicht der Sender) das Problem. Ich vermute mal, du hast den "billigen Müll" gekauft, der keine Reichweite bringt. Da wir deinen Empfänger nicht kennen, ist dies auch nur eine Vermutung. Du solltest dafür besser einen hochwertigeren Empfänger einsetzen, der dann auch die gewünschte Reichweite zusammen mit dem Sender erzielt.

Als Vorschlag: Nimm diesen Empfänger, da hast du normal kein Problem mit der Reichweite. Das geht bei mir durch Betonwände und Decken.

Jetzt streng dich an, dass es bis Weihnachten noch funktioniert.

jurs: Warum guckst Du jetzt bei Conrad, wenn Du doch bereits am 26. November, als Du diesen Thread gestartet hast, offenbar einen funktionierenden Piezo-Lautsprecher hattest?

Vor über drei Wochen schriebst Du weiter oben:

Auch den Pieper hab ich schon erfolgreich angesteuert (ist ein Lautsprecher aus einem alten Nokia 6110).

Dann kann es doch jetzt gar nicht angehen, dass Du nun plötzlich diesen Lautsprecher gar nicht mehr hast und auch gar nicht mehr weißt, was für ein Lautsprecher für Deine Zwecke funktioniert. Ist mir unbegreiflich!

Der Lautsprecher aus dem 6110 ist viel zu leise - klar, das Handy hat mal laut geklingelt, aber mit der Ansteuerung vom Arduino ist es nichtmal ansatzweise so laut. Der Pieper / Lautsprecher muss laut sein, damit der auch beim Arbeiten gehört wird.

HotSystems: Jurs hat es ja schon geschrieben, du springst bei deinem Post hin und her und man hat Probleme zu folgen.

Warum verwendest du nicht den Lautsprecher, der schon funktioniert ? Was den Piezo betrifft, ist das generell eine schlechte Wahl. Wenn du eine Melodie abspielen möchtest, ist ein Lautsprecher besser, der auch das gesamte Frequenzspektrum wieder geben kann.

Bei der 433 MHz Reichweite ist sicher der Empfänger (nicht der Sender) das Problem. Ich vermute mal, du hast den "billigen Müll" gekauft, der keine Reichweite bringt. Da wir deinen Empfänger nicht kennen, ist dies auch nur eine Vermutung. Du solltest dafür besser einen hochwertigeren Empfänger einsetzen, der dann auch die gewünschte Reichweite zusammen mit dem Sender erzielt.

Als Vorschlag: Nimm diesen Empfänger, da hast du normal kein Problem mit der Reichweite. Das geht bei mir durch Betonwände und Decken.

Jetzt streng dich an, dass es bis Weihnachten noch funktioniert.

Ja, ich habe die günstigen aus China. Das Problem ist jetzt die Zeit.

Ich hatte den letzten Monat zu viel um die Ohren und konnte mich nicht mehr darum kümmern.

Habe jetzt 34cm lange Spulen angebaut und es funktioniert besser. Testen kann ich es erst nach Weihnachten richtig - soll ein Geschenk werden.

Wenn die Reichweite nicht passt, baue ich deine Empfehlung nachträglich ein...danke dafür.

Was den Lautsprecher betrifft: sind normale Lautsprecher denn auch so laut wie Pieper? Dazu kommt die große - darf nicht größer als 25mm im Durchmesser und nicht höher als 20mm sein.

Jannomag: Der Lautsprecher aus dem 6110 ist viel zu leise - klar, das Handy hat mal laut geklingelt, aber mit der Ansteuerung vom Arduino ist es nichtmal ansatzweise so laut. Der Pieper / Lautsprecher muss laut sein, damit der auch beim Arbeiten gehört wird.

Was den Lautsprecher betrifft: sind normale Lautsprecher denn auch so laut wie Pieper? Dazu kommt die große - darf nicht größer als 25mm im Durchmesser und nicht höher als 20mm sein.

Das hängt meist von der Leistung ab, die das Steuermodul (hier der Arduino) abgibt.

Damit es lauter wird, musst du einen Verstärker zwischen schalten. Z.B. den LM386 nach diesem Schaltbild. Da wird eine einfacher Piezo-Pieper auch nicht reichen.

Die lauteren Piezo-Modelle haben einen eigenen Oszillator und Verstärker eingebaut, aber arbeiten eben nur auf der fest eingestellten Frequenz und können nicht externe Töne übertragen.

Ja, ich habe die günstigen aus China. Das Problem ist jetzt die Zeit.

Ich hatte den letzten Monat zu viel um die Ohren und konnte mich nicht mehr darum kümmern.

Habe jetzt 34cm lange Spulen angebaut und es funktioniert besser. Testen kann ich es erst nach Weihnachten richtig - soll ein Geschenk werden.

Die "günstigen" sind die schlechtesten. Hier stimmt das leider.

Bei den Empfängern ist leider auch das Problem, wenn du mit schlecht angepassten Antennen arbeitest, dann empfängt der noch mehr Störungen aus dem Umfeld. Das kann an einem anderen Ort deutlich schlechter werden. Also wundere dich nicht, wenn es bei dir geht und am anderen Standort nicht.

Jannomag: Der Lautsprecher aus dem 6110 ist viel zu leise - klar, das Handy hat mal laut geklingelt, aber mit der Ansteuerung vom Arduino ist es nichtmal ansatzweise so laut. Der Pieper / Lautsprecher muss laut sein, damit der auch beim Arbeiten gehört wird.

Was für ein "Arbeiten" ist das? Betonsteine schneiden mit der großen Flex? Stahlwalzwerk?

Zur Ansteuerung mit der Arduino "tone()" Funktion und 5-Volt Boards wie UNO und MEGA2560 finde ich diese 50-Cent-Teile von Pollin hier ganz Klasse: http://www.pollin.de/shop/dt/MzQxOTUzOTk-/Unterhaltungselektronik/Lautsprecher/Lautsprecher_Chassis/Kleinlautsprecher_DIGISOUND_F_DO29_100F.html

Gegen die Lautstärke eines Alarm-Piepers im 12-Volt-Betrieb kommt so einer allerdings mit der 5V-tone() Ansteuerung auch nicht ganz an. aber klingt im Bereich ca 500bis 4000 Hz schon ganz schön kräftig, im Vergleich etwa zu Empfehlungen, einen 4-Ohm-Kleinlautsprecher mit einem Vorwiderstand zu betreiben, um den Arduino-Ausgang nicht zu überlasten, was ich irgendwo auch schon mal als Empfehlung gelesen habe . Im Vergleich dazu ist der Pollin-Piezo laut. Liegt allerdings vom Durchmesser her etwas über Deinem gesetzten Limit.

Pollin ist an sich nicht verkehrt, jedoch muss ich bei Reichelt bestellen - und da find ich irgendwie nix vergleichbares, da ich echt nicht weiß, auf was ich da achten muss.

Bestellen muss ich deswegen bei Reichelt, weil ich noch Taster brauche, die Apollon nicht hat (aber für was anderes). Und ich wollte nicht doppelt und dreifach Versand bezahlen.

Ansonsten belasse ich es bei einer Frequenz - das ist wenigstens hörbar laut. Es wird viel mit Holz gearbeitet und ein leises krächzen ist da schlecht.

Reichelt kennt die Unterscheidung aktiv/passiv nicht, aber dieser http://www.reichelt.de/Signalakustik/SUMMER-EPM-121/3/index.html?ARTICLE=35927&artnr=SUMMER+EPM+121 kann mit der tone library bespielt werden, denke ich. 75 dB sollte ordentlich laut sein...