차례:
Ebb-And-Flood-Meter는 썰물과 홍수시 흐름 방향의 차이를 측정합니다. 썰물과 홍수 사이의 전환점에, 그래서 흐름이 없을 때, 장치는 이것을 나타낼 것입니다. 따라서 전체적으로 세 가지 가능성이 있습니다: 흐름 없음, 썰물 (바다로 향한 흐름), 홍수 흐름 (육지로 향하는 흐름).
용품:
1 단계: 측정:
흐름 방향을 측정하여 썰물과 홍수 사이의 전환점을 결정합니다.
2 단계: 사용 방법:
- 스티로폼 지느러미가 위로 향하게 놓으십시오 (잡고있는 상태).
- 리드는 당신의 얼굴을 가리켜 야합니다.
- 아래에 핀이있는 장치를 물에 넣으십시오.
- 지느러미는 물 아래 완전히 있어야합니다.
- 이제 지느러미를 놓을 수 있습니다.
상황:
· 1 번 발광 (초록색): 물의 흐름이 없음
· 2 번 발광 (적색): 물이 왼쪽으로 흐릅니다.
· 3 번 발광 (빨간색): 오른쪽으로 물이 흐릅니다.
3 단계: 필요한 구성 요소:
- 1x Arduino 키트 (UNO)
- 2 배 녹색 led
- 빨간색 led가 1 배
- 3x 120 ohm 저항 (유도 저항)
- 2 배 자기 센서 (자석이 근처에 있으면 센서가 '1'을 표시합니다. 근처에 자석이 없으면 센서는 REED 센서라고도하는 '0'을 표시합니다)
- 2 배 (최소한) 5 k ohm 저항 (자기 센서에 필요한 저항)
- 20 배 단선 (전기 전도)
- 5 배 길이의 와이어 (전기 전도)
- 덕트 테이프
- 1x 목제 빔 (80x7x2cm)
- 2 배 나무 빔 (40x7x2cm)
- 나무 빔 2x (20x1x1cm)
- 목재 빔 1x (30x5x2cm)
- 1x 스티로폼 지느러미 (수제)
- 강 축 1x (길이 20cm, 지름 1mm)
- 충분한 나사
- 넥타이 랩
- 자석 1 개
- 아교
4 단계: 구축 방법:
- 나무 프레임 구성 (그림 참조)
- 각각의 목재 빔에 두 개의 구멍을 뚫고 중간에 강철 축을 놓습니다.
- 스티로폼 핀에 자석을 부착하십시오.
- 강철 축에 스티로폼 지느러미 넣기
- 자기 센서를 긴 전선에 연결하십시오
-이 센서가 방수 튜브를 사용하여 물과 접촉하지 않도록하십시오 (튜브 끝을 생각하고 접착제를 넣으십시오)
- 디지털 핀 2와 3에서 센서를 Arduino 장치에 연결하십시오
- LED를 연결하십시오 (저항을 사용하십시오!):
레드: 디지털 핀 8
녹색: 디지털 핀 9
빨간: 디지털 방식으로 Pin 10
5 단계: 코드 + 그림
암호:
/*
**************이 코드는 Ebb and Flood meter *************에 사용할 수 있습니다.
- 측정 값은 -1, 0 또는 1 일 수 있습니다.
*/
부유 측정 = 0.0;
int flow = 0;
부울 passingLinks = 거짓;
부울 passRechts = 거짓;
void setup () {
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (3, INPUT);
pinMode (10, OUTPUT);
pinMode (9, OUTPUT);
pinMode (8, OUTPUT);
}
무효 루프 () {
int sensorLinks = digitalRead (2);
int sensorRechts = digitalRead (3);
if ((sensorLinks == 1) && (passingLinks == false)) {
스위치 (흐름) {
사례 0:
흐름 = -1;
단절;
사례 -1:
흐름 = 0;
단절;
}
passingLinks = true;
지연 (200);
} else if ((sensorLinks == 0) && (passingLinks == true)) {
passingLinks = false;
}
if ((sensorRechts == 1) && (passingRechts == false)) {
스위치 (흐름) {
사례 0:
흐름 = 1;
단절;
사례 1:
흐름 = 0;
단절;
}
passingRechts = true;
지연 (200);
} else if ((sensorRechts == 0) && (passingRechts == true)) {
passingRechts = false;
}
if ((millis () % 1000) <10) {
Serial.print ("flow:");
Serial.println (흐름);
if (flow == 1) {
digitalWrite (8, LOW);
digitalWrite (9, LOW);
digitalWrite (10, HIGH);
}
else if (flow == 0) {
digitalWrite (8, LOW);
digitalWrite (9, HIGH);
digitalWrite (10, LOW);
}
else if (flow == - 1) {
digitalWrite (8, HIGH);
digitalWrite (9, LOW);
digitalWrite (10, LOW);
}
지연 (10);
}
측정 = (플로트) 유량;
}
이미지: