Forum: Mikrocontroller und Digitale Elektronik uC gesucht; Funktionsumfang; Anfängerfrage


von Felix R. (effexxx)


Lesenswert?

Hallo,
ich bin neu hier, also danke schon mal für die Nachsicht.
Es geht um folgendes: EIn Kollege und ich, wir haben vor, uns einen uC 
zuzulegen, um damit folgenden Funktionsumfang zu implementieren:
Kommt am Eingang ein undefiniertes Signal (Etwa durch ein direkt 
angeschlossenes Mikrofon)an, soll der Ausgang für eine fest definierte 
Zeit
( Etwa 1s) direkt oder verzögert auf high geschaltet werden. Die 
Verzögerung soll einstellbar sein und über ein Display angezeigt werden.
Wir haben die Schaltung bereits elektronisch realisiert, wobei das 
fehleranfällig war und im ms-Bereich nicht immer reproduzierbar ist.

Ich habe etwas(!) Erfahrung mit C, bin auch mit der grundsätzlicher 
Funktion von uc'd vertraut, ansonsten aber blutiger Anfänger.
Die Frage, die sich nun stellt, ist ob man hierfür einen konkreten 
Microcontroller emfehlen kann, inklusive ALLEM, was dazu gehört, sprich 
Schnittstellen, Software usw.. Das wäre UNGLAUBLICH hilfreich für uns, 
da ich was features von uc's angeht bisher nur Bahnhof verstehe und 
nicht ins blaue reinkaufen möchte/kann.
Ich bin sicher, solche Fragen treten öfters auf, aber die Sufu hilft mir 
in dem fall nicht weiter, da dieser uC wirklich nur für diese spezielle 
Anwendung benötigt würde.

Ich hoffe, mein Vorhaben/ Problem verständlich dargelegt zu haben, 
vielen Dank im Voraus
Gruß

von Patrick (Gast)


Lesenswert?

Soll der denn das undefinierte Signal untersuchen und bei einem 
bestimmten Wert einen Ausgang schalten?

Für diese Funktion reicht ein ganz kleiner mit ADC und wenigen 
Ausgangsports.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

ATMega8, bleiben auch noch genug Portpins für das Display und ein paar 
Tasten. Oder gleich den ATMega88, der ist moderner.

von Patrick (Gast)


Lesenswert?


von Felix R. (effexxx)


Lesenswert?

Wow, vielen Dank für die schnelle Antwort!
Also um genau zu sein wäre es schön, wenn zusätzlich zur Verzögerung 
auch die Sensibilität des Eingangs eingestellt werden könnte.
Auf Deutsch:
Überschreitet der Pegel einen eingestellten Wert, wird nach einer 
eingestellten Zeit der Ausgang auf high geschaltet. Beide Werte sollten 
auf einem Display dargestellt werden.

Edit: Da kommt man ja mit dem lesen nicht hinterher, Danke für die 
schnellen Antworten und den Link.
Gruß

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Überschreitet der Pegel einen eingestellten Wert, wird nach einer
>eingestellten Zeit der Ausgang auf high geschaltet. Beide Werte sollten
>auf einem Display dargestellt werden.

Gar kein Problem, das macht das Programm. Bei 10-Bit Auflösung des ADC 
hat man auch schon einen ganz ordentlichen Dynamikumfang zum Detektieren 
der Eingangssignale. Ein Mikrofonsignal kann aber nicht direkt dazu 
benutzt werden, es muß erst um etwa Faktor 100-300 verstärkt werden. 
Dazu ist ein externer Operationsverstärker nötig.

von Felix R. (effexxx)


Lesenswert?

Heißt das, ich benötige zwangsläufig ein Eingangssignal im Bereich von 0 
bis 5 Volt, um die gesamte Auflösung des ADC's nutzen zu können? Nur zum 
Verständnis, das umwandeln per OPV ist sicher nicht das Problem, auch 
der Dynamikumfang müsste keine 10 bit groß sein, das ganze muss an der 
Stelle nicht so sensibel sein, das die Wahl des Controllers daran 
ausgerichtet wird.

Ich hätte außerdem erwähnen sollen, dass wir quasi die gesamte 
Entwicklungsumgebung inkl. Board brauchen.
Gruß

von Daniel R. (sliderbor)


Lesenswert?

Was für ein Display soll denn angeschlossen werden? Ein "richtiges" 
Grafikdisplay oder z.B. 2x20 Zeichen oder reichen auch z.B. 8 
Sieben-Segment-Anzeigen (der einfachste zu realisierende Fall)?

Solltest du nur Sieben-Segment-Anzeigen benötigen, würde ich persönlich 
z.B. einen MAX7219 nehmen, der nimmt dir das multiplexen ab, brauchst 
ihm also nur noch mitteilen, was er darstellen soll. Hab gestern noch 
damit "gespielt". =)

Die Einstellung der Sensibilität wird nicht ohne externe Beschaltung 
möglich sein, also das Mikrofon wird man nicht direkt an uC löten 
können. ;)

Denke, da braucht man wenigstens einen Pegelwandler, besser dazu noch 
einen ADC (Digital-Analog-Konverter, ist bei einigen uC schon drin). 
Dann kann man auch richtig schön die Stärke des Signals einlesen und 
dann per Software entscheiden, ab welchem Wert etwas passieren soll. <- 
mein Vorschlag

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

@Daniel:

Der ADC ist im (Atmega-)Controller doch schon drin ;-). Nur anheben muß 
man das Signal noch, da von der Kapsel nicht viel mehr als 1...10 
Millivolt zu erwarten sind.

von Felix R. (effexxx)


Lesenswert?

Wie gesagt, wir benötigen ein gesamtes Board, ich hatte mich da falsch 
ausgedrückt. Ich bin also von einem vorhandenem ADC ausgegangen, die 
Pegelumwandlung sollte nicht das Problem darstellen.
Zum Display: Sieben-Segment-Anzeigen würden sicher genügen, allerdings 
wäre mir ein 2x20-Grafikdisplay lieber, falls das für einen Anfänger 
kein zu großes Hindernis darstellt, es soll ja auch optisch was 
hermachen.
Gruß

von Daniel R. (sliderbor)


Lesenswert?

Weiß nicht, ob das für einen Anfänger schwer zu realisieren ist, bin 
selbst quasi noch Anfänger und hab leider noch nicht mit "richtigen" 
Display gearbeitet, aber mein S65-Display ist schon unterwegs. =)

Das Arbeiten mit nem MAX7219 war auf jeden Fall überhaupt nicht schwer, 
hab gestern Nachmittag damit eine GPS-Uhr gebastelt <- hatte langeweile.

@Travel
Ja, ist mir auch noch eingefallen, hatte das schon nachgetragen. ;)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

http://www.pollin.de/shop/detail.php?pg=OA==&a=MTY5OTgxOTk=&w=OTk4OTY4&ts=0

http://www.pollin.de/shop/detail.php?pg=OA==&a=NjQ5OTgxOTk=&w=OTk4OTY4&ts=0

Wäre das ´was für Dich? Den Verstärker und das Mikro mußt Du trotzdem 
auf eine kleine Zusatzplatine bauen.

von Karl H. (kbuchegg)


Lesenswert?

Daniel Reinke wrote:
> Was für ein Display soll denn angeschlossen werden? Ein "richtiges"
> Grafikdisplay oder z.B. 2x20 Zeichen oder reichen auch z.B. 8
> Sieben-Segment-Anzeigen (der einfachste zu realisierende Fall)?

Ob ich 7-Segment Anzeigen als den einfachsten Fall ansehen würde,
und dann auch noch gleich 8 Stück. Na ja, ich weiss nicht recht.

Die Reihung, von einfach zu schwer würde bei mir so aussehen:

* einzelne 7-Segment
* 2*20 LCD
* gemultiplexte 7-Segment mit mehreren Stellen
* Graphik-LCD

Ein 2*20 LCD anzuschliessen und zu programmieren, ist nicht
wirklich das große Problem.

von Daniel R. (sliderbor)


Lesenswert?

