37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来—小小的进步或是搞不定的问题,希望能够抛砖引玉。
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百七十一: BBC microbit micro:bit,bit go,bit club python图形编程开发板
幸运拿到了micro:bit麦昆编程机器人小车评测套件,这个相关实验准备继续做下去…
5、读取红外线键值:按下遥控器上面的按键,在LED点阵屏上显示的数值就是该按键的键值。
6、红外线遥控:遥控小车前进、左转、右转、后退,以及前灯的亮暗。
7、超声波避障:当小车与障碍物的距离<=35cm时,左转,当距离<=10cm时,后退再右转。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十一: BBC microbit micro:bit,bit go,bit club python图形编程开发板
项目:点阵屏、环境灯与红外遥控:遥控小车前进、左转、右转,配置了音乐与转向灯
Arduino参考开源代码
/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百二十二: BBC microbit micro:bit,bit go,bit club python图形编程开发板
项目:点阵屏、环境灯与红外遥控:遥控小车前进、左转、右转,配置了音乐与转向灯
*/
#include <DFRobot_IRremote_dal.h>
#include <Maqueen_Motor.h>
#include <Microbit_Sound.h>
#include <Microbit_Matrix.h>
#include <DFRobot_NeoPixel.h>
DFROBOT_IRremote_Receive remote(16);
Maqueen_Motor motor;
const uint8_t bitmap_CC1T[5] = {B01010,B11111,B11111,B01110,B00100};
DFRobot_NeoPixel rgb_display_15;
void onIRReceive(uint8_t data_IR)
{
if ((data_IR == 157)) {
motor.motorRun(motor.LEFT,motor.CW,68);
motor.motorRun(motor.RIGHT,motor.CW,68);
MSound.play(0, RINGTONE, OnceInBackground);
MMatrix.show(MMatrix.ARROW_N);
digitalWrite(12,HIGH);
digitalWrite(8,HIGH);
}
if ((data_IR == 87)) {
motor.motorStop(motor.LEFT);
motor.motorStop(motor.RIGHT);
MSound.play(0, POWER_DOWN, OnceInBackground);
MMatrix.show(MMatrix.BUTTERFLY);
digitalWrite(12,LOW);
digitalWrite(8,LOW);
}
if ((data_IR == 221)) {
motor.motorRun(motor.LEFT,motor.CW,0);
motor.motorRun(motor.RIGHT,motor.CW,42);
digitalWrite(12,LOW);
digitalWrite(8,HIGH);
MMatrix.show(MMatrix.ARROW_E);
}
if ((data_IR == 61)) {
motor.motorRun(motor.LEFT,motor.CW,40);
motor.motorRun(motor.RIGHT,motor.CW,0);
digitalWrite(8,LOW);
digitalWrite(12,HIGH);
MMatrix.show(MMatrix.ARROW_W);
}
if ((data_IR == 253)) {
MMatrix.show(bitmap_CC1T);
delay(1000);
MMatrix.show(MMatrix.HEART_SMALL);
}
if ((data_IR == 151)) {
MMatrix.show(MMatrix.PACMAN);
}
if ((data_IR == 79)) {
MMatrix.show(MMatrix.TARGET);
}
if ((data_IR == 103)) {
MMatrix.print("hello world");
}
}
void setup() {
remote.begin();
remote.setCallback(onIRReceive);
rgb_display_15.begin(15, 4, 255);
}
void loop() {
rgb_display_15.setRangeColor(0, 0, 0xff0000);
delay(1000);
rgb_display_15.rotate(1);
delay(1000);
rgb_display_15.rotate(1);
delay(1000);
rgb_display_15.rotate(1);
delay(1000);
rgb_display_15.clear();
delay(1000);
rgb_display_15.setRangeColor(0, 0, 0x00ff00);
delay(1000);
rgb_display_15.rotate(1);
delay(1000);
rgb_display_15.rotate(1);
delay(1000);
rgb_display_15.rotate(1);
delay(1000);
rgb_display_15.clear();
delay(1000);
rgb_display_15.setRangeColor(0, 0, 0x0000ff);
delay(1000);
rgb_display_15.rotate(1);
delay(1000);
rgb_display_15.rotate(1);
delay(1000);
rgb_display_15.rotate(1);
delay(1000);
rgb_display_15.clear();
}
8、点阵屏、环境灯与红外遥控:遥控小车前进、左转、右转,配置了音乐与转向灯
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十一: BBC microbit micro:bit,bit go,bit club python图形编程开发板
项目:点阵屏箭头、声音提示、转向灯与超声波避障小车
Arduino参考开源代码
/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百二十二: BBC microbit micro:bit,bit go,bit club python图形编程开发板
项目:点阵屏箭头、声音提示、转向灯与超声波避障小车
*/
#include <Maqueen_Motor.h>
#include <Microbit_Matrix.h>
#include <DFRobot_URM10.h>
#include <Microbit_Sound.h>
double mind_n_my_variable;
Maqueen_Motor motor;
const uint8_t bitmap_dQ99[5] = {B01010,B11111,B11111,B01110,B00100};
DFRobot_URM10 urm10(1,2);
void setup() {
}
void loop() {
motor.motorRun(motor.LEFT,motor.CW,50);
motor.motorRun(motor.RIGHT,motor.CW,50);
MMatrix.show(bitmap_dQ99);
digitalWrite(8,HIGH);
digitalWrite(12,HIGH);
mind_n_my_variable = (urm10.getDistanceCM());
if ((mind_n_my_variable <= 35)) {
motor.motorRun(motor.LEFT,motor.CW,0);
motor.motorRun(motor.RIGHT,motor.CW,50);
digitalWrite(8,HIGH);
digitalWrite(12,LOW);
MMatrix.show(MMatrix.ARROW_E);
MSound.playTone(0, 131, BEAT_1_4);
MSound.playTone(0, 349, BEAT_1_4);
delay(1000);
}
if ((mind_n_my_variable <= 10)) {
motor.motorRun(motor.LEFT,motor.CCW,50);
motor.motorRun(motor.RIGHT,motor.CCW,50);
delay(1000);
motor.motorRun(motor.LEFT,motor.CW,50);
motor.motorRun(motor.RIGHT,motor.CW,0);
digitalWrite(8,LOW);
digitalWrite(12,HIGH);
MMatrix.show(MMatrix.ARROW_W);
MSound.playTone(0, 988, BEAT_1_4);
delay(1000);
}
}
10、使用makecode控制micro:bit小车(超声波避障)