-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Sharp Gp2D12

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398

    Sharp Gp2D12

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo,
    ich wollte meinem Roboter einen Sharp GP2D12 verpassen.
    Ich habe den Sensor auch schon. Aber da er nicht sehr billig war, möchte ich nicht rumexperimentieren bis er kaput ist, sondern lieber direkt fragen wie ich ihn richtig anschliessen muss.
    Mein Roboter funktioniert mit einem PIC und wird in c oder c++ programiert.
    ICh brauche nur ein digitales signal um zu wissen ob etwas vor meinem roboter steht oder nicht.
    der sensor hat drei kabel: GND und Vcc ist klar, aber wie und wo stecke ich Vo an???
    Am Pic, damit ein pin kontakt macht, macht man ja zum beichspiel einen schalter an einen pin und an masse. wie mache ich das dann hier?
    Könnte man das auch mit einem Relais regeln oder gibt es eine einfachere lösung?
    viele grüsse
    tornado

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.03.2004
    Alter
    68
    Beiträge
    487
    Schau mal hier (ganz unten auf der Seite ist ein Anschluss-Diagramm):

    http://www.mikroelektronika.co.yu/en...l/project0008/

    Gruß, Günter

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.08.2004
    Ort
    Winterthur
    Beiträge
    312
    Hallo

    Vout ist der analoge Ausgang des Sensors. Dort "kommt eine Spannung raus", die sagt, wie weit das Objekt entfernt ist. Normalerweise schliesst man das an einen analogen Eingang des PIC's an. Da Du sowieso in C programmierst, sollte auch der ADC kein grosses Problem sein. Schau mal im Compiler-Handbuch nach.

    Wenn Du trotzdem kein Analog-Signal messen willst, kannst Du das Ausgangssignal mit einem Komparator digitalisieren (siehe Attachement).

    Gruess
    Fritzli
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken comp.png  

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398
    OK, dann verwende ich wohl doch lieber das analoge signal und programiere den rest halt.
    welcher PIN ist den eigendlich analog oder digital beim PIC (PIC16F876) oder PIC16F876A

    das mit dem direkt an einen pin anschliessen... bei meinem roboter wird nichts direkt an einen pin angeschlossen, das geht alles erst noch durch ein ic (40106) wofÚr ist der? kann ich da den sharp anschliessen?

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398
    @günter49
    ich sollte wohl erst lesen und dann fragen
    ok, also in dem anschlussdiagramm steht, dass man den direkt an den PIN RA2 anschliessen kann. ist das bei meinem PIC auch so?
    jetzt werde ich mir mal den code durchlesen um zu sehen wie man das programiert damit der auch richtig mit den daten umgeht

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398
    Heute ist wohl nicht mein Tag...
    OK, also ich kann dieses KAbel wie auf dem Anschlussdiagramm auch direckt an meinen Roboter anschliessen.
    Ich habe jetzt gesehen welche die analogen EingÄnge sind. Die analogen Eingänge gehen auch nicht durch dieses IC...
    OK also den Sharp richtig anschliessen ist kein Problem mehr, danke fúr eure HIlfe.
    Jetzt muss er "nur noch" programiert werden. Damit werde ich mich die nÄchsten Tage beschÄftigen (ich werde auch den einen Teil von diesem fertigen Code benutzen).
    Danach melde cih mich wieder und sage ob es funktioniert oder ob der sharp angefangen hat zu rauchen

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    17.04.2006
    Beiträge
    2.193
    Der 40106 enthält 6 invertierende CMOS-Schmittrigger, die in etwa die Funktion des oben gezeigten Komparators hätten. Der Haken: die Schwelle, an der geschaltet wird, kannst Du nicht direkt beeinflusse und genau ist sie auch nicht wirklich. Nimm also bitte einen Analogeingang, welcher da in Frage kommt, müsste mal jemand aus der PIC-Ecke beantworten, ich komm von der anderen Seite des Grabens, über den die Schlacht tobt (Atmel).

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398

    Ah

    Danke shaun, dafür ist also der 40106.
    OK, ich werde das über den analogen Eingang machen.

    ich habe schon ein StÜck Code geschrieben.
    am PC funktioniert der Code auch.
    Also die "cout" müssten dann spÄter, anhalten, abbiegen oder so sein.
    ich zeige euch den mal weil ich noch eine Frage habe.

    Am PC, um es erst nur so zu probieren habe ich ein "cin" gemacht bei dem ich den Wert der über Vo kommt zu "simulieren".

    Wie müsste ich das dann machen wenn das Programm im Roboter wÄre (sharp hÄngt am PIn RA1, ein analoger Pin).

    1. Wie sage ich ihm, dass das was "reinkommt" = die Variabel "wert" ist?
    2. Muss ich den Wert noch mal 100 multiplizieren? ICh sage das weil in dem array was ich oben habe alles mal 100 multipliziert wurde.
    Code:
    #include <iostream.h>
    #define Sharp RA1  //Sharp GP2D12  Vo an PIN RA1 (analog)
                       //PIC 16F876  @ 1MHz
    int main(){       
       
        int distance [10] = {9,  8, 10, 20, 30, 40, 50, 60, 70, 80};//Werte aus der Sharp Tabelle
        int value [10] =    {9,260,240,140, 96, 77, 62, 55, 49, 41};//  idem    
        int a;
        int wert;
    do{   
        cout<<endl<<"Geben sie einen Wert ein"; //das würde Sharp 
        cin>>wert;                              // selber machen
    
        for  (a=0;a<=9;a++){
            if (wert == value [a]){
                    cout<<distance [a];
            }
            else if (wert<value[a-1]&& wert>value[a]){
                   cout<<distance[a-1]+5; //bis zu 4cm max Ungenauigkeit  
            }                             //damit kann ich im Moment leben 
            else if (wert < value[a]||wert<40){     
            }        
        }//for
    }while (wert != 0); //das muss ein Wert sein den der Sharp nie ereicht   
    }//()

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.08.2004
    Ort
    Winterthur
    Beiträge
    312
    Das hängt davon ab, welchen PIC Compiler du hast?

    Die haben da jeder eine etwas andere Benamsung der Funktionen

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.03.2005
    Ort
    Spanien
    Alter
    33
    Beiträge
    398
    Da muss ich noch mal nach gucken...
    also die fertige *.hex datei kommt mit hilfe von IC Prog auf den PIC.
    Um die *.hex datei mache ich mit... ne, ich werde morgen mal gucken... ich glaube mit "mp lap" oder so...

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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