|
在本篇文章中,我们主要学习适用于Arduino开发板的Grove初学者套件(Grove Beginner Kit)。该套件带有10个传感器模块,因此您可以据此制作10个项目。Grove初学者套件的优势在于,您不需要任何面包板,既不需要焊接,也不需要任何外部连线。该套件没有带Arduino开发板,而是使用的是一款Arduino兼容板 - Seeeduino Lotus。
该套件对Arduino初学者非常有用,因为您只需要专注于编码和Arduino学习。您可以从Seeed Studio官方网站购买此套件。
该套件包含很多有用的模块,如LED、蜂鸣器、按钮和电位器。同时它还具有光传感器、声音传感器、DHT11温湿度传感器、加速度计和气压传感器等传感器。我们将使用Seeeduino Lotus开发板连接所有这些传感器和模块,并完成Arduino基本编程。
适用于Arduino的Grove初学者套件里面包含哪些? Arduino Grove初学者套件包含10个传感器和模块。它还有一个基于ATmega328微控制器的电路板,称为Seeeduino Lotus开发板,同时与Arduino兼容。您可以使用Arduino IDE对该开发板进行编程。以下是传感器/模块的列表,并简要介绍了它们。
序号 | 名称 | 简介 | 1 | LED | 简易LED模块 | 2 | 蜂鸣器(Buzzer) | 压电式蜂鸣器 | 3 | 0.96寸OLED显示屏 | 128×64 点分辨率紧凑型显示屏 | 4 | 按键(Button) | 用于人机输入界面的按钮 | 5 | 旋转电位器 | 用于人机输入接口的旋钮 | 6 | 光传感器 | 检测周围的光强度 | 7 | 声音传感器 | 检测周围的声音强度 | 8 | 温湿度传感器 | 检测周围温度和湿度值 | 9 | 气压传感器 | 检测周围大气压力 | 10 | 3轴加速度计 | 检测物体加速度 | 11 | Seeeduino Lotus | 兼容Arduino的开发板,附带Grove 端口 |
默认的PCB连接 传感器/模块和Seeeduino Lotus开发板之间有一个默认的PCB连接。所有模块都已通过PCB走线Seeeduino开发板。您不需要任何Grove电缆即可连接。当然,您也可以将模块取出并使用 Grove电缆连接模块。 模块名称 | 接口形式 | 引脚号/地址 | | LED模块 | 数字 | D4 | | 蜂鸣器 | 数字 | D5 | | 0.96寸OLED显示屏 | I2C | I2C, 0x78(默认) | | 按键 | 数字 | D6 | | 旋转电位器 | 模拟 | A0 | | 光传感器 | 模拟 | A6 | | 声音传感器 | 模拟 | A2 | | 温湿度传感器 | 数字 | D3 | | 气压传感器 | I2C | I2C, 0x77(默认) / 0x76(可选) | | 3轴加速度计 | I2C | I2C,0x19(默认) |
在本文中,我们将向您展示如何使用Grove电缆将模块连接到Seeeduino开发板。
如何开始使用 Arduino IDE? 安装Arduino IDE Arduino IDE是Arduino的集成开发环境,用于单片机软件的编程、下载、测试等。
首先,您需要从以下链接下载并安装适用于您所需操作系统的 Arduino IDE:下载 Arduino IDE
安装USB驱动程序 Arduino通过USB电缆连接到PC。USB驱动程序取决于您的Arduino上使用的USB芯片的型号。以Seeeduino Lotus为例,下载CP2102 USB驱动并安装。
驱动安装完成后,我们使用micro-USB数据线将其连接到计算机。。
启动和设置Arduino IDE 1. 在您的计算机上打开Arduino IDE。 2. 点击Tools -> Board选择正确的开发板型号。选择 Arduino/Genuino Uno 作为开发板。 3. 点击Tools -> Port选择正确的端口 4. 新建一个Arduino文件,命名为Hello.ino,然后将以下代码复制进去 - void setup() {
- Serial.begin(9600); // initializes the serial port with a baud rate of 9600
- }
- void loop() {
- Serial.println("hello, world"); // prints a string to a serial port
- delay(1000); //delay of 1 second
- }
复制代码5. 在Arduino IDE的左上角,有两个按钮,验证和上传。首先,按下验证按钮(✓)进行编译。编译成功后,按上传按钮(→)。 6. 导航到Tools -> Serial Monitor,或者点击右上角的串口监视器(放大镜符号),就可以看到程序运行结果:
第1课:闪烁LED Arduino Grove初学者套件的第一课是LED闪烁。在这个项目中,我们将在1秒间隔后重复点亮和熄灭LED灯。Seeeduino是控制单元,LED模块是输出单元,输出信号是数字信号。
这部分只需要LED模块和Seeeduino Lotus。
LED模块和Seeeduino之间已经通过PCB邮票空孔默认连接。或者您也可以使用Grove电缆将Seeeduino连接到LED。LED连接到Seeeduino Lotus的数字引脚D4。
现在复制以下代码并将其上传到Seeeduino Lotus开发板。 - int ledPin = 4;
-
- void setup()
- {
- pinMode(ledPin, OUTPUT);
- }
-
- void loop()
- {
- digitalWrite(ledPin, HIGH);
- delay(1000);
- digitalWrite(ledPin, LOW);
- delay(1000);
- }
复制代码
LED模块将亮1秒,灭1秒。您可以旋转LED附近的电位器来调节LED亮度。
第2课:使用按键控制LED 在本课中,我们将使用按键控制LED灯的开和关状态。我们将在这个项目中使用Seeeduino Lotus、Grove LED和Grove按键模块。
PCB邮票孔已经有默认连接。但您也可以使用Grove电缆将Grove LED连接到Seeeduino Lotus的数字接口 D4。将Grove按键模块连接到数字接口D6。
现在复制以下代码并将其上传到Seeeduino Lotus开发板。 - const int buttonPin = 6; // the number of the pushbutton pin
- const int ledPin = 4; // the number of the LED pin
- int buttonState = 0; // variable for reading the pushbutton statuS
-
- void setup()
- {
- pinMode(ledPin, OUTPUT); // initialize the LED pin as an output:
- pinMode(buttonPin, INPUT); // initialize the pushbutton pin as an input:
- }
- void loop()
- {
- buttonState = digitalRead(buttonPin); // read the state of the pushbutton value:
- if (buttonState == HIGH) // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
- {
- digitalWrite(ledPin, HIGH); // turn LED on:
- }
- else
- {
- digitalWrite(ledPin, LOW); // turn LED off:
- }
- }
复制代码按下按键将点亮LED模块。松开按键将熄灭LED灯。
第3课:控制LED灯闪烁的频率 在本节课中,我们将使用电位器的模拟信号来控制LED灯的闪烁频率。我们将使用Seeeduino Lotus、Grove LED和Grove旋转电位器模块。
PCB邮票孔已经有默认连接。但您也可以使用Grove电缆将LED连接到Seeeduino Lotus的数字接口D4,并使用Grove电缆将Grove旋转电位器连接到模拟信号接口A0。
现在复制以下代码并将其上传到Seeeduino Lotus开发板。 - int rotaryPin = A0; // select the input pin for the rotary
- int ledPin = 4; // select the pin for the LED
- int rotaryValue = 0; // variable to store the value coming from the rotary
-
- void setup()
- {
- pinMode(ledPin, OUTPUT); // declare the ledPin as an OUTPUT:
- }
-
- void loop()
- {
- rotaryValue = analogRead(rotaryPin); // read the value from the sensor:
- digitalWrite(ledPin, HIGH); // turn the ledPin on
- delay(rotaryValue); // stop the program for <sensorValue> milliseconds:
- digitalWrite(ledPin, LOW); // turn the ledPin off:
- delay(rotaryValue); // stop the program for for <sensorValue> milliseconds:
- }
复制代码
转动电位器将改变LED灯闪烁的频率。
|