INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Infrarot zu RS232 für Steuerung
19.10.2016, 11:41
Beitrag #9
RE: Infrarot zu RS232 für Steuerung
Hallo Tommy,

nein ich möchte den Wert ADA103010001A6 so wie er ist auf die RS232 gesendet haben
Wenn ich mit HTerm oder auch Hyperterminal es überprüfe bekomme ich auf der RS232 nicht ADA103010001A6 sondern das 41 44 41 31 30 33 30 31 30 30 30 31 41 36 dargestellt.

Noch mal kurz zur Erklärung
I ch nehme HTerm stelle den Empfang auf HEX und schließe das zb. an meinen alten Samsung TV an die Servicebuchse an.
Ich drücke die Pfeil nach oben Taste und empfange ADA103010001A6 in HTerm.

Jetzt will ich mit dem Arduino und meinen Sketch eine andere taste (zb. Taste1) drücken (Code ist 0xE0E020DF) und es soll auf der RS232 das (ADA103010001A6) gesendet werden. Aber es wird übersetzt.
Wenn ich jetzt aber HTerm am Arduino dran habe empfnge ich 41 44 41 31 30 33 30 31 30 30 30 31 41 36

Gruß
Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.10.2016, 12:21
Beitrag #10
RE: Infrarot zu RS232 für Steuerung
Bis hier hin war deine Beschreibung total anders.
Was du willst, ist einen String zu übertragen.
Dein Problem ist, die serielle Übertragung überträgt immer nur ein Zeichen zur Zeit.
Und das wird dann in deinen Programmen auch so empfangen und übersetzt.
Dein Gerät, welches den String empfangen soll, sollte auch damit klarkommen.
Es ist sicher kein Hex.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.10.2016, 12:37
Beitrag #11
RE: Infrarot zu RS232 für Steuerung
Lieder kommt das gerät damit nicht klar weil ja der String übersezt wird Sleepy
Ich möchte ja eigentlich nur das der gleiche String übertragen wird wie der TV das auch sendet ADA103010001A6

Also HTerm am TV angeschlossen (Einstellung in HTerm HEX) wird das angezeigt ADA103010001A6
HTerm am RS232 Arduino angeschlossen (Einstellung in HTerm HEX) wird das angezeigt 41 44 41 31 30 33 30 31 30 30 30 31 41 36

Ich benötige dort aber dort die selbe ausgabe wie am TV

Gruß

Stephan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.10.2016, 13:07
Beitrag #12
RE: Infrarot zu RS232 für Steuerung
(19.10.2016 12:37)DG0JG schrieb:  Ich benötige dort aber dort die selbe ausgabe wie am TV
Die einzige Idee, die ich noch habe, verwende die Library "AltSoftSerial"
Evtl. löst di das Problem.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.10.2016, 17:54 (Dieser Beitrag wurde zuletzt bearbeitet: 19.10.2016 18:05 von DG0JG.)
Beitrag #13
RE: Infrarot zu RS232 für Steuerung
Hi,

So es ist mir gelungen das es so fast funktioniert wie ich es haben möchte.
Eins habe ich aber noch Blush
Der Power Button hat zwei funktionen was ich wohl mit eine IF Anweisung regeln müsste
Also wenn ich den Power Button drücke müsste der Befehl über die RS232 gesendet werden (AD A1 03 01 00 01 A6) und als Antwort von der RS232 kommt
(AD FF 05 41 A1 01 00 01 E8) soweit ok.
Wenn ich wieder den Power Button drücke müsste aber über die RS232 das gesendert werden AD A1 03 00 00 01 A5 unn als Antwort kommt (AD FF 05 41 A1 00 00 01 E7)
Also es müsste immer getoggelt werden.
Vielleicht hat einer eine Idee wie ich das bewerkstelligen kann Rolleyes

Hier noch mal der Code








Code:
#include <IRremote.h>
#include <IRremoteInt.h>
#include <SoftwareSerial.h>




//------------------------------------------------------------------------------
// Tell IRremote which Arduino pin is connected to the IR Receiver (TSOP4838)
//
int recvPin = 6;
IRrecv irrecv(recvPin);


/*
  / int blinkPin = 4;
  / IRrecv irrecv(recvPin, blinkPin); */
SoftwareSerial mySerial(10, 11); // RX, TX


byte message0[] = {0xAD, 0xA1, 0x03, 0x01, 0x00, 0x01, 0xA6 };  //Power ON
byte message1[] = {0xAD, 0xA1, 0x03, 0x00, 0x00, 0x01, 0xA5 };  //Power OFF
byte message2[] = {0xAD, 0xA2, 0x01, 0x14, 0xB7 };              //Move Right
byte message3[] = {0xAD, 0xA2, 0x01, 0x13, 0xB6 };              //Move Left
byte message4[] = {0xAD, 0xA2, 0x01, 0x12, 0xB5 };              //Move Up
byte message5[] = {0xAD, 0xA2, 0x01, 0x11, 0xB4 };              //Move Down
byte message6[] = {0xAD, 0xA5, 0x01, 0x01, 0xA7 };              //Red
byte message7[] = {0xAD, 0xA5, 0x01, 0x02, 0xA8 };              //Green
byte message8[] = {0xAD, 0xA5, 0x01, 0x03, 0xA9 };              //Yellow
byte message9[] = {0xAD, 0xA1, 0x03, 0x00, 0x00, 0x01, 0xA5 };  //Blue (off)






//------------------------------------------------------------------------------
// We use this string for repeat commands
String lastCommand = String("");


//+=============================================================================
// Configure the Arduino
//
void  setup ( )
{
  mySerial.begin(9600); // RS232 output
  irrecv.enableIRIn();  // Start the receiver
  irrecv.blink13(true);
  
  

}

//+=============================================================================



// Translate to RS232
//
void  translate (decode_results *results)

{
  switch ((results->value))

  
  
  {
    
    
    case 0xE0E040BF:          mySerial.write(message0, sizeof(message0));      delay(20);     break ; // Power On

  //  case 0xE0E040BF:          mySerial.write(message1, sizeof(message1));    delay(20);     break ; // Power OFF

    case 0xE0E046B9:          mySerial.write(message2, sizeof(message2));    delay(20);     break ; // Move Right

    case 0xE0E0A659:          mySerial.write(message3, sizeof(message3));    delay(20);     break ; // Move Left

    case 0xE0E08679:          mySerial.write(message4, sizeof(message4));    delay(20);     break ; // Move Down

    case 0xE0E006F9:          mySerial.write(message5, sizeof(message5));    delay(20);     break ; // Move Up

    case 0xE0E036C9:          mySerial.write(message6, sizeof(message6));    delay(20);     break ; // Red

    case 0xE0E028D7:          mySerial.write(message7, sizeof(message7));    delay(20);     break ; // Green

    case 0xE0E0A857:          mySerial.write(message8, sizeof(message8));    delay(20);     break ; // Yellow

    case 0xE0E06897:          mySerial.write(message9, sizeof(message9));    delay(20);     break ; // Blue
    
  }
}


//+=============================================================================
// The repeating section of the code
//

void  loop ( )
{
  decode_results  results;        // Somewhere to store the results
  if (irrecv.decode(&results)) {  // Grab an IR code
    translate(&results);
    irrecv.resume();              // Prepare for the next value


  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.10.2016, 19:11
Beitrag #14
RE: Infrarot zu RS232 für Steuerung
Ey, super. Glückwunsch.
Zu deiner Frage ins unreine geschrieben.

Code:
//Variable definieren
int flagOn = 0;

//Anweisung in deiner case Abfrage

if (flagOn == 0) {
  switchOn();
  flagOn = 1;
}
else {
  switchOff();
  flagOn = 0;
}

So in etwa sollte es funktionieren, ungetestet.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2016, 14:11
Beitrag #15
RE: Infrarot zu RS232 für Steuerung
Hi,

So würde es funktionieren aber ich wollte es eigentlich in Abhänigkeit schalten was das gerät antwortet.
Also beim Einschalten antwortet das gerät auf der RS232 mit (ADFF541A1101E8)
somit weiß ich das es eingeschaltet ist
Beim Ausschalten sendet es über die RS232 (ADFF541A1001E7)
somit weiß ich das es ausgeschaltet ist

Mein Problem ist es das ich den HEX Wert nicht in eine Variable bekomme Huh
Es wird mir nur FF ausgegeben.
hier noch der Auszug aus dem Code

Code:
case 0xE0E040BF:
   {
    byte thisByte = mySerial.read();
   if (thisByte==("ADFF541A1101E8")) {  
  mySerial.write(message0, sizeof(message0));     delay(100);     break ; // Power On
   }
  
     if (thisByte==0); {
   mySerial.write(message0, sizeof(message0));  Serial.print(thisByte,HEX);   delay(100);     break ; // Power On  
}
if (thisByte==("ADFF541A1001E7"))  {
  mySerial.write(message9, sizeof(message9)); Serial.print(thisByte,HEX);   delay(100);     break ; // Power OFF
}
  }
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.10.2016, 14:29
Beitrag #16
RE: Infrarot zu RS232 für Steuerung
(20.10.2016 14:11)DG0JG schrieb:  Mein Problem ist es das ich den HEX Wert nicht in eine Variable bekomme Huh
Es wird mir nur FF ausgegeben.

Weil das was du empfängst kein Hex oder Byte ist sondern ein String und da must du drauf vergleichen, nicht Byte. Das machst du mit "strcmp".

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Slider Steuerung, Programmierung blueblack 21 623 16.10.2016 22:31
Letzter Beitrag: blueblack
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 125 14.10.2016 21:40
Letzter Beitrag: hotsystems
  Arduino Mega 2560 - RS232-Verbindung zum PC Datatom 4 604 17.03.2016 20:52
Letzter Beitrag: Stephan_56
  Brauche Hilfe bei der Infrarot Fernbedienung Levi 11 1.226 24.02.2016 06:55
Letzter Beitrag: Levi
  Hilfe bei Servo-steuerung Innocence 7 823 23.02.2016 11:00
Letzter Beitrag: hotsystems
Star Infrarot variabel nutzen ??? Mourti 7 417 18.02.2016 18:13
Letzter Beitrag: Mourti
  Steuerung eines Remotekopfes mit Joystick, 2Stck DC Motore und Arduino max123 6 611 30.12.2015 14:56
Letzter Beitrag: max123
  Milight Openmili Steuerung gronph 22 3.464 23.12.2015 11:18
Letzter Beitrag: Phil333
  propleme beim programmieren einer steuerung für funksteckdosen purzele06 18 3.684 19.11.2015 11:06
Letzter Beitrag: Phil94
  Steuerung von mehreren Programmabläufen TimF 21 1.437 04.11.2015 23:28
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste