LED控制

1 //定义引脚编号,数字引脚13被用来控制主控板上的测试用LED(即靠近D13的左侧写有L的LED) 2 int pin = 13; 3 4 void setup() { 5 //设定D13的模式为输出 6 pinMode(pin, OUTPUT); 7 } 8 9 void loop() { 10 //将D13设置为高电平,则LED处于点亮状态 11 digitalWrite(pin, HIGH); 12 //保持点亮状态2秒 13 delay(2000); 14 15 //将D13设置为低电平,则LED处于熄灭状态 16 digitalWrite(pin, LOW); 17 //保持熄灭状态1秒 18 delay(1000); 19 }

1 //设置RGB分别对应的引脚 2 int redPin = 2; 3 int greenPin = 3; 4 int bluePin = 4; 5 6 void setup() { 7 //设定引脚模式为输出 8 pinMode(redPin, OUTPUT); 9 pinMode(greenPin, OUTPUT); 10 pinMode(bluePin, OUTPUT); 11 } 12 13 void loop() { 14 //红色亮2s 15 digitalWrite(redPin, HIGH); 16 digitalWrite(greenPin, LOW); 17 digitalWrite(bluePin, LOW); 18 delay(2000); 19 //绿色亮2s 20 digitalWrite(redPin, LOW); 21 digitalWrite(greenPin, HIGH); 22 digitalWrite(bluePin, LOW); 23 delay(2000); 24 //蓝色亮2s 25 digitalWrite(redPin, LOW); 26 digitalWrite(greenPin, LOW); 27 digitalWrite(bluePin, HIGH); 28 delay(2000); 29 //洋红色亮2s 30 digitalWrite(redPin, HIGH); 31 digitalWrite(greenPin, LOW); 32 digitalWrite(bluePin, HIGH); 33 delay(2000); 34 //青色亮2s 35 digitalWrite(redPin, LOW); 36 digitalWrite(greenPin, HIGH); 37 digitalWrite(bluePin, HIGH); 38 delay(2000); 39 //黄色亮2s 40 digitalWrite(redPin, HIGH); 41 digitalWrite(greenPin, HIGH); 42 digitalWrite(bluePin, LOW); 43 delay(2000); 44 }

1 //设置RGB分别对应的引脚,red-D2,green-D3,blue-D4 2 int redPin = 2; 3 int greenPin = 3; 4 int bluePin = 4; 5 6 void setup() { 7 //设定引脚模式为输出 8 pinMode(redPin, OUTPUT); 9 pinMode(greenPin, OUTPUT); 10 pinMode(bluePin, OUTPUT); 11 } 12 13 void loop() { 14 //从A3引脚读取随机噪声生成 15 randomSeed(analogRead(3)); 16 17 //将随机生成的模拟值分别写入RGB引脚,保持2s 18 analogWrite(redPin, random(255)); 19 analogWrite(greenPin, random(255)); 20 analogWrite(bluePin, random(255)); 21 delay(2000); 22 }

1 //接收上位机输入的操作字符串 2 String input = ""; 3 //定义板载LED对应的引脚 4 int pin = 13; 5 6 void setup() { 7 //设置D13模式为输出1 8 pinMode(pin, OUTPUT); 9 //定义并初始化串口 10 Serial.begin(9600); 11 } 12 13 void loop() { 14 while (Serial.available()) 15 { 16 //从串口的缓冲池中逐个字节输入数据 17 input += char(Serial.read()); 18 //延时2ms,确保缓冲区有足够时间接收新数据 19 delay(2); 20 } 21 22 //根据用户输入执行相应动作 23 if (input == "on") 24 { 25 digitalWrite(pin, HIGH); 26 } 27 else 28 { 29 if (input == "off") 30 { 31 digitalWrite(pin, LOW); 32 } 33 else if (input == "blink") 34 { 35 for (int i = 0; i < 6; i++) 36 { 37 digitalWrite(pin, HIGH); 38 delay(200); 39 digitalWrite(pin, LOW); 40 delay(200); 41 } 42 } 43 } 44 input = ""; 45 }

1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms; 10 using System.IO; 11 using System.IO.Ports; 12 13 namespace ArduinoLED 14 { 15 public partial class frmMain : Form 16 { 17 private SerialPort m_Port = null; 18 19 public frmMain() 20 { 21 InitializeComponent(); 22 23 LoadSerialPortCfg(); 24 } 25 26 /// <summary> 27 /// 初始化串口配置参数 28 /// </summary> 29 private void LoadSerialPortCfg() 30 { 31 cbbSerialPortNum.Items.Clear(); 32 cbbSerialPortNum.Items.Add(new Item(1, "COM1", "")); 33 cbbSerialPortNum.Items.Add(new Item(2, "COM2", "")); 34 cbbSerialPortNum.Items.Add(new Item(3, "COM3", "")); 35 cbbSerialPortNum.Items.Add(new Item(4, "COM4", "")); 36 cbbSerialPortNum.Items.Add(new Item(5, "COM5", "")); 37 38 cbbSerialPortSpeed.Items.Clear(); 39 cbbSerialPortSpeed.Items.Add(new Item(1, "9600", "")); 40 cbbSerialPortSpeed.Items.Add(new Item(2, "19200", "")); 41 cbbSerialPortSpeed.Items.Add(new Item(3, "115200", "")); 42 } 43 44 private int StrToInt(String value) 45 { 46 try 47 { 48 return Int32.Parse(value); 49 } 50 catch (Exception e) 51 { 52 return 0; 53 } 54 } 55 56 private void btnConnect_Click(object sender, EventArgs e) 57 { 58 if (this.m_Port == null) 59 { 60 try 61 { 62 this.m_Port = new SerialPort(cbbSerialPortNum.Text, StrToInt(cbbSerialPortSpeed.Text)); 63 this.m_Port.Open(); 64 lblStatus.Text = "连接成功"; 65 } 66 catch (Exception exp) 67 { 68 lblStatus.Text = "连接失败!"; 69 } 70 } 71 } 72 73 private void frmMain_FormClosed(object sender, FormClosedEventArgs e) 74 { 75 if (this.m_Port != null && this.m_Port.IsOpen) 76 { 77 this.m_Port.Close(); 78 } 79 } 80 81 private void btnTurnOn_Click(object sender, EventArgs e) 82 { 83 SerialWrite("on"); 84 } 85 86 private void btnTurnOff_Click(object sender, EventArgs e) 87 { 88 SerialWrite("off"); 89 } 90 91 private void btnBlink_Click(object sender, EventArgs e) 92 { 93 SerialWrite("blink"); 94 } 95 96 /// <summary> 97 /// 向串口写入数据 98 /// </summary> 99 /// <param name="str">待写入串口的数据</param> 100 private void SerialWrite(string str) 101 { 102 if ((this.m_Port != null) && (this.m_Port.IsOpen)) 103 { 104 this.m_Port.Write(str); 105 } 106 } 107 } 108 }