Zitat von
Peter(TOO)
Was spricht gegen eine Amplitudenmodulation des Sendesignals?
Am Anfang dachte ich, dass es einfach zu lange dauert bis Amplitude der schwingenden Empfängerkapsel wieder runtergeht. Aber eine Messung zeigt, dass es mit ~ 1Bit/ms gehen könnte:
Man kann den Nachteil dieser Emfpänger für Abstandsmessungen sehen: Man kann nicht genau sagen wann der Ton beim Empfänger angekommen ist, da die Amplitude nur langsam ansteigt. Das macht die Abstandsmessung ungenauer (die Abweichung von ~1cm im letzten Bild hängt glaube ich damit zusammen. Warscheinlich wird im orignalen Controller des Moduls ein Pauschalwert abgezogen, der der Zeit enstpricht die der Sinus am Emfpänger braucht um als Signal (also kein Noise) erkannt zu werden)
Vielen Dank für die Beschreibung zur Umsetzung einer Amplitudenmodulation! (In die Richtung geht auch mein Ansatz unten)
Zitat von
PICture
Dann müsste man, wie im Datenblatt (DB):
http://www.micropik.com/PDF/HCSR04.pdf mit Pegelwechsel beim Empfänger immer bis zum "Anschwingen" und "Ausklingen" abwarten bzw. schnelle Datenübertragung mit anderen Wandler ohne schwingender Masse z.B. LED + Fotosensor versuchen.
Also Akustische Datenübertragung möchte ich nutzen, weil ich gleichzeitig die Laufzeit zur Berechung des Abstands brauche. Zwar währe ein zweiter Kanal zur Datenübertragung denkbar (allerdings dann gleich Funk, weil nicht immer gegeben ist dass der Lichtstrahl nicht unterbrochen wird (wird für draussen)), aber beides in einem wäre mir natürlich lieber.
Es könnte auch sein, dass die Chinesen zuerst die Bezeichnung entfernt haben und danach verkehrten IC eingelötet haben bzw. als Schutzmasnahme gegen Kopieren ein paar Brücken in Kunststoff als IC versteckt haben.
Ich vermute, dass irgend ein Chinesischer Hersteller das Modul nachgebaut hat und für billig billig den falschen MAX232 aufgesessen ist. Beim Test hats trotzdem funktioniert also wirds schon passen. So besonders ist das Modul ja auch nicht, dass man das reverse-Engineering großartig unterbinden müsste. Wenn dem Hersteller die 5V genügen hätte er sich den MAX232, 1 Transistor, 1 Widerstand und 5 Kondensatoren sparen können.. (der µC hat im übrigen auch keine Beschriftung, aber der tut was er soll)
Als x-Entwickler kenne ich sowas schon lange, dass früher z.B. defekte Dioden als Brücken benutzt wurden um Reparaturen ohne Schaltplan praktisch unmöglich zu machen, weil auswechseln solcher Diode mit guter, das ganze nur noch veschlimmert hat.
Also das ist ja wirklich dreist Heute findet man dafür überall proprietäre Software+LockBits und ASICs..
Inzwischen habe ich viel herumprobiert, und bin heute Vormittag auch ein gutes Stück weitergekommen:
Das Prinzip ist recht simpel: 1Bit=20Wellen 40KHz. Um bei Bit=high den Nulldurchgang der Amplitude zu erzeugen wird zwischen zwei Bits eine Pause von 5µs (+ein wenig CPU-Zeit) gemacht. Das hat zur folge, dass die Empfängerkapsel aus dem tritt kommt und neu einschwingen muss. Der Code ist auch pipieinfach:
Code:
void Tx (uint8_t data)
{
uint8_t stream[2+8+1];
uint8_t i, j;
stream[0]=1;
stream[1]=1;
for(i=0; i<8; i++)
{
stream[2+i] = (data&(1<<i))?1:0;
}
stream[10]=1;
for(i=0; i<2+8+1; i++)
{
for(j=0; j<20; j++)
{
Clear(Tx_PORT, Tx1);
Set(Tx_PORT, Tx2);
_delay_us(12);
Set(Tx_PORT, Tx1);
Clear(Tx_PORT, Tx2);
_delay_us(12);
}
if(stream[i])
_delay_us(5);
}
}
[...]
Tx(0b11000110);
Ich glaube das könnte was werden...
Lesezeichen