From 01d74a8089af16bf851a07d0a0675d9e29aa0ee4 Mon Sep 17 00:00:00 2001 From: wufayuan <2858767122@qq.com> Date: Mon, 20 Jun 2022 15:19:43 +0800 Subject: [PATCH] almost compelete --- build/core/core.a | Bin 335794 -> 335794 bytes build/ex2.ino.elf | Bin 13076 -> 30732 bytes build/ex2.ino.hex | 257 ++++++++++++++---- build/ex2.ino.with_bootloader.bin | Bin 32768 -> 32768 bytes build/ex2.ino.with_bootloader.hex | 256 +++++++++++++---- .../preproc/ctags_target_for_gcc_minus_e.cpp | 58 +++- build/sketch/ex2.ino.cpp | 75 ++++- build/sketch/ex2.ino.cpp.o | Bin 5072 -> 12056 bytes ex2.ino | 59 +++- 9 files changed, 591 insertions(+), 114 deletions(-) diff --git a/build/core/core.a b/build/core/core.a index 929fbb78c90eaf4220c04407e0112a04336851ab..c90425d1a367d4dc582c16e792a55ef6424e6122 100644 GIT binary patch delta 372 zcmdnAUu4sMkqI)a<_2b#<{K5QC0I-?O$;|DNCa?$S(6ha#5SK&zNHA`iErNTx)n*T zFL0I`OipaGQ-z%Zm^b~y3nuZ+vu7+c19LY!oPQ$+VHvzTAc9b`otv4_lO2hl&&6oz zhr~Y|!6<5s#Q)sQ7>cYuc`_>h@+?%o^CHH*E=c;NpECwR^lvYC$M|IeSPJM%@$L2X zOu3n0?slN#FE}D;x~;|R3(+*$;k@{EXCvm9GGOU;1Apf22L3D(vmmO0Mv8Awe#x?t X7t9BR-gdq3EOA0$?)C|stV&`4{Azj& delta 372 zcmdnAUu4sMkqI)aW|k&~78@0gLel+5K6XlGc$U!Bk}XO7%lyf z_=h7HMU9d8pSu}Dk<}+pM&)0gh01qc#JJZ5Nx$@S#z3%slkElX7{5#aNtpnBDZahF zo+&pI%-s%j`~^oa6YP)ex3!pkA(|#ToEP8jY{dLh1}xof;Lp6>z@J587DP4BNb&8- bFIhJ7g887(+phPWB~A#;-9CYnRY?p0#zA?= diff --git a/build/ex2.ino.elf b/build/ex2.ino.elf index da1b9753f8c9cabd46a4d3700be5a8612be6b31a..fcc358dd2af637eb27284ff712ac682e03e8e417 100644 GIT binary patch literal 30732 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 Hz;*l&CKZGi diff --git a/build/ex2.ino.hex b/build/ex2.ino.hex index 00d23af..8110918 100644 --- a/build/ex2.ino.hex +++ b/build/ex2.ino.hex @@ -1,47 +1,212 @@ -:100000000C9461000C9473000C9473000C947300B6 -:100010000C9473000C9473000C9473000C94730094 -:100020000C9473000C9473000C9473000C94730084 -:100030000C9473000C9473000C9473000C94730074 -:100040000C9475000C9473000C9473000C94730062 -:100050000C9473000C9473000C9473000C94730054 -:100060000C9473000C94730000000000250028001D -:100070002B0000000000240027002A0000000000E0 -:1000800023002600290004040404040404040202DA -:100090000202020203030303030301020408102007 -:1000A0004080010204081020010204081020000012 -:1000B0000008000201000003040700000000000027 -:1000C000000011241FBECFEFD8E0DEBFCDBF21E07E -:1000D000A0E0B1E001C01D92A930B207E1F70E9493 -:1000E000BF000C946E010C9400001F920F920FB68B -:1000F0000F9211242F933F938F939F93AF93BF93AE -:100100008091050190910601A0910701B09108012D -:100110003091040123E0230F2D3758F50196A11DDE -:10012000B11D209304018093050190930601A093D3 -:100130000701B09308018091000190910101A09105 -:100140000201B09103010196A11DB11D8093000130 -:1001500090930101A0930201B0930301BF91AF916D -:100160009F918F913F912F910F900FBE0F901F90F5 -:10017000189526E8230F0296A11DB11DD2CF7894C1 -:1001800084B5826084BD84B5816084BD85B582609C -:1001900085BD85B5816085BD80916E00816080934D -:1001A0006E001092810080918100826080938100B6 -:1001B00080918100816080938100809180008160C6 -:1001C000809380008091B10084608093B100809121 -:1001D000B00081608093B00080917A008460809349 -:1001E0007A0080917A00826080937A0080917A0010 -:1001F000816080937A0080917A00806880937A0091 -:100200001092C100CCE9D0E0FE01249108E810E092 -:10021000F80184918823C9F090E0880F991FFC01B0 -:10022000EE58FF4FA591B491FC01E859FF4F45915D -:1002300054913FB7F8949C91822F809598239C937A -:10024000FA019081892380833FBF90EBE92E90E0F3 -:10025000F92E20E0C22E20E0D22EF7018491FE017B -:100260009491F8019491992391F0882339F0833087 -:10027000F1F098F4813009F1823019F1E92FF0E0C2 -:10028000EE0FFF1FE458FF4FA591B4918C91C1145C -:10029000D10419F30E940000E0CF8730A9F0883024 -:1002A000C9F0843059F7809180008F7D03C0809120 -:1002B00080008F7780938000E1CF84B58F7784BDF5 -:1002C000DDCF84B58F7DFBCF8091B0008F77809399 -:1002D000B000D4CF8091B0008F7DF9CFF894FFCFDC +:100000000C9462000C948A000C948A000C948A0070 +:100010000C948A000C948A000C948A000C948A0038 +:100020000C948A000C948A000C948A000C948A0028 +:100030000C948A000C948A000C948A000C948A0018 +:100040000C94C7020C948A000C9495020C946F02D5 +:100050000C948A000C948A000C948A000C948A00F8 +:100060000C948A000C948A000000000024002700F1 +:100070002A0000000000250028002B0000000008D6 +:10008000000201000003040700000000000000005F +:1000900000000000230026002900040404040404D6 +:1000A0000404020202020202030303030303010227 +:1000B00004081020408001020408102001020408F6 +:1000C0001020B90411241FBECFEFD8E0DEBFCDBF92 +:1000D00011E0A0E0B1E0E8E0FDE002C005900D9283 +:1000E000A231B107D9F721E0A2E1B1E001C01D9230 +:1000F000A83BB207E1F710E0C2E6D0E004C02197C8 +:10010000FE010E947C06C136D107C9F70E94560342 +:100110000C9482060C940000AF92BF92CF92DF92B3 +:10012000EF92FF920F931F93CF93DF936C017B01AC +:100130008B01040F151FEB015E01AE18BF08C0173D +:10014000D10759F06991D601ED91FC910190F081B0 +:10015000E02DC6010995892B79F7C501DF91CF9173 +:100160001F910F91FF90EF90DF90CF90BF90AF90D5 +:100170000895FC01538D448D252F30E0842F90E0AD +:10018000821B930B541710F0CF9608950197089592 +:10019000FC01918D828D981761F0A28DAE0FBF2F5B +:1001A000B11D5D968C91928D9F5F9F73928F90E0B1 +:1001B00008958FEF9FEF0895FC01918D828D981720 +:1001C00031F0828DE80FF11D858D90E008958FEF5D +:1001D0009FEF0895FC01918D228D892F90E0805C26 +:1001E0009F4F821B91098F73992708958BE191E0AE +:1001F0000E94EA0021E0892B09F420E0822F089573 +:1002000080E090E0892B29F00E94F60081110C9487 +:1002100000000895FC01A48DA80FB92FB11DA35AA9 +:10022000BF4F2C91848D90E001968F739927848F16 +:10023000A689B7892C93A089B1898C918370806439 +:100240008C93938D848D981306C00288F389E02DDA +:1002500080818F7D80830895EF92FF920F931F938B +:10026000CF93DF93EC0181E0888F9B8D8C8D981369 +:100270001AC0E889F989808185FF15C09FB7F89475 +:10028000EE89FF896083E889F989808183708064C1 +:1002900080839FBF81E090E0DF91CF911F910F910C +:1002A000FF90EF900895F62E0B8D10E00F5F1F4F1B +:1002B0000F731127E02E8C8D8E110CC00FB607FC2A +:1002C000FACFE889F989808185FFF5CFCE010E94B8 +:1002D0000A01F1CFEB8DEC0FFD2FF11DE35AFF4F1B +:1002E000F0829FB7F8940B8FEA89FB898081806246 +:1002F000CFCFCF93DF93EC01888D8823B9F0AA8903 +:10030000BB89E889F9898C9185FD03C0808186FDD0 +:100310000DC00FB607FCF7CF8C9185FFF2CF80811F +:1003200085FFEDCFCE010E940A01E9CFDF91CF9189 +:100330000895833081F028F4813099F08230A9F05B +:1003400008958730A9F08830C9F08430B1F48091E5 +:1003500080008F7D03C0809180008F778093800024 +:10036000089584B58F7784BD089584B58F7DFBCFC4 +:100370008091B0008F778093B00008958091B00095 +:100380008F7DF9CFCF93DF93282F30E0F901E45828 +:10039000FF4F8491F901E255FF4FD491F901E656E0 +:1003A000FF4FC491CC23A1F081110E949901EC2F41 +:1003B000F0E0EE0FFF1FE057FF4FA591B491EC91D5 +:1003C000ED2381E090E009F480E0DF91CF91089582 +:1003D00080E090E0FACF1F93CF93DF93282F30E097 +:1003E000F901E458FF4F8491F901E255FF4FD49190 +:1003F000F901E656FF4FC491CC23A9F0162F8111C5 +:100400000E949901EC2FF0E0EE0FFF1FEE58FF4F16 +:10041000A591B4918FB7F894EC91111108C0D095C3 +:10042000DE23DC938FBFDF91CF911F910895DE2BE8 +:10043000F8CFCF93DF9390E0FC01E255FF4F24917A +:1004400086569F4FFC0184918823D1F090E0880F5D +:10045000991FFC01E859FF4FA591B491FC01EE589A +:10046000FF4FC591D49161110EC09FB7F8948C9144 +:10047000E22FE0958E238C932881E223E8839FBFAF +:10048000DF91CF9108958FB7F894EC91E22BEC9324 +:100490008FBFF6CF3FB7F894809117019091180164 +:1004A000A0911901B0911A0126B5A89B05C02F3F54 +:1004B00019F00196A11DB11D3FBFBA2FA92F982F8A +:1004C0008827BC01CD01620F711D811D911D42E085 +:1004D000660F771F881F991F4A95D1F708951F92BD +:1004E0000F920FB60F9211242F933F934F935F9368 +:1004F0006F937F938F939F93AF93BF93EF93FF93EC +:100500008BE191E00E940A01FF91EF91BF91AF91C1 +:100510009F918F917F916F915F914F913F912F911B +:100520000F900FBE0F901F9018951F920F920FB64D +:100530000F9211242F938F939F93EF93FF93E0914A +:100540002B01F0912C018081E0913101F091320179 +:1005500082FD1BC09081809134018F5F8F73209149 +:100560003501821741F0E0913401F0E0E55EFE4F85 +:10057000958F80933401FF91EF919F918F912F91EF +:100580000F900FBE0F901F9018958081F4CF1F928F +:100590000F920FB60F9211242F933F938F939F9337 +:1005A000AF93BF938091130190911401A091150115 +:1005B000B09116013091120123E0230F2D3758F529 +:1005C0000196A11DB11D20931201809313019093F8 +:1005D0001401A0931501B093160180911701909119 +:1005E0001801A0911901B0911A010196A11DB11D28 +:1005F0008093170190931801A0931901B0931A01E9 +:10060000BF91AF919F918F913F912F910F900FBE0E +:100610000F901F90189526E8230F0296A11DB11D7B +:10062000D2CFCF92DF92EF92FF920F931F93E82FDA +:10063000F92F05C0015011092109310961F190819B +:1006400096239417B9F305C0015011092109310906 +:1006500011F1908196239413F7CFC12CD12CE12C6A +:10066000F12C0AC08FEFC81AD80AE80AF80A0C154C +:100670001D052E053F0579F080818623841791F3AF +:100680006C2D7D2D8E2D9F2D1F910F91FF90EF9042 +:10069000DF90CF90089560E070E080E090E01F91DF +:1006A0000F91FF90EF90DF90CF900895789484B5EC +:1006B000826084BD84B5816084BD85B5826085BD5E +:1006C00085B5816085BD80916E00816080936E00EC +:1006D00010928100809181008260809381008091DE +:1006E000810081608093810080918000816080938F +:1006F00080008091B10084608093B1008091B0004F +:1007000081608093B00080917A00846080937A0049 +:1007100080917A00826080937A0080917A00816073 +:1007200080937A0080917A00806880937A0010929A +:10073000C10060E082E00E94190260E083E00E9454 +:10074000190261E084E00E94190261E085E00E94E4 +:100750001902E0912B01F0912C0182E08083E0915D +:100760002701F09128011082E0912901F0912A01DE +:100770008FEC808310923301E0912F01F0913001D2 +:1007800086E08083E0912D01F0912E0180818061CF +:100790008083E0912D01F0912E018081886080831B +:1007A000E0912D01F0912E01808180688083E0919D +:1007B0002D01F0912E0180818F7D80833BE4232EDB +:1007C000312C43E7C42ED12C2BE3E22EFF24F394EB +:1007D00082E00E94C201019709F0BEC060E084E09F +:1007E0000E94EB0183E090E00197F1F761E084E083 +:1007F0000E94EB01C1010197F1F760E084E00E94E3 +:10080000EB01E1EBF0E06491EDE9F0E08491E82F99 +:10081000F0E0EE0FFF1FE057FF4F8591949100E449 +:1008200012E42FE030E0462F0E941103611571059C +:100830008105910529F06F5F7F4F8F4F9F4F9F700C +:100840000E945D0520E034E244E759E40E94EB0495 +:1008500020E030E04AEA53E40E940F0620E030E056 +:1008600040E05FE30E940F0620E030E048EC52E4F5 +:100870000E940F0620E030E040EF51E40E94E604C1 +:1008800087FF6AC060E085E00E94EB010E944A0297 +:100890004B015C018EE1482E512C612C712C0E9481 +:1008A0004A02681979098A099B09683E73408105E3 +:1008B0009105A8F3F1E04F1A51086108710828EE7C +:1008C000820E23E0921EA11CB11C4114510461044C +:1008D000710429F761E085E00E94EB018BE990E06B +:1008E0000197F1F760E085E00E94190285E00E941F +:1008F000C2010197D9F3C7010197F1F785E00E9482 +:10090000C201892BD9F3C7010197F1F7C5E0D0E007 +:1009100008E010E085E00E94C201892B81F485E0A7 +:100920000E94C201892BD9F3C6010197F1F785E036 +:100930000E94C20185E00E94C2010197D9F30150D3 +:10094000110941F7219721F761E085E00E94190222 +:1009500061E085E00E94EB0180E090E0892B09F4E2 +:1009600037CF0E94F600882309F42ECF0E940000A2 +:100970002BCFEBE1F1E01382128288EE93E0A0E04E +:10098000B0E084839583A683B78384E091E091836C +:10099000808385EC90E09587848784EC90E097874E +:1009A000868780EC90E0918B808B81EC90E0938B3C +:1009B000828B82EC90E0958B848B86EC90E0978B19 +:1009C000868B118E128E138E148E08950E949A05B6 +:1009D00008F481E008950E94FF040C94D5050E945C +:1009E000CE0558F00E94C70540F029F45F3F29F07A +:1009F0000C94BE0551110C9409060C94C4050E9478 +:100A0000E60568F39923B1F3552391F3951B550B34 +:100A1000BB27AA2762177307840738F09F5F5F4FD1 +:100A2000220F331F441FAA1FA9F335D00E2E3AF010 +:100A3000E0E832D091505040E695001CCAF72BD028 +:100A4000FE2F29D0660F771F881FBB1F2617370779 +:100A50004807AB07B0E809F0BB0B802DBF01FF27AB +:100A600093585F4F3AF09E3F510578F00C94BE05C5 +:100A70000C9409065F3FE4F3983ED4F3869577958E +:100A80006795B795F7959F5FC9F7880F911D969564 +:100A9000879597F90895E1E0660F771F881FBB1FC0 +:100AA000621773078407BA0720F0621B730B840B6D +:100AB000BA0BEE1F88F7E0950895E89409C097FBFC +:100AC0003EF490958095709561957F4F8F4F9F4F25 +:100AD0009923A9F0F92F96E9BB279395F695879569 +:100AE00077956795B795F111F8CFFAF4BB0F11F42C +:100AF00060FF1BC06F5F7F4F8F4F9F4F16C08823D3 +:100B000011F096E911C0772321F09EE8872F762F08 +:100B100005C0662371F096E8862F70E060E02AF049 +:100B20009A95660F771F881FDAF7880F9695879535 +:100B300097F90895990F0008550FAA0BE0E8FEEF0A +:100B400016161706E807F907C0F012161306E40791 +:100B5000F50798F0621B730B840B950B39F40A268A +:100B600061F0232B242B252B21F408950A2609F468 +:100B7000A140A6958FEF811D811D089597F99F676C +:100B800080E870E060E008959FEF80EC0895002415 +:100B90000A941616170618060906089500240A94E2 +:100BA00012161306140605060895092E0394000C68 +:100BB00011F4882352F0BB0F40F4BF2B11F460FFF7 +:100BC00004C06F5F7F4F8F4F9F4F089557FD905820 +:100BD000440F551F59F05F3F71F04795880F97FB01 +:100BE000991F61F09F3F79F08795089512161306BB +:100BF0001406551FF2CF4695F1DF08C016161706EA +:100C00001806991FF1CF869571056105089408951E +:100C1000E894BB2766277727CB0197F908950E94B0 +:100C200022060C94D5050E94C70538F00E94CE0517 +:100C300020F0952311F00C94BE050C94C4051124EA +:100C40000C9409060E94E60570F3959FC1F3950F79 +:100C500050E0551F629FF001729FBB27F00DB11D40 +:100C6000639FAA27F00DB11DAA1F649F6627B00DD0 +:100C7000A11D661F829F2227B00DA11D621F739FB9 +:100C8000B00DA11D621F839FA00D611D221F749FC7 +:100C90003327A00D611D231F849F600D211D822F0E +:100CA000762F6A2F11249F5750409AF0F1F0882335 +:100CB0004AF0EE0FFF1FBB1F661F771F881F915062 +:100CC0005040A9F79E3F510580F00C94BE050C944E +:100CD00009065F3FE4F3983ED4F3869577956795D0 +:100CE000B795F795E7959F5FC1F7FE2B880F911D8C +:100CF0009695879597F90895EE0FFF1F0590F4914B +:080D0000E02D0994F894FFCFE7 +:100D0800000000002C018C00B9007901EA00C8003D +:020D1800DC00FD :00000001FF diff --git a/build/ex2.ino.with_bootloader.bin b/build/ex2.ino.with_bootloader.bin index 6e72df1b9470f8151325811fd30bf8f637040c09..1d449f8f25a98b0ac30988bcff8cf71cf876cf2e 100644 GIT binary patch literal 32768 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 OYERis(%sb0%=|ZK&xLdV delta 535 zcmbtPze`(D6h7xAF=>gWf`bkr%8OVkCU+A-kPgl+9n8?7|9}WmoKmkE+6ZFa@jgYt zK?Mh)L;OXjHny9fJe3Yz+Fqf9L9j2hC9#Un^J@P9!2=)P$9KQ)9Iljxl*U-pegRQ? zOt! zi_P#!wZSg&$svr|0BR=GoC%>tb+}AnEK&po1<}-ItgCzQ56-W|H{z`-h*EJ%aY}JY zMNkrO3%O-*D}c92sn}KQDt1*sc_CB1t$RJTUp~~=n54+*BVEHB<;^|U()rk8;tJ0P zy@55_rYk(ncmw_PjQZZy>?N8=%ee(}N&Q7@e9DxQeI@IxoU-&qs#Skt9H*+h=^AaS zF&0g7^Jb4bDJt&5?{V>0{GTu;o_+|6Mz8#JZaodu~o- zs*)rWvVq-yJSvrh6DPM*7|p%^>T~wekyL~NzZBu~t10, starting measuring + digitalWrite(TRIG_PIN, 0x0); + double time = pulseIn(ECHO_PIN, 0x1); + return time/1000000*340/2*100; // return distance (cm) } void measure_T(){ + // 主机把总线拉低(输出低)至少18ms,保证DHT11检测到信号 + digitalWrite(DHT11_PIN, 0x0); + delay(30); // > 18 ms + // 主机延时等待20-40us(输出高,然后等待DHT11响应) + digitalWrite(DHT11_PIN, 0x1); + delayMicroseconds(40); + + // DHT11输入模式,准备读取数据 + pinMode(DHT11_PIN, 0x0); + + // DHT11发送80us低电平响应信号,然后再把总线拉高(高电平)80us + while (digitalRead(DHT11_PIN) == 0x1); // 必须等到 LOW + delayMicroseconds(80); // DHT11 发出响应,会拉低 80us;所以至少等80us + while (digitalRead(DHT11_PIN) == 0x0); // 继续等到变 HIGH + delayMicroseconds(80); //DHT11 会拉高到HIGH 80us 后开始发送数据 + for (int i = 0; i < 5; ++i) data[i] = read_byte(); + + // 最后一bit发送后,DHT11拉低总线50us,然后转换为输出模式(总线拉高),总线进入空闲状态 + pinMode(DHT11_PIN, 0x1); + digitalWrite(DHT11_PIN, 0x1); +} + +// 连续发送40bit数据,高位先出, 每一bit数据都是50us低电平开始,高电平的长短决定了数据是‘0’或是‘1’ +byte read_byte(){ + byte byt = 0; + for (int i = 0; i < 8; ++i){ + if (digitalRead(DHT11_PIN) == 0x0){ + while (digitalRead(DHT11_PIN) == 0x0); // wait to be high + delayMicroseconds(30); + if (digitalRead(DHT11_PIN) == 0x1) + byt |= (1<<(7-i)); ////高位在前,低位在后 + while (digitalRead(DHT11_PIN) == 0x1); // wait to be low + } + } + return byt; } diff --git a/build/sketch/ex2.ino.cpp b/build/sketch/ex2.ino.cpp index e093104..bae7ba4 100644 --- a/build/sketch/ex2.ino.cpp +++ b/build/sketch/ex2.ino.cpp @@ -2,21 +2,32 @@ #line 1 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" //通过人体红外热释电传感器和超声波测距传感器检测是否有人靠近以及当前距离是否小于30cm,基于温湿度传感器采集环境数据,通过硬件编程实现所需功能。 const int INFRARED_PIN = 2; +const int ECHO_PIN = 3; +const int TRIG_PIN = 4; +const int DHT11_PIN = 5; const double DISTANCE = 30.0; -#line 4 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" +byte data[5]; +#line 8 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" void setup(); -#line 9 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" +#line 18 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" void loop(); -#line 21 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" +#line 30 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" bool person_closing(); -#line 26 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" +#line 35 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" double measure_distance(); -#line 31 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" +#line 46 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" void measure_T(); -#line 4 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" +#line 71 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" +byte read_byte(); +#line 8 "g:\\course\\wlw\\exs\\code\\ex2\\ex2.ino" void setup() { // put your setup code here, to run once: - pinMode(INFRARED_PIN,INPUT); + // 输入模式传感器读取环境数据,此时可被读取 + pinMode(INFRARED_PIN, INPUT); + pinMode(ECHO_PIN, INPUT); + pinMode(TRIG_PIN, OUTPUT); + pinMode(DHT11_PIN, OUTPUT); + Serial.begin(9600); } void loop() { @@ -26,7 +37,7 @@ void loop() { { if (measure_distance()10, starting measuring + digitalWrite(TRIG_PIN, LOW); + + double time = pulseIn(ECHO_PIN, HIGH); + return time/1000000*340/2*100; // return distance (cm) } void measure_T(){ - + // 主机把总线拉低(输出低)至少18ms,保证DHT11检测到信号 + digitalWrite(DHT11_PIN, LOW); + delay(30); // > 18 ms + + // 主机延时等待20-40us(输出高,然后等待DHT11响应) + digitalWrite(DHT11_PIN, HIGH); + delayMicroseconds(40); + + // DHT11输入模式,准备读取数据 + pinMode(DHT11_PIN, INPUT); + + // DHT11发送80us低电平响应信号,然后再把总线拉高(高电平)80us + while (digitalRead(DHT11_PIN) == HIGH); // 必须等到 LOW + delayMicroseconds(80); // DHT11 发出响应,会拉低 80us;所以至少等80us + while (digitalRead(DHT11_PIN) == LOW); // 继续等到变 HIGH + delayMicroseconds(80); //DHT11 会拉高到HIGH 80us 后开始发送数据 + for (int i = 0; i < 5; ++i) data[i] = read_byte(); + + // 最后一bit发送后,DHT11拉低总线50us,然后转换为输出模式(总线拉高),总线进入空闲状态 + pinMode(DHT11_PIN, OUTPUT); + digitalWrite(DHT11_PIN, HIGH); } +// 连续发送40bit数据,高位先出, 每一bit数据都是50us低电平开始,高电平的长短决定了数据是‘0’或是‘1’ +byte read_byte(){ + byte byt = 0; + for (int i = 0; i < 8; ++i){ + if (digitalRead(DHT11_PIN) == LOW){ + while (digitalRead(DHT11_PIN) == LOW); // wait to be high + delayMicroseconds(30); + if (digitalRead(DHT11_PIN) == HIGH) + byt |= (1<<(7-i)); ////高位在前,低位在后 + while (digitalRead(DHT11_PIN) == HIGH); // wait to be low + } + } + return byt; +} diff --git a/build/sketch/ex2.ino.cpp.o b/build/sketch/ex2.ino.cpp.o index 5164c4f283381ca3441fbc642b70259e57ca249a..29bca1472f42bf8395a6b856cdc20de520874ac7 100644 GIT binary patch literal 12056 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 ay1k!nz^7aH*L)V>d|F`JPkGAoB>xBb@pW1N delta 3555 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 diff --git a/ex2.ino b/ex2.ino index a6cf3b1..6ed0463 100644 --- a/ex2.ino +++ b/ex2.ino @@ -2,11 +2,17 @@ const int INFRARED_PIN = 2; const int ECHO_PIN = 3; const int TRIG_PIN = 4; +const int DHT11_PIN = 5; const double DISTANCE = 30.0; +byte data[5]; void setup() { // put your setup code here, to run once: - pinMode(INFRARED_PIN,INPUT); - pinMode() + // 输入模式传感器读取环境数据,此时可被读取 + pinMode(INFRARED_PIN, INPUT); + pinMode(ECHO_PIN, INPUT); + pinMode(TRIG_PIN, OUTPUT); + pinMode(DHT11_PIN, OUTPUT); + Serial.begin(9600); } void loop() { @@ -26,11 +32,52 @@ bool person_closing(){ return digitalRead(INFRARED_PIN)==HIGH; } -double measure_distance() -{ - +double measure_distance(){ + digitalWrite(TRIG_PIN, LOW); + delayMicroseconds(2); + digitalWrite(TRIG_PIN, HIGH); + delayMicroseconds(20); // >10, starting measuring + digitalWrite(TRIG_PIN, LOW); + + double time = pulseIn(ECHO_PIN, HIGH); + return time/1000000*340/2*100; // return distance (cm) } void measure_T(){ - + // 主机把总线拉低(输出低)至少18ms,保证DHT11检测到信号 + digitalWrite(DHT11_PIN, LOW); + delay(30); // > 18 ms + + // 主机延时等待20-40us(输出高,然后等待DHT11响应) + digitalWrite(DHT11_PIN, HIGH); + delayMicroseconds(40); + + // DHT11输入模式,准备读取数据 + pinMode(DHT11_PIN, INPUT); + + // DHT11发送80us低电平响应信号,然后再把总线拉高(高电平)80us + while (digitalRead(DHT11_PIN) == HIGH); // 必须等到 LOW + delayMicroseconds(80); // DHT11 发出响应,会拉低 80us;所以至少等80us + while (digitalRead(DHT11_PIN) == LOW); // 继续等到变 HIGH + delayMicroseconds(80); //DHT11 会拉高到HIGH 80us 后开始发送数据 + for (int i = 0; i < 5; ++i) data[i] = read_byte(); + + // 最后一bit发送后,DHT11拉低总线50us,然后转换为输出模式(总线拉高),总线进入空闲状态 + pinMode(DHT11_PIN, OUTPUT); + digitalWrite(DHT11_PIN, HIGH); } + +// 连续发送40bit数据,高位先出, 每一bit数据都是50us低电平开始,高电平的长短决定了数据是‘0’或是‘1’ +byte read_byte(){ + byte byt = 0; + for (int i = 0; i < 8; ++i){ + if (digitalRead(DHT11_PIN) == LOW){ + while (digitalRead(DHT11_PIN) == LOW); // wait to be high + delayMicroseconds(30); + if (digitalRead(DHT11_PIN) == HIGH) + byt |= (1<<(7-i)); ////高位在前,低位在后 + while (digitalRead(DHT11_PIN) == HIGH); // wait to be low + } + } + return byt; +} \ No newline at end of file