Karl heinz Buchegger wrote:
> Daniel Reinke wrote:
>> Was für ein Display soll denn angeschlossen werden? Ein "richtiges"
>> Grafikdisplay oder z.B. 2x20 Zeichen oder reichen auch z.B. 8
>> Sieben-Segment-Anzeigen (der einfachste zu realisierende Fall)?
>
> Ob ich 7-Segment Anzeigen als den einfachsten Fall ansehen würde,
> und dann auch noch gleich 8 Stück. Na ja, ich weiss nicht recht.
>
> Die Reihung, von einfach zu schwer würde bei mir so aussehen:
>
> * einzelne 7-Segment
> * 2*20 LCD
> * gemultiplexte 7-Segment mit mehreren Stellen
> * Graphik-LCD
>
> Ein 2*20 LCD anzuschliessen und zu programmieren, ist nicht
> wirklich das große Problem.

Ok, hatte ja erwähnt, dass ich das noch nicht gemacht habe. Ich meinte 
auch eine Ansteuerung über einen MAX7219, der einem ja vieles abnimmt. 
Nur das viele Fädeln war etwas aufwändig, da ich kein Ätzgerät hier habe 
und extra Layouten zur FH fahren wollte ich auch nicht. ;)

@Travel
Das sieht in der Tat sehr passend aus und vor allem nicht teuer

von Felix R. (effexxx)


Lesenswert?

Travel Rec. wrote:
> http://www.pollin.de/shop/detail.php?pg=OA==&a=MTY5OTgxOTk=&w=OTk4OTY4&ts=0
>
> http://www.pollin.de/shop/detail.php?pg=OA==&a=NjQ5OTgxOTk=&w=OTk4OTY4&ts=0
>
> Wäre das ´was für Dich? Den Verstärker und das Mikro mußt Du trotzdem
> auf eine kleine Zusatzplatine bauen.

Na das sieht doch gut aus, an der Stelle hab ich schon mal was, wo ich 
mich reinlesen kann, vielen Dank. Ich denke da kommt dann noch das 
2x20-Display dazu. Gehen wir von folgendem Szenario aus:
- Externe Platine mit Mikro und OPV auf max. 5 Volt gewandelt
- Von dort aus in den Analogeingang des Controllers
- Zwei Regler für
        - Sensibilitätsschwelle( Also schalten des Ausgangs)
        - Einschaltverzögerung
- Ein Schalter für An/Aus
- Ein 2x20-Display für Anzeige der Verzögerung und der Sensibilität
- Spannungsversorgung über 9-Volt Block

Ist das ein mögliches Szenario für zwei ambitionierte Anfänger und obige 
Boards?

Im Übrigen noch ein mal vielen Dank für die schnelle Hilfe, ich bin 
baff...
Gruß

von Karl H. (kbuchegg)


Lesenswert?

Daniel Reinke wrote:
> Ok, hatte ja erwähnt, dass ich das noch nicht gemacht habe.

Ja, ist schon klar.
Ich wollte nur vermeiden, dass der Fragesteller den Eindruck bekommt
dass ein 2*20 LCD ein Riesen-Problem wäre.

> Nur das viele Fädeln war etwas aufwändig,

:-)
In dem Punkt ist so ein Standard LCD auf jeden Fall einfacher:
Mit 7 (6) Leitungen ist man dabei.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Das sieht in der Tat sehr passend aus und vor allem nicht teuer

Yep, aber man muß selber löten für den Preis. Trotzdem ein nettes Board.

von Karl H. (kbuchegg)


Lesenswert?

Felix R. wrote:

> Ist das ein mögliches Szenario für zwei ambitionierte Anfänger und obige
> Boards?

Ich würde mal sagen ja.
Eine wichtige Zutat hast du aber noch vergessen:
Viel Zeit zum Einarbeiten in die Programmierung. Für einen
Einsteiger ist das sicherlich kein Wochenendprojekt, aber durchaus
machbar.

von Felix R. (effexxx)


Lesenswert?

Mit selbst löten hab ich kein Problem, wir haben das ganze ja wie gesagt 
schon elektronisch realisiert:-)
Nochmal zu meinem vorherigen Post: Realistisch ja/nein?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Gehen wir von folgendem Szenario aus:
>- Externe Platine mit Mikro und OPV auf max. 5 Volt gewandelt

Ja. In der Größe eines 20Cent Stückes ;-)

>- Von dort aus in den Analogeingang des Controllers

Ja, wenn der Verstärker im Ruhezustand Vcc/2 an seinem Ausgang liefert 
und in Abhängigkeit zur Mikrofonspannung nach oben und unten auslenkt, 
hat man die besten Chancen, das Signal zu verarbeiten

>- Zwei Regler für
>- Sensibilitätsschwelle( Also schalten des Ausgangs)
>- Einschaltverzögerung

Ich würde Taster und ein entsprechendes Menü nehmen. Poti über anderen 
ADC-Eingang geht natürlich auch ;-)

>- Ein Schalter für An/Aus
>- Ein 2x20-Display für Anzeige der Verzögerung und der Sensibilität

O.K.

>- Spannungsversorgung über 9-Volt Block

Nee, Netzteil ist billiger. Wenn Batterie oder Akku, dann eine 
entsprechende Anzahl Mignon.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Felix R. wrote:

> Heißt das, ich benötige zwangsläufig ein Eingangssignal im Bereich von 0
> bis 5 Volt, um die gesamte Auflösung des ADC's nutzen zu können?

Jein.

Physisch muss die Eingangsspannung (zu jedem beliebigen Zeitpunkt)
irgendwo zwischen 0 und Vcc (3 V oder 5 V, ganz nach Gutdünken)
liegen.

Der ADC kann aber in einem Modus mit 200fachem Vorverstärker betrieben
werden, das geht aber nur differenziell, d. h. er vergleicht die
Spannung gegen einen zweiten ADC-Eingang.  Schau dir dazu bitte
unbedingt das Datenblatt an, nicht jeder Eingang geht gegen jeden.
Die Eingangsschaltung könntest du ungefähr so wie dargestellt
aufbauen.  Ein Spannungsteiler hält einen der beiden Eingänge auf
Vcc/2 zur Referenz, der eigentliche Messeingang wird hochohmig
ebenfalls auf diesen Wert gezogen (dadurch ergibt sich ohne
Eingangsspannung theoretisch eine Nullmessung, praktisch ein kleiner
aber relativ konstanter Offset), und das Signal koppelst du mit einem
Kondensator auf den Messeingang.

Wenn du nun gegen die interne Spannungsreferenz von 2,56 V misst, dann
wäre der Dynamikbereich im differenziellen x200-Modus -6,4 mV ... 6,4
mV.  Das könnte einigermaßen für ein Mikrofonsignal genügen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Dieser Modus wird für AVRs im DIP-Gehäuse nicht garantiert. Trotzdem 
eine gute Idee. Für Vollaussteuerung könnte es knapp reichen, wenn man 
sich das Mikro in den Hals steckt, während man laaaaauuuut schreit, lol.

von Felix R. (effexxx)


Lesenswert?

Hier stoße ich schon an die Grenzen...
Ich gehe davon aus, dass ich an einen "Vergleichseingang"( Vcc=5V) 2,5 
Volt anlege. Das Mikrofon wird so verstärkt, dass maximal 2,5 V +-2,5V 
ausgegeben werden.
Durch den Vergleich bzw. die Differenz der beiden Eingänge habe ich nun 
einen
Wert von 0 bis 2,5 V.
Habe ich das annähernd richtig verstanden?

Dann Programmiere ich so, dass beispielsweise ab dem Wert von 1V 
Differenz der beiden Eingänge der Ausgang schaltet...?
Gruß

von Tamme D. (tamme)


Lesenswert?

Hallo

Ich wollte demnächst auch was mit nem Mic machen auch mit nem ATMega8 
bzw 88

Allerdings habe ich das Problem, dass ich nicht weis wie ich das Mic 
jetzt anschließen muss könnte evtl einer mal nen Beispiel Schaltplan 
posten?

Danke im vorraus,
Tamme

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Travel Rec. wrote:

> Dieser Modus wird für AVRs im DIP-Gehäuse nicht garantiert.

Das hat aber in erster Linie den Grund, dass die langen Wege im
DIP-Gehäuse mehr Störspannungen einkoppeln und dass Vcc dort
nicht optimal abgeblockt werden kann.  Rein elektrisch sind die
Chips natürlich gleich.  So wie ich den OP verstanden habe, will
er ja eher eine Art binärer Aussage: ,,da brüllt jemand'' :) als
eine irgendwie geartete saubere Signalaufbereitung mit bestmöglichem
(S+N)/N.

Nichtsdestrotz hätte die Verwendung eine TQFP-Version gewisse Vorteile.
Löten kann man das Zeug auch als Hobbyist problemlos (0,8 mm Pinabstand
sind keine große Herausforderung), wäre dann nur die Frage, ob man
dafür irgendeine fertige Platine bekommt.  Ich könnte die Gerberfiles
für das angehängte Experimentierboard jemandem zukommen lassen.  Das
ist für einen ATmega1284P gebaut, aber da passt alles pinkompatible
drauf (ATmega8535/16/32/164P/324P/644/644P), falls sich jemand damit
was bauen will.  Die verfügbaren Ports sind STK500-mäßig auf 10-polige
Stecker geroutet.  (Mit den Gerbers kann man sich bei einem
PCB-Hersteller dann eine Platine wie die oben dargestellte bauen 
lassen.)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Felix R. wrote:

> Hier stoße ich schon an die Grenzen...

Ja, du wirst wohl noch ein wenig über dein Problem nachdenken müssen,
bis du zu einer fertigen Lösung kommst.

. du hast Wechselspannung im NF-Bereich, d. h. sie ändert sich
  kontinuierlich, du musst so vielleicht alle 100 µs messen, um
  die einzelnen Momentanwerte zu erfassen

. dich interessieren die Spitzenwerte

. du musst also zuerst einmal die Maximalwerte ermitteln

. diese Maximalwerte willst du aber nur für einen gewissen Zeitraum
  in der Vergangenheit haben, danach willst du sie ,,vergessen'', um
  das Maximum neu zu bewerten

. wenn das Maximum einen bestimmten Schwellwert eine bestimmte Zeit
  lang überschreitet, soll dein Trigger auslösen

. wenn das Maximum einen bestimmten (möglicherweise anderen)
  Schwellwert eine bestimmte (möglicherweise andere) Zeit lang
  unterschreitet, soll der Trigger zurück genommen werden

Wie Karl Heinz oben schon schrieb, das ist machbar, aber für einen
Anfänger alles andere als ein Wochenendprojekt.

von Felix R. (effexxx)


Lesenswert?

Danke für die Zusammenfassung,
ein Wochenendprojekt soll es wirklich nicht werden, darüber bin ich mir 
absolut im Klaren.

Gut, zur Klärung: Hier soll wirklich NICHTS sauber aufbereitet werden.
Ich möchte per Mikro nur etwas schalten. Ich dachte da an die 
Ansteuerung eines NPN's als Open Collector. Das heißt der Ausgang ist 
geschaltet...oder eben nicht.

Zum Problem:
Schießt man den Analogeingang, wenn man negative Spannungen aufgibt?
Ich wäre jetzt hergegangen und hätte 2,5 Volt als Daueroffset genommen 
und zusätzlich den Pegel des Mikros so verstärkt, dass 0-5V am Eingang 
liegen.
Die Sensibilität könnte man doch vorher etwa durch die Verstärkung 
selbst beeinflussen, um Programmseitig nicht überfordert zu sein?
Gruß

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Angehängte Dateien:

Lesenswert?

>Allerdings habe ich das Problem, dass ich nicht weis wie ich das Mic
>jetzt anschließen muss könnte evtl einer mal nen Beispiel Schaltplan
>posten?

Schaltung, um (Kondensator-) Mikrofon an AVR Analog/Digital-Converter 
anzuschließen.

von Felix R. (effexxx)


Lesenswert?

Wirklich vielen Dank für die Schaltung, sehr hilfreich.
Jetzt könnte man doch schon hier die Sensibilität etwa durch R4 als Poti 
beeinflussen, oder?

