- 12V Akku mit 280 Ah bauen         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 22

Thema: Asuro Fototransistor test funktioniert nicht!

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    26.09.2009
    Beiträge
    10
    Anzeige

    LiFePo4 Akku selber bauen - Video
    ok danke... kann ich jetzt aber auf die schnelle nicht testen da der asuro grad bei einem anderen projekt mitglied ist der da mal nach schaut

    habe ihm aber gesagt er soll das programm mal drauf schreiben und die werte überprüfen

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    26.09.2009
    Beiträge
    10
    ich bekomme eine fehlermeldung wenn ich den code compilieren will
    Code:
    #include "asuro.h"
    #include <stdlib.h>
    
    int main (void)
    {
        int t;
    
        unsigned int data[2];
        unsigned char links[7];
        unsigned char rechts[7];
    
        for (t=0;t<25;t++)
        {
            LineData (data);
    
             itoa (data[0], links, 10);
             itoa (data[1], rechts, 10);
    
             SerWrite (text, 6);
             SerWrite ("\n\r", 2);
             SerWrite (test, 6);
             SerWrite ("\n\n\r", 3);
    
             Sleep (215);
        }
        StatusLED (RED);
        return 0;
    }


    Fehlermeldung:

    test.c: In function `main':
    test.c:19: error: `text' undeclared (first use in this function)
    test.c:19: error: (Each undeclared identifier is reported only once
    test.c:19: error: for each function it appears in.)
    test.c:22: error: `test' undeclared (first use in this function)
    make: *** [test.o] Error 1

    > Process Exit Code: 2

  3. #13
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    36
    Beiträge
    5.070
    Hast du text und test deklariert?

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Genau...

    Deine SerWrite zeilen sollten wie das folgende sein:

    Code:
    ...
    SerWrite (links, 6);
    SerWrite ("\n\r", 2);
    SerWrite (rechts, 6);
    SerWrite ("\n\n\r", 3);
    ...

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    26.09.2009
    Beiträge
    10
    ok jetzt funktioniert er^^ jetzt muss ich den nur noch mein kumpel geben

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    05.04.2012
    Beiträge
    18
    ich hab mal ne frage wie kann ich die phototransistoren so programmieren dass beide gleichzeitig weiß und schwarz unterscheiden? geht des überhaupt? also ich will ein programm schreiben dass wenn der boden weiß ist eine bestimmte aktion ausgeführt wird und wenn er schwarz ist etwas anderes gemacht wird. er soll dann im prinziep einen schwarzen punkt auf einer großen fläche finden ist das möglich oder soll ich dafür eine abdunkeln und die andere hell lassen oder so?
    gibt es auch eine möglichkeit dass der asuro den schwarzen gegenstand findet un dann einer schwarzen linie folgt um ihn irgendwo hin zu bringen?hat jemand n lösungsvorschlag?
    Geändert von maikel510 (05.05.2012 um 14:24 Uhr)

  7. #17
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Zitat Zitat von maikel510 Beitrag anzeigen
    ... phototransistoren so programmieren dass beide gleichzeitig weiß und schwarz unterscheiden ...
    Das geht im Prinzip. Du hast diese beiden Phototransistoren an den Eingängen PC2 und PC3 also an ADC2 und ADC3 angeschlossen. Nun kannst Du bei geeigneter Programmierung bzw. Initialisierung der ADCs die aktuelle Spannung an diesen Eingängen abfragen, entweder im Wert 0 ... 255 (8 bittig) oder 0 ... 1023 (10 bittig).

    Die Helligkeitsunterscheidung liefe dann so ungefähr (hier die Werte NUR als Beispiel für 8 Bit):
    0 bis 100 <=> schwarz (bzw. dunkel)
    150 bis 255 <=> weiß (bzw. hell)

    Der SFH300 ist über den für unser Auge sichtbaren Wellenbereich des Lichtes empfindlich, damit sollte die Unterscheidung schon gut gehen.

    Viel Erfolg
    Ciao sagt der JoeamBerg

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    05.04.2012
    Beiträge
    18
    okay dann bin ich schonmal erleichtert dass meine idee möglich ist =D wie müsst ich des dann in nem programm schreiben? also halt dass beide zB einen wert zw 150-255 haben? ich hab schonmal angefangen:

    #include <asuro.h>
    #include <myasuro.h>

    int main (void)
    {

    unsigned int data [2]
    Init();
    FrontLED(ON);
    LineData(data);
    if(
    {

    }




    }

    ich weis jetzt aber nicht was ich nach if schreiben soll
    ich bin ned wirklich gut im programmieren des ist das problem xD

  9. #19
    Neuer Benutzer Öfters hier
    Registriert seit
    05.04.2012
    Beiträge
    18
    okay also ich hab jetzt mal n programm geschrieben aber ich hab da n paar probleme also ich wollt dass mein asuro an der wand entlang fährt und in einer art wohnung also auch mit mehreren zimmern einen gegenstand sucht.
    ich hab jez mithilfe von internet und beispielprogramme ein eigenes programm geschrieben aber er tut ned ganz was er soll...
    ich hab mir des so gedacht:
    wenn der boden weiß ist soll er einen bogen fahren, damit er mit dem taster rechts außen an der wand anstößt. dann dreht er sich ein stück auf der stelle um von der wand weg zu kommen und fährt wieder einen bogen bis zur wand sollte er sich mal zu weit drehen warum auch immer und stößt mit dem linken taster an der wand an dreht er sich wieder so dass er richtig rum steht. sobal der boden unter ihm schwarz wird oder er einen schwarzen gegenstand erreicht bleibt er stehen. dann sollen die backleds blinken und die statusled wechselt mehrfach die farbe (grün-gelb-grün-gelb...). und anschliesend könnte er noch über eine schwarze linie wieder nach draußen finden.

    mein programm funktioniert allerdings nicht wirklich. wenn ich den asuro einschalte dann bleibt er stehen die vordere led leuchtet die backled rechts hinten leuchtet ebenfalls und die statusled leuchtet gelb. ich weis nicht woran es liegt

    hier das programm:

    Code:
    #include <asuro.h>
    #include <myasuro.h>
    
    int main (void)
    {
    
    int anzahlwiederholungen=0, i=6;
    int ldata[2];
    
    
    unsigned int data[2]
    ;unsigned char t1, t2;      <- ich weis nicht warum aber ohne das ";" am anfang wurde mir ein error angezeigt
    
    Init();
    FrontLED(ON);
    LineData(ldata);
    
    
    if(ldata[0]>125,ldata[1]>125)
    	{     
    
      while (1)
      {
        t1 = PollSwitch();
        t2 = PollSwitch();
        if (t1 == 0 && t2 == 0)         /* keine Taste */
        {
          MotorDir(FWD,FWD);          /* Rechtsbogen fahren */
    	  MotorSpeed(150,120);
         /* FrontLED(ON);
          BackLED(OFF,OFF);*/
    
        }
        else if (t1 && t2 && t1 == t2)
        {
          MotorDir(BREAK,BREAK);
          if (t1 & 0x07) /* Tasten links gedrückt? */
          {
            MotorDir(RWD,RWD);       /* auf der Stelle umdrehen */
            MotorSpeed(150,150);
    		
    		/*FrontLED(OFF);
            BackLED(ON,OFF);*/
          }
          if (t1 & 0x38 ) /* Tasten rechts gedrückt? */
          {
            MotorDir(FWD,FWD);       /* Vorwärts Linkskurve */
           	MotorSpeed(100,150);
    		
    	   /* FrontLED(OFF);
            BackLED(OFF,ON);*/
          }
          Msleep(1000);        /* 1 Sekunde fahren */
        }
    
    
    
    	}
    	
    	}
    
    
    else if(ldata[0]<125,ldata[1]<125)
    
    	{
    
    
    	while (anzahlwiederholungen<i)
    		{
    		MotorDir(BREAK,BREAK);
    		MotorSpeed(BREAK,BREAK);
    		StatusLED(GREEN);
    		BackLED(ON,OFF);
    		StatusLED(YELLOW);
    		BackLED(OFF,ON);
    		anzahlwiederholungen++;
    		}
    	
    	}
    	else if(ldata[0]>ldata[1])
    
    	{
    	
    	MotorDir(FWD,FWD);
    	MotorSpeed(175,125);
    	
    	}
    		
    	else if(ldata[0]<ldata[1])
    	
    	{
    	
    	MotorDir(FWD,FWD);
    	MotorSpeed(125,175);
    	
    	}
    
    return 0;
    }

    weis jemand wo der fehler liegen könnte? ich komm irgendwie nicht weiter...
    Geändert von radbruch (05.05.2012 um 21:17 Uhr)

  10. #20
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Was meinst die mit diese If abfrage?

    Code:
    if(ldata[0]>125,ldata[1]>125)
    Versuch dich deine Code so zu schreiben, mit weitere tiefe einsprungen (Tab-Taste) bei jedes neue {} Code-block:

    Code:
    #include <asuro.h>
     #include <myasuro.h>
    
     int main (void)
     {
    
        int anzahlwiederholungen=0, i=6;
        int ldata[2];
    
    
        unsigned int data[2];
        unsigned char t1, t2; <- ich weis nicht warum aber ohne das ";" am anfang wurde mir ein error angezeigt
    
        Init();
        FrontLED(ON);
        LineData(ldata);
    
    
        if(ldata[0]>125,ldata[1]>125)
        { 
            while (1)
            {
                t1 = PollSwitch();
                t2 = PollSwitch();
                if (t1 == 0 && t2 == 0) /* keine Taste */
                {
                    MotorDir(FWD,FWD); /* Rechtsbogen fahren */
                    MotorSpeed(150,120);
                    /* FrontLED(ON);
                    BackLED(OFF,OFF);*/
    
                }
                else if (t1 && t2 && t1 == t2)
                {
                    MotorDir(BREAK,BREAK);
                    if (t1 & 0x07) /* Tasten links gedrückt? */
                    {
                        MotorDir(RWD,RWD); /* auf der Stelle umdrehen */
                        MotorSpeed(150,150);
    
                        /*FrontLED(OFF);
                        BackLED(ON,OFF);*/
                    }
                    if (t1 & 0x38 ) /* Tasten rechts gedrückt? */
                    {
                        MotorDir(FWD,FWD); /* Vorwärts Linkskurve */
                        MotorSpeed(100,150);
    
                        /* FrontLED(OFF);
                        BackLED(OFF,ON);*/
                    }
                    Msleep(1000); /* 1 Sekunde fahren */
                }
            }
    
        }
        else if(ldata[0]<125,ldata[1]<125)
        {
            while (anzahlwiederholungen<i)
            {
                MotorDir(BREAK,BREAK);
                MotorSpeed(BREAK,BREAK);
                StatusLED(GREEN);
                BackLED(ON,OFF);
                StatusLED(YELLOW);
                BackLED(OFF,ON);
                anzahlwiederholungen++;
            }
    
        }
        else if(ldata[0]>ldata[1])
        {
            MotorDir(FWD,FWD);
            MotorSpeed(175,125);
        }
        else if(ldata[0]<ldata[1])
        {
            MotorDir(FWD,FWD);
            MotorSpeed(125,175);
    
        }
    
        return 0;
     }
    Das macht deine Code viel übersichtlicher.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 06.02.2010, 21:29
  2. Antworten: 4
    Letzter Beitrag: 29.09.2009, 18:13
  3. test.c funktioniert nicht
    Von newbie978 im Forum Asuro
    Antworten: 9
    Letzter Beitrag: 28.12.2008, 00:42
  4. Fototransistor T9 funktioniert nicht
    Von mashine-obf im Forum Asuro
    Antworten: 19
    Letzter Beitrag: 18.01.2008, 10:22
  5. Antworten: 7
    Letzter Beitrag: 25.01.2007, 14:00

Berechtigungen

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

Labornetzteil AliExpress