赞
踩
//整体效果是:滑块控制舵机的位置(0~180),按下按键舵机到达指定位置。 //如果只是由滑块控制舵机详细操作见代码! #include <Servo.h> #define BLINKER_WIFI #include <Blinker.h> char auth[] = "我是来自blinker的密钥"; char ssid[] = "HUAWEI nova 21"; char pswd[] = "我是密码"; // 新建组件对象(按键+滑块) BlinkerButton Button1("btn-max"); //位置1 按钮 数据键名 BlinkerSlider Slider1("max-num"); //位置1 滑块 数据键名 范围0-180 Servo myservo; int servo_max; void button1_callback(const String & state) { //位置1 按钮 BLINKER_LOG("get button state: ", servo_max); myservo.write(servo_max); Blinker.vibrate(); } void slider1_callback(int32_t value) { BLINKER_LOG("get slider value: ", value); servo_max = value; Slider1.color("#1E90FF"); Slider1.print(); myservo.write(value);//如果包含这句,APP中的按键是不起作用的,只有滑块管用。 } void setup() { Serial.begin(115200); BLINKER_DEBUG.stream(Serial); Blinker.begin(auth, ssid, pswd); Button1.attach(button1_callback); Slider1.attach(slider1_callback); myservo.attach(2); myservo.write(10); } void loop() { Blinker.run(); }
#include <Servo.h>//舵机不简单哦,去看一看自己的IDE是否有Servo的库哈!
Servo myservo; // 定义舵机对象,myservo就是这次要用的舵机名称后续会用到
void setup(){
myservo.attach(2); // 设置舵机控制针脚:2
}
void loop(){
myservo.write(180); //写入舵机应该到达的位置。
}
#include <Servo.h> //引入舵机的库
#define BLINKER_WIFI
#include <Blinker.h>
char auth[] = "我是来自blinker的密钥";
char ssid[] = "HUAWEI nova 21";
char pswd[] = "我是密码";
//上节已经详细介绍过了,如果有疑问可以移步第一课,感谢
// 新建组件对象(按键+滑块)
BlinkerButton Button1("btn-max"); //位置1 按钮 数据键名
BlinkerSlider Slider1("max-num"); //位置1 滑块 数据键名 范围0-180
Servo myservo;//定义一个本次要使用的舵机,myservo是这个舵机的名字
具体方式上节已详细说明
int servo_max; //定义了一个变量,用来保存从手机读取来的位置数据 //[小白说]这个变量没啥作用 //和上一节课一样的 定义按键的回调函数, void button1_callback(const String & state) { //位置1 按钮 BLINKER_LOG("get button state: ", servo_max); //blinker日志,获取按键的状态,这一次记录的是来自滑块的数据 myservo.write(servo_max); //控制舵机转到这个位置, //[小白说]servo_max保存的是来自滑块的值 Blinker.vibrate(); //向手机发送振动指令,()里面是振动的时间,范围是0-1000,默认是500ms //[小白说]这个东西挺好玩的,第一次尝试的时候,我还纳闷为啥会震动了? } //新建了一个滑块组件 //定义滑块的回调函数 void slider1_callback(int32_t value) //int32_t与int同样是定义变量的数据类型,含义相近 //int32_t : typedef signed int { BLINKER_LOG("get slider value: ", value); //blinker日志(得到滑块的数值到value里) servo_max = value; //[小白说]value的数值又转手给了servo_max,这不就回到上面那个按键控制舵机位置用到的servo_max了嘛! Slider1.color("#1E90FF"); //[小白说]字面意思是滑块的颜色,可是滑块的颜色是APP创建时候定的呀有啥用呢? //[小白说]哇,还是程序老大!APP上滑块进度条的颜色以程序为主 Slider1.print(); //打印输出滑块数值的 //[小白说]这个输出会体现在滑块身上,挺有意思的我尝试了把‘()’里写21,结果是不管滑块话到哪里,都会回到21的位置上。好玩!咱也不知道有啥用! myservo.write(value); //如果包含这句,APP中的按键是不起作用的,只有滑块管用。 //[小白说]可以尝试把这句注释掉! }
void setup() { Serial.begin(115200); BLINKER_DEBUG.stream(Serial); Blinker.begin(auth, ssid, pswd); Button1.attach(button1_callback); Slider1.attach(slider1_callback); //[小白说]以上部分的初始化设置,可以参照上一节课哈! myservo.attach(2); //设置舵机的引脚为2,IO2 myservo.write(10); //初始设置舵机的位置在10。 } void loop() { Blinker.run();//干活啦!!! //详解见第一节笔记 }
完整代码在开头
作者QQ:2489055370,
欢迎大神指教与同学的提问(提问这篇的内容或者更简单的可以 [笑哭] )
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。