Edit: Noch mal zu dem pollin-Link ziemlich oben:
Ist das Erweiterungsboard im zweiten link notwendig/hilfreich, oder tuts 
alternativ dazu auch ein zugelötetes Display, wie ich das sehe, ist das 
ja das einzig hilfreiche an dem Board, oder sehe ich da was komplett 
falsch?
Gruß

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Felix R. wrote:

> Schießt man den Analogeingang, wenn man negative Spannungen aufgibt?

Kommt auf den Strom an, den du hineintreibst.  Das Datenblatt hat
irgendwo eine Tabelle “Absolute Maximum Ratings”, diese sagt, dass
jeder Pin maximal 40 mA Strom führen kann.  Mangels anderer Angaben
gilt das offenbar auch für die darin enthaltenen Schutzdioden.

> Ich wäre jetzt hergegangen und hätte 2,5 Volt als Daueroffset genommen
> und zusätzlich den Pegel des Mikros so verstärkt, dass 0-5V am Eingang
> liegen.

Warum nimmst du nicht einfach meine Schaltung von oben zusammen mit
dem internen Verstärker des ADC?  Damit hast du elektrisch schon
beinahe alles zusammen (ausgenommen den Pullup-Widerstand, den dein
Mikrofon braucht und den Schalttransistor am Ausgang).

Ich sehe nur gerade, dass der differenzielle Modus mit dem Verstärker
für einen ATmega88 nicht verfügbar ist.  Aber bevor du erst mit einem
externen OPV anfängst, kannst du dir in der Tat die Benutzung eines
ATmega8535/16/32/164P/324P/644/644P überlegen.  Die übrigen Pins werden
dich ja vermutlich nicht stören, und wenn du dich für das TQFP-Gehäuse
entscheidest, ist er auch nur geringfügig größer.

> Jetzt könnte man doch schon hier die Sensibilität etwa durch R4 als Poti
> beeinflussen, oder?

Sowas kannst du auch komplett in der Software erledigen.

von Tamme D. (tamme)


Lesenswert?

@Travel Rec.:
Danke,

aber den OPA340 find ich bei Reichelt nicht... ich hab aber noch 5 mal 
den LM324 "rumliegen" wie unterscheiden die sich?


Danke im vorraus,
Tamme

von Tamme D. (tamme)


Lesenswert?


von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Reichelt hat auch den OPA2340 (Dual, SO8), den OPA340 hatte ich nur mal 
eingetragen, weil nur 1 Kanal benötigt wurde. Es ist übrigens ein 
Single-Supply Rail-To-Rail Typ, sollte man bei derart kleinen 
Betriebsspannungen schon nehmen.

von Tamme D. (tamme)


Lesenswert?

aber prinzipiel könnte ich erstmal den LM324 nehmen?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Prinzipiell ja, ist aber kein Rail-To-Rail und somit in der Dynamik 
relativ begrenzt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Weiß immer noch nicht, wofür der externe OPV gebraucht wird (und erst
recht nicht, warum das ein Rail-to-Rail-Teil sein muss für so eine
einfache Anwendung).

Da ich den ganzen Spaß nochmal selbst ausprobieren wollte, habe ich
oben skizzierten Analoganschluss zusammen mit einem 08/15-Elektret-
Mikro aus der Bastelkiste (mit 10 kΩ Arbeitswiderstand an 4 V Vcc)
an die im Foto gezeigte Bastelplatine geklemmt (das war das einfachste,
was ich gerade herumliegen hatte).

Fazit: der 200fache Vorverstärker ist für diese einfache Art
Audioanwendung bestens geeignet.  Das Mikro gibt so 10 mVss beim
normalen Besprechen aus einigen 10 cm Entfernung ab, bei lauteren
Geräuschen werden es dann schon 100 mVss.  Damit steuert man den
internen ADC des ATmega1284P (gegen die 2,56 V Referenz gemessen)
praktisch schon komplett durch.  Übersteuern ist aber für diese
Anwendung hier auch nicht weiter tragisch, der ADC klemmt ja dann
das Bitmuster in der Endlage fest.

