两侧同时换到之前的修订记录前一修订版 | |
learing:examples:dimmer [2017/10/05 03:37] – 弘毅 | learing:examples:dimmer [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 |
---|
| ====== Dimmer(熄灭LED) ====== |
| |
| <WRAP left round info 65%> |
| 这个例子演示了从电脑发送数据到控制器来控制LED的亮度。数据是按每个字节发送的,范围在0-255。OCROBOT控制器读取这些数据,用它们设置LED亮度。 |
| |
| 你可以使用任意的可以使用电脑串口的软件来发送数据。下面的程序是用processing演示的。 |
| </WRAP> |
| |
| <WRAP left round box 100%> |
| ===== ALPHA MEGA328-U核心 ===== |
| |
| ==== 硬件 ==== |
| * [[ocrobot:alpha:parallelexpansion:index|ALPHA 并行扩展板]] |
| * [[ocrobot:alpha:mega328-u:main|ALPHA MEGA328-U]] |
| * [[ocrobot:alpha:11led:index|ALPHA 11 LED模块]] |
| |
| ==== 搭建电路 ==== |
| |
| - ALPHA 11 LED模块插入并行扩展版1号槽位。 |
| - ALPHA MEGA328-U模块插入并行扩展板2号槽位。 |
| - USB线连接计算机与ALPHA MEGA328-U。 |
| |
| |
| </WRAP> |
| |
| <WRAP left round box 100%> |
| ===== ALPHA 8F328D-U核心 ===== |
| |
| ==== 硬件 ==== |
| * [[ocrobot:alpha:parallelexpansion:index|ALPHA 并行扩展板]] |
| * [[ocrobot:alpha:8f328d-u:index|ALPHA 8F328D-U]] |
| * [[ocrobot:alpha:11led:index|ALPHA 11 LED模块]] |
| |
| ==== 搭建电路 ==== |
| |
| - ALPHA 11 LED模块插入并行扩展版1号槽位。 |
| - ALPHA 8F328D-U模块插入并行扩展板2号槽位。 |
| - USB线连接计算机与ALPHA 8F328D-U。 |
| |
| </WRAP> |
| |
| |
| <WRAP left round box 100%> |
| ===== MangoII ===== |
| |
| ==== 硬件要求 ==== |
| |
| |OCROBOT控制器| |
| |LED| |
| |220欧姆电阻| |
| |导线| |
| |
| ==== 软件要求 ==== |
| |
| Processing |
| |
| |
| |
| 使用合适的电阻连接LED到9号引脚,,对大多数LED来说220或者330欧姆都是可以的。 |
| |
| |
| |
| ==== 代码 ==== |
| |
| |
| <code cpp>/* |
| Dimmer |
| |
| |
| */ |
| |
| const int ledPin = 9; // LED链接到9号脚 |
| |
| void setup() |
| { |
| // 初始化串口通讯 |
| Serial.begin(9600); |
| // LED作为输出 |
| pinMode(ledPin, OUTPUT); |
| } |
| |
| void loop() { |
| byte brightness; |
| |
| // 检查串口数据 |
| if (Serial.available()) { |
| // 读取最新到达的数据: |
| brightness = Serial.read(); |
| // 设置LED亮度 |
| analogWrite(ledPin, brightness); |
| } |
| }</code> |
| Processing代码 |
| <code cpp> |
| // Dimmer - 用串口发送数据 |
| |
| import processing.serial.*; |
| Serial port; |
| |
| void setup() { |
| size(256, 150); |
| |
| println("Available serial ports:"); |
| println(Serial.list()); |
| |
| // 使用列表里的第一个可用串口. 选择和arduino对应的串口和通信速率 |
| 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); |
| } |
| |
| </code> |
| |
| |
| |
| Processing会发送数据到串口给控制器来熄灭LED |
| </WRAP> |
| |