这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » DIY一个电子测光笔按键状态获取与字符显示

共2条 1/1 1 跳转至

DIY一个电子测光笔按键状态获取与字符显示

菜鸟
2024-11-06 22:23:43     打赏

本过程贴记录如下字任务目标的完成:

基础任务1:1 编程实现按键状态的采集

基础任务3:3 基于屏幕驱动函数实现字符的显示,例如显示Hello EEPW & DigiKey;也可显示自己喜欢的名言警句

按键有蓝色与红色两个button,分别接到开发板的D5,d6两个数字引脚,通过pinMode设置内部上拉,因为button按下后为低电平。

屏幕驱动采用adafruit的ST7789库,结合GFX库。非常方便显示字符、数字与图片。

#include <Adafruit_GFX.h>     // Core graphics library
#include <Adafruit_ST7789.h>  // Hardware-specific library for ST7789
#include <SPI.h>

// Use dedicated hardware SPI pins
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);

void setup(void) {
  Serial.begin(115200);

  pinMode(5, INPUT_PULLUP);
  pinMode(6, INPUT_PULLUP);
  // turn on backlite
  pinMode(TFT_BACKLITE, OUTPUT);
  digitalWrite(TFT_BACKLITE, HIGH);

  // turn on the TFT / I2C power supply
  pinMode(TFT_I2C_POWER, OUTPUT);
  digitalWrite(TFT_I2C_POWER, HIGH);
  delay(10);

  // initialize TFT
  tft.init(135, 240);  // Init ST7789 240x135
  tft.setRotation(3);
  tft.fillScreen(ST77XX_BLACK);

  tft.setTextColor(ST77XX_WHITE);

  delay(1000);
}

void loop() {
  tft.setCursor(0, 0);
  tft.setTextSize(3);
  tft.println("HELLO EEPW");

  if (digitalRead(5) == LOW) {
    tft.setCursor(0, 20);
    tft.setTextSize(3);
    tft.print("BTN 1 pressed");
  } else if (digitalRead(6) == LOW) {
    tft.setCursor(0, 20);
    tft.setTextSize(3);
    tft.print("BTN 2 pressed");
  }
  delay(100);
  tft.fillRect(0, 20, 240, 24, ST77XX_BLACK);
}

演示视频见附件:

button-tft.zip



高工
2024-11-07 07:13:47     打赏
2楼

感谢楼主分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]