PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Buzzer AC-1205G an ATmega8 anschließen



Demian
02.02.2009, 12:49
Moin,moin,

seit Samstag befasse ich mich mit der Programmierung von Microcontrollern. Ich habe mir ne kleine Schaltung aufgebaut mit 2 LED's die abwechselnd blinken, solange der Taster gedrückt wird. Das funktioniert.

Jetzt würde ich gern noch nen Buzzer dran machen, der solange die LED's blinken 2 verschiedene Töne macht. Programmatisch habe ich es gelöst, nur bei meiner jetzigen Schaltung (siehe Anhang) klickt der Buzzer nur???

Fehlen irgendwelche Bauteile? Oder ist da sonst irgendwas falsch?

Gruß
Demian

ikarus_177
02.02.2009, 13:57
Hi,

wie hast du denn das im Programm gelöst?

Es reicht nicht, bloß den Pin einzuschalten, an dem der Buzzer hängt, er braucht auch eine Frequenz, mit der die kleine Membran dann schwingt.

Versuch mal den Bascom-Befehl "sound".

Viele Grüße

Demian
02.02.2009, 14:04
Moin Ikarus,

den hab ich ja genommen (siehe Code)


$regfile = "m8def.dat"
$crystal = 3686400


'Outputs
Config Portc.0 = Output
Config Portd.6 = Output
Config Portd.7 = Output

'Aliases
Speaker Alias Portc.0
Button Alias Pind.5
Green Alias Portd.6
Yellow Alias Portd.7


'Initial Bits
Portd.5 = 1

Do

If Button = 0 Then
Sound , Speaker , 50 , 500
Green = 1
Waitms 25
Green = 0
Sound , Speaker , 50 , 250
Yellow = 1
Waitms 25
Yellow = 0
End If

Loop
End


Auf dem MyAVR MK2 Usb funktioniert das mit dem Buzzer auch. Es muss also an meiner Schaltung liegen. Anbei auch noch das Datenblatt von dem Buzzer.

Gruß
Demian

ikarus_177
02.02.2009, 14:08
Wie sieht die Beschaltung des Speakers denn am MyAVR Board aus? Hast du da den Speaker auch direkt an den Port angeschlossen? Im Datenblatt ist nämlich noch ein Transistor dazwischen...

Viele Grüße

Demian
02.02.2009, 14:31
auf dem MyAVR-Board ist der Speaker direkt am Port. Ist allerdings auch nen anderer. Das mit dem Transistor ist mir gar nicht aufgefallen, Anscheinend hatte ich vorhin ne andere Version des Datenblatts. Da war auch nichts japanisches drauf.

Wegem dem Widerstand: mit meiner Rechnung kam ich nur auf 100 Ohm nicht auf 180 Ohm???

Kann ich da folgendes Bauteil verwenden? http://www.conrad.de/goto.php?artikel=179205

Hubert.G
02.02.2009, 14:32
Es liegt sicher an deiner Schaltung. Du hast noch einen 150 Ohm Widerstand in Serie zu deinem Buzzer geschalten. Er braucht aber lt. Datenblatt 5V, 50mA. Du musst wie im Datenblatt einen Transistor vorschalten.
Der Buzzer auf dem MyAVRBoard ist ein anderer Typ.

McJenso
02.02.2009, 14:43
Hallo,

so wird das nix. Schau dir bitte Grundbeschaltung eines AtMega im Wissenbereich an. Die Seite kann ich gerade nicht aufrufen, daher musst du dort selber mal suchen. Du musst alle Versorgungspinne anschließen. Auch AVCC und AGND, selbst wenn du den ADC nicht nutzt. Im Betrieb ändert sich bei deiner Schaltung die Versorgungsspannung des AtMega 8, sobald du die LED's oder den Speaker anschaltet. Es wundert mich schon, dass das überhaupt soweit funktioniert. Im Datenblatt ist parallel zum Lautsprecher noch eine Freilaufdiode eingezeichnet. Es steht dort ja eigentlich auch ein Transistor...

Du solltest wirklich einen Spannungsregler mit den notwendigen Kondensatoren nutzen. Dann 100nF an die Versorgung des Controllers. Einen Transistor um den Speaker zu schalten und die Freilaufdiode bloß nicht vergessen.

Gruß

Jens

Demian
02.02.2009, 14:46
Wegen dem Wiederstand hab ich folgendermaßen gerechnet: 5V/0,05A = 100 Ohm, oder hab ich da gerade nen Denkfehler? Kann ich dann den Transistor von Conrad nehmen? Bin da noch nicht so fit und ein Buch kann ich mir erst nächsten Monat zulegen.

Demian
02.02.2009, 14:48
@Jens. Ich hab mich an dem Beitrag bezüglich des ATMega8 orientiert. Da sind AVCC und AGND auch nicht angeshlossen?

McJenso
02.02.2009, 15:06
Hallo,

ich kann den Beitrag durch einen Datenbankfehler leider nicht aufrufen. Im Datenblatt zum AtMega 8 steht auf Seite 6 eindeutig:
"AVCC is the supply voltage pin for the A/D Converter, Port C (3..0), and ADC (7..6). It should be externally connected to VCC, even if the ADC is not used."
Dein Port C 3..0 funktioniert ohne AVCC nicht. Wenn das woanders so eingezeichnet ist, ist es auch dort falsch.

Gruß

Jens

Demian
02.02.2009, 15:11
Hatte das auch gesehen, aber should automatisch mit sollte übersetzt. Was ist ein geringer Durchgangsfilter für ein Bauteil?

McJenso
02.02.2009, 15:50
Hallo,

wie der Tiefpass beschaffen sein sollte wird auf Seite 203 beschrieben. 8)
Benötigst du aber nur, wenn du den ADC nutzt. Und für erste Versuche zum Ausprobieren geht selbst dann auch so.
Als Transistor kannst du jeden Wald und Wiesen NPN nehmen z.B. BC547. Denk aber an die Freilaufdiode.
Der 7805 geht.Ich würde allerdings einen LM2940CT5 nehmen. Das ist ein Low-Drop Regler. Die Eingangsspannung kann deutlich geringer sein- Kannst ja auch einmal z.B. bei Reichelt schauen. Da sieht das Preislich etwas anders aus. Musst halt schauen, wie das mit Mindestbestllwert und Versand so hinkommt.


Gruß

Jens

Demian
02.02.2009, 15:55
Also, habe jetzt den IC 7805 dran gehängt, sowie AVCC und AGND verbunden (siehe Schaltplan).

Allerdings ist der Summer extrem leise???Es handelt sich um einen Mainboard-Summer, die ja eigentlich etwas lauter sind.

Demian
02.02.2009, 16:11
Habe die Diode vergessen. Ich hab zwar 3 Stück da, weiß aber nicht ob die gehen? Da steht nur drauf:
AP DE
IN4001

Pluspol muss auf die Seite mit dem grauen Ring, oder?

Edit: Den Monat hab ich leider nicht mehr das Geld um groß zu bestellen.

McJenso
02.02.2009, 16:25
Hallo,

:shock:

da haben wir uns falsch verstanden. Der 7805 ist ein Festspannungsregler mit dem du die ganze Schaltung versorgen kannst/solltest.
Für den Lautsprecher benötigst du einen Transistor wie z.B. den BC547. Da geht der 7805 nicht!
Die Beschaltung des Transistors sollte wie in dem Datenblatt aussehen. Mit Basisvorwiderstand und Freilaufdiode.
VDC sind deine 5V, die du mit dem 7805 erzeugst. Vin ist der Ausgang deines Controllers. Und Gnd(die Striche) ist halt -.

Gruß

Jens

Edit: Ja der Ring kommt in Richtung Plus.

Demian
02.02.2009, 16:50
Sorry, bin mit Eagle und den Schaltzeichen noch nicht so vertraut. Habe gedacht das wär das selbe und der Pfeil muss Richtung Plus zeigen.

Gut, dann wird das nichts. Habe keine Transistoren da. Töne macht er zwar auch mit dem IC 7805 schon, aber nur leise. Ich sollte wohl doch lieber warten, bis das Geld für nen Buch reicht.

Wegen dem Spannungsregler noch ne Frage: Langt es einen einzigen hinter die 9V Block hängen, oder geht dann der Summer wieder nicht?

Hubert.G
02.02.2009, 16:56
So sollte deine Testschaltung etwa aussehen.
Wenn dein Summer eine höhere Spannung kann dann den Plus direkt an die 9V hängen.
Die LEDs sollte man auch über einen Transistor wie den Summer schalten und ebenfalls die Spannung vor dem Spannungsregler nehmen, dann aber Vorwiderstände anpassen.

Hubert.G
02.02.2009, 17:00
Wenn du keinen Transistor hast, dann gib deinen Summer mit Vorwiderstand zwischen PC0 und GND. Den Widerstand etwas kleiner machen, 100 Ohm.

Demian
02.02.2009, 18:14
Hallo,

danke für den tollen Plan. Ich werde wohl doch noch einiges kaufen müssen. Allerdings bin ich jetzt auch etwas verwirrt. Die 6 Kondensatoren, brauche ich doch eigentlich nur wenn ich will, dass nach dem Entnehmen der Batterie das ganze noch ein bisschen läuft, oder? Was die Widerstände betrifft, bin ich grad auch etwas verwirrt. Wieso 2.200 Ohm vor dem Transistor? Er braucht doch max 200mA. Wird dann nicht 5V/0,20A = 25 Ohm gerechnet?

Und wieso sind die Widerstände hinter den LED's? Fließen dann nicht die kompletten 5V durch die LED's???

Steh da gerade voll auf dem Schlauch...Oje, ich glaub ich muss das Buch doch schon bestellen, zusammen mit dem ganzen andern Kram am Besten als Finanzierung.

Hubert.G
02.02.2009, 20:22
Die Kondensatoren sind da um kurze Spannungsschwankungen auszugleichen für die die Batterie zu langsam ist. Mit dem Widerstand in der Basisleitung des Transistor begrenzt du den Basisstrom, dieser ist um die Stromverstärkung des Transistor kleiner als der Kollektorstrom.
Ob die Widerstände vor oder nach den LEDs sind ist vollkommen egal, durchfliessen kann nur der Strom.

