digital write

【雕爷学编程】Arduino动手做(2)---光敏电阻模块

我怕爱的太早我们不能终老 提交于 2020-04-29 17:21:58
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真) 实验之 二:光敏电阻传感器模块 我手里这块是三针版的, 挺秀气吧 光敏电阻是用硫化隔或硒化隔等半导体材料制成的特殊电阻器,其工作原理是基于内光电效应。光照愈强,阻值就愈低,随着光照强度的升高,电阻值迅速降低,亮电阻值可小至1KΩ以下。光敏电阻对光线十分敏感,其在无光照时,呈高阻状态,暗电阻一般可达1.5MΩ。光敏电阻的特殊性能,随着科技的发展将得到极其广泛应用。 光敏电阻器通常由光敏层、玻璃基片(或树脂防潮膜)和电极等组成。光敏电阻器在电路中用字母“R”或“RL”、“RG”表示。 主要用途: 光线亮度检测,光线亮度传感器,智能小车寻光模块等,如下是常规应用的示意电路。 模块参数: 工作电压:DC3.3-5V 光敏电阻型号:5516 模块针脚:3针或4针(4针的多出一个模拟输出端AO) 模块接线图: 1、VCC 接电源正极 3.3-5V 2、GND 接电源负极 3、DO TTL 开关信号输出 4、AO 模拟信号输出 光敏电阻传感器模块的电原理图 模块特色: 1、工作电压3.3V-5V 2、使用宽电压LM393比较器 3、设有固定螺栓孔,方便安装 4、采用灵敏型光敏电阻传感器 5、小板PCB尺寸:3.2cm x 1.4cm 6、配可调电位器可调节检测光线亮度 7、输出形式,DO数字开关量输出(0和1

arduino点亮数码管

心不动则不痛 提交于 2020-04-26 23:23:31
插线电路图 源码: /* 控制共阴极数码管显示数字0到9 */ //设置控制各段的数字IO脚,具体几号引脚对应哪一段,来源为数码管官方引脚图。 int pin_a = 7; int pin_b = 6; int pin_c = 5; int pin_d = 10; int pin_e = 11; int pin_f = 8; int pin_g = 9; int pin_p = 4; //根据共阴极数码管段码表定义0~9显示的各段开关状态 int numTable[10][8] = { //0为点亮,1为关闭 //a b c d e f g dp {0, 0, 0, 0, 0, 0, 1, 1}, //0 {1, 0, 0, 1, 1, 1, 1, 1}, //1 {0, 0, 1, 0, 0, 1, 0, 1}, //2 {0, 0, 0, 0, 1, 1, 0, 1}, //3 {1, 0, 0, 1, 1, 0, 0, 1}, //4 {0, 1, 0, 0, 1, 0, 0, 1}, //5 {0, 1, 0, 0, 0, 0, 0, 1}, //6 {0, 0, 0, 1, 1, 1, 1, 1}, //7 {0, 0, 0, 0, 0, 0, 0, 1}, //8 {0, 0, 0, 0, 1, 0, 0, 1}, //9 }; void setup() { for

esp8266物联网开发四:MQTT本地操控

痞子三分冷 提交于 2020-04-26 14:07:05
之前利用点灯科技的库来使小爱同学控制LED的过程中,我们大略提到了一下MQTT的整体流程,由于其MQTT服务器是由点灯科技提供的,所以对其中的很多连接细节,我们并不知道,本节我们准备通过搭建本地的MQTT服务器,然后通过MQTT Client向MQTT服务器发送控制命令,来控制我们的LED灯。 首先,我们需要启动MQTT服务器,启动方式我们就不需要多说了,之前章节有讲解,启动完毕之后,其连接地址为:192.168.43.2:1883,切记连接地址不可写成127.0.0.1,否则无法连接成功。 然后,开始进行编码操作,具体编码内容如下: #include <ESP8266WiFi.h> #include <PubSubClient.h> #define JDQ 16 const char * MQTT_SERVER = " 192.168.43.2 " ; const int MQTT_PORT = 1883 ; const char * MQTT_USRNAME = " addmin " ; const char * MQTT_PASSWD = " public " ; const char * TOPIC = " home/devices/onoff/ " ; const char * CLIENT_ID = " scy-mqtt-client " ; //

巧用模板加速引脚电平读写

帅比萌擦擦* 提交于 2020-04-26 12:21:06
拉阅读量 第二弹,希望你能有所收获。 我不想听你放那么多屁,我只想知道怎么加速 digitalWrite ! digitalWrite有多慢 template<typename T> inline void test(T&& f) { auto start = micros(); f(); f(); f(); f(); f(); f(); f(); f(); f(); f(); auto finish = micros(); Serial.println(finish - start); } void setup() { Serial.begin(9600); test([] { }); test([] { pinMode(2, OUTPUT); }); test([] { digitalWrite(2, HIGH); }); test([] { shiftOut(2, 4, LSBFIRST, 0); }); } void loop() { digitalWrite(2, LOW); digitalWrite(2, HIGH); } 这个程序测试调用10次某语句需要的时间。在山寨版Uno Rev3上运行,程序输出: 0 36 44 888 第一组空函数是对照组, 0 的结果表明 test 函数没有什么overhead。第二组 pinMode 的成绩为36μs,无所谓,毕竟