Hallo,
ich würde gerne auf dem ATtiny13 durch dreifaches Klatschen
hintereinander ein Relais schalten. Ich dachte daran, eines der
0,35€-Mikrofone von Pollin (bspw. 660 108) zu verwenden und durch einen
OpAmp zu verstärken.
Mit den OPVs habe ich keine Erfahrung, ich dachte daran, eventuell
TLC272 zu verwenden. Auf den ersten Blick scheinen die mir geeignet -
seht ihr das ähnlich?
Und softwaremäßig wäre das ja nicht viel mehr, als einfach regelmäßig
via ADC die Pegel zu prüfen, wenn einer davon erstaunlich hoch ist, 'n
Counter runterzählen und prüfen, ob, bevor der Counter 0 ist, das ganze
noch zwei mal passiert, oder?
Grüße,
Dodo
Dodo M. schrieb:> Und softwaremäßig wäre das ja nicht viel mehr, als einfach regelmäßig> via ADC die Pegel zu prüfen, wenn einer davon erstaunlich hoch ist, 'n> Counter runterzählen und prüfen, ob, bevor der Counter 0 ist, das ganze> noch zwei mal passiert, oder?
Du klatsch früh morgens
Mittags, wenn du nach Hause kommst, knallt die Tür.
Und abends, bei der Tagesschau, klatscht du vor Schreck in die Hände.
Macht 3 Klatscher und das Licht geht aus :-)
-> ganz so einfach ist es dann auch wieder nicht.
Ich sag ja, nach dem ersten Klatschen einen Counter runterzählen, da
dass ich für die anderen beiden Klatscher beispielsweise dann noch 'ne
Sekunde Zeit habe :)
Da gibt es bereits fertige Bausätze. conrad zum Beispiel hat so einen im
sortiment. Da die auch die Schaltpläne rausrücken könntest du dich da
mal umschaun
Welche Vorteile hat der denn gegenüber anderen? Irgendwann will ich mir
sowas ja auch mal selbst suchen können, und da muss ich ja wissen,
worauf es da ankommt ...
Willst du wirklich klatschen erkennen, oder nur, wenn sich etwas lautes
abgespielt hat (das kann auch das zuschlagen einer tür sein)
in letzterem fall könnte auch ein transistorverstärker ausreichend sein
und mim avr erkennste dann die lauten pegel des mikrofons
nur so ne idee, aber die fertigen bausätze haben auch keinen opamp an
board.
Der OPA(2)340 eignet sich gut für unsymetrische Spannungen wie es bei
einfachen Schaltung die Regel ist (nur GND u. 5V).
Der Ein- und Ausgangsspannungsbereich reicht bis an beide
Grenzen der Betriebsspannung (Rail to Rail). Diese Teile kommen
dem 'idealen OP' schon recht nahe.
Hat aber den Nachteil das er relativ teuer, unnötig schnell
(Schwingneigung) und nicht überall erhältlich ist.
Den TL071 halte ich für diese Anwendung für ungeeignet da
die Ein-/Ausgangsspannungsbereiche doch arg eingeschränkt sind bei
5V Betriebsspannung - falls es damit überhaupt geht. Ich würde den
TLC271 bzw. TLC272 nehmen. Der Eingang arbeitet zwischen 0-4V und die
Ausgangsspannung liegt zwischen 0-3.5V.
Man könnte noch einen 4k7 Widerstand zwischen Ausgang und den 5V
Schalten um dem Ausgang etwas unter die Arme zu greifen bei Voll-
aussteuerung. Geht aber auch so.
Klar, ein Transistor BC547C (BC847C) mit 220k Widerstand zwischen
Kollektor und Basis und ein 4k7 Widerstand zwischen Kollektor und Vcc
sollte auch reichen, um das Mikrofonsignal ausreichend anzuheben, daß
der ADC etwas damit anfangen kann. Der ADC liegt dann am Kollektor des
Transistors. Wird kleiner und billiger, als mit OV.
Auch wieder wahr. So eine Elektret-Kapsel liefert ja bereits
einige 100mV bei solchen Pegeln. Das sind aber nur sehr kurze
Peaks. Wäre ein Interrupt da nicht besser als der ADC?
Und man kann auch den Pegel einstellen, bei dem reagiert werden soll.
Was den Stromverbrauch angeht, wäre Interruptbetrieb besser, da man den
AVR wärend dem Rest der Zeit schlafen legen kann!
Warum nimmst Du eigentlich nicht den Komparator ? Der wäre so
beschaltbar, daß er auf Signale im mV Bereich reagiert.
Oder möchtest Du den Verlauf des Signals sampeln ? Dann böte sich der
Tiny25 an, der kann auf Differentialeingänge mit 20facher Verstärkung
eingestellt werden, damit sparst Du Dir dann den OpAmp.
Zuerst ein dreifaches Klatschen mit dem Computer aufnehmen, um zu sehen
wie das Signal im Zeitbereich (Soundkartenoszilloskope) aussieht und
dann entscheiden - wie es ausgewertet wird. Auf jeden Fall bitte hier
posten.
Falls das noch jemand interessiert:
Habe einen Klatschschalter mit einem Tiny 13 realisiert, der keinen
Vorverstärker benötigt. Electret- Mikrofonkapsel, über ein Poti zur
Empfindlichkeitseinstellung , Potischleifer auf einen Analogeingang, als
ADC- Referenz die interne Ref. von . ca. 1,1 V gewählt , Ausgangs-
Impuls verlängert , geht tadellos.
Wenn es unbedingt empfindlich sein soll, kann man das Signal der
Elektret-Kapsel auch über einen BC847 verstärken und dann dem ADC
zuführen. Klassische Emitterschaltung genügt. C mit 4k7 an Vcc, E an
Masse, 220kOhm von B nach C und mittels 100nF das Mikro an B ankoppeln.
Der ADC wird an C angschlossen und Vcc als Referenz eingestellt.
Hallo Knut
Warum das? Wenn man als Ref.-Spannung nicht VCC, sonder die interne
Referenz
von 1.1 Volt nimmt , kann man doch den Transistor + Zubehör glatt
sparen.
Oder welchen Vorteil soll der Transistor haben?
Ja mich interessierts. ;) Suche so eine Einganschaltung für eine
Blitzauslöser.
Du hast doch eine Stromversorgung für das Electret MIkro vorgesehen? Wie
hast Du das Poti verschaltet?
Was meinst Du mit "Ausgangsimpuls" verlängert?
Reagiert der Prozessor auf das erste Auftreten einer bestimmten
Spannung? Schall ist ja Wechselspannung. Integriert der ADC das
irgendwie?
Könnte man die Empfindlichkeitseinstellung auch rein Softwareseitig
lösen. Z.B. durch Veränderung der Referenzspannung, oder durch die
Auswertung der "Ansprechpegel" am ADC Eingang?
Ich würde das gern über einen Drehgeber realisieren.
Viele Grüße
Andreas
Es geht auch ohne OP, wenn man einen geeigneten Piezo-Speaker direkt an
den einen AD-Eingang des Attiny anschließt. Parallel dazu ist noch ein
1MOhm Widerstand anzuschließen.
Hab ich schon gemacht. Geht.
Super! Danke!! Das hilft mir schon weiter.
Da ich die AVRs nicht kenne... Was macht die Diode zwischen Pin 3 und
Pin 7? Mich wundert nur das sowas direkt zwischen zwei Pins geschaltet
ist.
Viele Grüße
Andreas
Das ist ein DUO- LED: Eine Flußrichtung rot, andere grün.
Tiny ist so programmiert, dass kein Impuls grün zeigt und beim Klatschen
den Puls rot anzeigt durch H L tauschen der Ausgänge 3 7.
WAS meinst Du mit Sourcen uppen ?
Also ein wenig sportlichen Ergeiz solltest Du schon noch selbst an den
Tag legen...
Wenn Du die Schaltung nachbaust und den Hex- Code in den Tiny lädst,
sollte das Ding laufen.
Den Quelltext meine ich damit :-)
Ich bin grad dabei :-)
Ergeiz hab ich genug :-D
Nur nicht so große Erfahrung im Programmieren, deshalb würd ich mir mal
gerne deinen Text ansehen....
Noch irgendwas mit den Fuse´s beachten oder alles so lassen wie es ist?
LG
Fuses kanst Du lassen, wie sie fabrikmäßig sind.
Ja, Pin 6 wird für ca. 250 msec. high = + 5 Volt beim
Klatschen. Messe mal direct am Pin 6 ohne Last evt. ist
Dein Multimeter zu langsam für den 250 msec. Puls.
Ich hab ne LED direkt gegen Masse geschaltet...
Die wird nicht hell!
Wie gesagt, Statur LED´s klappen :-)
Villeicht ist 250msec zu schnell um es zu sehen.
LG
Augustin schrieb:> ...und was meinst Du mit Statur LEDs ?
Sorry das war ein schnellschuss :-D
Kleiner Tippfehler....
Status Led... die Duo Led!
Die fuktioniert! Widerstand hatte ich einen drinnen!
640 Ohm....
Hatte den Tiny13 in der "Bastelkiste" gefunden!
Kann sein, das der schon kaputt war!
Aber an Pin6 hängt MISO, ohne den lässt sich der ja auch nicht
Proggen...
Das klappte sofort!
Leider ist wie es der Teufel will mein Multimeter defekt -.-
Hab mit ner LED gemessen, ob der Ausgang schaltet!
Natürlich mit Widerstand :-)
Hab auch mal ein Elko drangehangen um die Leuchtzeit etwas zu erhöhen...
Da kommt nix! Ich werd mich morgen mal in den Baumarkt begeben, um mir
ein billig Multimeter zu holen!
Mein Voltcraft ist auf Garantie weg :-D
LG
Einen Selbstgebauten Seriellen Adapter...
Der ist aber ok! Alles andere geht ohne Probleme... habs nochmal
ausprobiert, und ein paar andere Controller beschreiben...
Keine Probleme!
Hab den auch über einen Widerstand dran gehabt....
LG
O.k., dann entferne mal den Programmer ganz vom Tiny (alle Anschlüsse
trennen, ablöten...) der muß ja nur zum progrmmieren und dann nicht mehr
angeschlossen sein und messe dann an Pin 6.
Im Ruhezustand liegt dort LOW = 0 Volt und beim Klatschen geht Pin 6 für
250 msec. auf HIGH. Eine LED mit 680 Ohm Vorwiderstand zwischen Pin 6
und 0 Volt = Minus richtg rum gepolt, Anode Richtung Pin 6, Kathode
Richtung Minus ergibt beim Klatschen einen sichtbares Aufleuchten.
Kathode der LED ist da wo das KLO ist (sieht aus wie eine Kloschüssel,
wenn man reinguckt..)
Augustin schrieb:> O.k., dann entferne mal den Programmer ganz vom Tiny (alle Anschlüsse> trennen, ablöten...) der muß ja nur zum progrmmieren und dann nicht mehr> angeschlossen sein und messe dann an Pin 6.
Mein Programmer wird über einen 10-Poligen ISP Stecker angechlossen...
Alle "Leiterbahnen" haben untereinander kein Kontakt (Mit Multimeter
gemessen)
Hab den Tiny13 in die Fassung gesteckt, Pin 6 umgebogen und mit ner LED
und Widerstand geprüft gegen Masse.
Leuchtete nicht! Status LED reagierte!
Multimeter sagt ebenfalls nix...
Ich habe noch einen Tiny85!
Der ist ja Pinkompatibel mit dem Tiny13...
Zwar ziemlich überdimensioniert aber ist ja mal egal. Bei der nächsten
Bestellung von Reichelt, werde ich mir nen Tiny13 mitbestellen.
Wärst du so freundlich und würdest das mal grad für den Tiny85
kompilieren?
Sollt ja für dich kein Problem sein :-)
Ich denke wirklich das der Tiny13 kaputt ist!
Manuel schrieb:> Leuchtete nicht! Status LED reagierte!>> Multimeter sagt ebenfalls nix...>
Da wird auch in 100 Jahren nix leuchten, in der Hex Datei wird nur auf
die Status-Led zugegriffen, da existiert kein einziger Befehl um Pin 6,
PB1 zu schalten.
Das ist wohl das falsche Hex :D
Ich hab unter dem Tiny 2 Leiterbahnen und alles drum herum ist auch
total verbaut :-(
Ich bekomme unmöglich die Leiterbahn an Pin 7 :-(
Außerdem ist der wie oben schon geschriben dauernt High :-(
Kannst du evtl deine Software ändern, das diese auf Pin 6 auf High
schaltet sowie Geklatscht wird?
Hab wie im Schaltplan einen Transistor dran hängen mit 1k Widerstand,
der mir einen Controllerpin auf Masse zieht.
Kann unmöglich was an der Leiterbahnführung ändern :-(
Müsste quasi dann alles neu Löten :-(
Augustin schrieb:> Ja, WMS hat recht ! Tut mir leid, mein Irrtum. Du kannst aber Pin 7 als> Ausgang benutzen um etwas zu schalten.
Hi Augustin,
es werden zwar PB0, PB1, PB2 & PB4 als Ausgang gesetzt, jedoch werden
ausschließlich PB2 & PB4 geschaltet, es wird KEIN anderer Portpin
umgeschaltet.
Das ist recht einfach zu erkennen, die Anzahl der Befehle die einen Port
ansprechen können ist begrenzt.
Interessanterweise ist an der richtigen Stelle sogar eine Delayfunktion
eingebaut, jedoch passiert vor und nach dieser Funktion nichts, also
wird dort auch kein Portpin gesetzt und wieder gelöscht.
Compilier doch mal Deine Originalsource neu.
Nehme an WMS ist dermaßen Profi, dass er den HEX - Code lesen kann.
Oder gibt es eine Möglichkeit den HEX- Code wieder in den BASCOM - Code
zurück zu übersetzen ? Bin selbst noch nicht so lange in diese Branche..
Manuel schrieb:> Es wurden keine Sourcen geuppt!>> Woher wisst ihr das? :-D
Abgesehen davon daß ich keine Gruppe bin, man kann den Maschinencode im
Hex File lesen ;-)
Augustin schrieb:> Nehme an WMS ist
MWS bitte.
Genau, das Hex disassemblieren und den Assemblercode lesen, AVR Studio
erlaubt das. Da's nur wenig Code ist, hat man das auch recht schnell
durch.
Augustin schrieb:> Oder gibt es eine Möglichkeit den HEX- Code wieder in den BASCOM - Code> zurück zu übersetzen ?
Nein, das geht nicht,
MWS schrieb:> Abgesehen davon daß ich keine Gruppe bin, man kann den Maschinencode im> Hex File lesen ;-)
Sorry :-)
MWS schrieb:> Alles klar, das neue Hex schaltet nun PB1.
Bei mir is der dauernt High :-) Wird ganicht mehr LOW!
Manuel schrieb:> Bei mir is der dauernt High :-) Wird ganicht mehr LOW!
Wechselt die Status Led bei Geräusch ? Poti mal gegen GND gestellt ?
Augustin schrieb:> Danke WMS für die Infos.
Gern.
Ich hatte die Status LED raus genommen.
Wenn ich die wieder anschließe geht es sofort :-)
Wenn ich ne 1N4004 oder ne 1N4001 (hab nur die beiden da) dort rein
setzte sollte es ja auch gehen...
LG
Da fehlt der 1 kOhm Widerstand in Serie mit der Status- LED bzw. jetzt
mit der 1 N 4001.
Ich meinte jedoch nicht den Schaltplan, sondern Deine Hardware-
Schaltung,
das Gelötete...
Kann leider nichts erkennen, aber das ist etwas derb, wie Du die Bahnen
herstellst. Ich würde dazu entweder Kupferlackdraht oder aus einer Litze
ein einzelnes, blankes Drähtchen nehmen und nur da Lötpunkte setzten, wo
ein Bauelementedraht /- Pin durch das Lötauge gesteckt ist. Vermute mal,
da ist wo eine Brücke.
Ich habe überall Litze verwendet :-D
Hab den Fehler gefunden:
Der Ic-Sockel ist defekt!
Dieset stellt keine Richtige Verbindung her :-)
Funzt jetzt Prima :-D
DANKE AN ALLE :-)
...und nein, der Tiny sollte mit dieser Last nicht warm werden. Bei dem
7805 kommt es darauf an, wie hoch die unstabilisierte Eingangsspannung
ist und was Du sonst noch am Ausgang dran hängen hast. Miss mal den
Strom, der aus dem 7805 in die Schaltungs fließt. Multipliziere die
Differenz...na, mess erst mal.
Also wenn kein Signal an Pin2 anliegt, sollte Pin6 doch LOW sein oder?
Hab Pin2 in der Luft hängen, und Pin 6 ist HIGH!
Hab sonst nur VCC und GND dran gehabt!
Da Pin 2 ein Analoageingang ist , darf er nicht offen sein. Lege Pin2 an
GRD, dann müßte Pin 6 Low sein. Pin 2 darf auch nicht offen sein . Er
muß auf VCC gelegt werden . Evt. über 10 k Ohm, damit Du noch
programmieren kannst.
Augustin schrieb:> Pin 2 darf auch nicht offen sein . Er> muß auf VCC gelegt werden .
@Knut Ballhause (Firma: TravelRec.)
Es wurde warscheinlich Pin 1 gemeint...
Hab Pin 2 mal auf GND gezogen...
In der Scahltung!
Pin6 weiterhin High!
@Augustin
wie kann man nur so sadistisch sein ?
gib den Jungs doch die ~20 Zeilen Basic Programm,
dann kann doch jeder das mit der Demo von Bascom
bearbeiten und selber expiremtieren....
oder willst du hier als Klatschschaltergott
angebetet werden ?
* kopfschuettel *
vlg
Charly
Aber ich habe Pin2 auf Masse gezogen!
Pin 6 ist immernoch dauernt High!
Alle anderen Pins haben nur Verbindung zum ISP-Stecker
Habe die Verbindungen durchgemessen. Diese sind alle voneinander
Isoliert!
LG
Ich greif dass hier nochmal mal auf:
In einem Seminar in der Schule soll ein Klatschschalter realisiert
werden. Da die Schüler keine Ahnung von Programmierung haben, wäre es
toll, dass ohne einen uC zu machen. Deshalb die Frage:
Kann man eine Schaltung die auf zweifaches Klatschen realisiert auch
ohne Microcontroller realisieren (ich mein: klar gehts, aber gehts auch
ohne dass der Aufwand unermesslich ansteigt?) - wenn ja, hätte da jemand
einen Schaltungsvorschlag?
Und die zweite Frage:
Könnte man Klatschen durch eine Bandpassfilterung eindeutig(er)
bestimmen? So dass nicht auf andere laute Geräusche reagiert wird?
Möglich ist das. Ich habe mal eine Schaltung gebaut, die auf einmaliges
Klatschen reagiert hat. Dort wurde aber jedes laute Geräusch
ausgewertet, sodass es eher ein Audiopegelschalter war.
Wenn du ein Monoflop nutzt, kannst du auch kontrollieren, ob in einer
gewissen Zeitspanne 2 mal ein solches Ereignis eintritt und daraufhin
entsprechend zum Beispiel ein Relais schalten.
Die Schüler haben keine Ahnung von Programmierung, sollen aber einen
Bandpass berechnen und realisieren können? Wird generell ziemlich
schwierig, die Frequenzen eines Klatschens festlegen zu können. Kommt
auch immer draus an, wer Klatscht, wie fest und in welcher Entfernung
zum Mikrofon er sich befindet. Darüber hinaus klingt zum Beispiel das
Klatschen einer Frau, de viel kleinere Hände hat viel heller als zum
Beispiel meines.
Ich schau nachher mal in meinen Unterlagen, ob ich den schaltplan von
damals noch habe, dann kann ich diesen nochmal hochladen.
Das wäre super.
Naja, es geht halt darum, dass verstanden werden soll was ungefähr
gemacht wird. Vielleicht sollte man das mit dem Bandpass wirklich
weglassen und man belässt es bei der Detektion von lauten Signalen.
Allerdings das mit dem detektieren von "zwei Klatschern in Folge" wäre
schon wichtig, damit nicht jedes Tür zu schlagen einen Impuls erzeugt :)
Die Schaltung geht angeblich, aber ich hab da ein Verständnisproblem
bzw. Denkfehler. Vielleicht kann mir einer, der sich mit Transistoren
und Timern gut auskennt auf die Sprünge helfen?
1.
Ein Mikrofonsignal sorgt doch dafür, dass der Ausgang vom OPV kurz mal
"High" wird..oder? Warum wird dann der Eingangspin vom Timer-IC2 dann
Low und löst den Trigger aus? Dort liegt ja normalerweise über den 150k
und den 100k Widerstand eine definierte Spannung an. Warum wird diese
dann niedriger, wenn ich "noch mehr Spannung" anlege? Hat das was vom
Satz der Ersatzquelle zu tun?
2.
Wenn kein Impuls vorhanden ist sperrt Q1, weil der IC2 Timer ja auf Low
steht. Der Kollektor von Q1 hat dann doch das Potential von VCC oder?
Somit liegt der Eingang vom IC3 auch wenn kein Impuls da ist auch auf
VCC und der Timer läuft nicht los. Das ist ja ganz gut.
Aber wenn dann mal ein Impuls da war und der IC3 Timer läuft (also der
Kondensator sich aufläd), dann ist dieser "Retrigger"-Transistor (Q2)
doch schon nach 250ms durchgeschaltetet. Also bevor die eigentliche
Timer-Zeit (750ms) abgelaufen ist. Somit kann sich der Kondensator vom
Timer IC3 doch nie aufladen und er kommt nie zu einem Ende. Oder wo ist
hier mein Denkfehler ?
3. Der IC4 (4017-Zähler) zählt bei jedem Übergang von CP0 von Low zu
High eins weiter? Also wird am Anfang auch ohne Impuls auf jeden Fall
ein Zählschritt stattfinden, weil der CP0 ja am Anfang High ist, und
dort so lange bleibt, bis ein Impuls statt findet - oder?
die Antwort auf 1 hab ich mittlerweile selber:
Die Spannung wird durch den Spannungsteiler am Trigger vom Timer-IC2 auf
0.4 VDD eingestellt.
Ein Audio-Signal (Klatschen) ruft eine Wechselspannung hervor, die diese
0.4 VDD überlagert: Deshalb komt man in den Bereich < 0.3 VDD und der
Timer läuft los.
Frage 2 ist mir jetzt auch klar: das is ja ein PNP Transistor - der
braucht zum Durchschalten ja eine niedrige Spannung und keine hohe...
naja und Frage 3 wird einfach so sein, wie ichs gedacht hab :P