- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 9 von 9

Thema: Asuro Helligkeitsbestimmung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ich hab mal etwas an deinem Programm rumgefummelt:
    Code:
    // asuro steuert Sortieranlage
    
    // https://www.roboternetz.de/community/threads/58103-Asuro-Helligkeitsbestimmung
    
    #include "asuro.h"
    
    unsigned int data[2]; //Initialisiert zwei Int-werte hintereinander
    
    int main(void)
    {
    	Init();
    
    	MotorDir(BREAK,FWD); //Abwerfen des Steines
    	MotorSpeed(0,240);
    	Msleep(1900);
    	MotorSpeed(0,0);  // Motor abbremsen
    	Msleep(500);
    
    	StatusLED(YELLOW); //Bewegung des Förderbands
    	MotorDir(FWD,BREAK);
    	MotorSpeed(240,0);
    
    	do
    		LineData(data);
    	while ((data[0]>90) && (data[0]<110)); // solange Helligkeit zwischen 90 und 110
    
    	Msleep(100); // Gegenstand erkannt. Noch etwas weiterfahren (wegen Kante)...
    	LineData(data); // und erneut den Wert einlesen
    
    	if (data[0] >= 400) // heller als 399? Richtigen Gegenstand erkannt, weiterfördern
    	{
    		StatusLED(GREEN);
    		// MotorSpeed(240,0);
    		Msleep(10000);
    	}
    	else // falsche Farbe, zurückfördern
    	{
    		StatusLED(RED);
    		MotorSpeed(0,0);
    		Msleep(500);
    		MotorDir(RWD,BREAK);
    		MotorSpeed(240,0);
    		Msleep(10000);
    	}
    
    	MotorSpeed(0,0); // Band anhalten
    	while(1){StatusLED(RED); Msleep(100); StatusLED(OFF); Msleep(300);} // Programmende
    	return 0;
    }
    (ungetestet)

    Ich hoffe, dass funzt so.

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    22.12.2011
    Beiträge
    8
    Danke für deine Hilfe. Am Ende des Programms blinkt mein Asuro nur grün mit der Status LED, warum beginnt das Programm nicht wieder von neuem?
    Gruß
    Tom

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo Tom

    Schön, wenn es halbwegs funktioniert. Allerdings sollte die StatusLED rot blinken. Das ist aber nicht weiter schlimm.

    Das Programm beginnt deshalb nicht von vorne, weil ich doch gar nicht weiß, was du noch alles einbauen willst. Eigentlich ging es doch nur darum:
    Könnte mir mal jemand nen Ansatz dafür Posten.
    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    22.12.2011
    Beiträge
    8
    Okay danke. Ich glaube die StatusLED blinkt deshalb rot, da ich sie vermutlich falschherum eingelötet habe. Also den Pol für Rot und grün vertauscht habe.

    Funktioniert es so in der Schleife? Das komplimieren klappt, der Roboter mach hingegen nichts, nur die StatusLED ist rot.
    Code:
    // asuro steuert Sortieranlage
    
    // https://www.roboternetz.de/community...eitsbestimmung
    
    #include "asuro.h"
    
    unsigned int data[2]; //Initialisiert zwei Int-werte hintereinander
    
    int main(void)
    {
    	Init();
    	
    	while(1);
    		{
    		MotorDir(BREAK,FWD); //Abwerfen des Steines
    		MotorSpeed(0,240);
    		Msleep(1900);
    		MotorSpeed(0,0);  // Motor abbremsen
    		Msleep(500);
    	
    		FrontLED(ON);      //Beleuchtung an
    		StatusLED(YELLOW); //Bewegung des Förderbands
    		MotorDir(FWD,BREAK);
    		MotorSpeed(240,0);
    
    		do
    			LineData(data);
    		while ((data[0]>22) && (data[0]<220)); // solange Helligkeit zwischen 22 und 79
    
    		Msleep(100); // Gegenstand erkannt. Noch etwas weiterfahren (wegen Kante)...
    		LineData(data); // und erneut den Wert einlesen
    
    		if (data[0] >= 80) // heller als 399? Richtigen Gegenstand erkannt, weiterfördern
    		{	
    			FrontLED(OFF);
    			StatusLED(GREEN);
    			MotorSpeed(240,0);
    			Msleep(5000);
    		}
    		else // falsche Farbe, zurückfördern
    		{
    			FrontLED(OFF);
    			StatusLED(RED);
    			MotorSpeed(0,0);
    			Msleep(500);
    			MotorDir(RWD,BREAK);
    			MotorSpeed(240,0);
    			Msleep(6000);
    		}
    
    	MotorSpeed(0,0); // Band anhalten
    	StatusLED(OFF);
    	} // Programmende
    	return 0;
    }
    Gruß
    Geändert von radbruch (08.06.2012 um 13:46 Uhr)

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    while(1);
    ______^______
    Das Semikolon ; muss weg.
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    22.12.2011
    Beiträge
    8
    Danke, jetzt funktioniert's.
    Die Dioden sind wie auf dem Bild installiert. Sind sie so vom außenlicht unabhänging? Oder soll ich oben noch ne Abdeckung drauf machen?
    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_8742.jpg
Hits:	7
Größe:	40,8 KB
ID:	22538

    Gruß
    Tom
    Geändert von Tom95 (08.06.2012 um 22:48 Uhr)

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 07.06.2021, 13:38
  2. Antworten: 3
    Letzter Beitrag: 05.08.2008, 21:58
  3. Antworten: 35
    Letzter Beitrag: 28.01.2008, 16:24
  4. Antworten: 3
    Letzter Beitrag: 15.05.2007, 12:35
  5. Antworten: 0
    Letzter Beitrag: 21.08.2006, 16:31

Berechtigungen

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

Labornetzteil AliExpress