Ich kann je nach in der Software eingestellter Empfindlichkeit
problemlos die angeklemmte LED noch mit Händeklatschen aus 5 m
Entfernung einschalten.  Wenn man noch viel empfindlicher werden
will, muss man dann natürlich gängige NF-Abschirmmaßnahmen gegen
Brummeinstreuung etc. mit vorsehen.  Das war in meinem einfachen
Versuchsaufbau nicht ohne weiteres machbar (ich wollte mit paar
simplen Drähten an den 10poligen Pfostensteckern arbeiten können).

Der ATmega1284P diente dabei nur als Beispiel (weil ich ihn in
dieser Form gerade da hatte), die derzeitige Mini-Firmware ist
unter 0,5 KiB, es käme also genauso gut ein ATmega8535 in Frage.
(Das ist der kleinste, für den ich den 200fachen Vorverstärker
jetzt im Datenblatt finden konnte.)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

@ Jörg Wunsch:

Gut daß Du´s probiert hast, dann wissen wir das jetzt auch ;-). Mir 
hatte gerade die Zeit gefehlt... Laß uns die externe Variante als Lösung 
für Controller ohne internen Verstärker ansehen. Und als etwas 
qualitativ hochwertiger, d.h. für Audiosampelei auf dem AVR ;-).

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, der Audiosampelei sind da irgendwie technische Grenzen gesetzt
hinsichtlich der verarbeitbaren Datenmenge.

Ansonsten dürfte der wesentliche Mangel des internen Verstärkers die
relativ grobe Abstufung der Verstärkung sein.  Die Verstärkung lässt
sich von 200fach dann nur auf 10fach absenken, dazwischen ist nichts.

von Felix R. (effexxx)


Lesenswert?

Das ist ja toll, dass das so funktioniert. Ich möchte nichts anderes, 
als das etwa auf ein Klatschen aus einiger Entfernung oder 
entsprechenden Pegeln auslösen. Die 2,5 Volt Referenzspannung würden 
dann etwa per Spannungsteiler einem zweiten Analogeingang zugeführt?
Noch ein mal zum ganz oben erwähnten Zusatzboard: Wäre ein einfaches 
2x20-Display als Alternative zum Ansteuern nicht genau so geeignet?
Wir würden gerne bestellen, so dass dann nach umfangreicher Einarbeitung 
mit spezielleren Fragen genervt werden kann:-)

Edit:
Jörg Wunsch wrote:

> Ansonsten dürfte der wesentliche Mangel des internen Verstärkers die
> relativ grobe Abstufung der Verstärkung sein.  Die Verstärkung lässt
> sich von 200fach dann nur auf 10fach absenken, dazwischen ist nichts.

Heißt das, dass eine Regelung der Sensibilität doch auf elektronischem 
Weg über die Eingangsbeschaltung gesteuert werden müsste?


Vielen Dank
Gruß

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Heißt das, dass eine Regelung der Sensibilität doch auf elektronischem
>Weg über die Eingangsbeschaltung gesteuert werden müsste?

Nein, das machst Du anhand der erhaltenen Werte in der Software.

>Die 2,5 Volt Referenzspannung würden
>dann etwa per Spannungsteiler einem zweiten Analogeingang zugeführt?

Siehe Schaltplan von Jörg weiter oben.

von Felix R. (effexxx)


Lesenswert?

Alles klar, jetzt bin ich bei euch, das heißt PC1 wäre in dem Fall mein 
Referenzeingang!?
Gruß

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Felix R. wrote:

> Alles klar, jetzt bin ich bei euch, das heißt PC1 wäre in dem Fall mein
> Referenzeingang!?

Nein, bei der Schaltung war ich noch von einem ATmega88 ausgegangen.
Habe erst danach gemerkt, dass der keine 200fache Verstärkung
implementiert hat.

Beim ATmega16 & Co. sind die ADC-Eingänge an Port A.  Ich habe PA0 und
PA1 genommen für den differenziellen Eingang.

Die Referenzspannung, gegen die der ADC dann vergleicht, ist davon
aber unabhängig.  Dafür habe ich die interne 2,56-V-Spannungsquelle
benutzt.

