-
        

Ergebnis 1 bis 9 von 9

Thema: Rs 232 Relaisplatine ansteuern, nur wie?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2007
    Beiträge
    5

    Rs 232 Relaisplatine ansteuern, nur wie?

    Anzeige

    Hallo,

    habe mir vor ein paar Jahren diese Relaisplatine
    http://www.produktinfo.conrad.com/da...ch_seriell.pdf
    gekauft. Wollte Sie ursprünglich auch nur am PC betreiben, was ja auch wunderbar funktionierte.
    So, da ich mitlerweile auch mit Mikrocontrollern "bastle" würde ich die gern den Mikrocontroller RS232 Schnittstelle ansteuern. Nur wie ist die Frage! Für einen Ansatz in Bascom - Basic wäre ich sehr Dankbar!

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Robotniks
    Registriert seit
    13.10.2007
    Beiträge
    168
    Hi,

    schau mal hier:

    http://www.c-control.de/c-control-pr...e_seriell.html

    ist zwar für die C-Control Pro aber könnte man ja auch für Bascom umschreiben.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2007
    Beiträge
    5
    Danke für die schnelle Antwort, komme allerdings nicht wirklich weiter. Kann ich einfach die bytes per Print senden? und wie krieg ich die Prüfsumme hin?
    in Qbasic wird das mit zwei XOR's gemacht:
    outbuf(3) = outbuf(0) XOR outbuf(1) XOR outbuf(2)
    das will aber Bascom so nicht akzeptieren.
    Gruß

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    Also nen AVR an RS232 ist kein Problem.
    du brauchst allerdings einen Pegelwandler wie z.B. den MAX232 um die AVR UART auf RS232 zu bringen. Das ist aber einfach und schnell gemacht, kostet quasi nix.
    Daten Senden machst du mit PRINT, empfangen mit INPUT.

    Bascom kann nur eine Operation pro Zeile ausführen:
    x = y + z geht super
    x = y + z + a geht nicht.
    Muss man auflösen in:
    x = y + z
    x = x + a

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2007
    Beiträge
    5
    Danke! Das hilft mir schonmal. RS232 ist kein Problem, stimmt wohl mache das mit RN-Control!

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2007
    Beiträge
    5
    Hallo,
    bräuchte nochmal eure Hilfe:
    Ich bekomme bei folgendem Code immer Fehlermeldungen, was muss ich also ändern, damit Bascom die ankommenden Bytes in die Variable mit Index schreibt!

    Sub Getframe
    Do
    Bz = Bz + 1
    Input = Inbuf(bz)
    Waitms 100
    Loop Until Bz < 4
    Checkframe
    End Sub

    der Orginalcode:

    Sub GetFrame()

    LCD_ClearLCD()
    Zeile1 = "READ "
    LCD_Locate(1,1) : LCD_WriteText(Zeile1)

    Do
    BZ = BZ + 1
    InBuf(BZ) = Serial_ReadExt(0)
    LCD_Locate(2,1) : LCD_WriteWord(BZ,1)
    LCD_Locate(2,4) : LCD_WriteWord(InBuf(BZ),3)
    AbsDelay(1000)
    Loop While BZ < 4

    CheckFrame()

    End Sub

    Vielen Dank schonmal!

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2007
    Beiträge
    5

    Ich habs!!!

    Ich habs jetzt:
    Vielleicht nicht die eleganteste Lösung aber es Funktioniert! (zumindest halbwegs!)
    Code:
     'Test programm für die Conrad RS232 Relaisplatine Best. Nr.: 967720
    
    
     $regfile = "m32def.dat"                                    'Die Anweisung bestimmt Controllertyp, hier AVR Mega 32
     $framesize = 32                                            'Stackanweisungen, die eigentlich nur bei größeren Programmen
     $swstack = 32                                              'wirklich nötig werden
     $hwstack = 32
     $crystal = 16000000                                        'Die Frequenz des verwendeten Quarzes
    
     $baud = 19200                                              'Die Baudrate für RS232 Ausgabe.
     Dim A As Byte                                              ' die Ausgabe Bytes definieren
     Dim B As Byte                                              'A ist der Erste Befehl:
     Dim C As Byte                                              '1 = Platine Initialisieren, 2 = Schaltzustände abfragen,
     Dim D As Byte                                              '3 = Relais schalten, 4 = Option abfragen,
     Dim I As Integer                                          '5 = Option setzten (Brodcast(an alle Platinen)
     'die Relaisplatine initialisieren                          'B = Platinenadresse (1...256)
     A = 1                                                      'C = Relaisadressse:
     B = 1                                                      '1= Rel1; 2= Rel2; 4= Rel3; 8=Rel4 usw.
     C = 0                                                      'D = Prüfsumme =  A Xor B Xor C
     D = A Xor B
     D = C Xor D
     Print Chr(a) ; Chr(b) ; Chr(c) ; Chr(d)
     Wait 1
     'sämtliche Kombinationen durchschalten
     Start1:
    
      A = 3
      I = 0
      I = I + 1
      C = I
      D = A Xor B
      D = C Xor D
      Print Chr(a) ; Chr(b) ; Chr(c) ; Chr(d)
      Wait 1
     Do
      I = I + 1
      C = I
      D = A Xor B
      D = C Xor D
      Print Chr(a) ; Chr(b) ; Chr(c) ; Chr(d)
      Wait 1
     Loop Until I = 256
    
     Goto Start1
    Gruß Florian

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    18.03.2005
    Ort
    berlin, siemensstadt
    Alter
    54
    Beiträge
    59
    hallo florian

    benutze doch die suche....da findest du doch bestimmt genug beispiele für die benutzung der RS232 und der pegelwandler gehört ja schon fast zur standart applikation.

    also viel glück
    gruß thomas

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    und wieso habt ihr beiden das selbe Avatar?? :-P
    Den MAX232 gibts auch als fertiges Pegelwandlermodul bei Pollin - in der Anleitung is auch der Plan drin - kann man gut klauen

Berechtigungen

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