DIY 풍속계 연결 다이어그램. 풍속 측정을 위한 수제 풍속계. PC 소프트웨어

풍속계는 풍속을 측정하는 장치입니다. 고전적인 컵 풍속계는 2~20m/s 범위의 풍속을 측정할 수 있는 순수 기계식 기기입니다. 풍속계는 단순히 임펠러의 회전 수를 센다. 풍속을 결정하기 위해서는 예를 들어 30초와 같은 일정 시간 동안의 회전수를 측정한 다음 풍속계 바늘이 1초 동안 통과하는 분할 수를 계산해야 합니다. 그런 다음 풍속을 결정하려면 그래프를 사용해야 합니다.

저전력 전기 모터(예: 발전기 역할을 하는 DM-03-3AM 3 91)를 기반으로 아날로그를 설계하는 것이 가장 쉽습니다. 4 블레이드 풍속계 임펠러는 기성품으로 가져와 Aliexpress에서 약 $ 1에 구입했습니다.

임펠러 직경은 10cm이고 높이는 6cm입니다.

전기 모터는 냉간 용접 탱크로 만든 하우징에 있으며, 그 뚜껑에는 전기 모터 샤프트와 엔진에서 나오는 전선을 위한 구멍이 뚫려 있습니다.

Schottky 다이오드 1N5817에 조립된 다이오드 브리지 VD1이 전기 모터에 연결됩니다. 전해 커패시터 C1 1000uF x 16V가 다이오드 브리지의 출력에 연결됩니다.

풍속계 연결 다이어그램

쇼트키 다이오드는 정상적인 조건(허리케인이 없는 경우)에서 임펠러의 회전 속도가 그다지 높지 않기 때문에 선택됩니다. 약 6m/s의 풍속에서 장치의 출력에 약 0.5V의 전압이 나타나며 이러한 조건에서 모든 회로 요소의 손실을 최소화하는 것이 합리적입니다. 같은 이유로 과도하게 큰 단면의 도체가 연결 와이어로 사용됩니다.

모든 2V DC 전압계는 정류기 단자에 연결할 수 있으며 멀티미터는 그 역할을 훌륭하게 수행합니다. 별도의 포인터 장치를 사용하면 풍속의 눈금을 직접 보정할 수 있습니다.

장치가 거리에서 작동하도록 계획되었으므로 다이오드 브리지가 채워졌습니다. 에폭시 수지. 결과적으로 커패시터가 너무 커서 장치가 급격한 전압 강하와 그에 따른 돌풍을 감지 할 수 없습니다. Denev가 검토했습니다.

DIY 풍속 측정기

USB 인터페이스를 통해 컴퓨터에서 데이터를 가져올 수 있도록 하나의 프로젝트에 풍속계를 조립하는 작업이 있었습니다. 이 기사는 풍속계의 데이터 처리 시스템보다 풍속계 자체에 더 중점을 둘 것입니다.

1. 구성품

따라서 제품 제조에는 다음 구성 요소가 필요했습니다.
Mitsumi 볼 마우스 - 1개
탁구공 - 2개
적당한 크기의 플렉시 유리 조각
단면적이 2.5mm2 - 3cm인 구리선
볼펜 - 1개
Chupa Chups 캔디 스틱 - 1 pc.
케이블 클립 - 1개
중공 황동 배럴 1개

2. 임펠러 만들기

1cm 길이의 구리선 3개를 120도 각도로 황동 배럴에 납땜했습니다. 배럴의 구멍에서 끝에 실이있는 중국 플레이어의 스탠드를 납땜했습니다.

나는 사탕의 튜브를 약 2cm 길이의 3 부분으로 자릅니다.

나는 2 개의 공을 반으로 자르고 같은 플레이어의 작은 나사와 폴리스티렌 접착제 (글루건 포함)를 사용하여 공의 절반을 롤리팝 튜브에 부착했습니다.

나는 납땜 된 와이어 조각에 공의 절반이있는 튜브를 놓고 모든 것을 접착제로 고정했습니다.

3. 주요부 제작

풍속계의 베어링 요소는 볼펜의 금속 막대입니다. 로드 하단(코르크가 삽입된 부분)에 마우스(인코더)의 디스크를 삽입했습니다. 마우스 자체의 디자인에서 엔코더의 아래쪽 부분이 마우스 본체에 기대어 포인트 베어링을 형성하고 그리스가 있어 엔코더가 쉽게 회전합니다. 그러나 막대의 윗부분을 고정해야했습니다. 이를 위해 막대 직경과 정확히 일치하는 구멍이있는 적절한 플라스틱 조각을 집어 들었습니다 (이러한 조각은 CD-ROMa 캐리지 확장 시스템에서 절단되었습니다). 엔코더 로드가 포인트 베어링에서 떨어지지 않도록 문제를 해결해야 했기 때문에 고정 요소 바로 앞에 있는 로드에 땜납 몇 방울을 납땜했습니다. 따라서 로드는 고정 구조에서 자유롭게 회전했지만 베어링에서 떨어지지 않았습니다.

엔코더 회로를 선택한 이유는 다음과 같습니다. 인터넷에 있는 수제 풍속계에 대한 모든 기사는 플레이어, CD-ROM 또는 기타 제품의 DC 모터를 기반으로 제조를 설명했습니다. 이러한 장치의 문제점은 첫째, 낮은 풍속에서의 보정 및 낮은 정확도, 둘째, 출력 전압에 대한 풍속의 비선형 특성, 즉 정보를 컴퓨터로 전송하려면 몇 가지 문제가 있습니다. 풍속에서 전압 또는 전류 변화의 법칙을 계산해야 합니다. 엔코더를 사용할 때 종속성이 선형이기 때문에 이러한 문제가 없습니다. 엔코더가 풍속계 축의 회전당 약 50 펄스를 제공하기 때문에 정확도가 가장 높지만 컨버터 회로는 포트 및 출력 중 하나에서 초당 펄스 수를 계산하는 마이크로 컨트롤러가 있는 다소 더 복잡합니다. 이 값을 USB 포트에 연결합니다.

4. 테스트 및 교정

보정을 위해 실험실 풍속계를 사용했습니다.


자신의 손으로 매우 간단한 장치를 만들고 이 응용 프로그램을 사용하면 풍속 또는 기류를 측정하는 실제 풍속계를 얻을 수 있습니다. 환기 시스템. 요구 사항에 가장 적합한 풍속계 디자인을 선택할 수 있습니다.

풍속의 결정은 휴대전화의 자력계로 자석의 회전 속도를 측정하여 결정합니다. 풍속계의 각 설계에 대해 공기 흐름 속도에 대한 회전 속도의 의존성이 결정됩니다. 이러한 종속성은 편집할 수 있습니다.

