반응형
74HC595D 칩 2개가 포함된 4비트 LED 디지털 튜브 모듈용 아두이노 라이브러리
참고
사용법 예제 코드
// A0 A1 A2 5V GND
// | | | | |
// SCLK RCLK DIO VCC GND
// SCLK, RCLK and DIO - control pins for this module
// VCC - 5V pin
// GND - zero pin
#include "TM74.h"
#define SCLK A0
#define RCLK A1
#define DIO A2
TM74 disp(SCLK, RCLK, DIO);
const uint8_t useDot = 0x1;
void loop()
{
// fill segment data
const Segment segs[4] = {
Segment('1'), // 4 display
Segment('1'), // 3 display
Segment('2', useDot), // 2 display with enabled dot indication
Segment('3') // 1 display
};
// send data to module
disp.writeSegments(segs, sizeof(segs) / sizeof(Segment));
}
세그먼트에서 사용할 수 있는 기호 지원
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
'A', 'b', 'C', 'd', 'E', 'F'
'°' // (degree)
'-' // (minus)
깃 허브 참고: https://github.com/0xF6/TM74
예제 코드는 RTC에서 읽어 온 시간 데이터를 출력하는 코드
//
// 1. Install library: Time, DS1307RTC
// 2. Connect TM74 at
// A0 A1 A2 5V GND - Arduino
// | | | | |
// SCLK RCLK DIO VCC GND - TM74
// 3. Connect RTC module
// SDA SCL GND 5V - Arduino
// | | | |
// SDA SCL SQW GND VCC - RTC module (DS1307RTC)
// 4. Compile and upload firmware
// 5. You are great ❤️❤️❤️
//
#include "TM74.h"
#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>
#define SCLK A0
#define RCLK A1
#define DIO A2
TM74 disp(SCLK, RCLK, DIO);
// Decomposite 1-2 digit to template string
String to2digitsStr(uint8_t number) {
if(number == 0)
return "00";
if(number > 0 && number < 10)
return "0" + String(number);
return String(number);
}
// Decomposite 4-char string to Segment and send to LED driver
void deconstructAndDisplay(String str, uint8_t second)
{
const Segment segs[4] = {
Segment(str[3]),
Segment(str[2]),
Segment(str[1], second % 2 == 0), // every second blink dot in second LED segment
Segment(str[0])
};
disp.writeSegments(segs, sizeof(segs) / sizeof(Segment));
}
// main loop
void loop() {
tmElements_t tm; // time structure
if (RTC.read(tm)) { // start RTC read
String n1 = to2digitsStr(tm.Hour); // read Hour and cast to string
String n2 = to2digitsStr(tm.Minute); // read minute and cast to string
deconstructAndDisplay(n1 + n2, tm.Second); // composite string
}
else delay(1500); // delay when RTC module has error
}
void setup() { }
반응형
'ESP32' 카테고리의 다른 글
ESP32 부저 회로도 (0) | 2024.11.22 |
---|---|
ESP32 WROOM 핀아웃: ESP32 GPIO 핀 사용 (1) | 2024.11.19 |
BLE 통신 방법과 프로토콜 구조, 라이브러리 설명 (3) | 2024.11.17 |
ESP32 Arduino Websocket 서버: JSON 콘텐츠 수신 및 파싱 (1) | 2024.11.14 |
ESP32 4-digit 7-segment display (4) | 2024.11.11 |
Android 폰에서 ESP32로 데이터를 보내는 방법 (5) | 2024.11.11 |
esp32에서 블루투스를 사용하여 스마트폰과 데이터를 주고받는 방법 (2) | 2024.11.10 |
ESP32 센서 데이터 대시보드 BLE, Flask 서버, SQLite (5) | 2024.11.09 |
더욱 좋은 정보를 제공하겠습니다.~ ^^