#include <Arduino.h> #include "Ultrasonic.h" double voltage = 0; Ultrasonic ultrasonic1(4, 18); void setup() { Serial.begin(115200); } void loop() { Serial.print("当前距离是: "); Serial.print(ultrasonic1.distanceRead()); // Prints the distance on the default unit (centimeters) Serial.println("cm"); delay(1000); }
/* * SR04.h * 这里写说明和版本信息 */ #ifndef SR04_H #define SR04_H #include <Arduino.h> class SR04 { public: SR04(int trigPin, int echoPin); int getdistance(); private: int trig_Pin; int echo_Pin; }; #endif
#include "sr04.h" SR04::SR04(int TP, int EP) { pinMode(TP, OUTPUT); pinMode(EP, OUTPUT); trig_Pin = TP; echo_Pin = EP; } float SR04::getdistance() { //在这里按照时序方法操作引脚获取并换算成距离返回 Serial.println("haha"); return 0.0; }
#include <Arduino.h> void setup() { Serial.begin(115200); } void loop() { String str = ""; while (Serial.available()) { char tmp = Serial.read(); str += tmp; delay(10); } if (str != "") { Serial.println("recive: "); Serial.println(str); } }
#include <Arduino.h> #define LED_R 27 #define LED_G 33 #define LED_B 32 String revstr = ""; const String red = "red"; const String green = "green"; const String blue = "blue"; String getStr() //ESP32中, 此函数可以用Serial.readString()代替 { String str = ""; while (Serial.available()) { char tmp = Serial.read(); str += tmp; delay(10); } if (str != "") { return str; } return ""; } void strToRGB(String revstr) { if (revstr == red) { digitalWrite(LED_R, !digitalRead(LED_R)); } else if (revstr == green) { digitalWrite(LED_G, !digitalRead(LED_G)); } else if (revstr == blue) { digitalWrite(LED_B, !digitalRead(LED_B)); } } void setup() { Serial.begin(115200); pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); } void loop() { revstr = getStr(); if (revstr != "") { strToRGB(revstr); } }
#include <Arduino.h> String str = ""; void setup() { str = "11滚滚长江东逝水,浪花淘尽英雄,是非成败转头空,青山依旧在,几度夕阳红123!"; Serial.begin(115200); } void loop() { Serial.println(str.length()); Serial.println(str.indexOf("水")); Serial.println(str.lastIndexOf("山")); Serial.println(str.indexOf("山",20)); Serial.println(str.substring(21)); Serial.println(str.substring(21,60)); Serial.println(str.toInt()); Serial.println(str.endsWith("!")); Serial.println(str.endsWith("宏")); delay(5000); }
相信很多人都有把绿植给养死的经历,可能是浇水过多、忘记浇水、较长时间不在家不能浇水等,本文介绍一种可以灵活定制的智能浇花方案。
MicroPython 在 ESP32 上支持线程(Thread)功能,通过_thread模块实现。线程允许程序并发执行多个任务,适合处理需要同时运行的场景,例如传感器数据采集和网络通信。
掌控板3.0升级了主控,还主打AI。带有双麦克风阵列,增加了音频解码芯片,板载了一个1W喇叭,还把之前的单色屏幕换成了1.47寸的彩色屏幕,有更多的可玩性。
使用了 MicroPython 库,通过 定时器(Timer) 和 ADC(模数转换器) 功能来实时读取传感器数据。使用定时器可以实现高精度、非阻塞、低资源消耗的周期性任务,保证实时性和可靠性,特别适用于嵌入式系统中的多任务处理和低功耗场景。
ESP32的DAC函数可以实现真正的模拟输出。