www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Attiny2313 und SRF08 Problem


Autor: smufte (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Giuseppe G. (Firma: ACS) (gcrax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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?

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

Bewertung
0 lesenswert
nicht 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

Autor: Giuseppe G. (Firma: ACS) (gcrax)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: smufte (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.