Ultraschall signal erzeugen

Gast #1385756
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
Gast #1385904
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
Gast #1386381
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
Gast #1386429
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
Persönliche Seite #1386538
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
#1386814
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
Gast #1387085
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 :
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#include <inttypes.h>
4

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

8
static volatile uint8_t US_mode = 0;
9

10
ISR(TIMER0_OVF_vect) // timer_overflow
11
{
12
  TCNT0 = (uint8_t)TIMER_preload;
13
  if (US_mode)
14
  {
15
    PORTD = 0b00000001;
16
    US_mode = 0;
17
  }
18
  else
19
  {
20
    PORTD = 0b00000010;
21
    US_mode = 1;
22
  }
23
}
24

25
void send(void)
26
{
27
  TCCR0A = 0;
28
  TCNT0 = (uint8_t)TIMER_preload;
29
  TIMSK |= (1<<TOIE0);
30
  TCCR0B = (1<<CS00);
31
}
32

33
void stop(void)
34
{
35
  TCCR0B &= ~(1<<CS00);
36
  PORTD |= (1<<PD0) | (1<<PD1);
37
}
38

39
int main(void)
40
{
41
  // int output port
42
  DDRD = 0xFF;
43
  // transmitter off (both Tin > H = T1out = -10V, T2out = -10V)
44
        PORTD = 0b00000011;
45
  // activate global interrupts
46
  sei();
47
  // activate output
48
  send();
49
  for(;;)
50
  {
51

52
  }
53
  return 0;
54
}
... 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
#1388145
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.
Gast #1388216
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.
Gast #1388237
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren