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ß.
Lesezeichen