电位器控制和自动的LED Matrix
参考了以下内容:@yangqiang29 的《MAX7219芯片驱动8*8点阵》
http://www.geek-workshop.com/thread-3665-1-1.html
@迷你强 的《Arduino入门教程--第六课--电位器PWM控制LED亮度 》
http://www.geek-workshop.com/thread-1113-1-1.html
Arduino网站的电位器操作
http://arduino.cc/en/tutorial/potentiometer
Arduino网站的条件判断
http://arduino.cc/en/Reference/Else
8*8点阵设计
http://www.pial.net/tools/
昨晚参考Yangqiang29的帖子,实现了LED Matrix的显示和切换,最后做了一个不停旋转的“电风扇”,今晚改了改,使用电位器控制“转动”。
http://v.youku.com/v_show/id_XNjI0NDg4Nzcy.html
代码如下:
#include <LedControl.h>
/*
Now we need a LedControl to work with.
***** These pin numbers will probably not work with your hardware *****
第一个参数:pin 12 is connected to the DataIn
第二个参数:pin 11 is connected to the CLK
第三个参数:pin 10 is connected to LOAD
第四个参数:We have only a single MAX72XX.
*/
int exchange=6;
int val;
LedControl lc=LedControl(exchange,11,10.1);
unsigned long delaytime=100;
unsigned long delaytime1=200;
void setup(){
pinMode(exchange,OUTPUT);
lc.shutdown(0,false);
lc.setIntensity(0,4);
lc.clearDisplay(0);
Serial.begin(9600);
}
void ledled(){
int val=analogRead(A0);
Serial.println(val);
byte one={B10000001,
B01000010,
B00100100,
B00011000,
B00011000,
B00100100,
B01000010,
B10000001};
byte two={B01000000,
B00100001,
B00010010,
B00011100,
B00111000,
B01001000,
B10000100,
B00000010};
byte three={B00010000,
B00010000,
B00010000,
B00011111,
B11111000,
B00001000,
B00001000,
B00001000};
byte four={B00001000,
B00001000,
B00001000,
B11111000,
B00011111,
B00010000,
B00010000,
B00010000};
byte five={B00000010,
B10000100,
B01001000,
B00111000,
B00011100,
B00010010,
B00100001,
B01000000};
if(val<400 || val>1000){
lc.setRow(0,0,one);
lc.setRow(0,1,one);
lc.setRow(0,2,one);
lc.setRow(0,3,one);
lc.setRow(0,4,one);
lc.setRow(0,5,one);
lc.setRow(0,6,one);
lc.setRow(0,7,one);
}
else if(val<600){
lc.setRow(0,0,two);
lc.setRow(0,1,two);
lc.setRow(0,2,two);
lc.setRow(0,3,two);
lc.setRow(0,4,two);
lc.setRow(0,5,two);
lc.setRow(0,6,two);
lc.setRow(0,7,two);
}
else if(val<800){
lc.setRow(0,0,three);
lc.setRow(0,1,three);
lc.setRow(0,2,three);
lc.setRow(0,3,three);
lc.setRow(0,4,three);
lc.setRow(0,5,three);
lc.setRow(0,6,three);
lc.setRow(0,7,three);
}
else if(val<900){
lc.setRow(0,0,four);
lc.setRow(0,1,four);
lc.setRow(0,2,four);
lc.setRow(0,3,four);
lc.setRow(0,4,four);
lc.setRow(0,5,four);
lc.setRow(0,6,four);
lc.setRow(0,7,four);
}
else{
lc.setRow(0,0,five);
lc.setRow(0,1,five);
lc.setRow(0,2,five);
lc.setRow(0,3,five);
lc.setRow(0,4,five);
lc.setRow(0,5,five);
lc.setRow(0,6,five);
lc.setRow(0,7,five);
}
}
void loop(){
ledled();
delay(500);
}
页:
[1]