mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ultraschall signal erzeugen


Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...kurze Frage zu Ultraschallsighnal erzeugen (40KHz)...
mein Sender besteht aus nem Tiny 2313 der nen Max 232 ansteuert, beide 
T[in] mit dem avr verbunden und seine T[out] hängen an der UST40 sende 
kapsel so hab ich aus 5V ganz einfach ca 20 V durch den max, meine Frage 
jetzt, um das signal zu erzeugen, reicht es ganz einfach alle (1/40000)s 
den sender einzuschalten also T1[in] vom Max auf Low und T2[in] auf 
High, dann nächste (1/40000)s beide T[in] auf den selben Pegel oder muss 
ich alle (1/40000)s den Pegel wechseln also T1[in] Low, T2[in] High, 
nächste (1/40000)s T1[int] High, T2[in] Low was ja dann eigentlich das 
gewünschte Sinus signal wäre oder? Bin da grad etwas verwirrt....

Grobi

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Periodendauer ist der Kehrwert der Frequenz. Das Tastverhältnis 
High:Low sollte 1:1 sein.
Also mußt du alle 12,5us den Pin-Pegel invertieren.


Gruß -
Abdul

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ahh ok alles klar, so hatte ichs mir eigentlich auch gedacht, war mir 
nur nich sicher.
Danke!

Grobi

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch ne Frage.... wenn ich meinen sender ohne oszi testen will, irgendwo 
hab ich gelesen das man an die empfängerkapsel einfach ne led mit 
vorwiderstand löten soll und die sollte dann leuchten wenn was empfangen 
wird. Also mit ner kleinen grünen und 220 als Vorwiderstand leuchtet 
nix... kann das denn überhaupt funktionieren oder mach ich mir umsonst 
sorgen?

Grobi

Autor: Helmut -dc3yc (dc3yc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Willst du da US-Pulse erzeugen oder was willst du mit dem Signal machen? 
Vielleicht Fledermäuse verscheuchen? Wenn du Pulse haben willst, wird 
das so nicht optimal funktionieren. Ein Resonanzkreis dazwischen wirkt 
Wunder!

Helmut.

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also eigentlich wollte ich damit US pulse erzeugen. Warum wird es denn 
nicht gut funktionieren? Dachte mit dem max 232 könnte ich mir so ganz 
einfach irgendwelchen inverter und spannungsanhebe kram sparen.

Dem posting von Messguru entnehme ich jetzt mal das ein test der 
empfängerkapsel mit ner led humbug ist.

Grobi

Autor: Helmut -dc3yc (dc3yc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So ein US-Resonator resoniert auf einer Frequenz. Wenn er digital 
angesteuert wird, bekommt er eine ganze Reihe harmonischer Anregungen. 
Das führt zu Nachklingeln und anderen Problemen. Schau mal diesen Thread 
an: Beitrag "Ultraschall Entfernungsmesser mit I2C, Eigenbau"
Da hat Uffi eine optimierte Schaltung angegeben. Die funktioniert recht 
gut!

Servus,
Helmut.

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha ok, das heißt aber nich das mein plan mit dem max garnicht 
funktionieren würde, aber ohne ne möglichkeit einfach festzustellen ob 
überhaupt was gesendet und empfangen wird bringt mich das jetzt auch 
nicht weiter, da muss es doch was geben was man mit einfachen 
"Keller"-mittel machen kann.

Grobi

Autor: Abdul K. (ehydra) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hast du denn an Meßmitteln?

Das mit der LED habe ich noch nicht probiert und halte ich für fraglich.

Wenn die US-Pulse viele Periodenlängen lang sein dürfen, dann ist ein 
Resonanzkreis sinnvoll, da der die Amplitude und damit die Leistung 
erhöht. Ein MOSFET-Treiber oder ein 74HC oder besser 74AC womöglich mit 
parellelen Gattern wirkt Wunder.
Dazu ne Induktivität in Reihe zum US-Wandler schalten. Es gilt die 
Thomsonsche Formel.

Ein geschnippter Fingernagel erzeugt übrigens prächtige Signale, um 
einen Empfänger zu testen.


Gruß -
Abdul

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
werde mir ein messkabel für irgendeine soundkartenoszi software basteln 
und dann mal schauen was dabei herrum kommt.

Grobi

Autor: Markus K. (markus-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Grobi:
Hier ist ein Schaltplan mit MAX232. Das ist vom SRF08 von Devantech, die 
das kommerziell vertreiben.
http://www.robot-electronics.co.uk/images/srf08schematic.gif

Zur Messung: Kann Deine Soundkarte wirklich 40kHz? Das können nicht alle 
Soundkarten. Hierbei kilosamples nicht mit kilohertz verwechseln.
Alternativ könntest Du auch mit einem 2. AVR messen (digital).

@Helmut
> So ein US-Resonator resoniert auf einer Frequenz. Wenn er digital
> angesteuert wird, bekommt er eine ganze Reihe harmonischer Anregungen.

Macht das denn was aus? Wird er auf den harmonischen Frequenzen wirklich 
angeregt, obwohl er so schmalbandig ist?

> Das führt zu Nachklingeln und anderen Problemen.

Kannst Du das mal näher erläutern? Der Resonator schwingt doch sowieso 
langsam aus und wenn er etwas länger ausschwingt, dann sollte das doch 
egal sein? Und welche andere Probleme gibt das?

Gruß
  Markus

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus
>>Hier ist ein Schaltplan mit MAX232. Das ist vom SRF08 von Devantech, die
>>das kommerziell vertreiben.
>>http://www.robot-electronics.co.uk/images/srf08schematic.gif
habs eigentlich genauso gemacht...
bei mir ATTiny 2313 läuft mit 20MHz, T1in and PortD0, T2in and PortD1
source code :
#include <avr/io.h>
#include <avr/interrupt.h>
#include <inttypes.h>

#define US_freq 40000 * 2
#define TIMER_preload 256-(F_CPU / US_freq)

static volatile uint8_t US_mode = 0;

ISR(TIMER0_OVF_vect) // timer_overflow
{
  TCNT0 = (uint8_t)TIMER_preload;
  if (US_mode)
  {
    PORTD = 0b00000001;
    US_mode = 0;
  }
  else
  {
    PORTD = 0b00000010;
    US_mode = 1;
  }
}

void send(void)
{
  TCCR0A = 0;
  TCNT0 = (uint8_t)TIMER_preload;
  TIMSK |= (1<<TOIE0);
  TCCR0B = (1<<CS00);
}

void stop(void)
{
  TCCR0B &= ~(1<<CS00);
  PORTD |= (1<<PD0) | (1<<PD1);
}

int main(void)
{
  // int output port
  DDRD = 0xFF;
  // transmitter off (both Tin > H = T1out = -10V, T2out = -10V)
        PORTD = 0b00000011;
  // activate global interrupts
  sei();
  // activate output
  send();
  for(;;)
  {

  }
  return 0;
}
... soll erstmal einfach nur die ganze Zeit durch senden.

wenn das soweit korrekt ist werd ich wohl erstmal nen verstärker für die 
empfänger kapsel bauen um überhaupt irgdnwie was messen zu können, die 
idee mit dem 2.atmel als adc finde ich auch ganz gut. Wie hoch kann denn 
eigentlich die spannung werden die am empfänger entsteht wenn er etwas 
empfängt? Reicht da ne Verstärkung von unter 50 aus um max nen 5V pegel 
zu bekommen oder wie verhällt sich das?

Grobi

Autor: Grobi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier nochmal der sender

Autor: Grobi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
...und hier der empfänger bzw. erstmal der Verstärker, leider funzt da 
nix, dauerhaft 2,3mV am ausgang, also entweder wird nix gesendet oder 
empfangen, toll...

Autor: Markus K. (markus-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du schonmal den Empfänger direkt an das Voltmeter (Wechselspannung) 
gehalten? Da sollte man eigentlich was messen können. Zumindest wenn der 
Abstand zwischen Sender und Empfänger sehr klein ist.

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da regt sich irgendwie nix

Autor: Markus K. (markus-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hast Du denn bisher überprüft?

liegt die Ausgangsspannung am Sender wirklich an? Du kannst auch 
Testweise den Sender direkt an den AVR anschließen, dann ist die 
Reichweite zwar geringer, aber es gibt weniger mögliche Fehlerquellen.

Stimmt die Frequenz? Kann Dein Multimeter Frequenzen messen? Hast Du 
überprüft, ob der AVR wirklich mit 20MHz läuft?

Verstärker prüfen: Du könntest per Spannungsteile eine Musikquelle 
anschließen und dann mit einem Lautsprecher oder dem Multimeter testen, 
ob das wirklich funktioniert. Evtl. erst nach dem Kondensator 
einspeisen.

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also der avr läuft mit 20 MHz mit _delay_ms ausprobiert und is alles 
korrekt, der port funktionirt auch, aber am max sind beide Tout 
dauerhaft auf -9,9V, da scheint der fehler zu sein, werd mal nen anderen 
ausprobieren btw. ich hab statt der üblichen 1µF elkos am Max 10µF 
genommen, hab damit aber sonst noch nie probleme gehabt.

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hurray, kaum schließt man die richtigen eingänge vom max an, T1in und 
T2in nich R1in und R2in ( war ja klar ;-) ) erzeugt mein verstärker wenn 
ich die empfänger kapsel voll draufhalte n bischen über 1V also ne 
spanne von 4mV bis 1,09V kam dabei rum, wenn ich nun den 1K widerstand 
beim ca3140 lasse und den 100K durch nen 500k ersetze, wird mein output 
signal dann auch auf ca 5V angehoben also verstärkt oder sehe ich das 
falsch?

Grobi

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also laut der rechnung Ua = v*Ue=-(R2/R1)*Ue fürn invertierten 
verstärker müsste das ja so sein, aber wird dabei der fehler nich auch 
größer und das output signal "zappeliger"?

Autor: Grobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm komisch, wenn hab mal gegen 390K getauscht und bekomme trotzdem die 
selbe ausgangsspannung...

Autor: Tom Edi (edeldraut)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Grobi,

Funktionieren die Schaltungen jetzt bei dir?
Ich möchte demnächst ebenfalls eine US-Sender-Empfänger aufbauen
und bin für jede Info dankbar.
Hast du schon eine Idee wie groß die Reichweite mit deiner
Schaltung ist?

lg
Edi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.