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 }
控制板载LED
 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 }
控制全彩LED
 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 }
随机颜色LED
 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 }
通过串口命令控制LED
  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 }
上位机控制代码

 

posted on 2018-11-22 23:52  百胜  阅读(177)  评论(0)    收藏  举报