- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 32

Thema: RP6 erweitern (Greifarm, Ultraschall, Kamera,..)

  1. #21
    Erfahrener Benutzer Fleißiges Mitglied Avatar von I♥ROBOTIC
    Registriert seit
    15.03.2010
    Ort
    Fürstenstein
    Alter
    27
    Beiträge
    112
    Anzeige

    E-Bike
    also ich möchte jetzt mal nen Servo von meinem Verbrenner steuern aber ich weis ja nicht ein mal wo ich den anschliessen muss bzw wie ich den dann ansteuern muss !!!!! ?????

  2. #22
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    30
    Beiträge
    661
    Klick jetzt mal auf das blaue "Servo" und schaust welchen Servo du hast und schließt die signal leitung an scl und hier steht was zum port definieren


    Code:
                                            Port definieren  
    
    Für jeden port gibt es drei register, in denen jeweils 8 bit gespeichert werden. sinnvollerweise steht immer das nullte bit für den nullten pin, das erste bit für den ersten usw. bis zum siebten bit für den siebten pin. es gibt (zumindest rein auf informatischer ebene =) weder ein achtes bit noch einen achten port =) 
    
    als beispiel nehme ich port D, für alle anderen ports muss nur jeweils der großbuchstabe geändert werden. 
    die drei register heissen 
    DDRA,DDRB,DDRC,DDRD für die RICHTUNG 
    -für jedes bit gilt, 1=ausgang,0=eingang 
    PORTA,PORTB,PORTC,PORTD für den ausgangspegel oder die pullups(später) 
    1=strom an, 0 = aus ODER 1=pullup an, 0=aus 
    PINA,PINB,PINC,PIND für das eingangssignal. 
    1 gelesen = strom von aussen ist an, 0=aus 
    
    wenn ich also PD2 zum beispiel einschalten möchte, dass 5v spannung ausgegeben werden, muss ich 
    zuerst in das richtungsregister an die entsprechende stelle eine 1 schreiben. damit die anderen bits nicht verändert werden, wird das ganze mit einer ODER-bedingung verknüpft. 
    damit man nicht immer alle bitwerte in hex-zahlen umrechnen muss (was aber durchaus möglich ist) wird einfach nur eine 1 verschoben, wie recht weit obern geschrieben mit dem << - operator. 
    für pd2: 
    DDRD |= (1<<2); 
    
    also im register DDRD wird das zweite bit gesetzt. der pin ist jetzt ein ausgang. 
    
    jetzt wollen wir strom anlegen, dafür ist das register PORTD da. hier muss eine 1 gesetzt werden zum einschalten oder eine null zum ausschalten. aber um eine null zu setzen, muss man umdenken: man verschiebt eine 1 an die entsorechende stelle, (00000100) invertiert das ganze mit dem ~ operator (11111011) und verknüpft das ganze mit dem und-operator. 
    PORTD |= (1<<2); //eingeschaltet 
    PORTD &= ~(1<<2); //ausgeschaltet. 
    
    damit kannst du zb schon leds anschalten usw, du kannst ja einfach im schaltplan rausfinden an welchem pin die jeweilige led angeschlossen ist. 
    
    um einen pin als eingang zu nutzen, zb um einen taster auszulesen, muss der taster gegen masse an den pin angeschlossen werden. 
    also GND --- taster --- atmega 
    dann schaltest du dein pin auf eingang: 
    DDRD &= ~(1<<2); 
    und den pullup-widerstand ein. das ist nötig um festzuegen dass der pin solange high ist bis der taster gedrückt wird. 
    PORTD |= (1<<2); //das gleiche register wie für den ausgangpegel, aber hier für den pullupverwenndet 
    wenn du jetzt wissen willst ob der taster gedrückt wurde, mach folgendes 
    
    unsigned char test; 
    test = PIND & (1<<2); 
    
    wenn test >0 ist, dann wurde die taste NICHT gedrückt, wenn test gleich null ist, wurde die taste gedrückt.
    MfG Martinius

  3. #23
    Erfahrener Benutzer Fleißiges Mitglied Avatar von I&amp;#9829;ROBOTIC
    Registriert seit
    15.03.2010
    Ort
    Fürstenstein
    Alter
    27
    Beiträge
    112
    ich versteh erhlich gesagt nur Bahnhof

  4. #24
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    562
    Hallo

    Ich versuchs mal einfacher zu erklären.
    Wenn du die M32 hast schließt den den Servo an die 5V Stromversorgung (rotes und schwarzes Kabel) dann bleibt ein Kabel (Orange oder Weiß meistens) über. Über dieses Kabel wird der Servo angesteurt bzw die Position übermittelt bis wohin er sich drehen soll --> das so genannte PWM Signal (Pulsweitenmodulation). Dieses Steuerkabel ( in Zukufnt PWM-Kabel genannt) wird an einen Ausgang des Robos (in dem Beispiel an die I/O Ports der M32 Platine geklemmt).
    Das PWM Kabel bekommt dann (bedingt durch das Programm) jeweils einen kurzen Impuls der dem Servo sagt was er machen soll.
    Im Programm sieht die Methode dann so aus:

    void Servo(uint8_t pos)
    {
    DDRC |= IO_PC4; //I/O Port als Ausgang deffinieren
    PORTC |= IO_PC4; // Impulsstart
    sleep(pos); // so und soviel ms warten
    PORTC &= ~IO_PC4; // Impulsende
    sleep(185); // 18,5ms warten
    }

    In der main Methode wird dann zB gesagt:

    ...

    int x;
    for(x=0;x<50;x++)
    {
    Servo(20);
    }

    ...

    Dann dreht sich der Servo auf eine bestimmte Position (unabhängig von seiner vorherigen Position das is das geniale bei Servos) und bleibt dort bis er weiter angesteuert wird.
    Die Positionen sind bei meiner Methode zwischen 3-23 wählbar (Anschlag auf einer Seite bzw auf der anderen)

    Ich hoffe es ist so etwas verständlicher

    Gruß Thund3r
    Dein Gott sei mein Zeuge!

  5. #25
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.03.2010
    Beiträge
    172
    Geht mir grad auch so
    Aber wenn du den Text 2x durchliest, wirds dir klarer

  6. #26
    Erfahrener Benutzer Fleißiges Mitglied Avatar von I&amp;#9829;ROBOTIC
    Registriert seit
    15.03.2010
    Ort
    Fürstenstein
    Alter
    27
    Beiträge
    112
    @ Thund3r :

    meinst du mit M32 das erweiterungsmodul?

    das hab ich nämlích nicht

  7. #27
    Benutzer Stammmitglied
    Registriert seit
    08.02.2010
    Ort
    Unterfranken
    Alter
    26
    Beiträge
    34

    antwort

    @RoboNull:
    Geht mir auch so

    @I♥ROBOTIC (Was ist das für ein Name?)
    Ja er meint das MEGA32 Erweiterungsmodul
    Beeper:BeeppipBeeeppiep
    Vogel:BeeppipBeeeppiep

  8. #28
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.01.2009
    Ort
    NRW
    Beiträge
    562
    Hallo

    Ja das mein das MEGA32 Erweiterungsmodul
    Geht aba auch mit der Base so ähnlich.

    Gruß Thund3r
    Dein Gott sei mein Zeuge!

  9. #29
    Erfahrener Benutzer Fleißiges Mitglied Avatar von I&amp;#9829;ROBOTIC
    Registriert seit
    15.03.2010
    Ort
    Fürstenstein
    Alter
    27
    Beiträge
    112
    ja leider ne kleine planänderung:

    ich darf mir zurzeit nichts kaufen, also auch keine Servos


    tja hat sich also erledigt......ich meld mich wieder wenn ich dann Teile hab....


    @roboter14

    dieses #&...; sollte eigentlich als herz dagestellt werden schau mal in deinen Beitrag da wird der name richtig angezeigt

  10. #30
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.03.2010
    Beiträge
    172
    Ich weiß nicht wie du das Herz in deinem Nicknamen geschrieben hast, sollte es aber so aussehen:
    <3
    greift der XSS Filter des Boards

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests