加速度计控制的LED的制作图解

步骤1:材料
arduino uno
加速度计模块
led的
连接线
面包板
usb数据线
步骤2:连接加速度计
加速度计主要有5个端子。
vcc(5v)
接地
x轴
y轴
z轴
电源电压和接地由arduino uno通过连接线提供。通电后,板上的红色小led发光,表明模块正在读取x,y和z轴的运动。
步骤3:互连led的
为了控制led,必须将它们互连到arduino uno。负极端子与地面(arduino的gnd)共用,正极端子与arduino的数字引脚相连。
第4步:编写代码
这部分需要一些思考。为了使x,y和z轴控制led的亮度,必须将它们连接到arduino的analog引脚。
代码可能类似于此代码-
const int redpin = 3;
const int greenpin = 5;
const int bluepin = 6;
const int sensorpinred = a0;
const int sensorpingreen = a2;
const int sensorpinblue = a4;
int var = 1 ;
int minreadingred = 750;
int maxreadingred = 0;
int minreadinggreen = 750;
int maxreadinggreen = 0;
int minreadingblue = 750;
int maxreadingblue = 0;
int模拟值= 0;
int时间;
int模拟输出;
int闪烁;
无效setup(){
serial.begin(9600);
serial.println();
}
void loop(){
while(time 《1000){
时间= millis();
analogwrite(redpin,255);
analogwrite(greenpin,255);
analogwrite(bluepin,255);
延迟(1000);
analogwrite(redpin,0);
analogwrite(greenpin,0);
analogwrite(bluepin,0);
延迟(10);
}
而(time》 1000 && time 《16000){
time = millis() ;
analogvalue = analogread(sensorpinred);
maxreadingred = max(analogvalue,maxreadingred);
minreadingred = min(analogvalue,minreadingred);
serial.print(“ analog red”);
serial.print(analogvalue,dec);
延迟(20);
analogvalue = analogread(sensorpingreen);
maxreadinggreen = max(analogvalue,maxreadinggreen);
minreadinggreen = min(analogvalue,minreadinggreen);
serial.print(“ analog green”);
serial.print(analogvalue,dec);
延迟(20);
analogvalue = analogread(sensorpinblue);
maxreadingblue = max(analogvalue,maxreadingblue);
minreadingblue = min(analogvalue,minreadingblue);
serial.print(“ analog blue”);
serial.println(analogvalue,dec);
延迟(20);
}
while(时间》 16000 &&时间《17000){
时间= millis() ;
analogwrite(redpin,255);
analogwrite(greenpin,255);
analogwrite(bluepin,255);
延迟(1000);
analogwrite(redpin,0);
analogwrite(greenpin,0);
analogwrite(bluepin,0);
}
而(var == 1){
minreadingred = minreadingred + 0.5 * (maxreadingred-minreadingred);
minreadinggreen = minreadinggreen + 0.5 *(maxreadinggreen-minreadinggreen);
minreadingblue = minreadingblue + 0.5 *(maxreadingblue-minreadingblue);
serial.println();
serial.print(“ minreadingred =”);
serial.print(minreadingred,dec);
serial.print(“ maxreadingred =”);
serial.println(maxreadingred,dec);
serial.print(“ minreadinggreen =”);
serial.print(minreadinggreen,dec);
serial.print(“ maxreadinggreen =”);
serial.println(maxreadinggreen,dec);
serial.print(“ minreadingblue =”);
serial.print(minreadingblue,dec);
serial.print(“ maxreadingblue =”);
serial.println(maxreadingblue,dec);
var = 2;
}
analogvalue = analogread(sensorpinred);
analogvalue = constrain(analogvalue,minreadingred,maxreadingred);
serial.print(“ analogvalue red =”);
serial.print(analogvalue);
analogout = map(analogvalue,minreadingred,maxreadingred,0,255);
analogout = constrain(analogout,0,255);
serial.print(“缩放为”);
serial.print(analogout,dec);
analogwrite(redpin,analogout);
analogvalue = analogread(sensorpingreen);
analogvalue = constrain(analogvalue,minreadinggreen,maxreadinggreen);
serial.print(“ green =”);
serial.print(analogvalue);
模拟输出= map(analogvalue,minreadinggreen,maxreadinggreen,0,255);
analogout = constrain(analogout,0,255); serial.print(“缩放为”);
serial.print(analogout,dec);
analogwrite(greenpin,analogout);
analogvalue = analogread(sensorpinblue);
analogvalue = constrain(analogvalue,minreadingblue,maxreadingblue);
serial.print(“ blue =”);
serial.print(analogvalue);
模拟输出= map(analogvalue,minreadingblue,maxreadingblue,0,255);
analogout = constrain(analogout,0,255);
serial.print(“缩放为”);
serial.println(analogout,dec);
analogwrite(bluepin,analogout);
延迟(25);
analogvalue = analogread(sensorpinred);
analogout = map(analogvalue,minreadingred,maxreadingred,0,255);
serial.print(“ red =”);
serial.print(analogvalue,dec);
analogwrite(redpin,analogout);
analogvalue = analogread(sensorpingreen); analogout = map(analogvalue,minreadinggreen,maxreadinggreen,0,255);
serial.print(“ green =”);
serial.print(analogvalue,dec);
analogwrite(greenpin,analogout);
analogvalue = analogread(sensorpinblue);
模拟输出= map(analogvalue,minreadingblue,maxreadingblue,0,255);
serial.print(“ blue =”);
serial.println(analogvalue,dec);
analogwrite(bluepin,analogout);
delay(25);
步骤5:上传代码!
再次检查所有连接,然后将代码上载到板。现在,您可以通过运动来控制led的亮度。当倾斜到相应的轴时,不同颜色的led点亮。

幕后推手是谁:从6700到28000,比特币暴涨三倍的真实原因
什么是电源滤波器,电源迪波器的作用,滤波器选型要点
机器人发达的今天可以帮小孩子写作业,弊端初漏
嵌入式开发中字节高低位转换如何实现
开发航空电子PCB的5条技巧
加速度计控制的LED的制作图解
华为手机海外市场跌20%,任正非:现正恢复中
到底什么是数字孪生?有哪些具体应用呢
受下游需求放缓影响工业机器人销量下降
华为P40的4G全网通上架京东商城
一个1.4Ah的多层软包样本做的实验
618手机怎么选?iQOO天猫开门红福利大放送
成都太古里新增3D大屏!
聚焦“源1.0”背后的计算挑战以及我们采取的训练方法
蔚来150kwh固态电池计划2022年第四季度交付
Mini LED正加速到来,相关企业量产进度如何?哪些企业已经实现量产?
GSM modem,GSM modem的组成/原理/分类/作
京东方Mini LCD背光产品下半年量产,将持续发展LCD业务
高频纯正逆变器并机的含义
曼谷手机展 3G触控屏幕热销