포토다이오드를 이용한 스위칭을 위해서 포토다이오드를 샀었는데, 반응 속도가 만족할 정도가 아니다.

 무려 40밀리초의 상승이나 하강 엣지가 있어서 밀리초 단위의 반응은 기대할 수 없다.

 그리고 더 빠른 반응 속도의 OP-AMP 회로 구성은 빛에 대한 민감도가 너무 낮다. 그늘 밝기 정도는 되어야 작동하는터라 또한 목적에 부합하지 않았다. 그리고 OP-AMP 회로 구성은 빛이 낮으면 펄스화되는 문제가 또한 있었다. 테스트에는 LM358을 사용.

 일단 낮은 민감도를 가지는 포토다이오드 스위칭은 다음과 같은데, R1은 최대 1M 정도가 좋고 더 높으면 제대로 반응하지 않는다. R1이 100k정도되어도 노이즈가 많이 나타난다. 1M 저항의 경우엔 상승 하강 시간은 큰 자이가 없이 보다 안정한 신호를 나타내고 있었다.

 저가의 포토다이오드라서 그럴지도 모르는데, 여튼 삽질의 결과는 포토트랜지스터를 사용하는 쪽으로 가닥을 잡았다. 그리고 포토트랜지스터 구성은 아직 테스트가 안됨. PT928-6C의 상승과 하강의 반응 속도가 마이크로초 단위이니 문제가 없을 것으로 기대한다.

 

'기타' 카테고리의 다른 글

포토다이오드보다는 포토트랜지스터.  (0) 2020.04.20
TP4056 18650 충전회로 수정하기.  (0) 2020.03.26
600mA 정전류 회로.  (0) 2020.02.22
TL431 전원 레귤레이터.  (0) 2020.01.06
기상 예보 스테이션 업데이트.  (0) 2019.12.22
ARP Ping 0.5  (0) 2019.12.15
Posted by 파르셀수스

댓글을 달아 주세요

 대부분 온라인에서 판매하는 저렴한 18650관련 리튬이온 충전회로는 1000mA 기준으로 부품이 붙어서 나온다.

 이걸 1200mAh 배터리를 충전하려거나 2000, 2200용량보다 적은 용량의 충전배터리를 충전시키려면 약간의 제한이 따른다. 일반적으로 충전배터리의 절반 전류로 충전을 해야 문제가 없다.

 

 아래의 전류 제한 회로는 3.9저항에서 전압 드랍이 커서 하단의 부하에는 100mA의 충전 전류만 걸린다.

 

 여튼 이러한 문제를 해결하기 위해서는 TP4056보드의 2번 핀에 붙은 저항을 수정하면 된다. 이는 TP4056 기술문서에 정의되어 있는데 다음과 같다.

 기본적으로 1.2k 저항이 붙어있는데 1k 저항을 2개 붙이면 전류가 580mA가 되어서 1200mAh를 충전하는데 문제가 없다. 실제로 2k저항으로 교체한 후 전류를 측정해보니 580mAh와 비슷한 값을 읽을 수 있었다.

 

 애매한 용량의 18650이나 다른 충전지를 사용할 때 2번핀의 저항을 다른 것으로 교체를 하는 방법이 앞단에 부가적인 회로를 사용하는 방법보다 더 나은 것 같다.

 

 

 

'기타' 카테고리의 다른 글

포토다이오드보다는 포토트랜지스터.  (0) 2020.04.20
TP4056 18650 충전회로 수정하기.  (0) 2020.03.26
600mA 정전류 회로.  (0) 2020.02.22
TL431 전원 레귤레이터.  (0) 2020.01.06
기상 예보 스테이션 업데이트.  (0) 2019.12.22
ARP Ping 0.5  (0) 2019.12.15
Posted by 파르셀수스

댓글을 달아 주세요

600mA 정전류 회로.

기타 2020. 2. 22. 18:31 |

 500mA를 만들려다 만들어진 600mA 정전류 회로. 18650 플래시 중에 1200mA를 자주쓰이는 것 같아서 기존의 1A충전 회로를 쓸 수 있도록 만들었다.

 LED는 보일 정도로 밝기가 안나오고 2907은 다른 PNP 타입의 트랜지스터를 쓰면 된다. 병렬로 해도 트랜지스터의 발열이 좀 있다.

 일단 600mA 정도의 전류가 나오는 것은 확인. 오차로 더 많이 나올수도 있다.

 대충 설계 이론치는 (1.8+0.6+0.6-0.7)/3.9=589mA이나 테스터기로 측정해보니 약간 더 나온다.

 

 

'기타' 카테고리의 다른 글