제안된 디자인을 개선하거나 직접 만들어 보정할 수 있습니다.

단위(m/s, km/h, ft/s, mph, 노트, Bft, Hz(초당 회전수), RPM(분당 회전수)) 또는 평균값("Avg1"은 마지막 값, "Avg3 " 및 "Avg7" - 평균값) 7세그먼트 디스플레이를 누릅니다.

휴대폰 케이스를 소홀히 하지 마세요.

"야외" 풍속계




풍속을 측정해야 하는 경우 옥외, 이 유형이 이에 가장 적합합니다. 변화는 바람의 방향에 영향을 받지 않으며(베인 풍속계) 임펠러는 강한 돌풍에 의해 날아가지 않습니다("민감한" 풍속계).

명세서:
측정 범위는 0.5m/s ~ 15m/s입니다.
정확도 0.5m/s.


풍속계를 만들려면 알루미늄 캔에서 3x3인치(7.6x7.6cm) 정사각형을 잘라야 합니다.








결과 시트에 마크업을 해야 합니다.




가위로 표시 부분을 자릅니다.




매우 조심스럽게 부착하십시오 원하는 모양. 임펠러가 원하는 모양을 즉시 취하지 않으면 중앙에 구멍을 뚫은 후 정렬할 수 있습니다.










날카로운 모서리는 모두 잘라야 합니다. 잘린 모서리가 누군가의 눈에 들어 가지 않도록해야합니다.




임펠러는 볼펜 축에 나사로 고정되어 있습니다. 막대의 내경은 크게 다를 수 있습니다. 따라서 어떤 크기의 나사가 맞는지 쓰기가 어렵습니다. 사진에는 ​​나사산 크기가 2x6mm인 나사가 사용되었습니다. 나사 머리는 자석이 잘 놓여야 하므로 평평해야 합니다(카운터 싱크). Pozidriv 나사(PZ)의 슬롯은 다음과 같이 선호됩니다. 이러한 슬롯은 풍속계의 다른 설계에 필요합니다.




나사 대신 아주 작은 나사, 못을 사용하거나 임펠러와 자석을 붙일 수도 있습니다. (껌을 건조시켜야 합니다). 카네이션이 필요한 것보다 조금 적으면 그 위에 노치를 만드십시오.








이제 중앙에 작은 홈이 있는 1/2인치(1.2cm) 정사각형에서 작은 십자가를 만들어야 합니다. 예를 들어 핸들의 내경이 더 작은 경우 더 작은 정사각형을 사용할 수 있습니다.




십자가는 핸들에 조심스럽게 삽입하고 끝까지 밀어 넣습니다.






풍속계가 거의 준비되었습니다. 바람을 불 때 쉽게 회전해야 합니다. 막대는 공이 있는 십자가에만 닿아야 합니다(이를 위해 십자가를 조금 더 작게 만들어야 할 수도 있습니다). 이것을 보려면 볼펜이 투명해야 합니다.


이제 막대가 손잡이에 걸리지 않는지 확인해야 합니다. 이렇게하려면 막대가 자유롭게 회전 할 때 구멍 크기로 플러그 레이어의 상단을 레이어별로 잘라냅니다.






자석을 부착하고 풍속계가 준비되었습니다. 사용된 네오디뮴 자석크기 4x4x4mm(더 큰 네오디뮴 자석은 나사 머리 중앙에 잘 맞지 않아 접착해야 함). 자석의 극은 방사상으로 향해야 합니다. 다른 자석은 큐브의 극을 찾는 데 도움이 됩니다. 마커가 있으면 자석으로 라벨을 붙입니다.




강한 돌풍으로 임펠러가 핸들 밖으로 날아가는 것을 방지하기 위해 여러 겹의 접착 테이프를 구멍에 들어가지 않는 플러그의 직경까지 감을 수 있습니다. 회전 중에 핸들이 닿지 않도록 너무 많은 레이어를 감을 수 없습니다.




다른 유형의 핸들(예: "Bic Cristal")을 사용하여 풍속계를 만들 수 있습니다.


플러그를 제거하려면 칼날을 사진과 같이 놓고 누릅니다.


이 펜의 경우 3/8인치(9mm) 정사각형으로 만든 더 작은 십자형을 사용해야 합니다.