Demian
03.02.2009, 20:01
Ich merke es hat keinen Taug so weiter zu machen. Werde erst mal die Bücher abwarten, damit ich mich mehr einlesen kann. So ist das alles in allem etwas viel auf einmal.

Nochmal Danke für die Beispiel-Schaltung. Ich werde dann erst mal versuchen, auf die ganzen Werte der Elkos und der Widerstände zu kommen, bevor ich da groß weitermach.

Allein bei dem 10000er Widerstand zu Reset-Leitung bin ich schon wieder verwirrt. Ich komm net auf den Wert. Der ATmega 8 benötigt doch nur mA. Um den Widerstand zu berechnen, muss ich doch folgendermaßen vorgehen:

lt. Datenblatt 3,6 mA bei 3V
Bei einer Quelle von 5V rechne ich:
5V-3V = 2V / 0,0036 A = 555,55 Ohm

Stimmt die Rechnung so nicht?

Gruß
Demian

ikarus_177
03.02.2009, 20:05
Hi,

der 10kOhm Widerstand von Reset zu VCC wird als "Pull-up" - Widerstand benutzt, d.h. er "zieht" den Reset-Pin auf ein definiertes Potential, in dem Falle eben VCC. Wird der Pin dann aber NACH dem Widerstand direkt mit GND verbunden, "fließt" das Potential ab, es liegen 0V am Pin an, und der Controller macht einen Reset.


Viele Grüße

Demian
03.02.2009, 22:43
Moin,

was bringt mir der Reset eigentlich? Der Controller macht bedingt durch die Endloosschleife doch eh immer das gleiche?

ikarus_177
04.02.2009, 06:30
Hi,

der Reset ist dazu da, das Programm im Controller neu zu starten. Du musst auch nicht unbedingt eine Endlosschleife in deinem Programm haben. Außerdem ist der Reset-Pin für das Flashen über ISP sehr wichtig. Der Programmer zieht diesen Pin auf 0, alle Portpins werden zu Eingängen (eben weil der Controller im Reset ist) und der Controller kann programmiert werden.

Außerdem ist es hilfreich, den Controller neu zu starten, wenn sich das Programm aus irgend einem Grund aufgehängt hat ;-)


Viele Grüße

Demian
04.02.2009, 08:15
Ok, das macht dann schon Sinn. Jetzt mal Offtopic: Könnt ihr irgendwelche Bücher empfehlen. Ich meine jetzt nicht Mikrocontroller spezifisch wie das von Roland Walter (das hol ich mir natürlich auch). Ich mein eher, was den Schaltungsaufbau und die Verwendung der einzelnen Bauteile angeht.

Ich wollte mir folgende holen:
http://www.conrad.de/goto.php?artikel=903779
http://www.conrad.de/goto.php?artikel=902136
http://www.conrad.de/goto.php?artikel=909013
http://www.conrad.de/goto.php?artikel=900095

Denkt ihr die reichen aus, damit ich so ne Schaltung wie die Hubert wirklich versteh???

Gruß
Demian

Hubert.G
04.02.2009, 10:04
Ich bin kein großer Freund solcher Bücher, auch wenn es zu meiner Zeit nur diese Möglichkeit gab. Mittlerweile findet man fast alles in Netz.
Wenn du so etwas in Erwägung ziehst, dann wären meiner Ansicht nach nur die ersten beiden Interessant. Es kommt aber auch etwas darauf an, was du an Grundlagen mitbringst.
Mathematik, genauer, das Wissen um das Ohmsche Gesetz, Leistungs und Schwingkreisberechnungen sind viel wichtiger als vielfach angenommen wird.
Das letzte Buch halte ich überhaupt für sinnlos, über www.alldatasheet.com/ kannst du dir alle aktuellen Datenblätter zu den Bauelementen herunterladen, da sind nicht nur die Anschlußbelegungen sondern auch die elektrischen Daten enthalten.

Demian
04.02.2009, 11:03
Ich persönlich mag Online-Infos nicht. Ich komme besser klar, wenn ich nen Buch habe, was ich neben die Tastatur auf den Tisch legen kann. Gerade bei so umfangreichen Sachen wie den Datenblättern des ATMega8 (308 Seiten) überfliege/überlese ich das auf dem Bildschirm mehr, als dass ich es wirklich analysiere. Deswegen werd ich mir das Datenblatt heut auch drucken.

Mit Mathematik an sich komm ich klar, wenn ich weiß wie ich was rechnen muss. Ansonsten ist Elektronik für mich Neuland. Leistungs- und Schwingkreisberechnung kenn ich nicht, sind aber hoffentlich im dem Einführungsbuch erklärt.

Werde mir dann nur die ersten 2 bestellen.

Danke für die Info und den Link. Den kannte ich noch nicht.


Gruß
Demian

Hubert.G
04.02.2009, 15:15
Falls im Buch nichts über Mathematik steht, hier eine kleine Einführung: www.domnick-elektronik.de/elekohm.htm#OG_RLC