Offline
Newbie
Karma: 0
Posts: 23
|
 |
« on: November 10, 2011, 11:37:48 am » |
Hallo! Ich bin ganz neu in der Arduino-Welt und mache damit grad meine ersten Gehversuche. Ich habe einen Arduino UNO und die 8-Fach Relaiskarte von Conrad (197730 - 62). Die Relais-Karte hat neben dem RS232 und USB-Eingang ebenfalls die Möglichkeit die Steuerleitungen Tx und Rx sowie GND über eine Klemme anzuschließen. Normalerweise läuft darüber die Kommunikation mit kaskadierten anderen Karten. Ich versuche jetzt die Relaiskarte über diese Klemme und mit einem Software-Serial anzusprechen. Leider klappt das nicht so wirklich. Hat da jemand einen Rat?
|
|
|
|
« Last Edit: November 15, 2011, 02:49:51 pm by andi357 »
|
Logged
|
|
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 23
|
 |
« Reply #2 on: November 10, 2011, 06:45:12 pm » |
Ja, ich habe alles so gemacht wie es im Handbuch steht. Die Relaiskarte hat Strom (12V, 300mA) und ist wie auf dem angehängten Foto zu sehen mit dem Arduino verbunden. Das dazugehörige Sketch sieht so aus: #include <SoftwareSerial.h>
#define rxPin 9 #define txPin 8
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
void setup(){ pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); mySerial.begin(9600); sendCommand(1,0,0); //Initialisierung der Karte (Command 1, Karte 0, Daten egal) }
void loop(){ sendCommand(8,0,3);//Toggle Relais 1 und 2 (Command 8, Karte 0, Daten 3 [00000011]) }
void sendCommand(byte command, byte cardAddr, byte data){ byte xorCheck = command ^ cardAddr ^ data; mySerial.print(command + cardAddr + data + xorCheck,BYTE); //Sendet Command an die Serielle Schntitstelle (Comnmand, Kartenadresse, Daten [welche Relais], XOR-Checksumme aller Parameter) wie im Handbuch beschrieben }
|
|
|
|
« Last Edit: November 10, 2011, 06:49:09 pm by andi357 »
|
Logged
|
|
|
|
|
Forum Moderator
BZ (I)
Online
Brattain Member
Karma: 172
Posts: 16137
+39 349 2158303
|
 |
« Reply #3 on: November 10, 2011, 07:12:44 pm » |
mySerial.print(command + cardAddr + data + xorCheck); Bist Du sicher, daß Du so ein String mit 4 Elementen rausschickst und nicht die arithmetische Summe der 4 Variablen? Hast Du es mit mySerial.print(command); mySerial.print(cardAddr); mySerial.print(data); mySerial.print(xorCheck); versucht? Grüße Uwe
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 23
|
 |
« Reply #4 on: November 11, 2011, 06:34:41 am » |
Hab ich nun probiert, klappt leider auch nicht. Ich habe im Handbuch der Relaiskarte eben gesehen, dass sie mit 19200 Baud arbeitet. Da dieses SoftwareSerial das nicht kann habe ich es nun mal mit der physischen Schnittstelle auf dem Arduino probiert, klappt aber leider auch nicht. void setup(){ Serial.begin(19200); sendCommand(1,0,0); //Initialisierung der Karte (Command 1, Karte 0, Daten egal) }
void loop(){ sendCommand(1,0,0); sendCommand(8,0,3);//Toggle Relais 1 und 2 (Command 8, Karte 0, Daten 3 [00000011]) delay(10000); }
void sendCommand(byte command, byte cardAddr, byte data){ byte xorCheck = command ^ cardAddr ^ data; Serial.print(command,BYTE); Serial.print(cardAddr,BYTE); Serial.print(data,BYTE); Serial.print(xorCheck,BYTE); }
Ich komme einfach nicht weiter an der Stelle. Ich glaube, die vier Bytes müssen auf einmal übertragen werden und nicht so nacheinander in getrennten Writes. Aber wie übertrage ich 4 Byte auf einmal?
|
|
|
|
« Last Edit: November 11, 2011, 06:52:32 am by andi357 »
|
Logged
|
|
|
|
|
Berlin
Offline
Jr. Member
Karma: 0
Posts: 91
|
 |
« Reply #5 on: November 11, 2011, 06:54:53 am » |
Mh ist nur so vermutung, aber versorgst du den Arduino über USB mit Spannung? Wo bekommt der Überhaupt seine Spannung her? Auf den Bildern ist nicht´s zu sehen. Wenn die Spannungsversorgung über USB läuft, dann ist es kein wunder das nix geht, RX unD TX sind dann doppelt belegt.
|
|
|
|
« Last Edit: November 11, 2011, 07:01:16 am by Jago »
|
Logged
|
Nothing is impossible ^^
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 23
|
 |
« Reply #6 on: November 11, 2011, 07:10:01 am » |
Ich betreibe die Karte ja auch nicht über die USB-Buchse bzw. im USB-Modus und auf Seite 9 steht unter "Anschluss über RS232-Buchse" "Die Steuerleitungen können auch direkt an RXa, Txa und GND angeschlossen werden"
|
|
|
|
|
Logged
|
|
|
|
|
Berlin
Offline
Jr. Member
Karma: 0
Posts: 91
|
 |
« Reply #7 on: November 11, 2011, 07:12:12 am » |
Sorry, das ist mir auch grad klar geworden. Deshalb hat ich meinen Beitrag auch schnell gelöscht bevor jemand den Mist ließt, leider zu spät...
|
|
|
|
|
Logged
|
Nothing is impossible ^^
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 23
|
 |
« Reply #8 on: November 11, 2011, 07:18:17 am » |
Mh ist nur so vermutung, aber versorgst du den Arduino über USB mit Spannung? Wo bekommt der Überhaupt seine Spannung her? Auf den Bildern ist nicht´s zu sehen. Wenn die Spannungsversorgung über USB läuft, dann ist es kein wunder das nix geht, RX unD TX sind dann doppelt belegt.
Ich habe beides versucht. Wenn ich das Arduino Board am Netzteil anschließe passiert aber auch nichts. Dann blinken nicht mal die TX und RX LEDs auf dem Board.
|
|
|
|
|
Logged
|
|
|
|
|
Berlin
Offline
Jr. Member
Karma: 0
Posts: 91
|
 |
« Reply #9 on: November 11, 2011, 07:24:28 am » |
Die TX und RX Led´s können glaub ich auch garnicht blinken: http://arduino.cc/en/uploads/Main/arduino-uno-schematic.pdfSchade eigentlich, dann weis ich auch nicht weiter. Vom überfliegen her ist alles richtig.
|
|
|
|
|
Logged
|
Nothing is impossible ^^
|
|
|
|
"The old Europe"
Offline
Edison Member
Karma: 0
Posts: 2003
Bootloaders suck!
|
 |
« Reply #10 on: November 11, 2011, 07:38:35 am » |
Nachdem in der anleitung staendig von RS232 geredet wird und ich glaube auf dem photo einen MAX232 zu erkennen, sind die anschluesse fuer +-15V ausgelegt. Und nicht fuer 0-5V TTL pegel. Wenn du da mit einem arduino ran willst, dann musst du den level-shifter ueberspringen. Die pins duerften ueber den usb-adapter steckplatz zu finden sein. Ich glaube, dass bei nur einer platine die schraubklemmen fuer dich wertlos sind.
|
|
|
|
|
Logged
|
• Upload doesn't work? Do a loop-back test. • There's absolutely NO excuse for not having an ISP! • Your AVR needs a brain surgery? Use the online FUSE calculator. • My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets... • Microsoft is not the answer. It is the question, and the answer is NO!
|
|
|
|
Forum Moderator
BZ (I)
Online
Brattain Member
Karma: 172
Posts: 16137
+39 349 2158303
|
 |
« Reply #11 on: November 11, 2011, 07:43:51 am » |
Die Karte hat eine RS232 Schnittstelle und 2 andere TTL serielle schnittsellen für die Verbindung mehrerer Karten untereinander. andi357 verwendet die 2.genannte. Grüße Uwe
|
|
|
|
|
Logged
|
|
|
|
|
"The old Europe"
Offline
Edison Member
Karma: 0
Posts: 2003
Bootloaders suck!
|
 |
« Reply #12 on: November 11, 2011, 08:00:02 am » |
Und das steht wo?
|
|
|
|
|
Logged
|
• Upload doesn't work? Do a loop-back test. • There's absolutely NO excuse for not having an ISP! • Your AVR needs a brain surgery? Use the online FUSE calculator. • My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets... • Microsoft is not the answer. It is the question, and the answer is NO!
|
|
|
|
Forum Moderator
BZ (I)
Online
Brattain Member
Karma: 172
Posts: 16137
+39 349 2158303
|
 |
« Reply #13 on: November 11, 2011, 08:24:56 am » |
|
|
|
|
|
Logged
|
|
|
|
|
"The old Europe"
Offline
Edison Member
Karma: 0
Posts: 2003
Bootloaders suck!
|
 |
« Reply #14 on: November 11, 2011, 09:19:45 am » |
Na! Das ist doch der gleiche link wie oben! Hallo?
Ich kann in dem ganzen schrieb weder 5V noch TTL finden, nur RS232.
Mehr beweise bitte ;-)
|
|
|
|
|
Logged
|
• Upload doesn't work? Do a loop-back test. • There's absolutely NO excuse for not having an ISP! • Your AVR needs a brain surgery? Use the online FUSE calculator. • My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets... • Microsoft is not the answer. It is the question, and the answer is NO!
|
|
|
|
|