포토다이오드보다는 포토트랜지스터.  (0) 2020.04.20
TP4056 18650 충전회로 수정하기.  (0) 2020.03.26
600mA 정전류 회로.  (0) 2020.02.22
TL431 전원 레귤레이터.  (0) 2020.01.06
기상 예보 스테이션 업데이트.  (0) 2019.12.22
ARP Ping 0.5  (0) 2019.12.15
Posted by 파르셀수스

댓글을 달아 주세요

 좀 더 전압이 안정한 TL431 레귤레이터. Q1 앞 부분은 그냥 커런트 소스 회로이고 이 회로에서 가장 중요한 부분은 C1이다. C1이 있느냐 없느냐에 따라 전압 정확도가 부하에 따라 변화하는게 달라진다. 0.01uF(103)을 사용해도 큰 문제는 없었지만 가장 보편적인 0.1uF(104)을 사용했다.

 인터넷에 검색해보면 C1이 붙은 회로가 정전압 회로라고 나오기도 한다.

 

 Q1을 포함한 앞부분을 그냥 저항 1개로 대체해도 되지만 전압에 따른 발열이나 전류량의 변화로 좀 더 정확도가 떨어지는 전압이 나온다.

 Q1은 PNP형이라면 어떤걸 써도 무방하다.

 5V를 얻으려면 분압저항을 만들어 같은 값을 사용하고, 중간에서 TL431 Ref 단자로 입력하면 해결된다.

 

 이는 낮은 전류를 위한 회로로 터치센서(TTP223)의 전원을 위해 만들었다.

'기타' 카테고리의 다른 글

TP4056 18650 충전회로 수정하기.  (0) 2020.03.26
600mA 정전류 회로.  (0) 2020.02.22
TL431 전원 레귤레이터.  (0) 2020.01.06
기상 예보 스테이션 업데이트.  (0) 2019.12.22
ARP Ping 0.5  (0) 2019.12.15
555 PWM 업데이트  (0) 2019.12.10
Posted by 파르셀수스

댓글을 달아 주세요

8266_weather_station-0.2.0.zip
1.26MB

 기존의 소스에서 보다 메모리 패닉이 줄어들도록 drawXBM 코드를 개선하고, 시간을 표시하는 부분이 인터넷 연결에 관계없이 계속 동작하도록 변경했다. 아직 와이파이가 끊기는게 없어서 제대로 동작하는지는 확인하지 못했다.

 그리고 API로 데어터를 가져오는 부분에 문제가 생겨서 리셋하는 것도 방지했다.

 

 최대로 작동을 안정화시키는데 노력했고 예상 외의 문제가 아니라면 제대로 동작하리라 생각한다.

 기존의 방법론도 문제없이 1달 넘게 문제없이 동작했었는데, 이렇게 바꾸게 된 것은 사실 소켓 데이터 연결의 lua 스크립트가 너무 커서 스크립트가 컴파일되지 않는 문제가 생겨서 여러 개의 스크립트로 분리했다.

 

 그리고 동작 스크립트 파일이 계단형 호출이 아닌 하나의 스크립트 안에서 호출되도록 변경했다.

 전역 변수 선언을 이용하고, 스크립트 파일의 용량을 분리한게 가장 크게 변화한 부분.

 

 스크립트 실행의 메모리 한계를 극복하려면 모듈화보다는 되도록 인라인으로 기능을 만들고, 하나하나 스크립트 파일의 용량도 줄이는 노력이 필요하다는 nodemcu lua의 동작 특성을 알게 됐다.

 

 이 만큼이 내가 할 수 있는 한계일지도.

 

 메모리 부족으로 리셋이 발생하는걸 잡는게 참 어렵다.

 

 (업데이트) 메모리 부족이 생기는 원인을 다르게 접근. 웹데이터 다운로드가 끝난 후에 화면을 처리하도록 수정하니 메모리 부족이 없이 훨씬 안정해졌다. 그리고 오른쪽 바람 속도가 살짝 잘리는데 그 위치를 조정했다.

 

 (업데이트) 오픈 와이파이 연결 문제를 해결.

'기타' 카테고리의 다른 글

600mA 정전류 회로.  (0) 2020.02.22
TL431 전원 레귤레이터.  (0) 2020.01.06
기상 예보 스테이션 업데이트.  (0) 2019.12.22
ARP Ping 0.5  (0) 2019.12.15
555 PWM 업데이트  (0) 2019.12.10
간단한 NCV 디텍터.  (0) 2019.11.24
Posted by 파르셀수스

댓글을 달아 주세요

ARP Ping 0.5

