3207| 0
|
#DFrobot 2018景观园 |
老郭最近迷上了做塔,做完了灯塔,做宝塔,做完了宝塔,看到王老师做的青衣花旦,决定给他们搭个戏台,搭完了戏台,修亭子,修牌楼,修传达室:dizzy:.........作为机电双侠的电侠必须负责任地告诉老郭,围个圈,您终于做了个大园子。 老郭的宝塔、戏台、亭子、牌楼。 3D作品地址是:https://www.tinkercad.com/things/6TwAZafLP1w-dfrobot2018 老郭说了,我这么漂亮一座塔,你要给设计个驱鸟器,别让鸟儿在塔顶做窝。给它加上绚丽的灯光吧.............好吧,我呢,决定给它们卖门票:(。 circuits设计的要求: 1.使用超声波传感器和压电蜂鸣器来制作驱鸟器。 2.使用红外线传感器和舵机配合为景观园做入口和出口的门闸,并统计进门出门的人数,即进入园里的人数。 3.使用16*2LCD来显示欢迎和园内人数。 4.使用全彩灯条neopixel来制作灯光,在晚上自动亮起,并能随机的变化灯光的颜色。 最后的硬件连接是: circuits作品地址:https://www.tinkercad.com/things/8mEaISvUxh9-dfrobot2018 其中第1、2点设计要求是比较容易实现的,写的时候使用块就可以。 number是园内人数,在第3点设计要求中要用到,需要先将块程序转换为文本程序以便添加第3、4点设计。 下面给大家介绍一下 circuits中16*2LCD和全彩灯条neopixel的使用方法。这两个器件在Tinkercad的circuits中没有针对它们使用的块,要使用它们需要在代码中选用文本,调用它们相应的库。下面为大家总结一下16*2LCD和全彩灯条neopixel的简易用法。 16*2LCD是UNO中比较常见的输出器件,用的比较成熟,网上关于它的库文件用法也比较多,先介绍一下本例的接法。 固定接法:LED(红)串接220欧姆电阻和Vcc--------5v VO串联1欧姆电阻、GND、RW、LED--------GND DB7-DB4、E、RS在UNO数字接口1-13之间任选6个 在程序的合适位置加入以下几句: #include<LiquidCrystal.h> LiquidCrystallcd(12, 11, 5, 4, 3, 2); voidsetup() { lcd.begin(16, 2); lcd.print("hello, world!"); } voidloop() { lcd.setCursor(0, 1); lcd.print(number); }就可以显示: 第一句 #include<LiquidCrystal.h> 是16*2LCD要使用的库,程序里有了它相当于带了一个装着LCD会用到的各种资料的包,一般把这句添加在文本程序的第一句。 第二句 LiquidCrystal lcd(12,11, 5, 4, 3, 2); 对LCD的一些端子进行声明,实际填法是 LiquidCrystal lcd(RS, E,DB4, DB5, DB6, DB7);即填入这六个端对应UNO的端,这一句添加在文本程序中void setup() 之前,#语句之后。 第三句 void setup() 后 { }中的程序是刚启动会执行的程序。 第四句 lcd.begin(16, 2); 代表了16*2LCD有两行,每行可以写16个字母或数字。 第五、六句 lcd.setCursor(0, 0); lcd.print("hello,world!"); 表示在第0行开始写入 hello, world! 它占了第0行13个字母位置,第四五六句填在文本程序的 void setup()后 { }中的前面或后面(不要影响 void setup() 中的其他程序)。 第七句 void loop()的含义是要循环执行的程序。 第八、九句 lcd.setCursor(0,1); lcd.print(2); 含义是在第1行的开始写2,用number代替2就可以表示景观园里的人数。这两句填在文本程序的void loop ()后 { }中的前面或后面(不要影响void loop ()中的其他程序)。 基本上使用这段简单的程序就可以显示想要显示的文字数字。实际上每个表示字母的位又可以成5*8的点阵,在这里就不做介绍了。 下面是全彩灯条,neopixel一经推出大受欢迎,色彩绚丽明艳。neopixel 可以做成环状,条状,可以在每一节的 out 端继续续接 neo,但需要知道一共用了多少个单独的neopixel,比如本例中环状neopixel中有12个单独的neopixel,out 后的条状用了6个,一共18个。 硬件接线: power---UNO 的5v Grand---- Grand in 接某一个UNO的数字输入端或前一节的out。 neopixel 的库是 #include <Adafruit_NeoPixel.h> 也需对neopixel做声明 Adafruit_NeoPixel strip = Adafruit_NeoPixel(18, 8, NEO_GRB + NEO_KHZ800); 实际上就是 Adafruit_NeoPixel 你给灯条起的名 =Adafruit_NeoPixel(灯条中共多少个, in 接的端子号, 灯条的型号); 在void setup() 后 { }中写 strip.begin(); 即 你给灯条起的名 . begin(); 在void loop() 后 { }中写 strip.setPixelColor(7, 255, 144, 144); strip.show(); 模拟一下看看那个灯亮了,亮成什么颜色? 实际上就是 strip.setPixelColor(n, red, green, blue); 如果在strip.show(); 之前多加一行 strip.setPixelColor(5, 0, 0, 144); 看看又有那个灯亮了,什么颜色,找找规律。 填写(n, red, green, blue) 的时候要注意 n<neo的个数,red, green, blue 的值不能超过255,要在半角输入状态下写,就是输入法是。也可以加入各种算法,使它亮的更漂亮。 让你的全彩灯条华丽的亮起来吧:O。 景观园的circuits模拟工作状态视频: 谢谢各位老师! |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed