制作自定义的SPI显示阵列板–时钟家用酒具
万鹤机械网 2022-10-09 21:47:01
该项目是制作一个可定制、可改变外观的时钟。
硬件部件:
树莓派 Pico SPI显示阵列原理图:
PCB:
该板可放置6个显示屏、4个按钮。且该板与任何微控制器都是兼容的,因为它只有一些GPIO和SPI端口。
板子尺寸:
设计时钟:
1、LED矩阵时钟
2、数码时钟
3、翻转时钟
4、墨钟
5、VFD时钟
6、木钟
测试:
使用树莓派 Pico编写一个简单的程序,该程序可为每个显示器设置图像,以模拟时钟的方式。
代码:
1、显示器的初始化,以及仅将每个图像的原始数据感应到相应的显示器。
#include "pico/stdlib.h"
#include "hardware/gpio.h"
#include "hardware/pio.h"
#include "ST7735.h"
#include "clockDigital.h"
#include "clockFlip.h"
#include "clockMatrix.h"
#include "clockVFD.h"
#include "clockInk.h"
#include "clockWood.h"
#define ONBOARD_LED 25
int main(){
stdio_init_all();
PIO pio = pio0;
uint sm = 0;
uint offset = pio_add_program(pio, &SPILCD_program);
lcdPIOInit(pio, sm, offset, PIN_SDI, PIN_SCK, SERIAL_CLK_DIV);
gpio_init(ONBOARD_LED);
gpio_set_dir(ONBOARD_LED, GPIO_OUT);
gpio_init(PIN_CS1);
gpio_init(PIN_CS2);
gpio_init(PIN_CS3);
gpio_init(PIN_CS4);
gpio_init(PIN_CS5);
gpio_init(PIN_CS6);
gpio_init(PIN_DC);
gpio_init(PIN_RST);
gpio_init(PIN_BLK);
gpio_set_dir(PIN_CS1, GPIO_OUT);
gpio_set_dir(PIN_CS2, GPIO_OUT);
gpio_set_dir(PIN_CS3, GPIO_OUT);
gpio_set_dir(PIN_CS4, GPIO_OUT);
gpio_set_dir(PIN_CS5, GPIO_OUT);
gpio_set_dir(PIN_CS6, GPIO_OUT);
gpio_set_dir(PIN_DC, GPIO_OUT);
gpio_set_dir(PIN_RST, GPIO_OUT);
gpio_set_dir(PIN_BLK, GPIO_OUT);
gpio_put(ONBOARD_LED, 1);
gpio_put(PIN_CS1, 0);
gpio_put(PIN_CS2, 0);
gpio_put(PIN_CS3, 0);
gpio_put(PIN_CS4, 0);
gpio_put(PIN_CS5, 0);
gpio_put(PIN_CS6, 0);
gpio_put(PIN_RST, 1);
lcdInit(pio, sm, st7735_initSeq);
gpio_put(PIN_BLK, 1);
lcdStartPx(pio,sm);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, one_Flip[i]);
}
gpio_put(PIN_CS1, 1);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, two_Matrix[i]);
}
gpio_put(PIN_CS2, 1);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, three_Digital[i]);
}
gpio_put(PIN_CS3, 1);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, four_VFD[i]);
}
gpio_put(PIN_CS4, 1);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, five_Ink[i]);
}
gpio_put(PIN_CS5, 1);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, six_Wood[i]);
}
}
2、时钟主程序:
#include "pico/stdlib.h"
#include "hardware/gpio.h"
#include "hardware/pio.h"
#include "ST7735.h"
#include "clockDigital.h"
#include "clockFlip.h"
#include "clockMatrix.h"
#include "clockVFD.h"
#include "clockInk.h"
#include "clockWood.h"
#define ONBOARD_LED 25
int main(){
stdio_init_all();
PIO pio = pio0;
uint sm = 0;
uint offset = pio_add_program(pio, &SPILCD_program);
lcdPIOInit(pio, sm, offset, PIN_SDI, PIN_SCK, SERIAL_CLK_DIV);
gpio_init(ONBOARD_LED);
gpio_set_dir(ONBOARD_LED, GPIO_OUT);
gpio_init(PIN_CS1);
gpio_init(PIN_CS2);
gpio_init(PIN_CS3);
gpio_init(PIN_CS4);
gpio_init(PIN_CS5);
gpio_init(PIN_CS6);
gpio_init(PIN_DC);
gpio_init(PIN_RST);
gpio_init(PIN_BLK);
gpio_set_dir(PIN_CS1, GPIO_OUT);
gpio_set_dir(PIN_CS2, GPIO_OUT);
gpio_set_dir(PIN_CS3, GPIO_OUT);
gpio_set_dir(PIN_CS4, GPIO_OUT);
gpio_set_dir(PIN_CS5, GPIO_OUT);
gpio_set_dir(PIN_CS6, GPIO_OUT);
gpio_set_dir(PIN_DC, GPIO_OUT);
gpio_set_dir(PIN_RST, GPIO_OUT);
gpio_set_dir(PIN_BLK, GPIO_OUT);
gpio_put(ONBOARD_LED, 1);
gpio_put(PIN_CS1, 0);
gpio_put(PIN_CS2, 0);
gpio_put(PIN_CS3, 0);
gpio_put(PIN_CS4, 0);
gpio_put(PIN_CS5, 0);
gpio_put(PIN_CS6, 0);
gpio_put(PIN_RST, 1);
lcdInit(pio, sm, st7735_initSeq);
gpio_put(PIN_BLK, 1);
lcdStartPx(pio,sm);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, one_Flip[i]);
}
gpio_put(PIN_CS1, 1);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, two_Matrix[i]);
}
gpio_put(PIN_CS2, 1);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, three_Digital[i]);
}
gpio_put(PIN_CS3, 1);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, four_VFD[i]);
}
gpio_put(PIN_CS4, 1);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, five_Ink[i]);
}
gpio_put(PIN_CS5, 1);
for (int i = 0; i < 160*80*2; i++){
lcdPut(pio, sm, six_Wood[i]);
}
}
空调只制冷不制热是怎么回事
打印机怎么共享
壁挂式空调该如何移机
- 上一页:限制开机浪涌电流的五种方法!滚轴
- 下一页:UPS电源蓄电池有什么回收方法?花键套
- 粮食与食品的臭氧储藏消火栓箱加工中心操作机凹印油墨触摸屏Frc
- 黄山原厂设计三轴平台机点电压包云浮处理器收缩机引接线跳线机Frc
- 预制安全气囊撕裂线的新工艺0石材线条球座塑料机直流马达戒指Frc
- 中联重科加速布局绵竹水泥制品台锯粘合机带追光灯Frc
- 阀门安装使用日常维护相关小知识胶凝剂点胶针化工仪表固晶机船用橱柜Frc
- 7月21日余姚塑料市场ABS最新报价滚塑加工液压接头摄影周边唱机唱片油杯Frc
- 数字化模具技术有效提高模具生产效率红外球节展架山寨手机均质器卡片印刷Frc
- 中国科协和科技部合作取得实效牛头刨床数码相机塑料链铝压铸精密模具Frc
- 欧洲向中国进口铜版纸征临时关税淮北光碟机印花加工闪存卡电冰箱Frc
- 炉石新版机械骑卡组分析最符合时代的天梯卡生活礼品自动车床库存建材晚礼服电力电缆Frc
- 虹润公司参加2017年SIAF广州国际工淄博无刷马达专业原煤弹性袜胶印机Frc
- 改性塑料价格让汽车轻量化进退两难阿图什光亮剂汽车后桥钻井设备T型卡箍Frc