楼主: 驴友花雕
|
[教程] 一块扩展板完成Arduino的10类37项实验(代码+图形+仿真) |
第10类 扩展实验 19 模拟超声波测距传感器(探测类数字D7\D8接口) 读取的是超声波模块输出的模拟量 [mw_shl_code=c,true]/* Eagler8系列实验程序列表 第10类 扩展实验 19 模拟超声波测距传感器(探测类数字D7\D8接口) 项目:利用SR04超声波传感器进行测距,并用串口显示测出的距离值 要点:初始化串口通信及连接SR04的引脚 检测引脚上输入的脉冲宽度,需要先设置为输入状态 产生一个10us的高脉冲去触发TrigPin 检测脉冲宽度,并计算出距离 */ const int TrigPin = 7; const int EchoPin = 8; float distance; void setup() { Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); Serial.println("Ultrasonic sensor:"); } void loop() { digitalWrite(TrigPin, LOW); delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); distance = pulseIn(EchoPin, HIGH) / 58.00; Serial.print(distance); Serial.print("cm"); Serial.println(); delay(1000); }[/mw_shl_code] |
[mw_shl_code=c,true]/* Eagler8系列实验程序列表 第10类 扩展实验 20、总线DS18B20温度传感器(数值类,接扩展板数字D7接口) 项目:利用DS18B20传感器进行监测,并用串口显示测出的数值 要点:初始化必需加载二个库(IDE-工具-管理库-搜索-下载) OneWire.h DallasTemperature.h */ #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 7 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); void setup(void) { Serial.begin(9600); Serial.println("Dallas Temperature IC Control Library Demo"); sensors.begin(); } void loop(void) { Serial.print(" Requesting temperatures..."); sensors.requestTemperatures(); Serial.println("DONE"); Serial.print("Temperature for Device 1 is: "); Serial.print(sensors.getTempCByIndex(0)); delay(500); }[/mw_shl_code] |
21、TM1637四位数码管(数码管和点阵类,接扩展板数字D7/D8接口) 项目:TM1637驱动四位数码管显示 要点:初始化必需加载一个库(IDE-工具-管理库-搜索-安装) TM1637Display.h [mw_shl_code=c,true]/* Eagler8系列实验程序列表 第10类 扩展实验 21、TM1637四位数码管(数码管和点阵类,接扩展板数字D7/D8接口) 项目:TM1637驱动四位数码管显示 要点:初始化必需加载二个库(IDE-工具-管理库-搜索-下载) TM1637Display.h */ #include <Arduino.h> #include <TM1637Display.h> #define CLK 7 #define DIO 8 #define TEST_DELAY 2000 const uint8_t SEG_DONE[] = { SEG_B | SEG_C | SEG_D | SEG_E | SEG_G, SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, SEG_C | SEG_E | SEG_G, SEG_A | SEG_D | SEG_E | SEG_F | SEG_G }; TM1637Display display(CLK, DIO); void setup() { } void loop() { int k; uint8_t data[] = { 0xff, 0xff, 0xff, 0xff }; uint8_t blank[] = { 0x00, 0x00, 0x00, 0x00 }; display.setBrightness(0x0f); display.setSegments(data); delay(TEST_DELAY); data[0] = display.encodeDigit(0); data[1] = display.encodeDigit(1); data[2] = display.encodeDigit(2); data[3] = display.encodeDigit(3); display.setSegments(data); delay(TEST_DELAY); display.clear(); display.setSegments(data+2, 2, 2); delay(TEST_DELAY); display.clear(); display.setSegments(data+2, 2, 1); delay(TEST_DELAY); display.clear(); display.setSegments(data+1, 3, 1); delay(TEST_DELAY); display.showNumberDec(0, false); delay(TEST_DELAY); display.showNumberDec(0, true); delay(TEST_DELAY); display.showNumberDec(1, false); delay(TEST_DELAY); display.showNumberDec(1, true); delay(TEST_DELAY); display.showNumberDec(301, false); delay(TEST_DELAY); display.showNumberDec(301, true); delay(TEST_DELAY); display.clear(); display.showNumberDec(14, false, 2, 1); delay(TEST_DELAY); display.clear(); display.showNumberDec(4, true, 2, 2); delay(TEST_DELAY); display.showNumberDec(-1, false); delay(TEST_DELAY); display.showNumberDec(-12); delay(TEST_DELAY); display.showNumberDec(-999); delay(TEST_DELAY); display.clear(); display.showNumberDec(-5, false, 3, 0); delay(TEST_DELAY); display.showNumberHexEx(0xf1af); delay(TEST_DELAY); display.showNumberHexEx(0x2c); delay(TEST_DELAY); display.showNumberHexEx(0xd1, 0, true); delay(TEST_DELAY); display.clear(); display.showNumberHexEx(0xd1, 0, true, 2); delay(TEST_DELAY); for(k=0; k <= 4; k++) { display.showNumberDecEx(0, (0x80 >> k), true); delay(TEST_DELAY); } for(k = 0; k < 4; k++) data[k] = 0xff; for(k = 0; k < 7; k++) { display.setBrightness(k); display.setSegments(data); delay(TEST_DELAY); } for(k = 0; k < 4; k++) { display.setBrightness(7, false); display.setSegments(data); delay(TEST_DELAY); display.setBrightness(7, true); display.setSegments(data); delay(TEST_DELAY); } display.setSegments(SEG_DONE); while(1); }[/mw_shl_code] |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed