【麦昆试用】迟来的第二帖——调通小车上的基础输入\输出外设
[复制链接]
小车上有许多可用的外设如RGB灯,LED点阵,超声波模块,循迹模块等,要玩通小车,就要把板上的外设调一遍。
点阵用于输出HelloWorld有许多坛友已经试过了,我就充分利用点阵上的25个点,用于对应超声波探测模块的1~25厘米探测范围,每一个点代表一厘米,动态显示小车的障碍物距离,两个红色车灯用于显示底部循迹模块的信号,而小车底部的RGB底灯就只用于检测AB按键输入情况。
#include <DFRobot_URM10.h>
#include <Maqueen_Motor.h>
#include <Microbit_Matrix.h>
#include <DFRobot_NeoPixel.h>
DFRobot_URM10 urm10(1,2);
Maqueen_Motor motor;
DFRobot_NeoPixel rgb_display_15;
void setup()
{
Serial.begin(115200);
rgb_display_15.begin(15, 4, 255);
}
int distance=0,i,j;
void loop()
{
distance=urm10.getDistanceCM();
distance/=5;
if(distance>24)distance=24;
for(i=0;i<=distance;i++)
MMatrix.drawPixel(i/5,i%5,1);
for(j=distance;j<=24;j++)
MMatrix.drawPixel(j/5,j%5,0);
if(digitalRead(13))
{
digitalWrite(8,1);
}
else digitalWrite(8,0);
if(digitalRead(14))
{
digitalWrite(12,1);
}
else digitalWrite(12,0);
if(Button_A.isPressed()&&Button_B.isPressed())
rgb_display_15.setRangeColor(-1, -1, 0xffffff);
else if(Button_A.isPressed()&&!Button_B.isPressed())
rgb_display_15.setRangeColor(-1, -1, 0xff0000);
else if(!Button_A.isPressed()&&Button_B.isPressed())
rgb_display_15.setRangeColor(-1, -1, 0x0000ff);
else rgb_display_15.setRangeColor(-1, -1, 0x00ff00);
}
循迹模块控制车灯:
按键控制尾灯:
超声波避障模块实时反馈到点阵屏:
|