Arduino controlP5数字框变量打印
我正在尝试使用controlp5在数字框中打印一个变量。数据从串行端口读取并存储在变量中。我想打印数字框中的值,但它不起作用。当我在控制台中打印它时,它会显示值,但不会显示在数字框中 这是我的密码:Arduino controlP5数字框变量打印,arduino,processing,control-p5,Arduino,Processing,Control P5,我正在尝试使用controlp5在数字框中打印一个变量。数据从串行端口读取并存储在变量中。我想打印数字框中的值,但它不起作用。当我在控制台中打印它时,它会显示值,但不会显示在数字框中 这是我的密码: 导入控制p5.*; 输入处理。串行。*; 控制p5-cp5; 字体; 在这里输入代码 无效设置(){ 大小(300450); 端口=新序列号(此“COM3”,19200); cp5=新控制P5(本); font=createFont(“calibri light bold”,20); cp5.添加按
导入控制p5.*;
输入处理。串行。*;
控制p5-cp5;
字体;
在这里输入代码
无效设置(){
大小(300450);
端口=新序列号(此“COM3”,19200);
cp5=新控制P5(本);
font=createFont(“calibri light bold”,20);
cp5.添加按钮(“增加”).设置位置(100,50)
.setSize(120,70).setFont(font);
cp5.添加按钮(“减少”).设置位置(100250)
.setSize(120,70).setFont(font);
cp5.addNumberbox(“温度”)设置位置(100160)
.setSize(120,70).setFont(font).SetString值(val);
作废提款(){
背景(150,0150)`
填充(0,255,0);
文本字体(字体);
文本(“控制”,80、30);
如果(端口可用()>0)
{
val=port.readStringUntil('\n');
}
println(val);
空隙增加(){
port.write('r');
}
空隙减少(){
port.write('b');
}
在此代码中,
val
是变量,数据从串行端口读取并存储在val
但中。setString值(val)
没有打印val
的值。但是,如果我在命令控制台中打印val
,它会显示变量val的值。请尝试发布有效代码。此代码将无法编译,因为缺少括号,我们无法运行它,因为它不是一个
我还建议你养成了解发生了什么的习惯。逐行检查你的代码,找出每一行是什么时候发生的
具体来说,您仅在此处设置值:
cp5.addNumberbox("temp").setPosition(100,160)
.setSize(120,70).setFont(font).setStringValue(val);
当val
设置为默认值时,这一行代码在开头出现一次。(请注意,您甚至没有在发布的代码中声明变量。请发布MCVE。)
稍后在代码中,您将更新val
变量:
if ( port.available() > 0)
{
val = port.readStringUntil('\n');
}
println(val);
但请注意,您没有更新显示在数字框中的值。更新val
变量不会自动更新已使用该变量的位置。每次值更改时,您都需要手动更新数字框。使用.setValue()
而不是。setString值()
您必须调用Integer.valueOf(val)
将其转换为您的Numberbox将接受的类型
生成的代码可能如下所示:
if ( port.available() > 0)
{
val = port.readStringUntil('\n');
cp5.get("temp").setValue(Integer.valueOf(val));
}
但是,如果您只是想显示该值,我建议使用Processing的text()
或CP5TextArea
或textlab
,因为Numberbox
旨在为用户提供一种简单的方式来更改/指定值,而不仅仅是显示值。当鼠标位于框上方时,可以通过滚动鼠标中键来调整Numberbox的值。可以打印值在数字框中,您是否在读取值之前未读取且仅读取一次?