求问楼主,怎么不用delay做?
Ethan 发表于 2013-9-11 10:27 static/image/common/back.gif
求问楼主,怎么不用delay做?
就是delay啊。。
<一一巛 发表于 2013-3-4 16:51 static/image/common/back.gif
void setup() {
for(int n=1;n
加一个74HC595直接可以少一层循环
求助啊~没有板子,只能想象。。。
void loop()
{
digitalWrite( 13, HIGH );
for ( int i= 0; i < 10; i++ )
{
for ( int j = 2; j < 9; j++ )
digitalWrite( j, n );
delay( 1000 );
}
说说我对这段程序的理解: for ( int j = 2; j < 9; j++ )
digitalWrite( j, n );
delay( 1000 );
循环内点亮了数字“1”,停留“1000ms"。接下来是执行语句”for ( int i= 0; i < 10; i++ )“开始点亮数字”2“。
我的问题是:点亮了数字”1",熄灭数码管b、c段(数字1)的语句在哪?应该不是在数字“1”还在亮的情况下点亮“2”吧?
为什么2——9号针脚是 OUTPUT而不是 INPUT?按照13号针脚输出,其他不应该是输入吗?还有为什么0(低电平)是亮,1(高电平)是不亮?
耗子 发表于 2013-10-30 21:40 static/image/common/back.gif
为什么2——9号针脚是 OUTPUT而不是 INPUT?按照13号针脚输出,其他不应该是输入吗?还有为什么0(低电平)是 ...
共阳数码管的意思是正极公共,也就是说需要亮哪个,哪个脚就需要低电平,这样才能从高到低电流流动,input仅限于需要读取io口状态是高电平还是低电平时使用。。。。配合读取语句使用的
求大神答疑……为什么不接GND这个接口啊……我网上找了半天找不到原因,不接的话它无法形成回路啊{:soso_e136:}
血阳 发表于 2013-11-7 16:29 static/image/common/back.gif
求大神答疑……为什么不接GND这个接口啊……我网上找了半天找不到原因,不接的话它无法形成回路啊{:soso_e1 ...
GND是0V低电平也是0V 高电平到低电平不就是回路了。。
迷你强 发表于 2013-11-8 15:03 static/image/common/back.gif
GND是0V低电平也是0V 高电平到低电平不就是回路了。。
哦哦~那低电平是哪些脚?是没亮的那些管的引脚吗?
交作业:
我用的是共阳,阳极接的3.3v,串330欧电阻
小数点也点亮了,常亮
加上abcdef
依稀记得点c,做了个子程序
但是数组怎么用忘得差不多了……
话说数码管只能做了玩玩,真要显示数据还是得用别的方法吧。
void setup() {
for(int i=2;i<=9;i++){
pinMode(i, OUTPUT);
digitalWrite(i,HIGH);
}
}
//0-9:0-9,10-15:a-f,16:clear
int n={
0,0,0,0,0,0,1,0,//0
1,0,0,1,1,1,1,0,
0,0,1,0,0,1,0,0,
0,0,0,0,1,1,0,0,
1,0,0,1,1,0,0,0,
0,1,0,0,1,0,0,0,
0,1,0,0,0,0,0,0,
0,0,0,1,1,1,1,0,
0,0,0,0,0,0,0,0,
0,0,0,1,1,0,0,0,//9
0,0,0,1,0,0,0,0,//a
1,1,0,0,0,0,0,0,
0,1,1,0,0,0,1,0,
1,0,0,0,0,1,0,0,
0,1,1,0,0,0,0,0,
0,1,1,1,0,0,0,0,//f
1,1,1,1,1,1,1,0
};
void shownum(int num){
for(int i=2;i<=9;i++){
digitalWrite(i,n);
}
}
void loop() {
for(int num=0;num<=16;num++){
shownum(num);
delay(500);
}
delay(1000);
}
西瓜 发表于 2013-10-21 11:31 static/image/common/back.gif
求助啊~没有板子,只能想象。。。
void loop()
{
说实话看到你问了我觉得不对头
回头一看才知道没问题
数组里不是每个数字都有7个值么,0亮1灭;点一的时候bc是亮的,点2的时候b应该灭,而且的确灭了。并不是1之后加了灭,而是在2的时候设置为灭的。
嗯,应该是跟不停地刷新的那种弄混了吧。
pumpitup 发表于 2014-1-28 23:02 static/image/common/back.gif
说实话看到你问了我觉得不对头
回头一看才知道没问题
哦!懂了!谢了~
先学习一下明天试试.
dushiyizhan 发表于 2013-4-4 18:20 static/image/common/back.gif
void setup()
{
pinMode(13,OUTPUT);
char num_tube_char = "-0123456789ABCDEFGHIJLNOPQUY";
byte num_tube_code = {
0b00000010,/* - */
0b11111100,0b01100000,0b11011010,0b11110010,
0b01100110,0b10110110,0b10111110,0b11100000,
0b11111110,0b11110110, /*from 0 to 9*/
0b11101110,0b00111110,0b10011100,0b01111010,
0b10011110,0b10001110,0b10111101,0b01101110,
0b00001100,0b01110000,0b00011100,0b11101100,
0b00111010,0b11001110,0b11100110,0b01111100,
0b01110110/*from A to y*/
};
const int A_port = 9;
const int B_port = 8;
const int C_port = 2;
const int D_port = 3;
const int E_port = 4;
const int F_port = 5;
const int G_port = 6;
const int dot_port = 7;
int port = {A_port, B_port, C_port, D_port, E_port, F_port, G_port, dot_port};
void setup()
{
pinMode(A_port, OUTPUT);
pinMode(B_port, OUTPUT);
pinMode(C_port, OUTPUT);
pinMode(D_port, OUTPUT);
pinMode(E_port, OUTPUT);
pinMode(F_port, OUTPUT);
pinMode(G_port, OUTPUT);
pinMode(dot_port, OUTPUT);
}
void loop()
{
char word[] = {"HAHA0123456789"};
for(int i=0; word!='\0'; i++) Display(word);
}
/*Write in code of charactor and display in numerical tube
*/
void WriteIn(byte b)
{
for(int i=1; i<=8; i++)
digitalWrite(port,bitRead(b,i));
}
void Display(const char ch)
{
/*Search Index from Table and find the code of charactor ch*/
for( int i = 0; i < 36; i++)
{
if(ch == num_tube_char)
{
WriteIn(num_tube_code);
break;
}
}
}
含有函数接口版的代码,感兴趣的可以封装成类哦。
char num_tube_char = "-0123456789ABCDEFGHIJLNOPQUY";
byte num_tube_code = {
0b00000010,/* - */
0b11111100,0b01100000,0b11011010,0b11110010,
0b01100110,0b10110110,0b10111110,0b11100000,
0b11111110,0b11110110, /*from 0 to 9*/
0b11101110,0b00111110,0b10011100,0b01111010,
0b10011110,0b10001110,0b10111101,0b01101110,
0b00001100,0b01110000,0b00011100,0b11101100,
0b00111010,0b11001110,0b11100110,0b01111100,
0b01110110/*from A to y*/
};
const int A_port = 9;
const int B_port = 8;
const int C_port = 2;
const int D_port = 3;
const int E_port = 4;
const int F_port = 5;
const int G_port = 6;
const int dot_port = 7;
int port = {A_port, B_port, C_port, D_port, E_port, F_port, G_port, dot_port};
void setup()
{
pinMode(A_port, OUTPUT);
pinMode(B_port, OUTPUT);
pinMode(C_port, OUTPUT);
pinMode(D_port, OUTPUT);
pinMode(E_port, OUTPUT);
pinMode(F_port, OUTPUT);
pinMode(G_port, OUTPUT);
pinMode(dot_port, OUTPUT);
}
void loop()
{
char word[] = {"HAHA0123456789"};
for(int i=0; word!='\0'; i++) Display(word);
}
/*Write in code of charactor and display in numerical tube
*/
void WriteIn(byte b)
{
for(int i=1; i<=8; i++)
digitalWrite(port,bitRead(b,i));
}
void Display(const char ch)
{
/*Search Index from Table and find the code of charactor ch*/
for( int i = 0; i < 36; i++)
{
if(ch == num_tube_char)
{
WriteIn(num_tube_code);
break;
}
}
}