제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
무엇입니까?
합리적으로, 코로나바이러스의 확산을 늦추는 가장 신뢰할 수 있는 방법은 다른 사람들과 거리를 두는 것입니다. 예방이 치료보다 낫다. 그러나 30초마다 돌아서 누군가가 당신에게 접근하고 있는지 확인하는 것은 짜증날 것입니다. 다른 사람들에게 당신을 멀리하라고 경고할 수 있는 장치가 있다면 도움이 될 것입니다. 이것이 프로젝트의 목적입니다. 다른 사람들에게 당신과 2미터 거리를 유지하도록 경고하는 것입니다. 서미스터는 거리 측정(온도에 따라 음속이 변함)에 정확도를 추가하는 데 사용될 뿐만 아니라 다음을 의미하므로 2-in-1입니다. 모드 – 두 가지 모드가 있습니다. 누군가 당신에게 가까이 오는 경우 경고(모드 1) 및 온도 및 거리 측정(모드 2). 측정 모드는 LCD에 온도와 거리를 표시합니다.
어떻게 작동합니까? <울>
Arduino가 모드 1에 있는 경우:
<울>아두이노가 모드 2이면 LCD는 화면 상단에 거리를 표시하고 하단에 온도를 표시합니다.
비로부터 부품을 보호하기 위해 비가 올 때 밀어 올릴 수 있는 반 플라스틱 병을 부착했습니다.
끈 2개를 사용하여 부착할 수 있으며 배낭 바닥에서 쉽게 제거할 수 있습니다.
그림> 그림> 그림> 그림> 그림>터치 센서는 모드를 전환하는 데 사용됩니다.
어떻게 구축하나요?
아래 회로도에 따라 구성 요소를 연결하십시오.
완료했으면 '코드' 섹션 아래에 라이브러리를 가져옵니다. 이 작업은 '스케치' -> '라이브러리 포함' -> '.ZIP 라이브러리 추가'로 이동하여 수행할 수 있습니다(Arduino IDE를 연 것으로 가정). ..' 라이브러리를 선택합니다(.zip 파일이어야 함). 코드가 작동하려면 두 라이브러리가 모두 필요합니다.
그림>모든 작업이 완료되면 아래 코드를 업로드할 수 있습니다.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">#include#include #define trigPin 7#define echoPin 6#define 버저 9#define 백라이트 10LiquidCrystal lcd(12, 11, 5, 4, 3 , 8);UltraSonicDistanceSensor distanceSensor(trigPin, echoPin);int tempReading;double tempK;float tempC;int rounded;int temp_round;휘발성 부울 모드 =0;double distance;void setup() { lcd.begin(16, 2); attachInterrupt(0, changeMode, FALLING); 핀모드(2, 입력); 핀모드(부저, 출력); 핀모드(백라이트, 출력); digitalWrite(백라이트, 높음); backlightOn();} 무효 루프() { tempReading =analogRead(A0); tempK =log(10000.0 * ((1024.0 / tempReading - 1))); tempK =1 / (0.001129148 + (0.000234125 + (0.0000000876741 * tempK * tempK )) * tempK ); tempC =tempK - 273.15; 거리 =distanceSensor.measureDistanceCm(tempC); temp_round =라운드(tempC); if (모드 ==1) {backlightOn(); if (거리>=300 || 거리 <=0) { 반올림 =0; lcd.clear(); lcd.print("범위를 벗어났습니다."); lcd.setCursor(0, 1); lcd.print("온도:" + String(temp_round) + " C"); } else { 반올림 =라운드(거리); lcd.clear(); lcd.print("거리:"); lcd.print(반올림); lcd.print("cm"); lcd.setCursor(0, 1); lcd.print("온도:" + String(temp_round) + " C"); } } else { if (거리>=300 || 거리 <=0) { 반올림 =0; lcd.clear(); 백라이트 꺼짐(); } else { 반올림 =라운드(거리); if (거리>=200) {backlightOff(); lcd.clear(); } else if (거리 <=200 &&거리> 100) {backlightOn(); lcd.clear(); lcd.print("비켜주세요"); lcd.setCursor(0, 1); lcd.print("거리:"); lcd.print(반올림); lcd.print("cm"); } else if (거리 <=100 &&거리> 50) {backlightOn(); lcd.clear(); lcd.print("비켜주세요"); lcd.setCursor(0, 1); lcd.print("거리:"); lcd.print(반올림); lcd.print("cm"); 지연(200); 버저 소리(); 백라이트 꺼짐(); 지연(100); 언버즈(); 백라이트 켜짐(); 지연(100); } else if (거리 <=50) {backlightOn(); lcd.clear(); lcd.print("비켜!"); lcd.setCursor(0, 1); lcd.print("거리:"); lcd.print(반올림); lcd.print("cm"); 지연(200); 버저 소리(); 백라이트 꺼짐(); 지연(200); 언버즈(); 백라이트 켜짐(); 지연(200); 버저 소리(); 백라이트 꺼짐(); 지연(200); 언버즈(); 백라이트 켜짐(); } } } delay(700);}void changeMode() { 모드 =!modes;}void backlightOn() { digitalWrite(backlight, HIGH);}void backlightOff() { digitalWrite(backlight, LOW);}void 버즈() { digitalWrite(부저, 높음);} 무효 unbuzz() { digitalWrite(부저, 낮음);}
제조공정
구성품 및 소모품 Arduino UNO × 1 Adafruit Standard LCD - 파란색 바탕에 16x2 흰색 × 1 SparkFun 푸시버튼 스위치 12mm × 1 Perma-Proto 브레드보드 절반 크기 × 1 점퍼 와이어(일반) × 1 저항 1k 옴 × 1 저항 10k 옴 × 1 저항 470k ohm 1% × 3 저항 680옴 1% × 3
구성품 및 소모품 Arduino UNO × 1 Microchip Technology ATtiny85 × 1 전해 디커플링 커패시터 - 10uF/25V × 1 점퍼 와이어 M/M × 1 이 프로젝트 정보 저는 다른 위치에서 여러 센서 데이터를 읽어야 하는 프로젝트를 진행 중입니다. 여기에는 몇 개의 PWM 핀만 필요하므로 여러 Arduino Uno를 사용하는 것은 비용이 많이 들고 불필요합니다. 그래서 Arduino Uno 개발 보드 대신 A