토론:진한프로젝트:온, 습도계

학교의 모든 지식. SMwiki
Sam (토론 | 기여)님의 2024년 7월 16일 (화) 16:23 판 (→‎아두이노에서 사전 정의.: 새 문단)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

마지막 의견: 2024년 7월 16일 (화) (Sam님) - 주제: 아두이노에서 사전 정의.
둘러보기로 이동 검색으로 이동

아두이노에서 사전 정의.[원본 편집]

#include <map>

#include <string>

using namespace std;


// 출력하는 함수 만들기.

void printLargeChar(LCD& lcd, string text) {

    for (char c : text) {

        // 문자의 상단 및 하단 비트 패턴 가져오기

        auto [topPattern, bottomPattern] = charPatterns[tolower(c)];

        // 상단 출력

        lcd.setCursor(0, 0);

        for (int i = 0; i < 5; i++) {

            lcd.write(topPattern & (1 << (4 - i)) ? '0' : ' ');

        }

        lcd.setCursor(0, 1);

        // 하단 출력

        for (int i = 0; i < 5; i++) {

            lcd.write(bottomPattern & (1 << (4 - i)) ? '0' : ' ');

        }

        // 문자 사이 간격

        lcd.setCursor(6, 0);

        lcd.print(" ");

        lcd.setCursor(6, 1);

        lcd.print(" ");

    }

}


// 문자별 상단 및 하단 비트 패턴 맵

map<char, pair<byte, byte>> charPatterns = {

    {'0', {0b11111, 0b10001}},

    {'1', {0b00100, 0b00100}},

    {'2', {0b11011, 0b10101}},

    {'3', {0b11101, 0b10001}},

    {'4', {0b10110, 0b00110}},

    {'5', {0b11101, 0b01001}},

    {'6', {0b11111, 0b01001}},

    {'7', {0b00001, 0b00001}},

    {'8', {0b11111, 0b10101}},

    {'9', {0b11101, 0b10001}}

}; Sam (토론) 2024년 7월 16일 (화) 16:23 (KST)답변[답변]