欢迎光临
我们一直在努力

通信部分-调光器

本例向你展示如何从电脑发送数据到Arduino或Genuino板来控制LED的亮度。数据以字节为单位发送,每个值的范围在这里应为0到255。程序会读取这些字节,并且使用它们来设置LED亮度。

你可以用电脑上任何可以读写串口的软件。若使用Processing和Max/MSP 5.x版本来监看,下面也提供了代码。

硬件需求

Arduino板

LED

220Ω电阻

软件需求

Processing或者Max/MSP 5.x版本

连接线

将220Ω限流电阻连接到9号引脚,并且在之间串联一个LED。LED的长脚(阳极)连电阻,短脚(阴极)连接到GND。

电路

image

原理图

clip_image002

代码

/*
    调光器
  
   展示从电脑发送数据到板子,并通过发送的数据控制LED的亮度。数据以字节为单位发送,每个byte范围这里是0到255。
  
   电路搭建:
   9号引脚接LED,并且连接到GND。
   与Processing, Max/MSP, 或者其他串口程序。
 
  代码是公开的。
  */ 
  
const int ledPin = 9;      // LED连接的引脚 
  
void setup() { 
   // 初始化串口连接: 
   Serial.begin(9600); 
   // 初始化ledPin为输出模式: 
   pinMode(ledPin, OUTPUT); 

  
void loop() { 
   byte brightness; 
  
   // 检查是否电脑传来了数据: 
   if (Serial.available()) { 
     // 读取最近的一个byte (应该是一个0-255的值): 
     brightness = Serial.read(); 
     // 将brightness设置给LED: 
     analogWrite(ledPin, brightness); 
   } 

以下为电脑上的代码,可二选一。其实用Arduino串口监视器也可。

Processing代码

Processing代码将会从电脑发送byte来控制LED。

//调光器-将通过串口发送字节 
  //代码是公开的. 
  
  import processing.serial.*; 
  Serial port; 
  
  void setup() { 
  size(256, 150); 
  
println("Available serial ports:"); 
// 若使用Processing 2.1或更早版本,使用Serial.printArray() 
println(Serial.list()); 
 
//目前使用列表的第一个串口 (数字 0)。请改变这个值来选择Arduino板的串口。最后一个参数(这里是:9600)是串口通信的速率(波特率)。它应与Arduino代码中Serial.begin()中传入的数值一样。 
 
port = new Serial(this, Serial.list()[0], 9600); 
 
// 如果你知道Arduino板串口的名字,那么你可以直接像这样指定 
//port = new Serial(this, "COM1", 9600); 

 
void draw() { 
// 绘制黑白渐变 
for (int i = 0; i < 256; i++) { 
stroke(i); 
line(i, 0, i, 150); 

 
// 将鼠标的x位置作为byte输出 
port.write(mouseX); 

Max/MSP v5 用的补丁

请复制下面这些代码,并且粘贴到新建patch的串口。Max/MSP将会如以下图片一样显示。

image

———-begin_max5_patcher———-
1008.3ocuXszaiaCD9r8uhA5rqAeHIa0aAMaAVf1S6hdoYQAsDiL6JQZHQ2M
YWr+2KeX4vjnjXKKkKhhiGQ9MeyCNz+X9rnMp63sQvuB+MLa1OlOalSjUvrC
ymEUytKuh05TKJWUWyk5nE9eSyuS6jesvHu4F4MxOuUzB6X57sPKWVzBLXiP
xZtGj6q2vafaaT0.BzJfjj.p8ZPukazsQvpfcpFs8mXR3plh8BoBxURIOWyK
rxspZ0YI.eTCEh5Vqp+wGtFXZMKe6CZc3yWZwTdCmYW.BBkdiby8v0r+ST.W
sD9SdUkn8FYspPbqvnBNFtZWiUyLmleJWo0vuKzeuj2vpJLaWA7YiE7wREui
FpDFDp1KcbAFcP5sJoVxp4NB5Jq40ougIDxJt1wo3GDZHiNocKhiIExx+owv
AdOEAksDs.RRrOoww1Arc.9RvN2J9tamwjkcqknvAE0l+8WnjHqreNet8whK
z6mukIK4d+Xknv3jstvJs8EirMMhxsZIusET25jXbX8xczIl5xPVxhPcTGFu
xNDu9rXtUCg37g9Q8Yc+EuofIYmg8QdkPCrOnXsaHwYs3rWx9PGsO+pqueG2
uNQBqWFh1X7qQG+3.VHcHrfO1nyR2TlqpTM9MDsLKNCQVz6KO.+Sfc5j1Ykj
jzkn2jwNDRP7LVb3d9LtoWBAOnvB92Le6yRmZ4UF7YpQhiFi7A5Ka8zXhKdA
4r9TRGG7V4COiSbAJKdXrWNhhF0hNUh7uBa4Mba0l7JUK+omjDMwkSn95Izr
TOwkdp7W.oPRmNRQsiKeu4j3CkfVgt.NYPEYqMGvvJ48vIlPiyzrIuZskWIS
xGJPcmPiWOfLodybH3wjPbMYwlbFIMNHPHFOtLBNaLSa9sGk1TxMzCX5KTa6
WIH2ocxSdngM0QPqFRxyPHFsprrhGc9Gy9xoBjz0NWdR2yW9DUa2F85jG2v9
FgTO4Q8qiC7fzzQNpmNpsY3BrYPVJBMJQ1uVmoItRhw9NrVGO3NMNzYZ+zS7
3WTvTOnUydG5kHMKLqAOjTe7fN2bGSxOZDkMrBrGQ9J1gONBEy0k4gVo8qHc
cxmfxVihWz6a3yqY9NazzUYkua9UnynadOtogW.JfsVGRVNEbWF8I+eHtcwJ
+wLXqZeSdWLo+FQF6731Tva0BISKTx.cLwmgJsUTTvkg1YsnXmxDge.CDR7x
D6YmX6fMznaF7kdczmJXwm.XSOOrdoHhNA7GMiZYLZZR.+4lconMaJP6JOZ8
ftCs1YWHZI3o.sIXezX5ihMSuXzZtk3ai1mXRSczoCS32hAydeyXNEu5SHyS
xqZqbd3ZLdera1iPqYxOm++v7SUSz
———–end_max5_patcher———–


未经允许不得转载:Arduino-Maker » 通信部分-调光器

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

线上商城

中贝斯特创客空间蘑菇云创客教育