기타 2019. 12. 15. 19:18 |

 이 실행 파일의 목적은 Ping이 막힌 IPv4 로컬 서브넷의 ARP핑을 체크하는 툴입니다.

 

 다른 윈도우즈 구현은 Cygwin이나 Pcap같은 라이브러리가 필요한데, 이 실행파일은 그런 것들이 필요하지 않고 그냥 실행하는 것으로 ARP Ping을 체크할 수 있습니다.

 

 툴을 배포하는 홈페이지는 이곳 : https://www.elifulkerson.com/projects/arp-ping.php

 

arp-ping_0.5.zip
0.17MB

 

'기타' 카테고리의 다른 글

TL431 전원 레귤레이터.  (0) 2020.01.06
기상 예보 스테이션 업데이트.  (0) 2019.12.22
ARP Ping 0.5  (0) 2019.12.15
555 PWM 업데이트  (0) 2019.12.10
간단한 NCV 디텍터.  (0) 2019.11.24
TTP223 터치 스위치 회로.  (0) 2019.11.02
Posted by 파르셀수스

댓글을 달아 주세요

555 PWM 업데이트

기타 2019. 12. 10. 11:55 |

 

 인터넷 상에 돌아다니는 대표적인 7번 스위칭 신호 출력의 555 PWM회로가 있는데, 낮은 주파수에서는 잘 동작하는지는 모르겠지만, 높은 주파수에서는 7번에서 나오는 스위칭 신호가 너무 두루뭉실해져서 제대로 OFF상태를 만들지 못하는 것 같다. 아마 저항이 너무 크거나 하는 문제인 것 같은데, 저 값을 줄이면 저항에 흐르는 전류량이 증가하는 문제가 생긴다.

 그래서 7번을 끊고 3번을 스위칭 신호로 이용하면 되는데, 3번을 스위칭 신호로 이용하게 되면 PWM 뿐만 아니라 주파수도 변하는 PWM이 된다. 이 방법은 별로 추천하지 않는다.

 

 결론적으로 이런 임시적인 수정은 큰 의미가 없고, 555PWM을 제대로 구현하려면 7번에서 스위칭 신호가 나오는 회로보다는 3번에서 스위칭 신호가 나오는 회로 도면을 추천한다.

 

 누군가는 이런 스위칭 신호 문제로 고민하지 않기를 바라며.

 

'기타' 카테고리의 다른 글

기상 예보 스테이션 업데이트.  (0) 2019.12.22
ARP Ping 0.5  (0) 2019.12.15
555 PWM 업데이트  (0) 2019.12.10
간단한 NCV 디텍터.  (0) 2019.11.24
TTP223 터치 스위치 회로.  (0) 2019.11.02
기상 예보 스테이션.  (0) 2019.09.29
Posted by 파르셀수스
TAG 555, pwm

댓글을 달아 주세요

간단한 NCV 디텍터.

기타 2019. 11. 24. 15:39 |

 

 간단한 555 NCV 디텍터. 실제로 만들어봤는데 생각보다 너무 민감해서 와이파이 신호에서도 작동하는 듯. NCV라고는 하지만 EMF 디텍터에 더 가까운 것 같다.

 

 

'기타' 카테고리의 다른 글

ARP Ping 0.5  (0) 2019.12.15
555 PWM 업데이트  (0) 2019.12.10
간단한 NCV 디텍터.  (0) 2019.11.24
TTP223 터치 스위치 회로.  (0) 2019.11.02
기상 예보 스테이션.  (0) 2019.09.29
간단한 통신사 웹리다이렉션 방지 확장 프로그램.  (0) 2019.09.10
Posted by 파르셀수스

댓글을 달아 주세요

 앞부분은 간단한 전원부인데 2.5V 레퍼런스 전압을 얻을 수 있는 TL431를 응용하여 5V전압을 만들어낸다. 소전력 회로라서 추천은 하지 않는 방식.

 TTP223 모듈을 외부에서 연결하는데 이 모듈은 터치에 대한 값을 IO핀을 통해서 내보낸다.

 ATTiny85는 3번에서 신호를 받는데, 외부 인터럽트 핸들링을 이용한다. 왜냐면 단지 논리값으로 유지되는 시간이 몇초 안되고 TTP223모듈의 B점퍼를 연결해도 딱히 좋은 효과가 나지 않기 때문.

 외부 인터럽트 핸들링이 가능한 다른 마이크로 컨트롤러를 사용해도 된다.

(편집) Hi Z 풀다운 저항 R6추가로 FET Gate가 Hi Z 상태일 경우에 On이 되고 적은 전류에도 발열이 나는 경우를 방지한다.

 

 아두이노로 작업한 간단한 코드는 다음과 같다.

#include <avr/io.h>
#include <avr/interrupt.h>

volatile byte state=LOW;
int IntPin=PCINT3;
int OutPin=4;

void setup() {
    cli();
    pinMode(OutPin, OUTPUT);
    digitalWrite(OutPin, LOW);
    state = LOW;
    PCMSK |= (1 << IntPin);
    GIMSK |= (1 << PCIE);

    DDRB &= ~(1 << DDB3);
    PORTB |= (1<< PB3);
    sei();
}

void loop() {
  //none
}

ISR(PCINT0_vect) {
  if((PINB >> PINB3)&1!=0) {
    state=!state;
  }
  digitalWrite(OutPin, state);
}

 ATTinyCore를 추가해서 컴파일하면 된다. 인터럽트 벡터에서 온오프 전환하고 있으며, 외부인터럽트를 가능하게 하고, 기본적으로 켜진 풀업을 꺼버리기 위해서 입력 PORTB의 PB3비트를 1로 만든다.

 출력은 PB4를 이용한다.

 너무 간단해서 다른 설명이 필요가 없다.

 

 

'기타' 카테고리의 다른 글

555 PWM 업데이트  (0) 2019.12.10
간단한 NCV 디텍터.  (0) 2019.11.24
TTP223 터치 스위치 회로.  (0) 2019.11.02
기상 예보 스테이션.  (0) 2019.09.29
간단한 통신사 웹리다이렉션 방지 확장 프로그램.  (0) 2019.09.10
아두이노 ADC값 측정기.  (0) 2019.09.08
Posted by 파르셀수스

댓글을 달아 주세요

기상 예보 스테이션.

기타 2019. 9. 29. 14:26 |

 

 대충 포맥스로 글루건을 이용해서 상자를 만들고 집어넣었다. 8266+0.96인지 I2C를 연결하기만 했고, 기상 데이터 API는 OpenWeatherMap을 사용했다. 3시간 마다 예보를 보여주는데, 무료 API 제한이라 어쩔 수 없다.

 

 데이터를 받아와서 뿌려주는데 아이콘이 없어서 도안을 찾고 다시 그리느라 좀 힘들었다.

 이미지 로딩 문제가 있었는데, 이게 GIMP로 만들어진 XBM(데이터 형식의 문자열 파일)은 제대로 지원하지 않는데 약간의 트윅이 필요한데 스크립트에서 반전해주는 것으로 해결할 수 있었다.

 5분마다 상태를 업데이트하고 맨 상단에는 타이머 이벤트로 시간이 업데이트 되도록 했다.

 nodemcu 펌웨어로 만들었는데 최신 펌웨어에서는 타이머 이벤트를 이제 정해진 숫자로 지정할 수 없고, 와이파이를 설정하는 enduser setup이 제대로 동작하지 않아서 그냥 SSID/Password를 넣는 방법으로 바꿨다.

 

 인터넷 연결 부분은 아직 좀 더 손봐야 하는데 nodemcu의 enduser setup의 문제가 해결되야 다시금 손댈 것 같다.

 

 u8g2라이브러리의 경우에는 설정에서 ssd1306_128x64_noname으로 설정하면 되었다. 단, 주의할 점이 SPI는 이용하지 않는다며 펌웨어 빌드 설정에서 SPI 화면 설정을 잘못 설정했을 경우에는 메모리 버퍼를 작은 화면에 맞추게 되어서 일부 화면 부분이 안보이는 경우도 있다.

 그리고 u8g2.sendBuffer()를 실행하지 않으면 몇몇 u8g2 기능은 내용을 직접 화면에 띄우지 않는 것도 유의해야 한다.

 

 하루정도 돌렸는데 큰 문제는 나타나지 않았고, 지금도 잘 돌아가고 있다.

 단, 3시간 간격 업데이트라서 정확도는 떨어진다.

 날씨가 이상한지 기온과 습도도 틀리고 날씨는 그냥 대충 맞는 것 같다.

 

 측정기가 맞다면 피크 전력소비는 1.1W인 것 같고, 일반적인 경우에는 0W로 표시된다.

 

 (10/16) 간단한 소스코드는 다음과 같다. WiFi, 위도 경도, 그리고 openweathermap의 API appid가 필요하다.

 공개적으로 appid를 사용할 수 없는 이유는 API call의 제한이 걸려있기 때문이다.

 간단하게 무료로 제공되는 API를 이용해서 사용할 수 있다.

 

8266_weather_station-master.zip
0.83MB

'기타' 카테고리의 다른 글

간단한 NCV 디텍터.  (0) 2019.11.24
TTP223 터치 스위치 회로.  (0) 2019.11.02
기상 예보 스테이션.  (0) 2019.09.29
간단한 통신사 웹리다이렉션 방지 확장 프로그램.  (0) 2019.09.10
아두이노 ADC값 측정기.  (0) 2019.09.08
AN8008 도착.  (0) 2019.07.29
Posted by 파르셀수스

댓글을 달아 주세요