Maixduino 支持基本的 Arduino 输入输出函数,你可以像使用其他 Arduino 开发板一样使用它们。
Maixduino 可以自由操作不超过 32 个数字 IO 口,并可以将它们同时映射到 48 个 FPIO 上。
/* Maixduino系列实验(7) Maixduino 支持基本的 Arduino 输入输出函数,你可以像使用其他 Arduino 开发板一样使用它们。 Maixduino 可以自由操作不超过 32 个数字 IO 口,并可以将它们同时映射到 48 个 FPIO 上。 程序之一:寻找Maixduino板载LED端口号(pin1) */ void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); }
Maixduino 使用 K210 芯片的 PWM 模块实现模拟输出 analogWrite() 功能。
不能使用模拟输入 analogRead() 功能。
Maixduino 可以在 48 个自由引脚中最多选择 12 个设置模拟输出功能。
/* Maixduino系列实验(7) Maixduino 使用 K210 芯片的 PWM 模块实现模拟输出 analogWrite() 功能。 不能使用模拟输入 analogRead() 功能。 Maixduino 可以在 48 个自由引脚中最多选择 12 个设置模拟输出功能。 程序之二:通过模拟输出功能来设置呼吸灯 */ int led1 = 1; // 板载LED void setup() { pinMode(led1, OUTPUT); } void setColor(int value) { analogWrite(led1, 220-value); } void loop() { int i; for (i=0; i<221; i++) { setColor(i); delay(5); } delay(100); }
在Maixduino中,有两种类型的串行设备:UARTHSClass和UARTClass。
序列对应于UARTHSClass,其余的Serial1、Serial2和Serial3是UARTClass。
串行使用默认引脚4(RX),5(TX)。
/* Maixduino系列实验(7) 程序之三:串口输出"Hello world!" 在Maixduino中,有两种类型的串行设备:UARTHSClass和UARTClass。 序列对应于UARTHSClass,其余的Serial1、Serial2和Serial3是UARTClass。 串行使用默认引脚4(RX),5(TX)。 */ #include <Arduino.h> void setup() { Serial.begin(9600); } void loop() { Serial.println(“Hello world!”); delay(2000); }
/* Maixduino系列实验(7) 程序之四:I2C测试 */ #include <Wire.h> void setup() { Serial.begin (115200); // 等待串行端口连接 while (!Serial) { } Serial.println (); Serial.println (“I2C Testing …”); byte count = 0; Wire.begin(); Wire.beginTransmission(0×3C); Wire.write(0×80); Wire.write(0xAF); Wire.endTransmission(); Serial.println (“Done.”); } void loop() { }
/* Maixduino系列实验(7) 程序之五:I2C设备扫描仪 */ #include <Wire.h> void setup() { Serial.begin (115200); // 等待串行端口连接 while (!Serial) { } Serial.println (); Serial.println (“I2C scanner. Scanning …”); byte count = 0; Wire.begin(); for (byte i = 8; i < 120; i++) { Wire.beginTransmission (i); if (Wire.endTransmission () == 0) { Serial.print (“Found address: ”); Serial.print (i, DEC); Serial.print (“ (0x”); Serial.print (i, HEX); Serial.println (“)”); count++; //delay (1); //也许不需要? } } // 结束for循环 Serial.println (“Done.”); Serial.print (“Found ”); Serial.print (count, DEC); Serial.println (“ device(s).”); } void loop() { }
ESP32系列(包括ESP32-S3)搭载Xtensa双核处理器,默认情况下Arduino框架仅使用单核运行用户代码,通过多核编程,可以充分利用硬件资源来提升系统响应和性能。
在本文中,先解释 MSB(最高有效位)和 LSB(最低有效位)的概念,以及 MSBFIRST 和 LSBFIRST。然后展示了 MSBFIRST 和 LSBFIRST 的使用如何影响移位寄存器的输出。
TB6612是一款双路H桥型的直流电机驱动芯片,可以驱动两个直流电机并且控制其转速与方向,输入电压在3V~12V,因此在集成化、小型化的电机控制系统中,它可以作为理想的电机驱动器件。
Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。
在Arduino中,通过串行端口接收数字通常涉及使用Serial.read()、Serial.readString()、Serial.parseInt()等方法。