- LiFePO4 Speicher Test         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 26

Thema: US-Erweiterung Problem

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.07.2010
    Alter
    35
    Beiträge
    228
    Anzeige

    Powerstation Test
    Auf den Bildern wirst du aber net viel erkennen denke ich / weder kalte lötstellen, noch Widerstandswerte und auch die Verbindungen der Bauteile sind nicht ordentlich auf dem Bild erkennbar. Und mir gehts bei dem Hardwarefehler im moment mehr um Teile die evtl defekt sein könnten.

    Die Lötstellen hab ich mittlerweile zum 5mal kontrolliert, selbst alle widerstände kontrolliert das keiner falsch eingelötet ist und die Verbindungen mehrmals mit der Schaltung kontrolliert.

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.07.2010
    Alter
    35
    Beiträge
    228
    Mir ist gerade aufgefallen, wenn ich beide US-Kapseln mit dem Isolierten Teil nach oben einlöte, liegt an der einen Kapsel am isolierten Beinchen der + Pol an und beim anderen der - Pol. Ist das entscheidend oder ist die Polarität hier egal?

    genutzte anleitungen:

    http://www.arexx.com/downloads/asuro/us_bauplan.zip

    http://www.andreae-gymnasium.de/inha...hallsensor.pdf

    + Ausro Band I

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    08.12.2008
    Ort
    Germering
    Beiträge
    37
    Hallo Ezalo,
    durch deine Fragen zu diesem US-Teil angeregt, habe ich es wieder herausgesucht und zum 100-tausendsten Mal versucht, es in Betrieb zu
    nehmen.
    Ergebnis: Wie schon vor Jahren = Negativ, Mißerfolg, Frust...
    distanz in cm ist immer 0

    Habe auch mal an den Pins der Sensoren gemessen, ob da eine Spannung
    anliegt ---> Nein, kein gar nix.

    Also ich tendiere stark dazu das lausige Teil zu verschrotten.

    An der Erweiterung des Asuro funktioniert Snake Vision übrigens prima.

    Falls du das Teil doch noch zum Laufen bekommst, schreib mal wie.

    Freundliche Grüße und nicht den Mut verlieren. Der Asuro kann noch viele
    andere dolle Kunststücke.
    Olaf

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.08.2004
    Ort
    Zwolle
    Alter
    68
    Beiträge
    531
    Hallo,

    Euh... bin da nicht sicher aber sollte da bei deinem zweiten Program nicht zuerst die InitUltrasonics() Funktion angerufen werden?

    Wenn 'abstand = Chirp();' ersatzt wird von 'abstand = 1234;' komt da die Wert 1234 heraus?


    Gruss,

    Arexx-Henk

  5. #15
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.07.2010
    Alter
    35
    Beiträge
    228
    Der Code ist aus der Anleitung des 2. Links kopiert.

    Hab gestern das Programm von "luma" aus folgendem Thread: https://www.roboternetz.de/phpBB2/ze...chall&start=22 geflasht und es kommt dauern nur 0 auf dem Bildschirm. Es kann ja dann eigentlich nur noch irgendwo was nich mit der Hardware stimmen

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.07.2010
    Alter
    35
    Beiträge
    228
    Wenn ich mein Ohr an die rechte Kapsel (von vorn draufgeschaut) ranhalte, hör ich ein leises "klacken" was wohl soviel heißt das ein Signal gesendet wird. Die Spannung die ich dabei Messe liegt bei 2,38-2,42V diese sinkt als ständig und steigt wieder. Was wohl soviel heißt das die Kapsel i.O. ist. Wäre vllt doch mal jmd so nett die Spannung an der Rechten kapsel (wohl empfänger) zu messen?

    Wenn der Sender ein Signa ausgibt bedeutet dies dann gleichzeitig das der IC i.O. ist?

  7. #17
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.07.2010
    Alter
    35
    Beiträge
    228
    So, hab die Platine einem Arbeitkollegen gegeben. Der hat mehr möglichkeiten das ganze mal durchzumessen und so (Oszi und co.). Am Ende hat sich herrausgestellt das sich eine Verbindung vor dem löten "gedrückt" hat :-O

    Und Zwar einer der Anschlüsse des Potis hatte keine Verbindung zum IC.
    Habe das ganze jetzt mit folgendem Programm getestet:

    Code:
    #include "asuro.h"
    #include "ultrasonics.h"
    
    
    int main(void)
    {
    	// Variablen
    	int chirpData = 0;
    	
    	// Asuro initialisieren
    	Init();
    	set_sleep_mode(SLEEP_MODE_IDLE);
    	
    	for(;;) {
    		chirpData = Chirp(TRUE);
    		PrintInt(chirpData);
    		SerWrite("  ", 2);
    		// Bischen warten und dabei Stromsparen
    		sleep_mode();
    		MSleep(250);
    	}
    	
    	return 0;
    }
    Im Terminal kommt jetzt entweder ein Wert größer 0 oder es kommt "0 0". Danach kommt erst wieder ein Signal wenn ich die Senderkapsel antippe.

    Werde heute mal weiter probieren.

    Edit:

    Das war jetzt wohl nur eine Einstellungssache des Potis ^^ Bekomme allerdings erst bei einem Abstand von ca. 10cm akzeptable Werte im Terminal zu sehen. Aber vllt lässt sich da ja noch was machen.

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.07.2010
    Alter
    35
    Beiträge
    228
    Hallo,

    da bin ich wieder mit dem Problem ^^

    Folgendes:

    Habe nun verschieden Programme probiert und sie laufen auch wie sie es machen sollen. Sobald ich aber folgendes Programm umänder:

    Code:
    #include "asuro.h"
    
    void LocalInit(void)
    {
    	// Change Oscillator-frequency of Timer 2
    	// to 40kHz, no toggling of IO-pin:
    	TCCR2 = (1 << WGM21) | (1 << CS20);
    	OCR2 = 0x64;						// 40kHz @8MHz crystal
    	ADCSRA = 0x00;					// ADC off
    	// Analog comparator:
    	ACSR = 0x02;						// Generate interrupt on falling edge
    	ADMUX = 0x03;						// Multiplexer for comparator to
    													// ADC pin 3
    	SFIOR |= (1 << ACME);		// Enable muliplexing of comparator
    	DDRD &= ~(1 << 6);			// Port D Pin 6 is input!
    }
    
    
    void Ping(unsigned char length)
    {
    	count72kHz = 0;
    	TCCR2 = (1 << WGM21) | (1 << COM20) | (1 << CS20);
    													// Toggling of IO-Pin on
    	
    	// generate the Chirp
    	while(count72kHz < length) {
    		OCR2 = 0x64 + length / 2 - count72kHz;
    	}
    	
    	TCCR2 = (1 << WGM21) | (1 << CS20);		// Toggling of IO-Pin off
    	OCR2 = 0x64;													// set frequency to 40kHz
    }
    
    
    int main(void)
    {
    	int pos, i;
    	int posmarker;
    	Init();
    	LocalInit();
    	while(TRUE) {
    		posmarker = 0;
    		Ping(20);
    		for(pos = 0; pos < 100; pos++) {
    			Sleep(10);
    			if((ACSR & (1 << ACI)) != 0) {
    				if(posmarker == 0) { posmarker = pos; }
    			}
    			ACSR |= (1 << ACI);
    		}
    		if(posmarker > 10) {
    			StatusLED(GREEN);
    			MotorDir(FWD, FWD);
    			MotorSpeed(200, 200);
    		}
    		else {
    			StatusLED(RED);
    			MotorDir(FWD, RWD);
    			MotorSpeed(0, 200);
    			for(i = 0; i<100; i++) { Sleep(200); }
    		}
    	}
    	
    	return 0;
    }
    auf:

    Code:
    #include "asuro.h"
    
    void LocalInit(void)
    {
    	// Change Oscillator-frequency of Timer 2
    	// to 40kHz, no toggling of IO-pin:
    	TCCR2 = (1 << WGM21) | (1 << CS20);
    	OCR2 = 0x64;						// 40kHz @8MHz crystal
    	ADCSRA = 0x00;					// ADC off
    	// Analog comparator:
    	ACSR = 0x02;						// Generate interrupt on falling edge
    	ADMUX = 0x03;						// Multiplexer for comparator to
    													// ADC pin 3
    	SFIOR |= (1 << ACME);		// Enable muliplexing of comparator
    	DDRD &= ~(1 << 6);			// Port D Pin 6 is input!
    }
    
    
    void Ping(unsigned char length)
    {
    	count72kHz = 0;
    	TCCR2 = (1 << WGM21) | (1 << COM20) | (1 << CS20);
    													// Toggling of IO-Pin on
    	
    	// generate the Chirp
    	while(count72kHz < length) {
    		OCR2 = 0x64 + length / 2 - count72kHz;
    	}
    	
    	TCCR2 = (1 << WGM21) | (1 << CS20);		// Toggling of IO-Pin off
    	OCR2 = 0x64;													// set frequency to 40kHz
    }
    
    
    int main(void)
    {
    	int pos, i;
    	int drive;
    	int posmarker;
    	Init();
    	LocalInit();
    	while(TRUE) {
    		posmarker = 0;
    		Ping(20);
    		for(pos = 0; pos < 100; pos++) {
    			Sleep(10);
    			if((ACSR & (1 << ACI)) != 0) {
    				if(posmarker == 0) { posmarker = pos; }
    			}
    			ACSR |= (1 << ACI);
    		}
    		if(posmarker < 10) {
    			StatusLED(GREEN);
    			MotorDir(RWD, RWD);
    			MotorSpeed(175,175);
    			for(drive = 0; drive < 71; drive++){
    			Sleep(255);
    			}
    			MotorDir(BREAK,RWD);
    			MotorSpeed(0,175);
    			for(drive = 0; drive < 71; drive++){
    			Sleep(255);
    			}
    		}
    		else {
    			StatusLED(RED);
    			MotorDir(FWD,FWD);
    			MotorSpeed(200,200);
    			for(i = 0; i<100; i++) { Sleep(200); }
    		}
    	}
    	
    	return 0;
    }
    leuchtet nur noch die StatusLED grün und nix passiert mehr.

    Liegt der Fehler in meinem Code oder eher in der verwendeten Asuro 2.8 rc1 lib?

  9. #19
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.07.2010
    Alter
    35
    Beiträge
    228
    Hilfe wäre schon nett

  10. #20
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.08.2004
    Ort
    Zwolle
    Alter
    68
    Beiträge
    531
    Hallo,

    Probiere dein Program nochmal aber jetzt ohne die Motoren ein zu schalten. Vielleicht zerstoren die irgendwie die Messung?

    Gruss,

    Henk

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests