Forum: Mikrocontroller und Digitale Elektronik Attiny2313 und SRF08 Problem


von smufte (Gast)


Lesenswert?

Hallo

Hab mal aus reiner Neugier mein Attiny2313 mit einem LCD Display und Dem 
Ultraschallmodul SRF08 verbunden. Natürlich ist das modul an die 
richtigen Anschlüsse des Controllers angeklemmt (SCK u. SDA). Das 
Programm ist in Bascom geschrieben. Mein Display zeigt mir auf einfache 
Art und Weise die Reichweite in cm an. Der Messbereich geht bis ca 80cm. 
Laut Beschreibung kann er aber auch bei 6m o. 11m liegen. Mit dem 
Register 2 hab ich die Reichweite auf 100 (6m) gesetzt. Die Auswirkungen 
sind gleich 0.
Ich hab selbst vieles bereits durchprobiert. Pullupwiderstände bringen 
kein brauchbares ergebniss, Kondensator am Controller von 100n ist 
vorhanden.
Allerdings konnte ich durch ein kurzzeitiges anschliessens eines 
Wiederstandes von 10K & weniger von SDA gegen Masse die gewünschte 
Reichweite erzielen.

Kennt jemand dieses Phänomen, oder hab ich einfach nur etwas evtl. nicht 
beachtet?

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

Hi,

wie wärs denn mal mit nen code??? ner schaltung??? dann können wir dir 
auch weiterhelfen...
LG Giuse

von Karl H. (kbuchegg)


Lesenswert?

smufte schrieb:

> Allerdings konnte ich durch ein kurzzeitiges anschliessens eines
> Wiederstandes von 10K & weniger von SDA gegen Masse die gewünschte
> Reichweite erzielen.

?
Was hat das Anschliessen eine Pulldown Widerstands an SDA (== 
Übertragungsbus I2C) mit der Reichweite des Moduls zu tun?

von smufte (Gast)


Angehängte Dateien:

Lesenswert?

Ja Hi

Sinn ergibt der Wiederstand allerdings für mich auch nicht, da es ja ein 
Kurzschluss auf dem Port ist oder?

hier mal der Code und die Schaltung in einfachster weise. LCD Display 
ist nicht mit eingezeichnet.

$regfile = "ATtiny2313.dat"
$crystal = 1000000
$hwstack = 32
$swstack = 10
$framesize = 40
Config Lcdpin = Pin . Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , 
Db7 = Portb.3 , E = Portd.5 , Rs = Portd.6
Config Lcd = 16 * 2
Cursor Off
Cls

Config Scl = Portb.7
Config Sda = Portb.5
Dim Entfernungus As Integer
Dim Weite As String * 3
Dim Msb As Byte
Dim Lsb As Byte


Do

I2cstart                            'Messung auslösen
I2cwbyte &HE0                       '&HE0 1. Adresse für diesen Baustein
I2cwbyte 0                          'Register 0 - Befehlsregister
I2cwbyte 81                         'Befehl 81 - Messung in cm
I2cstop

I2cstart
I2cwbyte &HE0                       '&HE0 1. Adresse für diesen Baustein
I2cwbyte 1                          'register "Verstärkung"
I2cwbyte 100 
'Verstärkungslimit
I2cstop

I2cstart
I2cwbyte &HE0                       '&HE0 1. Adresse für diesen Baustein
I2cwbyte 2                          'register "reichweite"
I2cwbyte 100                        'Bereich
I2cstop

Waitms 70                           'delay 70mS auf Ergebnis warten

I2cstart
I2cwbyte 224                        'E0 Addresse vom 1. US
I2cwbyte 2                          'Register 2 (+3) = 1. Entfernung

I2cstart
I2cwbyte 225                        'Leseadresse (E1)
I2crbyte Msb , Ack                  'Register 2 lesen
I2crbyte Lsb , Nack                 'Register 3 lesen
I2cstop

Entfernungus = Makeint(lsb , Msb)
Weite = Str(entfernungus)
Weite = Format(weite , "   ")
Locate 1 , 1
Lcd "Entfernung:" ; Weite ; "cm"

Loop
Return

von Giuseppe G. (Firma: ACS) (gcrax)


Lesenswert?

Hi smufte,

schon geprüft ob der MC auch mit dem richtigen takt von 1MHz versorgt 
wird? oder ob fuses gesetzt worden sind?
meist liegt es entweder an der schaltung oder an den fuses :-)
code scheint auf anhieb ok zu sein, werd mal heut mittag reinsehen und 
dann evtl. nochmal berichten...
lg giuse

von smufte (Gast)


Lesenswert?

Hallo

Ich glaub das Problem ist gar kein Problem.

Ich hab vergessen, das dieses Modul auch einen großen Abstrahlwinkel 
besitzt.
Das hat sich naürlich auch auf das Messergebniss ausgewirkt. Der 
Widerstand den ich kurzzeitig von SDA nach masse gelegt hatte, hat 
möglicherweise nur Fehler verursacht die ich wohl falsch gedeutet hatte. 
Jedenfalls misst er die genaue reichweite, wenn sich nichts in 
unmittelbarer nähe befindet.

trotz allem vielen Dank für die Mühe......

MfG Smufte

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.