-         

Ergebnis 1 bis 2 von 2

Thema: SR04 mit C Programm Ansteuern.

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    02.02.2013
    Beiträge
    6

    SR04 mit C Programm Ansteuern.

    Anzeige

    Update:
    Hatte das Tutorial von pinsel gesehen und wollte auch gerne zwei SR04 mit meinem Raspi einsetzten.
    http://www.roboternetz.de/community/...spi-auf-Ketten

    Hatte jetzt ein C Programm geschrieben das zwar Werte zurück liefert.
    Allerdings beträgt die Streuung bis zu 20% und ab einer Distanz von ca 50cm ist das Ergebniss nicht mehr zu gebrauchen.Das letzte liegt wohl daran das ich das Modul bei 3.3V betreibe. Andererseits habe ich hier auch keine Idealen Testbedingungen. Weiss vielleicht jemand eine gute Funktion um die Zeit zu stoppen habe jetzt time(),gettimeofdate(),CLOCK_GETTIME() ausprobiert und bin mir nicht sicher ob die Ergebnisse so optimal sind.
    Habe auch schon mit Interrupts experimentiert. Macht das ganze etwas sparsamer aber die Streuung bekomme ich damit auch nicht in den Griff.
    Werde in nächster Zeit mal einen Spannungteiler aufbauen um den Sensor mit 5V zu betreiben, muss nur ersmal sichten ob ich noch passende Widerstände rumfliegen habe . Vielleicht wird dann auch die Streuung besser.
    Vielen dank und freundliche Grüße
    Catedral

    Code:
    
    #include <wiringPi.h>
    #include <unistd.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdint.h>
    #include <time.h>
    
      int TRIGGER = 6;
      int ECHO = 7;
      struct timespec ts_res, ts_start, ts_end;
    
    
      void Starttime (void)                            //Funktion speichert Startzeit
      {
    
    	  clock_gettime(CLOCK_MONOTONIC, &ts_start);
    
      }
      void Endtime (void)                              //Funktion speichert Endzeit
        {
    	  clock_gettime(CLOCK_MONOTONIC, &ts_end);
        }
    
      int main (void)
    {
    
    
    
    
    
    printf ("Ultrasonic Measurement\n") ;
    
    
    if (wiringPiSetup () == -1)
        exit (1) ;
    
    
    	  while(1)
    
     {
    
    		  clock_getres(CLOCK_MONOTONIC, &ts_res);
    		  pinMode (ECHO, INPUT) ;
    		  pinMode (TRIGGER, OUTPUT);
    
    	  digitalWrite(TRIGGER,0);
    	  sleep(0.5);
    	  digitalWrite(TRIGGER,1);
    	  delayMicroseconds (10);
    	  Starttime();
    	   	digitalWrite(TRIGGER,0);
    
    
    while(0==digitalRead(ECHO))                          //Warten das Burst gesendet wird
    {
    }
    Starttime();
    
    while(1==digitalRead(ECHO))                         //Warten auf Reflektion
    		{
    		}
    Endtime();
    
    
    
    
    
    
    
    
    			long int elapsed=(ts_end.tv_nsec-ts_start.tv_nsec);		//Zeit unterschied
    	 		long int distance = elapsed/29070;						//ns>>cm
    	 				  distance = distance/2;						//Strecke 2 mal durchlaufen
    	 		printf ("Abstand: %ld cm \n", distance);
    	 		delay(1000);
     }
    
      return 0 ;
    
    
    }
    Geändert von Catedral (25.03.2013 um 10:54 Uhr)

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Hallo,

    der SR04 ist für eine 5V Spannung gedacht.
    Wenn du ihn mit 3,3V betreibst, misst er super ungenau.
    Betreibe ihn mit 5V und statte den Echo-Pin mit einem Spannungsteiler aus zwei 10k Widerständen aus.
    Dann hast du die Genauigkeit zurück und das Pi kommt damit klar
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

Ähnliche Themen

  1. Programm Schrittmotor ansteuern mit rn minicontrol und rn step 297
    Von hardl50 im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 1
    Letzter Beitrag: 08.06.2013, 13:41
  2. Probleme mit HC-Sr04
    Von bruger im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 04.01.2013, 09:50
  3. [ERLEDIGT] Abfrage Ultraschallsensor HC-SR04 unter BASCOM
    Von JoeM1978 im Forum Sensoren / Sensorik
    Antworten: 14
    Letzter Beitrag: 15.11.2012, 18:04
  4. Ultraschallsensor HC-SR04 Probleme ungenauigkeit
    Von anfaenger201 im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 04.08.2010, 15:06
  5. Warum kann ich 2 LED's mit diesem Programm nicht ansteuern.!
    Von RIFMAN im Forum C - Programmierung (GCC u.a.)
    Antworten: 18
    Letzter Beitrag: 12.04.2007, 13:52

Berechtigungen

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