Gast
#1710265
Hallo zusammen,
bis jetzt konnte ich die entfernung ganz genau zwischen meinem sensor
und jedem objekt messen und die messwerte in einer LCD darstellen.
schaltung:
my Avr board(atmega8) +2 SRF02 sensoren
meine frage jetzt:
ich will nur die enfernung zwischen den sensoren messen?
ich habe so eine idee und zwar eine srf02 als sender und ein zweite als
empfänger.
srf02-1 sendet ein thon(signal) mit dem befehl 0x5C
und der srf02-2 empfängt es aber in microsekunde( befehl 0x58)
und dann habe ich die zeit und dei shall-geschwindigkeit, daraus kann
man die entfernung berechnen. x=v.t
ich habe es so programmiert aber leider ich mache irgendwas falsch ich
bekomme nur waiting....wartend auf den wert..
ich habe die slaveId der sensoren geändert:sender 0xE2/ empfänger 0xF2
mein code ich benutze lib von fleury)
………
#define USaddrS 0xE2 //Sender-adresse
#define USaddrR 0xF2 //Empfänger-adresse
//sender
i2cStart(USaddrS);
i2cWrite(USaddrS);
i2cWrite(0);
i2cWrite(0x5C);//ein thon senden nch datenblatt
i2cStop();
//empfänger
i2cStart(USaddrR);
i2cWrite(USaddrR);
i2cWrite(0);
i2cWrite(0x58);//zeit in mics
i2cStop();
i2cStart(USaddrR);
i2cWrite(USaddrR);
distance2=i2cReadNak();
warten bis die messung fertig ist
while( i2cReadNak()==255)
{
lcdClear();
lcdGoto(1,1);
lcdWriteText("waiting...");
}
i2cStop();
//empfänger
i2cStart(USaddrR);
i2cWrite(USaddrR);
distance1=i2cReadAck();
distance2=i2cReadNak();
lcdClear();
lcdGoto(1,1);
lcdWriteText(toString(distance1));
lcdGoto(2,0);
lcdWriteText(toString(distance2));
……….
vielen dank im voraus.
sorry für doppel..