Я новичок в Arduino и на этой веб-странице, поэтому, пожалуйста, поймите и извините за мой плохой английский.Я надеюсь, что я все записал ясно.
Я получаю эту ошибку IRsend::sendNEC(String&, int)
, когда я пытаюсь выполнить эту команду: irsend.sendNEC(String, 32)
.Я пытался конвертировать int, но я делаю больше ошибок.
Вот мой код C #:
serialPort = new SerialPort("COM9", 115200);
serialPort.BaudRate = 9600;
serialPort.ReadTimeout = 500;
serialPort.Parity = Parity.None;
serialPort.DataBits = 8;
serialPort.StopBits = StopBits.One;
serialPort.Handshake = Handshake.None;
serialPort.DtrEnable = false;
serialPort.RtsEnable = true;
serialPort.Open();
serialPort.DataReceived += new SerialDataReceivedEventHandler(SignalReceived);
private void SignalReceived(object sender, SerialDataReceivedEventArgs e)
{
if (serialPort.IsOpen)
{
string indata = serialPort.ReadExisting();
this.Invoke((MethodInvoker)delegate
{
if(indata != null | indata != "")
textBox1.AppendText(indata + Environment.NewLine);
});
}
private void button1_Click(object sender, EventArgs e)
{
serialPort.Write("0xFF1AE5");
}
Я пытался записать serialPort в int:
int MyInt = 0xFF1AE5;
byte[] b = BitConverter.GetBytes(MyInt);
serialPort.Write(b,0,4);
Вот мой код Arduino:
#include <IRremote.h>
IRsend irsend;
String str = Serial.readString();
unsigned long cmdlong = str.toInt();
irsend.sendNEC(cmdlong, 32);
Serial.println(cmdlong);
на выходе ничего не будет.Я тоже пытался конвертировать char, но не иначе.
char inData[str.length() + 1];
str.toCharArray(inData, str.length() + 1);
irsend.sendNEC(inData, 32);
Спасибо за все идеи!