- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 8 von 8

Thema: Nibobee Ultraschall - wie anschließen ?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #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
    Hallo

    Aller Anfang ist schwer.

    X4 habe ich gewählt, weil ich mir die C-Pins gut merken kann und weil sie Bit0 und Bit1 am Port belegen. Prinzipiel kannst du mit allen Pins digitale (high/low) Signale auswerten. Da aber nur ein paar Pins auch analoge Signale einlesen können sind diese Pins "wertvoller" und man versucht, diese für spätere Erweiterungen frei zu halten.

    Die Signale deines SRF05 sind eindeutig digital:
    Bild hier  

    Hier noch das überarbeitete Programm:
    Code:
    // SRF05 Ansteuerung mit der bee (zweiter Anlauf)                               mic 4.6.12
    
    // Anschluß an X4: Vcc, GND, PC0=Start, PC1=Messwert (SRF04-Modus)
    // Datenblatt SRF05: http://www.robotikhardware.de/download/srf05doku.pdf
    // https://www.roboternetz.de/community/threads/58058-Nibobee-Ultraschall-wie-anschlie%C3%9Fen
    
    #include <avr/io.h>
    #include <util/delay.h>
    
    uint8_t messwert, timeout;
    
    int main(void)
    {
    	DDRB = 0b0001111; // Die Pins der Leds sind Ausgang
    	PORTB &= 0b11110000; // 0V ausgeben. Die Leds sind aus
    	DDRC = 0b00000001; // Im Datenrichtungsregister PC0 als Ausgang definieren (Bit 2^0)
    	PORTC &= ~(1<<PC0);// 0V ausgeben an PC0
    	
    	PORTB |= 0x0f; // alle Leds an
    	_delay_ms(1000); // eine Sekunde warten
    	PORTC &= 0xf0; // alle Leds wieder aus
    	
    	while(1)
    	{
    		messwert=0;
    		timeout=0;
    		PORTC |= 1; // Startimpuls ausgeben
    		_delay_us(20); // der Impuls muss mindestens 10µs dauern
    		PORTC &= 0xfe; // Startimpuls fertig
    
    		while(!(PINC & 0b00000010) && --timeout) _delay_ms(4); // timeout 1 Sekunde
    		if(timeout>0)
    		{
    			while((PINC & 2) && (++messwert<16)) // Überlauf bei 16
    			{
    				_delay_us(1666); // 25ms/16-Schritte
    			}
    
    			if(messwert<16) // wir können nur 4 Bit anzeigen
    			{
    				PORTC &= 0xf0; // alle Leds aus
    				PORTC |= messwert; // Messwert dual anzeigen
    			}
    		}
    	}
    	return 0;
    }
    Auf das Servo mag ich im Moment noch nicht eingehen, aber du kannst dich schon mal einlesen:
    http://www.google.de/search?q=servosignal

    Gruß

    mic
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken srf05_timing.png  
    Geändert von radbruch (04.06.2012 um 20:02 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. Antworten: 103
    Letzter Beitrag: 05.09.2011, 22:00
  2. ACS an NIBObee
    Von pacman im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 37
    Letzter Beitrag: 19.06.2011, 23:05
  3. ACS an NIBObee
    Von pacman im Forum Sensoren / Sensorik
    Antworten: 6
    Letzter Beitrag: 06.06.2011, 08:32
  4. NiboBee und die Leuchtdioden
    Von Rabenauge im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 13
    Letzter Beitrag: 23.04.2010, 19:27
  5. Fernbedienung von Ir auf Ultraschall Ultraschall auf ir
    Von Firestorm1711 im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 12.05.2005, 17:32

Stichworte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress