树莓派_字母板的使用
来源:互联网 发布:淘宝拍卖字画是真的吗 编辑:程序博客网 时间: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
- 树莓派_字母板的使用
- 黑马程序员_获取字符串 字母出现的次数
- 面试算法_出现次数最多的字母(含大小写)
- 使用Java统计字母并且按照字母的次数排序
- atoi实现_字符串中含有字母_处理的不好哎
- POJ2945字母树trie的使用
- LVITEM 的使用 按字母进行排序
- isalpha判断字母函数的使用
- banner的使用_
- 只能使用字母、数字、-连字符、_下划线,不超过150个字符
- [Cocoa]_[初级]_[NSThread的使用]
- 黑马程序员_集合TreeMap练习:获取某一字符串的字母出现的次数
- FancyListIndexer 的使用----字母筛选器,使用贝塞尔曲线实现。
- 黑马程序员_练习:计算字符串出字母出现的次数
- 数组_例题:输入一行任意字符,求出其中字母、数字及其他字符的个数
- 指针_习题:输入一个字符串,将里面的数字、字母、其他符号筛选出来
- JS验证用户名必须以字母(不区分大小写)、数字、下划线(_)随意组合的字符
- 字符串的处理 (首字母变大写、数字与字母_分开、多空格变单)
- 如何设置xcode中的Base SDK 和 iOS Deployment Target ?
- Asp.net总结(一)
- 代码和数据的拼接
- Android中有多种方法可以实现其他线程与Main线程通讯
- Linux命令之while - Bash中的While循环
- 树莓派_字母板的使用
- RDBMS 总结
- android 图片视图居中
- 黑马程序员——java学习6(九九乘法表)
- 《θ电脑硬件之处理器cpu基础知识详解θ》
- Code Sign error: Provisioning profile ‘XXXX'can't be found_Mark
- 基本UDP套接字编程
- Linux内核中的Kconfig、Makefile、.config
- performSelectorOnMainThread支持多个参数