- LiFePO4 Speicher Test         
Seite 5 von 9 ErsteErste ... 34567 ... LetzteLetzte
Ergebnis 41 bis 50 von 89

Thema: 1 Servo mit 2 Tasten ansteuer, aber wie :-(

  1. #41
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Anzeige

    E-Bike
    Für eine Kabel- RS232 Übertragung ist ein MAX232 oder dergleichen notwendig. Ein Quarz ebenfalls da der interne Oszillator nicht genau genug ist.
    Es bleiben daher nur 20 Pin übrig.
    2 RX/TX
    4 Taster Motor
    6 Steuerung Motor
    4 Taster Servo
    2 Ansteuerung Servo

    Macht 18 Pin, Funk kannst du über RX/TX machen da du ja dann kein Kabel hast, ob zwei Pin für die Kamera reichen musst du selbst wissen.

  2. #42
    Benutzer Stammmitglied
    Registriert seit
    11.10.2007
    Beiträge
    77
    Kannst du mir einen Link geben wie der RS232 mit den µC aufgebaut/verbunden wird?

    So wie ich das gelesen habe braucht man nur ein 9polg. Stecker und 3 Kontakte (RXD, GND, TXD) um Daten von PC hin und her schicken.
    Oder ist damit nur das schicken von Daten; von PC zum Borad gemeint?

    Cam braucht nur 1 Videosignal denke ich mal, hab noch nicht gesucht nach einer Cam.

  3. #43
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Das geht in beide Richtungen. Link habe ich gerade keinen.
    µC - TXD - TxIN (MAX)TxOUT - Pin2 9PolSubD
    µC - RXD - RxOUT(MAX)RxIN - Pin3 9PolSubD
    und GND auf Pin5

  4. #44
    Benutzer Stammmitglied
    Registriert seit
    11.10.2007
    Beiträge
    77
    Dann brauche ich den RS232 nicht oder?
    Ich habe ja ein Borad zum Brennen, dann stecke ich µC auf den bot.
    Von da werden die Daten von PC zum Board verschickt,
    dafür brauche ich nur die 3 Adern oder muss da noch ein RS232 hin?

    Was für ein Quarz nimmt man, ich weiß nicht genau wie meine Frequenz ist.

    TCCR1A |= (1<<WGM11)|(1<<WGM10)|(1<<COM1A1); PWM, Phase Correct, 10-bit ; Clear OC1A/OC1B on Compare Match, set OC1A/OC1B at
    BOTTOM, (non-inverting mode)
    TCCR1B = (1<<CS11); clkI/O/8 (From prescaler)

    Wie rechnet man die F?

  5. #45
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Wenn du über Kabel zum PC gehst brauchst du einen MAX232. Wenn du es über Funk machst dann nicht.
    Ein 8MHz Quarz geht mit Einschränkungen, steht im Datenblatt unter USART/Example of Baudrate Settings
    PWM-Frequenz steht im Datenblatt Seite 91
    Für die Servos sollte die PWM-Frequenz 50Hz sein für die Motoren etwa 3kHz

  6. #46
    Benutzer Stammmitglied
    Registriert seit
    11.10.2007
    Beiträge
    77
    Was soll ich deiner Meinung erst machen, die Daten sofort per Funkt rüberschicken oder erst über Kabel?
    Was ist einfacher zu Programmieren?
    Per Funk brauche ich da auch einen Quarz?

    Werde erstmal gleich versuchen die Frequenz zu erreichnen was ich benötige und welche ich monetan für die Servos benütze

    Edit:

    ich blicke leider nicht durch, wie man die Frequenz ausrechnet
    Also habe ja
    CPU = 8Mhz
    Bit = 10
    Prescaler = 8

  7. #47
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Für RS232 egal ob Kabel oder Funk brauchst du eine Quarz, es kann auch ohne gehen, ist aber eine wackelige Angelegenheit. Kabel ist sicher einfacher.

  8. #48
    Benutzer Stammmitglied
    Registriert seit
    11.10.2007
    Beiträge
    77
    Ok,

    dann Fangen wir mal lieber klein an und lassen alles bei seite und versuchen jetzt estmal das vorhandene Programm mit 2 Servos erweitern.
    Also mit Karbel und RS232 verbinund aufbauen.
    Da ich ein Board schon ein RS232 ist das schon mal vorhanden.

    Wie kann ich jetzt von PC aus sagen z.b. wenn ich die Peiltaste hoch drücke an Pin D0 ein high Signal anliegt?

    Habe schon gelesen, dass es über HyperTerminal geht.
    Und folgenden Code. Wo sage ich das Programm das mit Pfeiltaste/Pin D5?

    Code:
    /* UART-Init beim AT90S2313 */
     
    #include <avr/io.h> 
    #include <inttypes.h> 
    #include <util/delay.h> 
    
    #define F_CPU 8000000   // clock 
    #define BAUD 9600L          // Baudrate, das L am Ende ist wichtig, NICHT UL verwenden!
     
    // Berechnungen
    #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)   // clever runden
    #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1)))     // Reale Baudrate
    #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD-1000) // Fehler in Promille 
     
    #if ((BAUD_ERROR>10) || (BAUD_ERROR<-10))
      #error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch! 
    #endif
     
    int main(void)
    {
        UBRRH = UBRR_VAL >> 8; 
        UBRRL = UBRR_VAL & 0xFF; 
    
        UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); 
        UCSRC |= (1<<URSEL)|(3<<UCSZ0); 
        
       
    
        while (!(UCSRA & (1<<UDRE)))  /* warten bis Senden moeglich                   */
        {}
     
       
    	return 0;
    	}

  9. #49
    Benutzer Stammmitglied
    Registriert seit
    11.10.2007
    Beiträge
    77
    Zitat Zitat von SimLock
    Ok,

    dann Fangen wir mal lieber klein an und lassen alles bei Seite und versuchen jetzt erstmal das vorhandene Programm mit 2 Servos zu erweitern.
    Also mit den Karbel und den RS232 IC eine verbinung über Hyperterminal aufbauen.
    Da in meinen Board schon ein RS232 vorhanden ist, fehlt nur das Programm.

    Wie kann ich jetzt von PC aus sagen z.b. wenn ich die Peiltaste "hoch" drücke an µC Pin D0 ein high Signal anliegt?

    Habe schon gelesen, dass es über HyperTerminal geht.
    Und folgenden Code. Wo sage ich das Programm das mit Pfeiltaste/Pin D5?

    Code:
    /* UART-Init beim AT90S2313 */
     
    #include <avr/io.h> 
    #include <inttypes.h> 
    #include <util/delay.h> 
    
    #define F_CPU 8000000   // clock 
    #define BAUD 9600L          // Baudrate, das L am Ende ist wichtig, NICHT UL verwenden!
     
    // Berechnungen
    #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)   // clever runden
    #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1)))     // Reale Baudrate
    #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD-1000) // Fehler in Promille 
     
    #if ((BAUD_ERROR>10) || (BAUD_ERROR<-10))
      #error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch! 
    #endif
     
    int main(void)
    {
        UBRRH = UBRR_VAL >> 8; 
        UBRRL = UBRR_VAL & 0xFF; 
    
        UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); 
        UCSRC |= (1<<URSEL)|(3<<UCSZ0); 
        
       
    
        while (!(UCSRA & (1<<UDRE)))  /* warten bis Senden moeglich                   */
        {}
     
       
    	return 0;
    	}

  10. #50
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Der PC sendet den Wert des ASCII-Zeichen von der Taste, diesen Wert musst du dann im µC einen Bedeutung zuweisen. Willst du auch was zum PC zurücksenden. Das Empfangen von Zeichen würde ich Interruptgesteuert machen.

Seite 5 von 9 ErsteErste ... 34567 ... LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress