본문 바로가기

TV 리모컨으로 온도 표시 - Dot Matrix LG TV 리모컨으로 두개의 32×8 LED 디스플레이에 온도 표시 나오게 하는 프로그램입니다. 리모컨의 숫자 클릭하면 온도가 나오고 채널목록은 삭제, 이전채널은 dot이 나옵니다. 박물관에서 리모컨으로 온도 표시를 쉽게 하고자 제작했습니다. #include #include #include #include "Font_Data.h" #include SoftwareSerial mySerial(3, 2); // RX, TX int incomingByte = 0;// for incoming serial data #define DEBUG 0 // Define the number of devices we have in the chain and the hardware interface // NOTE: These pi..
Pulse Sensor LED Pulse sensor로 심박수 체크해 보는 셋업입니다. 심박수 센서가 원형 모양으로 되어 있는거 말고 MAX30102 센서로 하는게 정확할거 같습니다. LED는 아래와 같이 작동합니다. 99 < BPM – RED 0 < BPM < 60 – BLUE 59 < BPM < 100 – WHITE #define USE_ARDUINO_INTERRUPTS true #include // Variables const int PIN_INPUT = A0; // Pulse Sensor PURPLE WIRE connected to ANALOG PIN 0 const int THRESHOLD = 550; // Adjust this number to avoid noise when idle const int PIN_BLINK = 4..
TXS0108E 8 Channel Logic Level Converter 채널 3.3v-5V 로직 컨버터인데 바로 작동이 안됩니다. 10K 저항을 VA-OE에 연결해야 제대로 작동합니다. 제대로 작동 되는지 확인해 보고 올립니다. 혹시 이 부품 가지고서 작동이 안된다고 하면 아래처럼 저항을 사용하세요.
Hardware Debounce 하드웨어 디바운스 74HC14 칩으로 하드웨어 디바운스 테스트 해봅니다. 왼쪽에 있는 칩이 74HC14 로 Schmitt Trigger라고 합니다. 쉬미트 트리거 칩 없이 아래 코드 실행하면 가끔식 미스가 나거나 제대로 안될 때가 있습니다. 그래서 delay도 조정해 보고 하는데 이건 기계식 접점이 가지고 있는 한계라서요. 아래와 같은 셋업이면 코드도 간단해지고 편하긴 합니다만 칩도 필요하고 회로 구성이 조금은 복잡해지네요. 하드웨어적으로 해결하면 아래와 같이 간단한 코드로 버튼 문제가 해결 됩니다. const int buttonPin = 7; const int ledPin = 8; boolean lastButton = LOW; boolean ledOn = false; void setup() { pinMode(ledPin..
ESP8266 Wifi D1 mini 보드 살리기 아래의 보드로 NTP 시계를 만들려고 테스트 해보니 보드에 light도 안들어 오고 전혀 반응을 안하더라구요. 보드가 죽었구나 생각하고 버릴까 하다가 인터넷에 검색해 보니 레딧에 관련 내용이 있네요. 다이오드가 죽으면 이렇게 된다고 해결책은 다이오드를 없애고 바로 연결하거나 아니면 부품 교체하거나 이네요. https://www.reddit.com/r/esp8266/comments/7he3ad/found_a_fix_for_my_dead_wemos_d1_mini_today/ 고치기 전에 제가 가지고 있었던 보드띄어낸 부품은 왼쪽이고 정상 부품은 오른쪽 사진입니다. 부품 교체후의 사진입니다. 납땜하다가 왼쪽 캐퍼시티도 건드려서 모양이 이상하네요. ㅜㅜ 레딧에 있던 사진입니다. 이건 Wemos꺼라서 부품 위치가..
Pull-Up, Pull-Down에 대해서 알아보자 핀을 버튼에 연결하면 기본적인 상태는 아래와 같다.onofffloating3번은 무조건 만들면 안된다는게 핵심입니다. 아래의 사진같이 간단히 버튼만 연결하면 3번의 상태인 floating상태가 됩니다. 주변의 전기, 전파, 노이즈등으로 영향을 받게 됩니다. const int buttonPin = 7; void setup() { Serial.begin(9600); pinMode(buttonPin, INPUT); } void loop() { int data = digitalRead(buttonPin); data == HIGH ? Serial.println("HIGH") : Serial.println("LOW"); delay(1000); }코드는 간단하게 버튼이 눌렸는지 1초마다 확인합니다. 아무것도 연결 안..