
爱心流水灯
简介
本工程利用Arduino uno板及软件,在立创Pcb板上实现流水灯效果。
简介:本工程利用Arduino uno板及软件,在立创Pcb板上实现流水灯效果。开源协议
:GPL 3.0
描述
一、实验目的
通过使用 Arduino ,利用嘉立创EDA自主设计,实现一个以常熟理工学院建校66周年为主题的创意设计。(使用 0805 贴片 LED 围成心形并结合 OLED 显示学校 66 周年快乐字样)
二、实验器材
1. Arduino 开发板
2. 0805 贴片 LED、电阻若干
3. OLED 显示屏
三、实验原理
利用 Arduino 的编程控制功能,使 LED 按照心形排列点亮,并通过与 OLED 的通信实现特定文字的显示。
四、实验步骤
1. 在 PCB 板上精心布局 0805 贴片 LED,使其大致呈现心形形状。
2. 将 LED 与 Arduino 连接,设置相应的引脚输出。
3. 连接 OLED 显示屏到 Arduino,并编写代码实现文字显示。
4. 编写 Arduino 程序,实现 LED 的心形闪烁效果以及 OLED 的文字显示同步。
代码:
#include
#include "U8glib.h"
#include "clib/u8g.h"
const int LEDCount = 8;
int LEDPins[] ={2,3,4,5,6,7,8,9,};
//接线:四针oled,Vcc-3.3v或5v,GND-GND,SCL-A5,SDA-A4
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
//常
const uint8_t bitmap_chang [] U8G_PROGMEM ={
0x80,0x00,0x88,0x08,0x90,0x04,0xFE,0x7F,0x02,0x40,0xF9,0x2F,0x08,0x08,0xF8,0x0F,
0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x14,0x84,0x08,0x80,0x00,0x80,0x00,//常0
};
//理
const uint8_t bitmap_li [] U8G_PROGMEM ={
0x00,0x00,0x80,0x3F,0xBF,0x24,0x88,0x24,0x88,0x3F,0x88,0x24,0x88,0x24,0xBE,0x3F,
0x08,0x04,0x08,0x04,0x88,0x3F,0x08,0x04,0x38,0x04,0x07,0x04,0xC2,0x7F,0x00,0x00,//理1,
};
//工
const uint8_t bitmap_gong [] U8G_PROGMEM ={
0x00,0x00,0x00,0x00,0xFE,0x3F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,
0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,//工2,
};
//快
const uint8_t bitmap_kuai [] U8G_PROGMEM ={
0x08,0x02,0x08,0x02,0x08,0x02,0xC8,0x1F,0x18,0x12,0x2A,0x12,0x0A,0x12,0x0A,0x12,
0xE9,0x7F,0x08,0x02,0x08,0x05,0x08,0x05,0x88,0x08,0x88,0x08,0x48,0x10,0x28,0x60,//快3,
};
//乐
const uint8_t bitmap_le [] U8G_PROGMEM ={
0x00,0x04,0x00,0x0F,0xF8,0x00,0x08,0x00,0x88,0x00,0x84,0x00,0x84,0x00,0xFC,0x3F,
0x80,0x00,0x90,0x04,0x90,0x08,0x88,0x10,0x84,0x20,0x82,0x20,0xA0,0x00,0x40,0x00,//乐4,
};
/*参数解释:drawBitmapP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t bitmap)
x:位图左上角的横坐标
y:位图左上角的纵坐标
cnt:在水平方向上的位图的字节数。该位图的宽度是cnt 8(1字节=8位)
h:位图的高
*bitmap:位图对象
*/
void draw(void) {
u8g.setColorIndex(1);
u8g.drawBitmapP ( 0 , 0 , 2 , 16 , bitmap_chang);
u8g.drawBitmapP ( 17 , 0 , 2 , 16 , bitmap_li);
u8g.drawBitmapP ( 34 , 0 , 2 , 16 , bitmap_gong);
u8g.drawBitmapP ( 51 , 0 , 2 , 16 , bitmap_kuai);
u8g.drawBitmapP ( 68 , 0 , 2 , 16 , bitmap_le);
}
void setup() {
for(int thisLED = 2; thisLED <= 9; thisLED++)
{
pinMode(LEDPins[thisLED], OUTPUT);//让2到9号接口输出电频
}
}
void loop() {
for(int num =2;num < 10; num++){
digitalWrite(LEDPins[num],HIGH);
}
for(int num =2;num < 10; num++){
digitalWrite(LEDPins[num],LOW);
delay(500);
digitalWrite(LEDPins[num],HIGH);
}
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
}
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | LED-0805_R | 1,2,3,4,5,6,7,8,LED17,LED18 | LED0805_RED | 10 |
2 | 1k | 11,22,33,44,55,66,77,88,R17,R18 | R0805 | 10 |
3 | 0.96OLED_4P | OLED | 0.96OLED_4P | 1 |
4 | arduino uno | U2 | ARDUINO-UNO | 1 |
5 | LED-0805_R | LED1,LED2,LED3,LED4,LED5,LED6,LED7,LED8,LED9,LED10,LED11,LED12,LED13,LED14,LED15,LED16 | LED0805_RED | 16 |

评论