想用processing IDE 替代 Arduino IDE,但是出现了问题~~~
processing吧
全部回复
仅看楼主
level 1
我的目的是想用processing IDE代替Arduino IDE实现一个流水灯,基于firmata协议,就行在Arduino里面运行examples的StandarFirmata,然后在processing3里面导入库(arduino firmata),这样就可以在processing3里面直接编写控制arduino的代码,就不用arduino IDE了。
想实现的现象就是6个LED灯,分别连到arduino的0-5的引脚,在旋转电位器的时候,LED从0-5分别亮,电位器在旋转回来的时候,LED从5-0分别灭,我在Arduino IDE里面运行,现象没问题,可以运行,说明电路连接没问题,Arduino IDE里面的代码如下:
// 引脚定义
const int analogPin = A0; // 模拟输入
const int ledCount = 6; // led个数
int ledPins[] = {
0,1,2,3,4,5}; // 对应的led引脚
void setup() {
// 循环设置,把对应的led都设置成输出
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}
void loop() {
// 读取电位器的值
int sensorReading = analogRead(analogPin);
// 把对应的值转化成0-最大led个数,这里是6
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
// 循环对比输出到led:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
if (thisLed < ledLevel) {
digitalWrite(ledPins[thisLed], HIGH);
}
else {
digitalWrite(ledPins[thisLed], LOW);
}
}
}
现在我用processing3 IDE代替arduino IDE,运行的代码如下:
import processing.serial.*;
import cc.arduino.*;
Arduino arduino;
int analogPin = 0;
int ledCount = 6;
int ledPins[] = {0,1,2,3,4,5};
void setup() {
arduino = new Arduino(this, Arduino.list()[0], 57600);
for (int i = 0; i < ledCount; i++)
arduino.pinMode(ledPins[i], Arduino.OUTPUT);
}
void draw() {
float read = arduino.analogRead(analogPin);
println(read);
float read2 = map(read,0,1023,0,ledCount);
for(int i=0;i<ledCount;i++){
//println(read2);
if(i<read2){
println(read2);
arduino.digitalWrite(ledPins[i], Arduino.HIGH);
}
else{
arduino.digitalWrite(ledPins[i], Arduino.LOW);
}
}
}
其中第17行我想看一下从电位器读取到的值的时候,控制台显示的永远是0.0,所以流水灯的现象也根本没有,求各位大神们帮小弟看一看,完全新手,弄不懂啊~~~~~~
2016年01月09日 03点01分 1
1