使用串口通信,更改arduino引脚的高低电平

想要通过串口输入数据,令Arduino的D2~Dx引脚产生高/低电平,可以参考以下程序:

当然,一次发送的数据视Arduino引脚数而定,比如Arduino UNO/nano之类的,只有D2~D13十二个引脚。我们打12个数字就好。比如101101011010,如果中间有非0和1的字符,则自动跳过该位设置:比如122202221222这样。因为2不是允许范围内,就只设置D2/D6/D10的值了:

String comdata = "";
void setup()
{
  Serial.begin(9600);
  for(int i = 2; i <= 13; i++) 
  {
  pinMode(i, OUTPUT); 
  } 
void loop() 
{ 
  while (Serial.available() > 0)
  {
    comdata += int(Serial.read()) - '0'; //Serial.read()读取的是ASCII,所这里应减去字符'0'
    delay(2);
  }
  if(comdata.length() > 0)
  {
    for(int i = 0; i < comdata.length(); i++)
    {
      if(comdata[i]=='0'||comdata[i]=='1')
      {
        digitalWrite(i + 2, comdata[i] - '0');
        Serial.print("Pin ");
        Serial.print(i + 2);
        Serial.print(" is ");
        Serial.println(comdata[i]);
      }
    }
    comdata = "";
  }
}

3.jpg

4.jpg

0 Comments
Leave a Reply