- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 11

Thema: Arduino mit Perl steuern

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    27.09.2014
    Beiträge
    5

    Pfeil Arduino mit Perl steuern

    Hallo zusammen,

    seit graumer Zeit versuche ich mein Arduino über Perl anzusteuern, doch leider ohne Erfolg.
    Mein aktueller Code sieht wie folgt aus:
    Code:
    use strict;
    use warnings;
    use Win32::SerialPort;
    
    my $ob = Win32::SerialPort->new ('COM3') || die;
    $ob->debug(0);
    
    my $baud = $ob->baudrate;
    my $data = $ob->databits;
    my $parity = $ob->parity;
    my $stop = $ob->stopbits;
    my $hshake = $ob->handshake;
    
    print "Baudrate:        $baud\n"; # just debugging
    print "Paritaet:        $parity\n";
    print "Datenbits:       $data\n";
    print "Stoppbits:       $stop\n";
    print "Flusssteuerung:  $hshake\n";
    
    $ob->baudrate(9600) 	|| die "fail setting baud";
    $ob->parity($parity) 	|| die "fail setting parity";
    $ob->databits($data) 	|| die "fail setting databits";
    $ob->stopbits($stop) 	|| die "fail setting stopbits";
    $ob->handshake($hshake)	|| die "fail setting handshake";
    $ob->write_settings 	|| die "no settings"; 
    $ob->save("COM_3.cfg");
    
    print "Writting ... "; <STDIN>;
    $ob->write("1");
    
    my $result = $ob->input;
    print "result = $result\n";
    Code:
    #define ledPin 11
    int incomingByte;      
    
    void setup() {
    
      Serial.begin(9600);
      pinMode(ledPin, OUTPUT);
    }
    
    void loop() {
      if (Serial.available() > 0) {
    
        incomingByte = Serial.read();
        
        if (incomingByte == '1')
        {
          digitalWrite(ledPin, HIGH);
          Serial.println("LED ist eingeschaltet!");
        } 
    
        if (incomingByte == '0')
        {
          digitalWrite(ledPin, LOW);
          Serial.println("LED ist ausgeschaltet!");
        }
      }
    }
    ]
    Außer der Herstellung der Kommunikation, klappt nichts. Mit dem Code habe ich vor, mithilfe von Perl die PINs zu definieren und zu setzen. Natürlich will ich auch die Ausgabe in einen String packen.


    Ich hoffe jemand kann mir helfen oder mir zuverlässige Quellen nennen - bis jetzt habe ich nichts anständiges/vollständiges finden können.


    Equipment:
    Arduino UNO,
    Win7 - 64x,
    Stawberry Perl 5.16 - Win32::SerialPort.

    Bitte um Rückmeldung!

    Gruß.

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Außer der Herstellung der Kommunikation, klappt nichts.
    Welche Kommunikation läuft?
    Brauchst du Hilfe, um obigen Code zum Laufen zu bekommen, oder funktioniert der Code und du kommst jetzt nicht weiter?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    27.09.2014
    Beiträge
    5
    Zitat Zitat von Sisor Beitrag anzeigen
    Welche Kommunikation läuft?
    Brauchst du Hilfe, um obigen Code zum Laufen zu bekommen, oder funktioniert der Code und du kommst jetzt nicht weiter?
    Nun, ich kann die Baudrate etc. auslesen und auch erfolgreich setzen. Nur beim senden und empfangen von Daten habe ich Probleme. Z.B. mit $Var->write("1"); sende ich eine 1 an das Arduino was eigentlich dazu führen müsste, das mir der jeweilige PIN gesetzt wird und meine LED leuchtet. Außerdem will ich mit $Var->input(); das lesen können was im SerialMonitor ausgegeben wird.

    Gruß.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Einstellung des Ports sollten sein:
    -kein Handshake
    -kein Parity
    -1 Stopbit
    -8 Databits

    (Klappt bei mir in meinem C#-Programm)

    Der Port kann imho nicht gleichzeitig vom SerialMonitor und deinem Perlprogramm benutzt werden.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    27.09.2014
    Beiträge
    5
    Zitat Zitat von Sisor Beitrag anzeigen
    Einstellung des Ports sollten sein:
    -kein Handshake
    -kein Parity
    -1 Stopbit
    -8 Databits

    (Klappt bei mir in meinem C#-Programm)

    Der Port kann imho nicht gleichzeitig vom SerialMonitor und deinem Perlprogramm benutzt werden.
    Genau die Einstellungen am Port habe ich.
    Das mit dem gleichzeitigem Nutzen eines Ports ist soweit auch klar.

    Woran kann es den noch liegen, das ich nichts "senden" kann an's Arduino?

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Aus deinem Perl-Quelltext:
    $ob->write_settings
    Ist das nicht eine Methode? Dann muß es heißen:
    $ob->write_settings()

Ähnliche Themen

  1. Arduino mit IR (fern)steuern
    Von invisible09 im Forum Arduino -Plattform
    Antworten: 2
    Letzter Beitrag: 30.01.2013, 08:32
  2. Modellbau Fhrtenregler mit Arduino steuern
    Von Sebastian Meyer im Forum Arduino -Plattform
    Antworten: 12
    Letzter Beitrag: 04.03.2012, 19:59
  3. [ERLEDIGT] [ARDUINO] 2 Motoren + Servo mit dem Arduino Uno steuern
    Von Torrentula im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 31.08.2011, 16:31
  4. PNP mit Arduino steuern
    Von Arduino99 im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 25.12.2009, 11:13
  5. LPT & COM mit PERL ansprechen
    Von Free Faq im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 1
    Letzter Beitrag: 31.08.2005, 22:23

Berechtigungen

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

Labornetzteil AliExpress