树莓派_字母板的使用

来源:互联网 发布:淘宝拍卖字画是真的吗 编辑:程序博客网 时间:2024/05/16 19:42

一、实验目的

       熟悉字母板

 

二、实验内容

       用LED矩阵实现一个字母板,由RPi程序显示不同的字母和符号。PS:又采购了一批小字母板,每个人可以有一个,找 你们的TA去拿

 

三、主要仪器设备

1. RPI

2. 移动电源

3. Win7 PC机一台

4. 面包板

5. 面包线、杜邦线

6. 字母板

 

四、操作方法和实验步骤

1.安装wiringPi

使用git工具下载wiringPi

 

查询当前目录下的wiringPi,并进入该目录,使用build命令安装

 

验证,已安装!

 

2.电路设计


实际上电路是按顺序接的:

 

 

电路接线

 

电路接线

 

 

3.实验代码

输出设计为:

 

程序中各写操作对应:

       列的0值表示亮,1值表示暗。

       行的0值表示暗,1值表示亮。

       欲控制某行某列点亮,必须该行值为1和该列值为0。

       以下是全暗的例子:

              digitalWrite(0, 0);      行8

              digitalWrite(1, 1);      列5

           digitalWrite(2, 1);     列3

              digitalWrite(3, 0);      行5

              digitalWrite(4, 1);      列8

              digitalWrite(5, 0);      行7

              digitalWrite(6, 1);      列2

              digitalWrite(7, 1);      列1

              digitalWrite(8, 0);      行6

              digitalWrite(9, 0);      行3

              digitalWrite(10, 1);    列4

              digitalWrite(11, 0);    行1

              digitalWrite(12, 1);    列6

              digitalWrite(13, 1);    C7

              digitalWrite(14, 0);    行2

              digitalWrite(15, 0);    行4

 

 

#include <stdio.h>

#include <wiringPi.h>

#include <stdlib.h>

 

