-
        

Ergebnis 1 bis 5 von 5

Thema: ADC Kanäle als ausgang nutzen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.09.2007
    Ort
    Preetz
    Alter
    30
    Beiträge
    150

    ADC Kanäle als ausgang nutzen

    Anzeige

    Hallo,

    bisher hat es mir gereicht mit dem was der RP6 an Bord hat herumzutüfteln, jetzt möchte ich jedoch die beiden freien ADC Ports als Ausgänge nutzen.

    1. Welche Befehle benötige ich, um sie als Ausgang zu definieren und um sie mit 1 oder 0 zu belegen?
    - Ich bitte darum, alle Befehele mit einer kleinen Erläuterung zu versehen.

    2. Ich möchte einen SRF02 an den I²C Bus hängen und im Handbuch meine ich irgendetwas von Pullup Widerständen gelesen zu haben, um immer ein eindeutiges Potential auf der SDA- und SCL- Leitung zu haben.
    Letztendlich werden doch einfach nur irgendwo, wo platz ist, ein Widerstand zwischen der SDA-Leitung und VDD und einer zwischen der SCL-Leitung und Vdd eingelötet oder? Wieviel kOhm sind ratsam? 10k oder 47k?

    Ich habe das tolle Buch "C von A bis Z" gelesen, aber leider kommen da die Microcontroller bezogenenen Funktionen nicht vor. Gibt es ein gutes Buch über Microcontroller bezogene Programmierung in C?

    Vielen Dank im Vorraus!

    WarChild
    (c) Rechtschreibfehler sind rechtmäßiges Eigentum des Autors (c)

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Hallo WarChild,

    Zu 1:
    DDRA |= (ADC0 | ADC1); // PA0, PA1 als Ausgänge definieren
    PORTA |= ADC0; // PA0 high
    PORTA &= ~ADC0; //PA0 low

    Zu 2:
    Auf dem RP6-Mainboard sind die I2C-Pullups schon drauf (R32/33 4,7kOhm).

    Gruß Dirk

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.09.2007
    Ort
    Preetz
    Alter
    30
    Beiträge
    150
    Danke!!!

    mfg WarChild
    (c) Rechtschreibfehler sind rechtmäßiges Eigentum des Autors (c)

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    07.12.2007
    Ort
    Berlin
    Alter
    33
    Beiträge
    211
    wie schnell arbeiten die Ultraschall Sensoren ? könnte man diese auf einem Servo einsetzen, welcher sich inner halb von 2sek. hin und zurück dreht? -also die vollen 180° ausnutzt?

    Danke

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.09.2007
    Ort
    Preetz
    Alter
    30
    Beiträge
    150
    Natürlich kann der SRF02 während der 180° drehung Messwerte aufnehmen, die frage ist nur wieviele.

    Prinzipiell wird jedesmal wenn man den SRF02 über I2C anspricht eine Messung ausgeführt.
    jedesmal wenn dieser code durchlaufen ist hat man einen Wert:
    Code:
    Function Srf02_entfernung(byval Slaveid As Byte) As Integer
    Local Lob As Byte
    Local Hib As Byte
    Local Firmware As Byte
    Local Temp As Byte
    Local Slaveid_read As Byte
    slaveid_read = Slaveid + 1
    'Messvorgang in starten
    I2cstart
    I2cwbyte Slaveid
    I2cwbyte 0
    I2cwbyte 81 'in Zentimetern messen
    I2cstop
    Waitms 65 'minimale Wartezeit für Messung
    bei SRF02
    I2cstart
    I2cwbyte Slaveid
    I2cwbyte 2 'Leseregister festlegen
    Also: mann muss zwei Bytes via I2C schreiben, 65ms warten und dann zwei Bytes auslesen. Das darf max. 75ms dauern. Bei 2 sec. Schwenkzeit, also von ganz links nach ganz rechts, sind das 26,66 messwerte, also alle 6,75° ein Messwert.

    Das ganze ist aber enorm timing abhängig, wenn du damit einen Rundumscann der Umgebung machen willst.

    mfg WarChild
    (c) Rechtschreibfehler sind rechtmäßiges Eigentum des Autors (c)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •