Hi, hab folgendes Programm: 1) OC1A (Pin PD.5) Tonausgang 1 (derzeit über D.5 und ULN2803 an Lautsprecher) 2) OC1B (Pin PD.4) Tonausgang 2 (derzeit über D.5 und ULN2803 an Lautsprecher) Beide Oszis steuern ganz unterschiedliche Töne an 2 unterschiedlichen Lautsprechern aus (2 unterschiedlich platzierte Klingeln). Jetzt würde ich gerne auf der Platine beide Töne an einem einzigen Piezo zur Kontrolle ausgeben. Geht das mit vertretbarem Aufwand oder soll ich gleich 2 Piezos montieren? (Stört mich einfach konzeptionell). Kann man die Signale zu einem Piezo so zusammenführen, ohne dass die Einzelsignale an den Lautsprechern verfälscht werden?
Was genau möchtest du denn mit deinem Programm erzielen? Welecher Controller wird eingesetzt? ... basics fehlen hier. Prinzipiell kannst du doch über einen Timer hintereinander deine Samples durchlaufen lassen. Aber da ich nicht weiß, was genau dein Ziel ist, könnte das aufgrund von Rätselraten auch ein Schuss in den Ofen sein. Gruß
ich frage mich wie Du 2 Töne gleichzeitig mit einem Timer ausgeben willst ... das einzig änderbare ist der Timerstart, der für beide OCR gleichermaßen gilt, der Timer überlauf ist fix, das Output compare kannst Du verschieben, aber dadurch ändert sich nur das Tastverhältniss, nicht die Frequenz der beiden Ausgänge ... oder bin ich da jetzt falsch?
Hallo qs, danke für die Info, hab einen Atmega644, die Töne gehen alles schon, das ist nicht das Problem, es werden nur 2 unterschiedliche Kanäle=Lautsprecher mit unterschiedlichen Tönen angesteuert (manchmal gleichzeitig, manchmal hintereinander) - PIND4. und D5 werden mit Timer0 bzw. Timer1 gesteuert, als Treiber dienen mehrere Kanäle vom ULN2803. Dahinter sind die beiden 8 Ohm Lautsprecher. ich hätt auf der Platine gerne eine Kontrollausgabe mit einem einzigen Piezo. Weiß nur nicht, wie ich das elektronisch anschließe. Bei Gleichspannung wärs ja kein Problem, Diode von D4 und D5 ergeben quasi eine oder-Schaltung und dahinter eine LED, aber bei Tonausgabe?
Fhutdhb Ufzjjuz schrieb: > ich frage mich wie Du 2 Töne gleichzeitig mit einem Timer ausgeben > willst ... das einzig änderbare ist der Timerstart, der für beide OCR > gleichermaßen gilt, der Timer überlauf ist fix, das Output compare > kannst Du verschieben, aber dadurch ändert sich nur das Tastverhältniss, > nicht die Frequenz der beiden Ausgänge ... oder bin ich da jetzt falsch? Ja, danke - war leider mein Fehler, meinte natürlich die Ausgänge PIND.5 und PIND.6 von Timer1 bzw. Timer2 Das Timing übernimmt dann Timer0 (wenn es die Hauptschleife übernimmt, könnte man ja sogar 3-stimmig ausgeben,da auch Timer0 CTC beherrscht!) Hier- wenns interessiert - der Programmcode für 2 unterschiedliche Töne für den Atmega 644 mit Registerhandling, beide im CTC-Modus
1 | $regfile = "m644def.dat" 'ATmega8-Deklarationen |
2 | $crystal = 8000000 '8 MHz-Quarz |
3 | Ddrd.5 = 1 'OC1A |
4 | Ddrd.6 = 1 'OC2B |
5 | Tccr2a = &B00010010 'OC2 Toggle, CTC on |
6 | Tccr2b = &B00000111 'Prescaler =1024 |
7 | Ocr2b = 35 'Frequenzcounter für OC2B |
8 | Tccr1a = &B01000000 'OC1A Togglemode on |
9 | Tccr1b = &B00001010 'CTC bleibt, Prescaler =8 |
10 | Ocr1ah = 1 'Frequenzcounter für OC1A, High Byte |
11 | Ocr1al = 220 'Low Byte |
12 | Sreg.7 = 1 'Interrupts global freigeben |
13 | Do |
14 | Loop |
Aber meine Frage geht ja in eine andere Richtung, normalerweise gebe ich dann nicht die Töne parallel aus, daher hätte ich auf der Platine nur 1 Piezo als "Kontrollmonitor" verwendet - wie geht es elektrisch, dass die Ausgangssignale von PIND.5 und PIND.6 getrennt bleiben und nur für den Kontrollpiezo zusammengeführt werden - ist eher ein elektronisches Problem Danke für eure Vorschläge
Nimm zwei Widerstände, die dir die Signale mischen.
1 | Sig 1----|=====|---- |\ Piezo |
2 | 1kOhm |----|+\_____| || |__ |
3 | Sig 2----|=====|---- --|-/ | | || | | |
4 | 1kOhm | |/ | --- |
5 | | | |
6 | |-----| |
Gruß Jonathan
Manfred S. schrieb: > Bei Gleichspannung wärs ja kein Problem, Diode von D4 und D5 ergeben > quasi eine oder-Schaltung und dahinter eine LED, aber bei Tonausgabe? Der Controller gibt am Pin, egal ob eine LED oder ein Treiber angeschlossen ist, immer eine Spannung aus. Wo ist da der Unterschied?
Die Ausgänge des AVRs sind recht kräftig und die Piezos brauchen oft nicht viel Strom. Entsprechend kann man bein Zusammenschalten duch Widerstände eventuell auch auf den Extra Verstäker dahinter verzichten. Man kann auch einfach den Piezo mit einem Widerstand in Reihen (z.B. 470 Ohm) einfach ziwschen die beiden Signale schalten.
Hi, Manfred, die Ausgänge OC1A und OC1B liefern keine unterschiedlichen Frequenzen, sondern unterschiedliche Tastverhältnisse. Denn OCR1A bestimmt die Periodenzeit in der Betriebsart CTC. Die Tonfolge des Tatü-tata ereichst Du durch periodische Änderrung von OCR1A. Die Ausgänge zweier Zähler kannst Du durchaus verbinden, indem Du jeden mit einer Diode an einen gemeinsamen Pull-Up Widerstand schaltest und den Piezo dort anklemmst. Ciao Wolfgang Horn
Da so nen piezo ziemlich hochohmig ist kann man den auch zwischen die beiden Ausgänge hängen, also ein Anschluß an den einen Ausgang und den anderen Anschluß an den zweiten Ausgang. MfG Turbotoni
Wolfgang Horn schrieb: > Hi, Manfred, > > die Ausgänge OC1A und OC1B liefern keine unterschiedlichen Frequenzen, > sondern unterschiedliche Tastverhältnisse. > Denn OCR1A bestimmt die Periodenzeit in der Betriebsart CTC. > > Die Tonfolge des Tatü-tata ereichst Du durch periodische Änderrung von > OCR1A. Ja, stimmt eigentlich wird ja letzten Endes wie bei einer LED nur ständig ein- und ausgeschaltet - nur hört man das als Tonfrequenz. Im Endausbau wird OC1A Sprachausgabe für einen Telefonfernschalter machen mit PCM, während OC2B eine Melodienklingel im CTC realisiert. Timer 3 liefert 6kHz und versorgt die PCM-Stimme und nebenbei ändert er "hie und da" die Werte für OCR2B entsprechend der "Tonleiter" für die Melodie. > > Die Ausgänge zweier Zähler kannst Du durchaus verbinden, indem Du jeden > mit einer Diode an einen gemeinsamen Pull-Up Widerstand schaltest und > den Piezo dort anklemmst. Super, danke - das scheint mir die genialste Lösung zu sein. Da dann wirklich beide Ausgänge entkoppelt sind, bei nur Widerständen bin ich mir da nämlich nicht so sicher. > > > Ciao > Wolfgang Horn
Matthias schrieb: > Manfred S. schrieb: >> Bei Gleichspannung wärs ja kein Problem, Diode von D4 und D5 ergeben >> quasi eine oder-Schaltung und dahinter eine LED, aber bei Tonausgabe? > > Der Controller gibt am Pin, egal ob eine LED oder ein Treiber > angeschlossen ist, immer eine Spannung aus. Wo ist da der Unterschied? Ja, danke Matthias, stimmt eigentlich so - da hab ich viel zu kompliziert gedacht, nur weil der Atmega so schnell schaltet das man es als Ton hört, ist es noch keine Wechselspannung - daher ist auch die Diodenentkoppelung wie sie jetzt auch Wolfgang vorgeschlagen hat eine gute Idee
Manfred S. schrieb: > Im Endausbau wird OC1A Sprachausgabe für einen Telefonfernschalter > machen mit PCM, während OC2B eine Melodienklingel im CTC realisiert. > Timer 3 liefert 6kHz und versorgt die PCM-Stimme und nebenbei ändert er > "hie und da" die Werte für OCR2B entsprechend der "Tonleiter" für die > Melodie. Warum mischt du die Kanäle nicht in Software? Einfach addieren.
Hi Sam, jeder Kanal hat ja seinen eigenen Ausgang, einer geht mit Treiber ULN2803 und Übertrager an die Telefonleitung, der andere mit Treiber ULN2803 an einen Lautsprecher, 8 Ohm. Nur auf der Steuerplatine soll 1 Piezo für beide Kanäle eingesetzt werden.
So, hab jetzt die Schaltung getestet, das mit Dioden und Pullup-Widerstand geht zwar, wird aber recht leise, am besten funktioniert folgende Lösung: einfach zwischen Atmega Pin D.5, OC1A, PWM mit PCM-Sound, 4khz Atmega Pin D.6, OC2B, CTC-Klingelton einen Piezosummer, ohne Widerstand anschließen - geht Interessanterweise werden beide Ausgänge dann unabhängig voneinander verstärkt - ein "Übersprechen" gibts nicht hab aber noch eine Frage, Schaltung durch "Experimentieren" erzielt, funktioniert einwandfrei, aber mir ist nicht ganz wohl dabei... ich hätte zwischen Telefontrafo und Atmega noch gerne einen ULN 2003 dazwischengeschaltet, nur der invertiert und damit wird der Ton am Telefon nur noch leiser.. Am Telefon hängt noch ein DTMF-MT8870 und eine selbst abhebende Gegensprechanlage - Ziel ist es, Zahlausgaben (PCM über PWM) über den Atmega ins Telefon einzuschleusen, das geht recht gut aber ein bisserl mulmig ist mir bei der Treiberschaltung... Wer hat bessere Ideen?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.