int main(int argc,char * argv[]){

        struct timeval t_start,t_end;

        int pin, flag, i;

        long percent, time, cost_time;

 

       

        wiringPiSetup ();//³õʼ»¯Ð´¿Ú

        for (pin = 0 ; pin < 16; ++pin) {

                pinMode (pin, OUTPUT) ;

        }

      while(1)//Ñ­»·Êä³ö

       {

        i=0;

        while(i < 250) //Ñ­»·Êä³öM

        { 

              if(i % 5 == 0) //Êä³öµÚÒ»ÁÐ

              {

        digitalWrite(0, 0);   

              digitalWrite(1, 1);     

          digitalWrite(2, 1);    

              digitalWrite(3, 1);     

              digitalWrite(4, 1);     

              digitalWrite(5, 1);     

              digitalWrite(6, 0);     

              digitalWrite(7, 1);     

              digitalWrite(8, 1);     

              digitalWrite(9, 1);     

              digitalWrite(10, 1);   

              digitalWrite(11, 0);   

              digitalWrite(12, 1);   

              digitalWrite(13, 1);   

              digitalWrite(14, 1);   

              digitalWrite(15, 1);

        }

              if(i % 5 == 1) //Êä³öµÚ¶þÁÐ

              {

              digitalWrite(0, 0);     

              digitalWrite(1, 1);     

           digitalWrite(2, 0);    

              digitalWrite(3, 0);     

              digitalWrite(4, 1);     

              digitalWrite(5, 0);     

              digitalWrite(6, 1);     

              digitalWrite(7, 1);     

              digitalWrite(8, 0);     

              digitalWrite(9, 0);     

              digitalWrite(10, 1);   

              digitalWrite(11, 0);   

              digitalWrite(12, 1);   

              digitalWrite(13, 1);   

              digitalWrite(14, 1);   

              digitalWrite(15, 0);

                }

              if(i % 5 == 2)

              {

              digitalWrite(0, 0);     

              digitalWrite(1, 1);     

           digitalWrite(2, 1);    

              digitalWrite(3, 1);     

              digitalWrite(4, 1);     

              digitalWrite(5, 1);     

              digitalWrite(6, 1);     

              digitalWrite(7, 1);     

              digitalWrite(8, 1);     

              digitalWrite(9, 1);     

              digitalWrite(10, 0);   

              digitalWrite(11, 0);   

              digitalWrite(12, 1);   

              digitalWrite(13, 1);   

              digitalWrite(14, 1);   

              digitalWrite(15, 1);

                }

              if(i % 5 == 3)

              {

              digitalWrite(0, 0);     

              digitalWrite(1, 0);     

           digitalWrite(2, 1);    

              digitalWrite(3, 0);     

              digitalWrite(4, 1);     

              digitalWrite(5, 0);     

              digitalWrite(6, 1);     

              digitalWrite(7, 1);     

              digitalWrite(8, 0);     

              digitalWrite(9, 0);     

              digitalWrite(10, 1);   

              digitalWrite(11, 0);   

              digitalWrite(12, 1);   

              digitalWrite(13, 1);   

              digitalWrite(14, 1);   

              digitalWrite(15, 0);

                }

              if(i % 5 == 4)

              {

              digitalWrite(0, 0);     

              digitalWrite(1, 1);     

           digitalWrite(2, 1);    

              digitalWrite(3, 1);     

              digitalWrite(4, 1);     

              digitalWrite(5, 1);     

              digitalWrite(6, 1);     

              digitalWrite(7, 1);     

              digitalWrite(8, 1);     

              digitalWrite(9, 1);     

              digitalWrite(10, 1);   

              digitalWrite(11, 0);   

              digitalWrite(12, 0);   

              digitalWrite(13, 1);   

              digitalWrite(14, 1);   

              digitalWrite(15, 1);

                }

              i++;

              delay(3);

        }

          //È«°µ£¬Çø·ÖÁ½¸ö×Öĸ

              digitalWrite(0, 0);     

              digitalWrite(1, 1);     

           digitalWrite(2, 1);    

              digitalWrite(3, 0);     

              digitalWrite(4, 1);     

              digitalWrite(5, 0);     

              digitalWrite(6, 1);     

              digitalWrite(7, 1);     

              digitalWrite(8, 0);     

              digitalWrite(9, 0);     

              digitalWrite(10, 1);   

              digitalWrite(11, 0);   

              digitalWrite(12, 1);   

              digitalWrite(13, 1);   

              digitalWrite(14, 0);   

              digitalWrite(15, 0);       

              delay(100);

          

        i = 0;

        while(i < 250){

        if(i % 5 == 0) //Êä³öµÚÒ»ÁÐ

              {

              digitalWrite(0, 0);     

              digitalWrite(1, 1);     

           digitalWrite(2, 1);    

              digitalWrite(3, 0);     

              digitalWrite(4, 1);     

              digitalWrite(5, 1);     

              digitalWrite(6, 0);     

              digitalWrite(7, 1);     

              digitalWrite(8, 1);     

              digitalWrite(9, 0);     

              digitalWrite(10, 1);   

              digitalWrite(11, 0);   

              digitalWrite(12, 1);   

              digitalWrite(13, 1);   

              digitalWrite(14, 1);   

              digitalWrite(15, 0);

        }

              if(i % 5 == 1) //Êä³öµÚ¶þÁÐ

              {

              digitalWrite(0, 0);     

              digitalWrite(1, 1);     

           digitalWrite(2, 0);    

              digitalWrite(3, 0);     

              digitalWrite(4, 1);     

              digitalWrite(5, 1);     

              digitalWrite(6, 1);     

              digitalWrite(7, 1);     

              digitalWrite(8, 0);     

              digitalWrite(9, 0);     

              digitalWrite(10, 1);   

              digitalWrite(11, 0);   

              digitalWrite(12, 1);   

              digitalWrite(13, 1);   

              digitalWrite(14, 1);   

              digitalWrite(15, 0);

                }

              if(i % 5 == 2)

              {

              digitalWrite(0, 0);     

              digitalWrite(1, 1);     

           digitalWrite(2, 1);    

              digitalWrite(3, 1);     

              digitalWrite(4, 1);     

              digitalWrite(5, 1);     

              digitalWrite(6, 1);     

              digitalWrite(7, 1);     

              digitalWrite(8, 1);     

              digitalWrite(9, 1);     

              digitalWrite(10, 0);   

              digitalWrite(11, 0);   

              digitalWrite(12, 1);   

              digitalWrite(13, 1);   

              digitalWrite(14, 1);   

              digitalWrite(15, 1);

                }

              if(i % 5 == 3)

              {

              digitalWrite(0, 0);     

              digitalWrite(1, 0);     

           digitalWrite(2, 1);    

              digitalWrite(3, 0);     

              digitalWrite(4, 1);     

              digitalWrite(5, 0);     

              digitalWrite(6, 1);     

              digitalWrite(7, 1);     

              digitalWrite(8, 0);     

              digitalWrite(9, 0);     

              digitalWrite(10, 1);   

              digitalWrite(11, 0);   

              digitalWrite(12, 1);   

              digitalWrite(13, 1);   

              digitalWrite(14, 1);   

              digitalWrite(15, 0);

                }

              if(i % 5 == 4)

              {

              digitalWrite(0, 0);     

              digitalWrite(1, 1);     

           digitalWrite(2, 1);    

              digitalWrite(3, 0);     

              digitalWrite(4, 1);     

              digitalWrite(5, 0);     

              digitalWrite(6, 1);     

              digitalWrite(7, 1);     

              digitalWrite(8, 0);     

              digitalWrite(9, 0);     

              digitalWrite(10, 1);   

              digitalWrite(11, 0);   

              digitalWrite(12, 0);   

              digitalWrite(13, 1);   

              digitalWrite(14, 1);   

              digitalWrite(15, 0);

                }

              i++;

              delay(3);

        }

       }

        return 0;

}

 

 

 

 

 

4.实验结果

   复制代码至树莓派,ls查看

 

   编译代码

 

  运行后效果如下

 

 

   实际上屏幕一直在M和J来回跳动,MJ即满绩。。。。

 

  具体效果请看下面一段视频:

   http://v.youku.com/v_show/id_XNTc0MzYyOTE2.html

 

 

原创粉丝点击