사용된 나사의 크기는 2.5x6mm(#3)(또는 1.8mm 가시 못)입니다.


작은 네오디뮴 자석을 살 수 없다면 화이트보드 자석을 사용할 수 있습니다.








유연한 자석은 매우 약해서 사용할 수 없습니다.


풍속에 대한 회전 빈도의 의존성:
2Hz - 1.5m/s
4Hz - 2.7m/s
6Hz - 3.8m/s

"민감한" 풍속계


명세서:
측정 범위는 0.5m/s ~ 3.5m/s입니다.
정확도 0.5m/s.
업데이트 간격 2-5초.


3x2인치(7.6x5.1cm) 직사각형을 잘라냅니다.






1인치(2.53cm) 너비의 직사각형 세 개를 표시합니다.






















Pozidriv(PZ) 나사를 사용하는 것이 매우 중요합니다. 이러한 슬롯에서는 바늘이 측벽에 닿지 않기 때문입니다. 나사의 길이는 가능한 한 짧아야 자석이 최대한 낮아집니다. 사진은 2x6mm 나사를 사용합니다.


나사를 조인 ​​후 "날개"를 조심스럽게 분리하고 임펠러에 원하는 모양을 부여합니다.










자석이 나사에 잘 고정되도록 하려면 다른 너트를 조여야 합니다. 그러나 비틀지 마십시오.




네오디뮴 자석(4x4x4mm)의 부착으로 인해 임펠러의 무게 중심이 올라가 바늘에 불안정하게 됩니다. 무게 중심을 낮추려면 "날개"의 내부에 추를 접착해야 합니다(4mm 나사용 와셔 사용).


임펠러는 송곳뿐만 아니라 매우 잘 깎인 연필이나 연필에 부착된 바느질 바늘에서도 회전할 수 있습니다. 재봉 바늘에서 임펠러가 가장 잘 회전하지만 이 옵션은 세심한 주의가 필요하며 어린이에게는 절대 적합하지 않습니다.




풍속에 대한 회전 주파수의 의존성(샤프 펜슬 0.5mm 기준):
1.5Hz - 1.4m/s
4Hz - 2.85m/s
6Hz - 3.4m/s

베인 풍속계


환기 시스템의 공기 흐름 속도를 측정하도록 설계되었습니다.

명세서:
측정 범위는 1.75m/s ~ 3.0m/s입니다.
정확도 0.2m/s.
업데이트 간격 2-5초.

이 풍속계는 롤링 베어링이 있는 팬으로 만들어집니다. 모든 크기의 팬을 선택할 수 있지만 팬 크기가 작을수록 풍속계의 감도가 낮아집니다. 80x80x25mm 팬을 사용합니다.


팬을 쉽게 회전시키려면 팬에서 링 자석을 빼내야 합니다.




리테이닝 링을 제거할 때 날아가지 않고 분실되지 않도록 손으로 잡아야 합니다.






링 자석을 빼내려면 그 아래에 일자 드라이버를 놓고 드라이버를 약간 돌려야 합니다. 이것은 자석을 약간 밀어내야 합니다. 이 동작을 반복하면 자석 전체를 똑같이 들어올려야 합니다.




자석이 더 이상 드라이버로 들어올릴 수 없는 위치까지 올라오면 나사(4x30(>30) mm)를 사용해야 합니다.









이제 팬이 가고 있습니다. 고정 링을 끼지 않으면 팬이 더 쉽게 회전하지만 임펠러가 떨어질 수 있습니다.

공기 유량에 대한 회전 속도의 의존성:
4Hz - 1.85m/s
6Hz - 2.3m/s
8Hz - 2.55m/s
12Hz - 2.7m/s
18Hz - 2.8m/s

명확하지 않은 것이 있으면 이메일을 작성하십시오.

기류 속도를 측정하는 장치를 제조하려면 즉석 수단이 필요합니다. 예를 들어 플라스틱 부활절 달걀 반쪽을 풍속계 날로 사용할 수 있습니다. 소형 영구 자석 브러시리스 모터도 필요합니다. 가장 중요한 것은 모터 샤프트의 베어링 저항이 최소화된다는 것입니다. 이 요구 사항은 바람이 매우 약할 수 있고 모터 샤프트가 회전하지 않기 때문입니다. 풍속계를 만들려면 오래된 하드 드라이브의 엔진이 필요합니다.

풍속계 조립의 주요 어려움은 균형 잡힌 회전자를 만드는 것입니다. 엔진은 거대한 베이스에 설치해야 하며 로터에는 두꺼운 플라스틱 디스크를 놓아야 합니다. 그런 다음 플라스틱 계란에서 세 개의 동일한 반구를 조심스럽게 잘라야 합니다. 스터드 또는 강철 막대로 디스크에 고정됩니다. 이 경우 먼저 디스크를 120도의 섹터로 나누어야 합니다.

바람의 움직임이 전혀 없는 방에서 균형을 잡는 것이 좋습니다. 풍속계의 축은 수평 위치에 있어야 합니다. 무게 조정은 일반적으로 바늘 줄로 수행됩니다. 요점은 로터가 동일한 위치가 아닌 임의의 위치에서 정지한다는 것입니다.

기기 교정

수제 장치를 보정해야 합니다. 보정하는 가장 좋은 방법은 자동차를 이용하는 것입니다. 그러나 자동차가 생성하는 교란 된 공기 영역에 들어 가지 않도록 일종의 마스트가 필요합니다. 그렇지 않으면 판독값이 크게 왜곡됩니다.

보정은 평온한 날에만 수행해야 합니다. 그러면 프로세스가 지연되지 않습니다. 바람이 불면 도로를 따라 장시간 운전해야 하며 풍속의 평균값을 계산해야 합니다. 속도계는 km/h 단위로, 풍속은 m/s 단위로 측정됩니다. 그들 사이의 비율은 3.6입니다. 이는 속도계 판독값을 이 숫자로 나누어야 함을 의미합니다.

어떤 사람들은 보정 과정에서 음성 녹음기를 사용합니다. 속도계와 풍속계의 수치를 전자 장치에 간단히 지시할 수 있습니다. 에서 수제 풍속계를 위한 새 척도를 만들 수 있습니다. 적절하게 보정된 장치를 통해서만 필요한 지역의 바람 상황에 대한 신뢰할 수 있는 데이터를 얻을 수 있습니다.

기상 관측소는 Revolution Education Ltd의 Picaxe 마이크로컨트롤러에 구축되었으며 두 가지 주요 부분으로 구성됩니다. 실외기 433MHz의 송신기를 사용하여 2초마다 데이터를 전송합니다. 수신된 데이터를 20 x 4 LCD 디스플레이에 표시하는 실내기와 실내기에서 로컬로 측정되는 대기압.

디자인은 최대한 단순하고 기능적으로 유지하려고 노력했습니다. 장치는 COM 포트를 통해 컴퓨터와 통신합니다. 현재는 획득한 값으로 컴퓨터에서 지속적으로 그래프를 작성하고 해당 값을 기존 지표에도 표시합니다. 내장 웹 서버에서 그래프 및 센서 판독값을 사용할 수 있으며 모든 데이터가 저장됩니다. 일정 기간 동안의 데이터를 볼 수 있습니다.

기상 관측소 건설은 설계에서 완료까지 몇 달이 걸렸으며 전반적으로 그 결과에 매우 만족합니다. 특히 일반적인 도구를 사용하여 처음부터 모든 것을 구축할 수 있어서 기쁩니다. 그것은 나에게 완전히 적합하지만 완벽에는 제한이 없으며 특히 그래픽 인터페이스에 해당됩니다. 기상관측소를 상용화하려는 시도는 하지 않았지만 직접 기상관측소를 구축할 생각이라면 좋은 선택입니다.

실외 센서

센서는 온도, 습도, 강수량, 풍향 및 속도를 측정하는 데 사용됩니다. 센서는 기계 장치와 전자 장치의 조합입니다.

온도 및 상대 습도 센서

아마도 온도 측정이 가장 쉬울 것입니다. 이를 위해 DS18B20 센서가 사용됩니다. HIH-3610을 사용하여 습도를 측정하였으며, 습도 0%~100%에서 0.8~3.9V의 전압을 출력하였다.

작은 센서에 두 센서를 모두 설치했습니다. 인쇄 회로 기판. 보드는 비와 기타 외부 요인을 방지하는 수제 케이스 내부에 설치됩니다.

각 센서에 대한 단순화된 코드는 다음과 같습니다. 값을 소수점 이하 한 자리까지 읽는 더 정확한 코드는 Peter Anderson의 웹사이트에 나와 있습니다. 그 코드는 기상 관측소의 최종 버전에서 사용됩니다.

온도 센서는 ± 0.5 °C의 정확도를 제공합니다. 습도 센서는 최대 ± 2%의 정확도를 제공하므로 사용 가능한 소수점 이하 자릿수는 중요하지 않습니다!

PC에서 실행되는 소프트웨어의 플롯 예.

온도

메인: readtemp B.6, b1 ; b1 > 127이면 값을 b1로 읽어들인 다음 음수; 음성 sertxd에 대한 테스트(#b1, cr, lf) ; PE 터미널에 값 전송 일시 중지 5000 goto main neg: b1 = b1 - 128 ; 음수 값 조정 sertxt("-") ; 음수 기호 sertxt 전송(#b1, cr, lf) ; PE 터미널에 값 전송 pause 5000 goto main

습기

메인: readadc B.7,b1 ; 습도 값 읽기 b1 = b1 - 41 * 100 / 157 ; %RH로 변경 sertxd (#b1, "%", cr, lf) pause 5000 ; 5초만 기다려 메인으로 이동

습도 센서 계산

Honeywell HIH-3610 센서 문서에서 가져온 계산. 그래프는 0°C에서 표준 곡선을 보여줍니다.

센서의 전압은 Picaxe 18M2 마이크로컨트롤러의 ADC 입력(B.7)에서 측정됩니다. 위의 코드에서 0에서 255까지의 숫자(즉, 256개 값)로 표현되는 값은 b1 변수에 저장됩니다.

우리 회로는 5V로 전원이 공급되므로 각 ADC 단계는 다음과 같습니다.
5/256 = 0.0195V.

그래프는 ADC 0.8V의 초기 값을 보여줍니다.
0.8 / 0.0195 = 41

그래프에서 값을 취하면 그래프의 기울기(오프셋 고려)는 대략 다음과 같습니다.
출력 전압 / % RH 또는
(2.65 - 0.8) / 60 = 0.0308V(%RH)
(문서 0.0306에서)

1% 습도에 대한 ADC 단계 수를 계산해 보겠습니다.
(% RH당 V) / (ADC 단계)
0.0308 / 0.0195 = 1.57

%RH = ADC 값 - ADC 오프셋 / (%RH의 ADC 단계), 또는
%RH = ADC 값 - 41 / 1.57

마이크로 컨트롤러의 최종 계산 공식은 다음과 같습니다. %RH = ADC 값 - 41 * 100/157

보호 케이스

각 패널을 두 개로 자르는 것으로 시작하십시오. 한 부분의 판자는 양쪽에 단단히 부착되고 두 번째 부분은 한쪽에만 단단히 부착됩니다. 이러한 부품을 버리지 마십시오. 중고 부품입니다.

전체 부품에 2개 부착 나무 막대 20mm x 20mm 상단과 하단에 다른 조각을 나사로 고정합니다.

한 면을 크기에 맞게 잘라서 붙입니다. 내부에당사자 중 하나. 널빤지가 함께 "^" 모양을 형성하도록 접착되어 있는지 확인하십시오. 모든면에서 이것을하십시오.

풍속 및 방향 측정기

기계적

풍속 및 방향 센서는 기계 및 전자 부품의 조합입니다. 기계적 부분은 두 센서 모두 동일합니다.

12mm 합판 인서트(마린 플라이)가 PVC 파이프와 파이프 상단의 스테인리스 스틸 디스크 사이에 배치됩니다. 베어링은 스테인리스 스틸 디스크에 접착되어 있으며 스테인리스 스틸 플레이트로 고정되어 있습니다.

모든 것이 완전히 조립되고 설정되면 노출된 부분은 수밀을 위해 코킹으로 밀봉됩니다.

사진의 다른 세 개의 구멍은 블레이드용입니다. 80mm 길이의 블레이드는 95mm의 회전 반경을 제공합니다. 직경 50mm의 컵. 이를 위해 거의 구형에 가까운 자른 향수 병을 사용했습니다. 신뢰성이 확실하지 않아서 쉽게 교체할 수 있도록 했습니다.

전자 부품

풍속 센서용 전자 장치는 트랜지스터 스위치, 포토다이오드 및 2개의 저항으로만 구성됩니다. 직경 32mm의 작은 원형 PCB에 장착됩니다. 습기가 들어가면 전자 장치에 닿지 않고 흘러 내리도록 파이프에 자유롭게 설치됩니다.

풍속계는 보정이 필요한 세 가지 센서 중 하나입니다(다른 두 개는 강수량 카운터와 기압 센서입니다).

포토다이오드는 회전당 두 개의 펄스를 제공합니다. 내가 목표로 한 단순한 "직렬" 시스템(모든 센서가 차례로 폴링됨)에서는 각 센서를 폴링하는 데 소요되는 시간(이 경우 펄스 계산)과 시스템의 응답성 사이에 균형이 있어야 합니다. 전체적으로. 이상적으로는 모든 센서를 폴링하는 전체 주기가 2-3초 이상 걸리지 않아야 합니다.

위 사진에서 속도 조절이 가능한 모터를 이용하여 센서를 확인하고 있습니다.

; 파란색으로 표시된 LCD 관련 명령 hsersetup B9600_4, %10000 ; LCD 핀 1 사용, hserin 없음 hserout 0, (13) : pause 100 ; LCD 초기화 hserout 0, (13) : pause 100 hserout 0, (13) : pause 100 pause 500 hserout 0, ("ac1", 13) ; 디스플레이 일시정지 해제 50 hserout 0, ("acc", 13) hserout 0, ("ac81", 13, "adcount: ", 13) ; 제목 인쇄 pause 10 hserout 0, ("ac95", 13, "adpulsin: ", 13) ; 제목 인쇄 pause 10 do count C.2, 1000, w0 ; 펄스를 계산합니다(회전당 2개) w1 = 0 for b8 = 1 to 2 ; 펄스 길이를 두 번 측정하십시오. pulsin C.2, 1, w2 ; 회전당 및... w1 = w1 + w2 다음 w1 = w1 / 2 ; ...평균 계산 hserout 0, ("ac89", 13, "ad ", #w0, " ", 13) ;카운트 값 인쇄 hserout 0, ("ac9d", 13, "ad ", #w1, " ", 13) ;펄스 길이 값 인쇄 일시 중지 100 루프

운전하면서 보정하고 싶었는데 그럴 시간이 없었습니다. 저는 몇 마일 떨어진 공항이 있는 비교적 평평한 지역에 살고 있기 때문에 풍속 측정값과 공항 측정값을 비교하여 센서를 보정했습니다.

효율성이 100%이고 블레이드가 바람의 속도로 회전한다면:
로터 반경 = 3.75"
로터 직경 = 7.5" = 0.625피트
로터 둘레 = 1.9642피트

1피트/분 = 0.0113636m/h,
1.9642피트/분 = 1rpm = 0.02232m/h
1m/h = 1 / 0.02232 회전수

1m/h = 44.8rpm
? m/h = 회전수 / 44.8
= (rpm * 60) / 44.8

한 턴에 두 개의 펄스가 있기 때문에
? m3/h = (초당 펄스 * 30) / 44.8
= (초당 펄스) / 448

풍향 센서 - 기계 부품

풍향 센서는 알루미늄 판 대신 자석을 사용하고 광전자 장치 대신 특수 AS5040 칩(마그네틱 엔코더)을 사용한다.

아래 사진은 중앙 나사 끝에 장착된 5mm 자석을 보여줍니다. 자석과 칩의 정렬은 매우 중요합니다. 자석은 칩 위 약 1mm 중앙에 정확히 위치해야 합니다. 모든 것이 정확히 정렬되면 센서가 제대로 작동합니다.

풍향센서 - 전자부품

풍향 측정을 위한 다양한 방식이 있습니다. 기본적으로 회전 자석의 간격으로 45도 간격으로 배치된 8개의 리드 스위치 또는 완전히 회전할 수 있는 전위차계로 구성됩니다.

두 방법 모두 장점과 단점이 있습니다. 주요 이점은 둘 다 구현하기 쉽다는 것입니다. 단점은 특히 전위차계가 마모되기 쉽다는 것입니다. 리드 스위치를 사용하는 것의 대안은 홀 효과 센서를 사용하여 기계적 마모를 처리하는 것이지만 여전히 8개의 다른 위치로 제한됩니다... 이상적으로는 다른 것을 시도하고 궁극적으로 회전식 자기 IC 센서를 사용하기로 결정했습니다. 표면 실장 장치(피하려고 함)이지만 사용하기에 매력적인 여러 가지 장점이 있습니다!

여기에는 여러 가지 출력 형식이 있으며 그 중 두 가지가 우리 목적에 가장 적합합니다. 최고의 정확도는 SSI 인터페이스로 달성됩니다. AS5040은 0°에서 1µs에서 359.6°에서 1024µs까지 펄스를 제공합니다.

풍향 센서 보정 확인:

Do readadc10 B.3, w0 ;AS5040 자기 베어링 일시 중지에서 읽기 100 w0 = w0 * 64 / 182 ; 0 - 360(도) 디버그로 변환 ; Prog/Edit 디버그 창 루프에 표시

강수량계

우량계는 가능한 한 플라스틱과 스테인리스 스틸로 만들었고 베이스는 강성을 위해 3mm 두께의 알루미늄으로 만들었습니다.

우량계에는 두 개의 양동이가 있습니다. 각 양동이는 무게 중심을 이동하기 전에 최대 6ml의 물을 담을 수 있으며, 이로 인해 양동이에 물을 붓고 센서에 신호를 보냅니다. 버킷이 넘어지면 알루미늄 플래그가 실외기의 전자 장치에 신호를 보내는 광학 센서를 통과합니다.

지금은 투명한 벽으로 두었습니다(작동하는 것을 보는 것이 재미있기 때문입니다!). 하지만 증발을 피하기 위해 여름에 열을 반사하기 위해 흰색으로 칠할 필요가 있다고 생각합니다. 작은 깔때기를 찾을 수 없어서 직접 만들어야 했습니다. 깔때기 내부와 홈통 중앙에 있는 와이어에 주의하십시오. 이렇게 하면 깔때기에서 물의 표면 장력을 멈추고 물방울이 떨어지는 데 도움이 됩니다. 전선이 없으면 비는 "소용돌이"하는 경향이 있고 그 궤적은 예측할 수 없습니다.

광센서 클로즈업:

우량계의 전자부품

센서의 임의적 특성으로 인해 실외기 MCU의 소프트웨어 인터럽트가 논리적인 접근 방식으로 보였습니다. 불행히도 일부 프로그램 명령어는 실행되는 동안 인터럽트 메커니즘을 비활성화합니다. 신호가 아무데도 가지 않을 가능성이 있습니다. 이러한 이유로 우량계에는 자체 08M Picaxe 마이크로컨트롤러가 있습니다.

별도의 칩을 사용하면 시간당 버킷을 계산할 수 있을 만큼 정확한 1시간 지연을 생성하는 데 사용할 수 있습니다.

구경 측정

Picaxe 18m2는 시간당 현재 버킷 수를 수신하여 디스플레이와 컴퓨터에 표시합니다.

시작점으로 다음 데이터를 사용합니다.
깔때기 직경 120mm 및 용기 면적 11.311mm2
1mm의 비 = 11.311mm3 또는 11.3ml.
각 버킷은 5.65ml입니다. 따라서 2개의 버킷 2 x 5.65 = 11.3ml(또는 1mm)의 강수량이 됩니다. 양동이 하나 = 강수량 0.5mm.

비교를 위해 싼 우량계를 샀습니다.

위의 회로와 08M Picaxe 회로는 센서에 동일한 PCB 레이아웃을 사용합니다. 이 장치는 7805 스태빌라이저를 통해 12V 7Ah 배터리로 전원을 공급받습니다.
433MHz 무선용 RF Connect 키트를 사용했습니다. 이 키트에는 특별히 프로그래밍된 한 쌍의 PIC 컨트롤러가 포함되어 있습니다. 테스트 중 무선 모듈 세트는 매우 안정적인 것으로 입증되었습니다.

08M Picaxe와 18m2는 PP에 설치됩니다. 그들 각각은 자체 프로그래밍 커넥터를 가지고 있습니다. 자체 +5V가 있는 별도의 커넥터는 온도 및 습도를 제외하고 각 센서 전용입니다.

Paintshop Pro에서 그림을 그렸기 때문에 핀 간격 정확도를 보장할 수 없습니다.

실내기

실내기는 18m2 Picaxe, 압력 센서 및 LCD 디스플레이를 사용합니다. 5V 전압 조정기도 있습니다.

압력계

몇 번의 실패한 시도 끝에 MPX4115A로 결정했습니다. 다른 센서는 측정 범위가 약간 더 넓지만 접근하기 어렵습니다. 또한 다른 센서는 일반적으로 3.3V에서 작동하며 추가 조정기가 필요합니다. MPX4115A는 압력에 비례하는 3.79V~4.25V의 아날로그 전압을 제공합니다. 이것은 1mbar의 압력 변화를 감지하기에 거의 충분한 분해능이지만 포럼에서 토론한 후 MCP3422 ADC를 추가했습니다. Picaxe의 10비트 모드에 비해 16비트 모드(또는 그 이상)에서 실행할 수 있습니다. MCP3422는 센서의 아날로그 입력을 사용하여 차동 모드에서 (우리 회로에서와 같이) 연결할 수 있습니다. 주요 이점은 이를 통해 센서 출력을 수정할 수 있으므로 MPX4115A 오류를 쉽게 보정하고 센서를 쉽게 보정할 수 있는 방법을 제공한다는 것입니다.

MPC3422에는 실제로 두 개의 차동 입력이 있지만 하나가 사용되지 않기 때문에 단락됩니다. MCP3422의 출력에는 I2C 인터페이스가 있으며 18m2 Picaxe의 SDA 및 SCL 핀(각각 핀 B.1 및 B.4)에 연결됩니다. 내 관점에서 MCP3422 사용의 유일한 단점은 작은 표면 실장 장치이지만 어댑터에 납땜했습니다. I2C 인터페이스 외에도 MCP3422 18m2는 433MHz 무선 수신기에서 들어오는 데이터를 처리하고 디스플레이에 데이터를 표시하고 데이터를 PC로 전송합니다. 컴퓨터가 작동하지 않을 때 실내기 오류를 방지하기 위해 PC에서 응답이 없습니다. 실내기데이터를 전달하고 계속 진행합니다. 약 2초 간격으로 데이터를 전송하여 다음 번에 데이터 손실을 신속하게 보상합니다. 18m2의 사용하지 않는 포트를 사용하여 전면 패널의 버튼을 연결했습니다. 스위치 S1(입력 C.5)은 LCD 백라이트를 켜는 데 사용됩니다. 스위치 S2(입력 C.0)는 LCD 디스플레이의 압력 값(mbar)을 재설정합니다. 스위치 S3(입력 C.1)은 이전 시간과 현재 시간의 합계 사이에서 LCD 디스플레이에 표시되는 강수량을 전환합니다. 응답하려면 버튼을 1초 이상 누르고 있어야 합니다.

실내기 조립

실외기용 PCB와 마찬가지로 Paintshop Pro를 사용하여 손으로 레이아웃을 그렸기 때문에 거리에 오차가 있을 수 있습니다.

보드는 알루미늄 케이스의 슬롯에 맞도록 필요한 것보다 약간 큽니다.
프로그래밍 커넥터가 케이스에 닿지 않도록 의도적으로 보드 가장자리에서 약간 "안쪽"으로 만들었습니다. LCD 디스플레이용 컷아웃은 드릴로 정확한 치수로 절단됩니다.

사진은 케이스에 이미 설치된 모든 것을 보여줍니다.

보드의 핀은 케이스에 설치하기 어렵기 때문에 납땜을 제거하고 와이어로 디스플레이를 보드에 납땜해야 했습니다.

실외기 - Picaxe 코드

; =============================================== = =============== ; Picaxe Weather Station 실외(송신기) 장치용 기본 18M2 코드; 소수 정밀도 습도 및 온도 루틴, ; 저작권, Peter H Anderson, Baltimore, MD, Jan, "04 ; ; ================================== = =============================== #Picaxe 18M2 기호 HValue = w0 기호 HighWord = w1 기호 LowWord = w2 기호 RH10 = w3 기호 HQuotient = b0 기호 HFract = b1 기호 X = b0 기호 aDig = b1 기호 TFactor = b2 기호 Tc = b3 기호 SignBit = b4 기호 TValue = w4 기호 TQuotient = b10 기호 TFract = b11 기호 TempC_100 = w6 기호 MagDir = w7 기호 MagDirLo = b14 기호 MagDirHi = b15 기호 WindSpeed ​​= w8 기호 WindSpeedLo = b16 기호 WindSpeedHi = b17 기호 ThisHour = b18 기호 LastHour = b19 기호 RainRequest = b20 하드웨어 기호 HumidRaw = B.7 기호 TempRaw = B.6 기호 DirRaw = B. 3 Symbol Speed ​​= B.0 do ;습도 ReadADC10 HumidRaw, HValue 읽기 ;습도 가져오기(HValue) HighWord = 1613 ** HValue ;RH 계산 LowWord = 1613 * HValue RH10 = LowWord / 1024 LowWord = Highword * 64 RH10 = RH10 + LowWord RH10 = RH10 - 258 일시 중지 100 ;온도 읽기 Readtemp12 TempRaw, TValue ; 온도 얻기 SignBit = TValue / 256 / 128 SignBit = 0 이면 양수 ; 음수이므로 TValue = TValue ^ $ffff + 1 ; 2개를 긍정적으로 취함: TempC_100 = TValue * 6 ; TC = value * 0.0625 TValue = TValue * 25 / 100 TempC_100 = TempC_100 + TValue TQuotient = TempC_100 / 100 TFract = TempC_100 % 100 / 10 X = TQuotient / 10 ;SignBit = 0 then SignBit = " "이면 습도에 대한 온도 보정 계수 계산 else SignBit = "-" endif if SignBit = "-" then X = 4 - X else X = X + 4 endif GoSub TempCorrection ;RH 보상 HQuotient = RH10 / 10 ;RH 지수 계산 및... HFract = RH10 % 10 ;...소수점.if HQuotient > 99 then ;범위 초과 HQuotient = 99 HFract = 9 endif HQuotient > 127 then ; 범위 미만 HQuotient = 0 HFract = 0 endif ; 풍향에 대한 AS540 자기 인코더 읽기 readadc10 DirRaw, MagDir ; AS5040 자기 베어링 일시 정지 100에서 읽기 ; 풍속 카운터 카운트에서 rpm 읽기 Speed, 1000, WindSpeed ​​; 매 30번째 사이클( 약 1분), RainRequest >= 30이면 RainRequest를 포함하여 08M에서 우량계 데이터를 요청하고 C.1 serin , C.0, N2400, ("r"), LastHour, ThisHour ; 레인 카운터 낮음 C.1 RainRequest = 0 endif ; 8바이트 블록으로 실내기에 데이터 전송 ; 첫 번째 그룹은 보정이 필요하지 않으므로 여기에서 먼저 계산이 수행됩니다. ; 두 번째 그룹은 "조정"이 필요합니다. 실내에서 더 쉽게 수행할 수 있습니다. serout C.2, N2400, ("t", SignBit, TQuotient, TFract, HQuotient, HFract, "A", "B") pause 100 serout C.2, N2400, ("m", MagDirHi, MagDirLo, WindSpeedHi, WindSpeedLo, LastHour, ThisHour, "C") 루프 TempCorrection: 조회 X, (87, 89, 91, 93, 95, 97, 99, 101, 103, 106, 108, 110, 113, 116, 119, 122, 126 ), T계수 " -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 T계수가 있는 경우< 100 then aDig = TFactor / 10 RH10 = RH10 * aDig / 10 TFactor = TFactor % 10 aDig = TFactor RH10 = RH10 * aDig / 100 + RH10 else TFactor = TFactor % 100 aDig = TFactor / 10 RH10 = RH10 * aDig / 10 + RH10 TFactor = TFactor % 10 aDig = TFactor RH10 = RH10 * aDig / 100 + RH10 endif return

사용된 메모리 = 2048에서 295바이트

강우 카운터 - 08M 코드

#picaxe 08M 기호 ThisHour = b2 ; 현재 센서 카운트를 b2에 저장 Symbol LastHour = b3 ; 하드웨어 정의 Symbol DataRequest = pin3 Symbol BucketSensor = pin4 setint %00010000, %00010000 ; pin4는 인터럽트 핀 메인: w0 = 1 ~ 60000 ; 1시간 동안 루프 일시 중지 60 next LastHour = ThisHour ; ThisHour = 0으로 마지막 시간 카운트 업데이트 ; 현재 시간 및 현재 시간 재설정 goto main ; 다음 시간 인터럽트 수행: setint %00010000, %00010000 ; DataRequest = 1이면 인터럽트를 복원합니다. 18M2에서 인터럽트가 발생했습니까? serout 2, N2400, ("r", LastHour, ThisHour) ; 예, 그래서 이전 시간의 카운트 및 현재 카운트를 보냅니다. do: 루프 while DataRequest = 1 ; 계속하기 전에 18M2가 요청을 중지할 때까지 기다립니다. 버킷 팁 카운트 do: BucketSensor = 1 동안 루프 ; endif 반환을 계속하기 전에 플래그가 센서를 지웠는지 확인하십시오.

실내기 - Picaxe 코드

;============================================== = ========================== ; 메인 실내(수신기) 프로그램. ; ; 실외기에서 데이터를 받아 LCD에 표시하고 PC로 데이터를 전달합니다. 기압도 측정합니다("motherp" 덕분에) ;==================================== = ==================================== #PICAXE 18M2 ; 변수 정의(b2 ~ b5는 사용 가능해지면 mBar 코드에 재사용됨) symbol Quotient = b2 symbol Fract = b3 symbol SignBit = b4 symbol Humidity = b5 symbol HFract = b14 symbol Dir = w5 symbol DirLo = b10 symbol DirHi = b11 기호 Speed ​​= w3 기호 SpeedLo = b6 기호 SpeedHi = b7 기호 RainCountThisHour = b12 기호 RainCountLastHour = b13 기호 LCDRainWhole = b21 기호 LCDRainFract = b22 기호 LastOrThis = b23 ; MCP3422 ADC 변수 기호 mb900 = 17429 ; 900Mbar에 대해 ADC 판독 후 mbar 기호당 72.288 카운트 추가 adj0 = 72 기호 mBarADCValue = w0 기호 adj1 = b4 ; 4 mbar 기호마다 1 카운트를 추가하는 데 사용 adj2 = b5 ; 24 mbar 기호마다 1 카운트를 추가하는 데 사용됨 mBar = w4 ; 하우스키핑 변수 symbol lastmbar = w8 ; 이전 mBar 판독 기호 기억 RiseFall = b18 ; 압력 상승 또는 하강 표시기(위쪽 화살표 또는 아래쪽 화살표) 기호 활성 = b19 ; Telltale은 LCD 화면 기호에 활동을 표시합니다. LCD_Status = b20 ; LCD 백라이트가 켜져 있습니까 아니면 꺼져 있습니까(0 또는 1)? ; 하드웨어 정의 기호 무선 = C.7 ; 무선 수신기/디코더 기호에서 들어오는 연결 Computer = C.2 ; 컴퓨터 기호 LCD로 나가는 직렬 연결 = pinC.5 ; 전면 패널 버튼을 블랭크/블랭킹 LCD 백라이트 기호 ClearRiseFall = pinC.0 ; 압력 "상승/하강" 표시 기호를 지우기 위한 전면 패널 버튼 LastOrThisSwitch = pinC.1 ; 현재 또는 이전 시간의 강우량을 표시하는 전면 패널 버튼 초기화: hsersetup B9600_4, %10000 ; LCD 핀 1 사용, hserin 없음 ; ByVac 20x4 IASI-2 직렬 LCD hi2csetup i2cmaster, %11010000, i2cfast, i2cbyte ; MCP3422용 I2C 초기화 ADC chip.hi2cout (%00011000) ;16비트 연속 변환 일시 중지를 위해 MCP3422 설정 500 hserout 0, (13): 일시 중지 100 ;LCD hserout 0 초기화, (13): 일시 중지 100 hserout 0, (13): 일시 중지 100 일시 중지 500 hserout 0, ("ac50", 13) hserout 0, ("ad", 32, 32, 32, 32, 49, 42, 36, 32, 13) ; 아래쪽 화살표 문자 정의(char 10) hserout 0, (" ac1", 13) ; 표시 일시 중지 50 지우기 hserout 0, ("acc", 13) ; 커서 숨기기 hserout 0, ("ac81", 13, "ad ", $df, "C", 13) ; 제목 인쇄 hserout 0, ("ac88", 13, "admBar", 13) hserout 0, ("ac8e", 13, "adRH %", 13) hserout 0, ("acd5", 13, "ad", "dir" , 13) ;각주 출력 hserout 0, ("acdc", 13, "ad", "mph", 13) ;hserout 0, ("ace3", 13, "ad", "mm", 13) lastmbar = 0 ; 변수 초기화 LastOrThis = "c" ;======================================= == =============================== ; 메인 루프 ;============================================== = ========================== 메인: ; 전면 패널 스위치를 눌렀는지 확인합니다. Picaxe 인터럽트 메커니즘은 ; 많은 수의 serin 및 seout 명령으로 인해 거의 영구적으로 비활성화됩니다. 따라서 프로그램에 "gosub 스위치"를 뿌려 스위치 상태를 확인하는 것이 더 좋습니다. 방해하는 효과가 있습니다. 고 서브 스위치 ; 433MHz 무선 링크를 통해 실외기에서 첫 번째 값 그룹을 가져옵니다. serin Wireless, N2400, ("t"), SignBit, Quotient, Fract, Humidity, HFract, b15, b15 ; 무선에서 활동 및 성공적인 "serin"을 나타내기 위해 LCD에 "telltale"을 깜박입니다. gosub 숨길; LCD에 첫 번째 그룹 표시 hserout 0, ("acc0", 13) hserout 0, ("ad", SignBit, #Quotient, ".", #Fract, " ", 13) hserout 0, ("acce", 13) hserout 0, ("ad", #Humidity,".", #HFract, " ", 13) gosub 스위치 ; 첫 번째 그룹을 컴퓨터 COM 포트로 보냅니다. 각 그룹에는 시작 식별자, 데이터 및 끝 식별자가 있습니다. ; 시작 = "xS", 끝은 "xE" 예: 바람 시작은 WS, 바람 끝은 WE ; 여러 데이터는 단일 공백 ​​문자로 구분됩니다. serout Computer, N2400, ("TS", SignBit, #Quotient," ", #Fract, "TE") ; 온도 Serout Computer, N2400, ("HS", #Humidity, " ", #HFract, "HE" ); 습도 ; 프로그램 전체에서 스위치를 정기적으로 다시 확인하십시오. 고 서브 스위치 ; 실외기 라디오 링크에서 두 번째 값 그룹을 가져옵니다. serin Wireless, N2400, ("m"), DirHi, DirLo, SpeedHi, SpeedLo, RainCountLastHour, RainCountThisHour, b15 gosub telltale 속도 = 속도 * 300 / 448 ; 펄스/초에서 mph로의 예상 변환 Dir = Dir * 64 / 182 ; 0 - 1023을 0 - 359도로 변환합니다. 정밀도를 유지하려면 우량계를 조정하여 보정해야 합니다. 1 팁이 0.5mm의 비가 되도록 팁핑 버킷의 기계적 정지. LastOrThis = "c"이면 ; 이전 시간의 LCDRainWhole = RainCountThisHour / 2 ; 강우 또는 현재 시간을 표시할지 여부를 결정합니다. LCDRainFract = RainCountThisHour * 5 // 그렇지 않으면 10 LCDRainWhole = RainCountLastHour / 2 ; LCDRainFract = RainCountLastHour * 5 // 10 endif ; 두 번째 그룹을 LCD로 전송 hserout 0, ("ac95", 13) hserout 0, ("ad", #Dir, " ", 13) hserout 0, ("ac9c", 13) hserout 0, ("ad", # 속도, " ", 13) hserout 0, ("aca1", 13) hserout 0, ("ad", LastOrThis, " ", #LCDRainWhole, ".", #LCDRainFract, " ", 13) ; 두 번째 그룹을 컴퓨터로 전송 COM 포트 serout Computer, N2400, ("WS", #Dir," ", #Speed, "WE") ; 윈드서아웃 컴퓨터, N2400, ("RS", #RainCountLastHour," ", #RainCountThisHour, "RE" ); Rain gosub 스위치 ; mbar 코드 루프에 대한 Picaxe 포럼의 "matherp"에게 감사드립니다: ; MPX4115A로 대기압 측정 ; MCP3422를 사용한 아날로그-디지털 변환; V+로의 MPX 출력, 2. 5V ~ V-; 16비트 모드의 ADC hi2cin(b1,b0,b2) ; ADC 판독값 읽기 그리고 MCP3422의 상태 바이트 adj1 = 0 adj2 = 0 w1 = mb900 mbar = 900 do while mBarADCValue > w1 ; mBarADCValue = w0 = b1:b0 inc mbar w1 = w1 + adj0 in adj1 if adj1 = 4 then inc adj2 w1 = w1 + 1 adj1 = 0 endif if adj2 = 6 then w1 = w1 + 1 adj2 = 0 endif 루프 gosub 스위치 gosub 경렴; 컴퓨터로 압력 보내기 COM 포트 serout Computer, N2400, ("PS:", #mbar, "PE") ; lastmbar = 0이면 lastmbar = mbar인 경우 아직 설정되지 않은 경우 이전 압력 판독값(lastmbar)을 초기화하고 lastmbar = mbar RiseFall = " " endif ; mbar > lastmbar이면 RiseFall = "^"인 경우 압력이 변경되면 위쪽 화살표 또는 아래쪽 화살표를 표시합니다. ^ lastmbar = mbar인 경우 mbar endif< lastmbar then RiseFall = 10 ; Custom LCD character. Down arrow lastmbar = mbar endif hserout 0, ("acc7", 13) hserout 0, ("ad", RiseFall, #mbar, " ",13) gosub telltale goto main ; Check if one of the front panel buttons is pressed. switches: if LCD = 1 then ; LCD Backlight on/off Button is pressed if LCD_Status = 0 then ; Backlight is on so... hserout 0, ("ab0", 13) ; Turn it off LCD_Status = 1 else hserout 0, ("ab1", 13) ; Else turn it on. LCD_Status = 0 endif do: loop while LCD = 1 ; Don"t return while button is pressed endif if ClearRiseFall = 1 then ; Pressure rise/fall button is pressed RiseFall = " " ; Clear indicator and... hserout 0, ("acc7", 13) ; ... update display. hserout 0, ("ad", RiseFall, #mbar, " ",13) do: loop while ClearRiseFall = 1 endif if LastOrThisSwitch = 1 then ; Rain Previous Hour / Last Hour button. if LastOrThis = "c" then LastOrThis = "p" LCDRainWhole = RainCountLastHour / 2 ; Recalculate values and re-display to LCDRainFract = RainCountLastHour * 5 // 10 ; give visual confirmation of button-press else LastorThis = "c" LCDRainWhole = RainCountThisHour / 2 ; LCDRainFract = RainCountThisHour * 5 // 10 endif hserout 0, ("aca1", 13) hserout 0, ("ad", LastOrThis, " ", #LCDRainWhole, ".", #LCDRainFract, " ", 13) do: loop while LastOrThisSwitch = 1 endif return ; Flash "tell-tale" on LCD display to show activity telltale: if active = "*" then active = " " else active = "*" endif hserout 0, ("ac80", 13, "ad", active, 13) return

사용된 메모리 = 2048에서 764바이트

PC 소프트웨어

PC에서 실행되는 소프트웨어는 Borland Delphi 7을 사용하여 작성되었습니다. 현재 형태로는 매우 원시적이지만 최소한 Picaxe와 컴퓨터 간의 연결을 보여줍니다.

그래프는 1시간 또는 12시간 단위로 표시되도록 선택할 수 있습니다. 그래프는 마우스로 앞뒤로 스크롤할 수 있습니다. 저장할 수 있습니다. 이렇게 하려면 해당 파일을 마우스 오른쪽 버튼으로 클릭하고 파일 이름과 값을 지정하십시오. APRS.TXT 파일의 라인별로 분당 한 번 작성되고 Weather.exe와 동일한 폴더에 저장되는 제한된 APRS 데이터 집합을 설정할 수 있습니다. 온도는 화씨 온도이고 강우량은 인치당 1/100입니다.

라디오 요소 목록

지정 유형 명칭 수량 메모가게내 메모장
온도 및 상대 습도 센서
온도 센서

DS18B20

1 메모장으로
습도 센서HIH-36101 메모장으로
저항기

4.7k옴

1 메모장으로
풍속 및 방향 측정기
포토트랜지스터IR1 메모장으로
발광 다이오드IR1 메모장으로
저항기

220옴

1 메모장으로
저항기

4.7k옴

1 메모장으로
자기 인코더1 메모장으로
전해 콘덴서10uF4 메모장으로
콘덴서100nF1 메모장으로
저항기

4.7k옴

1 메모장으로
저항기

10k옴

1 메모장으로
강수량계
MK 피카세

PICAXE-08M

1 메모장으로
정류 다이오드

1N4148

2 메모장으로
콘덴서100nF1 메모장으로
저항기

4.7k옴

1 메모장으로
저항기

10k옴

4 메모장으로
저항기

22k옴

1 메모장으로
저항기

220옴

2 메모장으로
발광 다이오드IR1
위로