Dimmer: 通过移动鼠标来改变 LED 的亮度
原文地址 - https://www.arduino.cc/en/Tutorial/Dimmer
调光器
本例展示了如何通过个人电脑发送数据到 Arduino / Genuino 开发板来控制一个LED的亮度。数据用单独的字节发送,每一个数字的范围是0到255。程序读取这些字节并用他们来设置LED的亮度。
硬件需求
Arduino 或Genuino开发板
LED
220欧电阻
软件需求
Processing 或
Max/MSP version 5
电路
把一个220欧的限流电阻接到数字引脚9并与LED串接。LED的长针脚(阳极)应该连接到电阻的输出端,短针脚(阴极)接到GND
原理图
代码
/*
调光器 通过从电脑发送数据到Arduino开发板,来控制LED的亮度。
传送的数据为单字节,数据范围为0到255.
Arduino读取这些字节数据并用它们设置LED的亮度。 电路:
LED连接了数字引脚9和接地。
串口连接到Processing, Max/MSP, 或其他的串口程序。 编写日期:2006
编制人员:David A. Mellis
更新日期:2011年8月30日
更新人员:Tom Igoe、Scott Fitzgerald
翻译日期:2016年12月14日
翻译人员:苏杭
本示例公布在公众网络上. http://www.arduino.cc/en/Tutorial/Dimmer */ const int ledPin = 9; // LED所连接的引脚 void setup() {
// 初始化串口连接:
Serial.begin(9600);
// 初始化LED引脚作为输出:
pinMode(ledPin, OUTPUT);
} void loop() {
byte brightness; // 检查是否有数据从电脑发送过来:
if (Serial.available()) {
// 读取最后发送的字节数据(从0到255):
brightness = Serial.read();
// 设置LED的亮度:
analogWrite(ledPin, brightness);
}
} /* 本例Processing代码
// Dimmer - 发送数据到一个串口
// 由David A. Mellis编写
//本示例的代码公布在公众网络上. 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位置作为一个单字节写入串口
port.write(mouseX);
}
*/ /* 本例 Max/MSP v5补丁 ----------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-----------
*/
Processing代码
示例代码中的Processing程序将从电脑的串口发送字节码到开发板以控制LED亮度。
参考
Max代码
上面示例中的Max/MSP补丁看起来就像是以下的图片。复制并粘贴到一个新的补丁窗口。
另见
- serial()
- serial.read()
- analogRead()
- analogWrite()
- ASCIITable - 演示 Arduino 串口输出的进阶功能.
- Graph - 传送数据到电脑,并用它在 Processing 内画图.
- Midi - 序列地发送 MIDI 音调信息.
- MultiSerialMega - 使用 Arduino Mega 上的两个串口端口.
- PhysicalPixel - 从 Processing 或者 Max/MSP 发送数据到 Arduino 来点亮或熄灭 LED 灯.
- ReadASCIIString - 解析一段逗号分隔的数字字符串,从而使 LED 变亮或暗.
- SerialCallResponse -使用呼叫-回应方式(握手)发出多个变量值.
- SerialCallResponseASCII - 使用呼叫-回应方式(握手)发出多个变量值,并在发送前进行ASCII编码.
- Serial Event:演示如何使用 SerialEvent().
- VirtualColorMixer - 从 Arduino 向电脑发送多个变量值,并且使用 Processing 或 Max/MSP 来读取.
最终版本编辑2015/07/29 SM
QQ 群
欢迎加入我们的大家庭 点击加入 硬创联盟 Arduino 群号 8580606
翻译:硬创联盟翻译组翻译员 – 苏杭
审核:硬创联盟翻译组技术语文审核 - 神奇海螺,Lepton-华,成都阿杰
Dimmer: 通过移动鼠标来改变 LED 的亮度的更多相关文章
- jQuery实现鼠标拖动改变Div高度
最近项目中需要在DashBoard页面做一个事件通知栏,该通知栏固定位于页面底部,鼠标拖动该DIV实现自动改变高度扩展内容显示区域. 以下是一个设计原型,基于jQuery实现,只实现了拖动效果,没有做 ...
- qt学习(三):鼠标图标改变
qt学习 (三):鼠标图标改变 当你进入一个美好的qt软件场景,比如游戏,电脑的黑白图标会让程序逊色不少, 1改图标要加光标的头文件, 2 载入光标图, 3 再设置改光标就可以了 1在头文件中加 #i ...
- 解码红外遥控信号——使用遥控器的按键来调节LED的亮度
程序开始时,提示遥控键0~4的代码,然后程序通过设置LED的亮度来对被按下的按钮作出响应,以0关闭LED,1~4提供增加的亮度. 代码如下:(需要使用IRremote库,可在库管理中搜索该库进行下载后 ...
- Windows 10 IoT Core用PWM控制器控制树莓派LED灯亮度
我接到一个需求,需要调节LED灯的亮度,且是从上位机进行控制,我了解到树莓派也有PWM,就准备通过PWM来控制灯的亮度. PWM又叫脉宽调制,是用微处理器的数字输出来对模拟电路进行控制,对模拟信号电平 ...
- Android--动态改变ImageView的亮度
//改变图片的亮度方法 0--原样 >0---调亮 <0---调暗 private void changeLight(ImageView imageView, int brightness ...
- 1个LED的亮度自动控制
控制任务和要求 通过程序控制LED的亮度按照要求变化 电路设计 程序设计 1 int bright_number = 0; //此变量用来表示LED的亮度 2 int bright_gap = 5; ...
- java 24 - 5 GUI之 鼠标移动改变窗体背景颜色
需求: 创建一个可改变背景颜色的窗口,鼠标移动到按钮上,窗口背景就会改变成特定的颜色 步骤: (大致上) 创建窗口对象 创建按钮对象 添加按钮到窗口中 设置窗口关闭监听事件 设置鼠标进入按钮区域的监听 ...
- VUE实现Studio管理后台(一):鼠标拖放改变窗口大小
近期改版RXEditor,把改版过程,用到的技术点,记录下来.昨天完成了静态页面的制作,制作过程并未详细记录,后期已经不愿再补了,有些遗憾.不过工作成果完整保留在github上,地址:https:// ...
- js设置鼠标悬停改变背景色
看了网上那么多的js鼠标悬停时事件,大多数的,说了那么多话,也没解决什么问题,现在直接贴上代码,以供参考 html: <div id="sign">this is te ...
随机推荐
- Linux shell:FTP(文件传输协议)上传下载命令
SecureCRT通过ftp将nmon上传,建立一个目录,用命令上传文件.[命令见下面] 或通过UE.SSH上传/下载,使用sftp建立链接. [通过cmd进入ftp服务器]先假设有一FTP服务器,F ...
- 【JavaScript忍者秘籍】定时器
- SEO如何辨别真假Baiduspider
我们站长查看网站访问数据,分析IP来源是我们站长的日常工作,对一些异常的IP段,我们首先要区分是否是搜索引擎蜘蛛的IP段,以免误伤,下面我们就以2段IP为例,一个是百度蜘蛛的220.181.108.1 ...
- SQL --Chapter 04 数据更新
数据的插入(INSERT语句的使用方法) INSERT INTO ShohinIns (shohin_id, shohin_mei, shohin_bunrui, hanbai_tanka, 原则上, ...
- PHP character garbled
MySql 控制台查询时出现乱码 Database&Table 的字符集 于Mysql控制台显示的字符集不一样 右键单击mysql控制台边框 单击属性 查看当前代码页的字符集模式是否于数 ...
- C#循环语句练习2
1.羽毛球拍15元,球3元,水2元,有200元,每一种至少买一件,问有几种买法? 2.洗发水15元,牙刷5元,香皂2元,有150元,每一种至少买一件,问有几种买法? 3.用100元钱买100只鸡,公鸡 ...
- 统计Apache或Nginx访问日志里的独立IP访问数量的Shell
1.把IP数量直接输出显示: cat access_log_2011_06_26.log |awk '{print $1}'|uniq -c|wc -l 2.把IP数量输出到文本显示: cat acc ...
- URL Scheme APP跳转safari以及跳回APP
上图 : 在plist文件里面设置. URL identifier 一般为反域名+项目名称 (尽可能保证少重复) URL Schemes是一个数组.一个APP可以添加多个.该参数为跳转时使用的标识. ...
- Python requests 为pfsense 添加Routes
# !/usr/bin/python 2 # -*- coding: utf-8 -*- __author__ = "Evilxr" import requests ips = o ...
- Linux makefile 教程 非常详细,且易懂
最近在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是google到了以下这篇文章.通俗易懂.然后把它贴出 ...