如何从 c# 将 int 设置为 arduino
本文关键字:设置 arduino int | 更新日期: 2023-09-27 18:31:41
我正在一个项目中使用 arduino 和 C# 根据温度控制风扇,这里的问题是我需要为用户提供一个选项来提供风扇将打开的输入温度。我为此使用 C# 和 arduino uno,我已经设法在 C# 界面中显示温度值,但是当我尝试发送 int 时,该值没有到达 arduino。
我一直在调查,并看到将 int 转换为字节将解决问题,但我不明白这是如何工作的以及如何将其放入代码中。
这是我对该特定按钮的 C# 代码:
这里应该从文本框中获取值并将其转换为字节。
private void cmdSend_Click(object sender, EventArgs e)
{
if(SP.IsOpen)
{
int temp = Int32.Parse(txttemp.Text);
byte[] b = BitConverter.GetBytes(temp);
SP.Write(b,0,4);
}
}
这是我的arduino代码:
在这里,变量 T 应该是从 C# 接收值并更改风扇打开的最大温度的变量。
float temperatura = 0; //variable for the temperature
int fan = 8; //pin of the fan
int T;
void setup(){
Serial.begin (9600); //inicia comunicacion serial
pinMode(fan,OUTPUT);//configuracion del pin 8
}
void loop(){
//Calcula la temperatura usando como referencia 5v
temperatura = (5.0 * analogRead(0)*100.0)/1023.0;
Serial.println (temperatura); //writes temperature in the serial
delay (500);
//esto enciende y apaga el ventlador
if (temperatura < T){//change the number to the range you desire
digitalWrite(fan, LOW);
}else
digitalWrite(8,HIGH);
}
我认为最简单的方法,可以确保您也获得出色而稳定的性能,方法是使用CmdMessenger库进行Arduino/C#通信。您可以非常简单地集成和修改库和示例。还有一个整数图的示例。我希望这对你有所帮助。