Du hast also hier zwei Differenzen, die gebildet werden: zuerst eine
von Vcc/2 (durch den Spannungsteiler) gegen Vcc/2 ± Mikrofonspannung.
Die Differenz daraus ist dann ± Mikrofonspannung (das mit dem Vcc/2
macht man nur, damit man den Arbeitspunkt irgendwo im sicheren
Eingangsspannungsbereich des Verstärkers hat), und diese Differenz
wird intern 200fach verstärkt.  Die daraus resultierende Spannung
wird im ADC dann gegen dessen Referenz (bei mir also nominell 2,56 V,
das kann aber exemplarabhängig streuen) verglichen und liefert das
Messergebnis des ADC.  Das Ergebnis kann dann zwischen -512 (für
eine negative Spannungsdifferenz von 1,28 V oder mehr) und +511 (für
eine positive Spannungsdifferenz von 1,28 V oder mehr) liegen.

Mit diesen Werten rechnest du dann weiter.  Ich habe sie erstmal
intern in den positiven Bereich gelegt (also wenn v < 0 dann v =
-v) und dann das Maximum gebildet, um den Spitzenwert der Amplitude
zu ermitteln.  Wenn dieser Wert dann einen Sollwert überschreitet,
wird das Ereignis ausgelöst und gleichzeitig ein Zähler gestartet.
(Liegt der Pegel wiederholt über der Schwelle, so wird dieser Zähler
immer wieder neu gesetzt.)

Ein Timer reduziert regelmäßig gleichmäßig die akkumulierten
Maximalwerte wieder, damit der ,,Krawall'' nicht bis in alle Ewigkeit
bestehen bleibt.  Da kann man sicher noch mit dem Algorithmus
experimentieren.

> Wäre ein einfaches
> 2x20-Display als Alternative zum Ansteuern nicht genau so geeignet?

Als Eingabemedium?  Das verstehe ich nicht.

Ansonsten hat der Controller noch genug freie Pins, um ein Standard-
LCD-Display da dran zu klemmen.

p.s.: Um ein Studium des Datenblattes des AVRs wirst du nicht umhin
kommen, und wenigstens die dich interessierenden Teile (also vor allem
den ADC) solltest du möglichst schon vor der Bestellung verstanden
haben.

von Felix R. (effexxx)


Lesenswert?

Jörg Wunsch wrote:

> ...
>> Wäre ein einfaches
>> 2x20-Display als Alternative zum Ansteuern nicht genau so geeignet?
> ...

> Als Eingabemedium?  Das verstehe ich nicht.
>


Nein, natürlich nicht, meine Frage war mehr, ob das Zusatzboard inkl. 
Display, das ganz oben im Thread angesprochen wurde, bestimmte Vorteile 
gegenüber handelsüblichen Displays mit sich bringt, denn das ist aus 
meiner Sicht ja das einzig notwendige...?

...
> Ansonsten hat der Controller noch genug freie Pins, um ein Standard-
> LCD-Display da dran zu klemmen.
...

Im Prinzip war das die Antwort, die ich hören wollte:-)
>
> p.s.: Um ein Studium des Datenblattes des AVRs wirst du nicht umhin
> kommen, und wenigstens die dich interessierenden Teile (also vor allem
> den ADC) solltest du möglichst schon vor der Bestellung verstanden
> haben.

Nun, das ist mir klar, dass ich mich auch in der Hinsicht einarbeiten 
muss,
 ich weiß auch tatsächlich, wie ADC's usw. im Detail funktionieren, es 
ist halt trotzdem was anderes, so etwas auswendig zu lernen, oder es 
alternativ aus eigenem Interesse zu verstehen/ für eine eigene Anwendung 
zu programmieren....:-)

Wie gesagt, vielen Dank für die unglaubliche Hilfsbereitschaft, ich 
lerne mit jeder Antwort hinzu. Das Dingen wird jetzt bestellt, und dann
kommen neue Fragen auf mich (respektive euch) zu.
Gruß

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
Noch kein Account? Hier anmelden.