반응형
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 통신 방법과 프로토콜 구조, 라이브러리 설명 (4) | 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 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