- 3D-Druck Einstieg und Tipps    Werbung      
Ergebnis 1 bis 8 von 8

Thema: Erster Roboterbausatz

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #4
    Erfahrener Benutzer Roboter Genie Avatar von pinsel120866
    Registriert seit
    18.12.2007
    Ort
    Hohenems
    Alter
    59
    Beiträge
    847
    Hi,

    sieh mal hier: http://www.nicai-systems.de/nibobee.html

    Wird in C programmiert, Aufbauen (Löten) musst du ihn selbst - ist aber im Handbuch sehr gut erklärt. Und Erweiterungen gibt es auch schon einige.

    Ein kleiner Beispielcode für den Betrieb eines Infrarotmodules:

    // nibobee IR-LEDs an PA0 und PA1 im Wechsel mit 36kHz ansteuern 10.1.2010 mic
    // https://www.roboternetz.de/phpBB2/ze...=479870#479870
    // Die Anoden der rechten IR-LEDs hängen mit Vorwiderstand an PA0 (X1-AN0)
    // Die Anoden der linken IR-LEDs hängen mit Vorwiderstand an PA1 (X1-AN1)
    // Die Kathoden beider IR-LEDs sind mit PA3 (X3-AN3) verbunden
    // Der Empfänger SFH5110 ist mit PA2 (X2-AN2) verbunden
    #include <nibobee/iodefs.h>
    #include <nibobee/delay.h>
    #include <nibobee/led.h>
    #include <stdlib.h>
    #define FALSE (1==0)
    #define TRUE (1==1)
    int main(void)
    {
    led_init();
    delay(2000); // wait4programmer
    // Timer2-Setup für 72kHz
    TCCR2 = (1 << WGM21) | (1 << CS20); // CTC-Mode, no prescaling, no OC2-PIN!
    OCR2 = 208; // 36kHz @15MHz
    DDRC |= (1<<PC4) | (1<<PC5); // Anoden der LEDs mit Vorwiderstand (??? Ohm) an PA0/1
    PORTC &= ~((1<<PC4) | (1<<PC5)); // low = LEDs aus
    DDRC &= ~(1<<PC6); // keine 72kHz-Ansteuerung
    PORTC &= ~(1<<PC6); // deshalb Kathoden-Pin auf Ausgang ohne PullUp

    if(TRUE) led_set(0,1); // true-Test Bild  
    sei(); // und los
    while(1)
    {
    DDRC |= (1<<PC6); // Trägerfrequenz an Kathoden einschalten
    TIMSK |= (1 << OCIE2); // ISR aktivieren
    led_set(2,1);
    PORTC |= (1<<PC5); // rechte IR-LEDs einschalten
    delay(1000); // zwei Sekunden mit 36kHz blinken
    PORTC &= ~(1<<PC5); // IR-Leds wieder ausschalten
    led_set(2,0);
    led_set(1,1);
    PORTC |= (1<<PC4); // dito für linke IR-LEDs
    delay(1000);
    PORTC &= ~(1<<PC4);
    led_set(1,0);

    TIMSK &= ~(1 << OCIE2); // ISR ausklinken
    DDRC &= ~(1<<PC6); // keine Trägerfrequenz an Kathoden
    PORTC &= ~(1<<PC6); // bedeutet alle IR-LEDS aus
    led_set(LED_R_YE, 0); // Kontroll-LED aus
    delay(2000); // zwei Sekunden dunkel
    }
    }
    ISR (TIMER2_COMP_vect)
    {
    static uint8_t status=0;
    if(status)
    {
    led_set(LED_R_YE, 1); // Kontroll-LED
    PORTA |= (1<<PA3);
    status=0;
    }
    else
    {
    led_set(LED_R_YE, 0);
    PORTA &= ~(1<<PA3);
    status=1;
    }
    }
    Geändert von pinsel120866 (20.11.2011 um 13:11 Uhr)

Ähnliche Themen

  1. Roboterbausatz mit µC51???
    Von Litzi im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 1
    Letzter Beitrag: 14.04.2008, 20:18
  2. P!MOT - Roboterbausatz
    Von Frank im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 13
    Letzter Beitrag: 16.05.2005, 20:03
  3. Roboterbausatz...
    Von casual im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 10
    Letzter Beitrag: 18.12.2004, 18:14
  4. Roboterbausatz
    Von techboy im Forum Elektronik
    Antworten: 15
    Letzter Beitrag: 01.11.2004, 08:30
  5. Roboterbausatz
    Von techboy im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 1
    Letzter Beitrag: 29.10.2004, 09:59

Berechtigungen

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

    Werbung      fchao-Sinus-Wechselrichter AliExpress