我是靠谱客的博主 昏睡寒风,最近开发中收集的这篇文章主要介绍【processing与arduino互动编程】第七章 控制彩色LED灯(转载),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Processeing代码

复制代码
1 import processing.serial.*;
2 Serial port = new Serial(this, “COM3”, 9600);
3 int redDisplay, greenDisplay, blueDisplay;
4 int red, green, blue;
5 String strRed, strGreen, strBlue;
6 String message;
7
8 void setup() {
9 size(700, 500);
10 }
11
12 void draw() {
13 background(204);
14 frame();
15 RGBDisplay();
16 sendMessage();
17 }
18
19 void frame() {
20 rectMode(CORNER);
21 noFill();
22 stroke(255, 0, 0);
23 strokeWeight(2);
24 rect(50, 100, 500, 50);
25 stroke(0, 255, 0);
26 rect(50, 200, 500, 50);
27 stroke(0, 0, 255);
28 rect(50, 300, 500, 50);
29 }
30
31 void RGBDisplay() {
32 rectMode(CORNER);
33 noStroke();
34 fill(red, 0, 0);
35 rect(50, 100, redDisplay, 50);
36 fill(0, green, 0);
37 rect(50, 200, greenDisplay, 50);
38 fill(0, 0, blue);
39 rect(50, 300, blueDisplay, 50);
40 fill(red, green, blue);
41 rect(300, 400, 50, 50);
42 fill(0);
43 rect(400, 400, 50, 50);
44 }
45
46 void mouseClicked() {
47 if (mouseX <= 550 && mouseX >= 50) {
48 if (mouseY <= 150 && mouseY >= 100) {
49 red = (int) map(mouseX, 50, 550, 0, 255);
50 redDisplay = mouseX - 50;
51 }
52 else if (mouseY <= 250 && mouseY >= 200) {
53 green = (int)map(mouseX, 50, 550, 0, 255);
54 greenDisplay = mouseX - 50;
55 }
56 else if (mouseY <= 350 && mouseY >= 300) {
57 blue = (int) map(mouseX, 50, 550, 0, 255);
58 blueDisplay = mouseX - 50;
59 }
60 else if (mouseX <= 450 && mouseX >= 400)
61 shut();
62 }
63 }
64
65 void sendMessage() {
66 strRed = red + “”;
67 if (red < 100)
68 strRed = “0” + red;
69 if (red < 10)
70 strRed = “00” + red;
71
72 strGreen = green + “”;
73 if (green < 100)
74 strGreen = “0” + green;
75 if (green < 10)
76 strGreen = “00” + green;
77
78 strBlue = blue + “”;
79 if (blue < 100)
80 strBlue = “0” + blue;
81 if (blue < 10)
82 strBlue = “00” + blue;
83
84 message = “a” + strRed + strGreen + strBlue + “s”;
85 port.write(message);
86 }
87
88 void shut() {
89 redDisplay = 0;
90 greenDisplay = 0;
91 blueDisplay = 0;
92 red = 0;
93 green = 0;
94 blue = 0;
95 }
复制代码
Arduino代码

复制代码
1 int redpin = 11;
2 int bluepin = 10;
3 int greenpin = 9;
4
5 void setup() {
6 pinMode(redpin, OUTPUT);
7 pinMode(bluepin, OUTPUT);
8 pinMode(greenpin, OUTPUT);
9 Serial.begin(9600);
10 }
11
12 char charbuf[20];
13 int color[3];
14
15 void loop() {
16 while (Serial.available() > 0) {
17 Serial.readBytesUntil(‘s’, charbuf, 20);
18 if (charbuf[0] == ‘a’) {
19 color[0] = 100 * (charbuf[1] - ‘0’) + 10 *( charbuf[2] -‘0’) + charbuf[3] -‘0’;
20 color[1] = 100 * (charbuf[4] - ‘0’) + 10 *( charbuf[5] -‘0’) + charbuf[6] -‘0’;
21 color[2] = 100 * (charbuf[7] - ‘0’) + 10 *( charbuf[8] -‘0’) + charbuf[9] -‘0’;
22 }
23 analogWrite(redpin, color[0]);
24 analogWrite(greenpin, color[1]);
25 analogWrite(bluepin, color[2]);
26 }
27 }
复制代码
鼠标点击的时候,有点问题,有时候会不动, 有时候会清零。将46-61行部分if语句改成else if即可。

最后

以上就是昏睡寒风为你收集整理的【processing与arduino互动编程】第七章 控制彩色LED灯(转载)的全部内容,希望文章能够帮你解决【processing与arduino互动编程】第七章 控制彩色LED灯(转载)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部