이 프로젝트 정보
여러분, 안녕하세요! Arduino UNO로 LCD 온도계를 만드는 방법과 점퍼와 브레드보드가 있는 LM35/36 아날로그 온도 센서를 만드는 방법을 보여 드리겠습니다.
이 프로젝트는 Arduino를 처음 시작하는 사람들에게 매우 좋습니다. 특별한 엔지니어링이나 프로그래밍 기술이 필요하지 않으며 모든 구성 요소를 갖추면 10분도 채 걸리지 않고 빌드할 수 있습니다.
1단계:부품 수집
그림>
그림>
그림>
다음은 온도계를 만드는 데 필요한 부품입니다.
<울> 1x Arduino UNO 보드
<울> 1x 브레드보드
<울> 1x 16x2 LCD 디스플레이
<울> 1x LM35 또는 LM36 아날로그 온도 센서
<울> 1x 10k 전위차계 - 디스플레이 밝기 조정용*
<울> 19x 점퍼 - 모든 것을 연결하기 위해
공식 Arduino 스타터 키트에서도 충족됩니다. Arduino의 공식 웹 페이지 여기에서 주문할 수 있습니다. 또한 Adafruit, SparkFun, Aliexpress, Banggood 등의 상점에서 별도로 구입할 수 있습니다.
*10k팟이 없으시다면 저처럼 50k 사용하셔도 됩니다!
2단계:온도계 만들기
위의 Fritzing 회로도에 따라 브레드보드에 LCD를 연결한 다음 점퍼를 사용하여 Arduino 보드에 연결합니다. 그 후 전위차계와 센서를 브레드보드에 연결한 후 냄비의 왼쪽 및 오른쪽 핀을 접지에 연결하고 +5V와 중간 핀을 LCD 디스플레이에 연결합니다.
그런 다음 센서를 접지와 +5V 및 Arduino에 연결하지만 잘못 연결하면 센서가 최대 280+C(540F)까지 가열되어 손상될 수 있으므로 매우 주의해야 합니다. 모든 것을 연결했으면 다음 단계로 이동합니다.
3단계:Arduino 프로그래밍
작동시키려면 아래 두 코드 중 하나를 사용해야 합니다. 통합 개발 환경을 사용하여 Arduino에 업로드 , 짧은 IDE의 경우 Arduino의 공식 페이지에서 다운로드하면 완료됩니다!
LCD에 아무것도 표시되지 않거나 직사각형이 보이면 글자가 투명해질 때까지 냄비를 시계 방향/반시계 방향으로 돌리십시오. 이제 온도계가 있어 집 안이나 밖에서 주변 공기의 온도를 측정할 수 있습니다.
첫 번째 코드는 Gaige Kerns의 것으로 LM36 또는 LM35에서 읽는 데 사용할 수 있습니다. 고마워 게이지! 또한 여기에서 내 새로운 온도계 프로젝트를 확인하십시오!
// 라이브러리 코드 포함 #include // 인터페이스의 번호로 라이브러리를 초기화합니다.pinLiquidCrystal lcd(12, 11, 5, 4, 3, 2);// 변수 초기화int sensorPin =0;int tempC, tempF;void setup() {// LCD의 열 및 행 수 설정:lcd.begin(16, 2);}void 루프() {tempC =get_temperature(sensorPin);tempF =celsius_to_fahrenheit (tempC);lcd.setCursor(0,0);lcd.print(tempF); lcd.print(" "); lcd.print((문자)223); lcd.print("F");delay(200);}int get_temperature(int pin) {// 센서가 연결된 핀을 함수에 알려야 합니다. 우리는 위의 변수 핀을 사용하고 있습니다. // 해당 핀의 값을 읽습니다. 온도 =analogRead(핀);// 읽은 값을 기반으로 온도를 계산하고 그 값을 보냅니다. backfloat voltage =temperature * 5.0; voltage =voltage / 1024.0;반환((전압 - 0.5) * 100);}int celsius_to_fahrenheit(int temp) {반환(온도 * 9 / 5) + 32;}
#include LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //LCD를 연결할 디지털 핀 const int inPin =0; // A0은 sensorvoid setup(){ lcd.begin(16,2);}void loop(){ int value =analogRead(inPin); // 센서에서 값을 읽습니다. lcd.setCursor(0,1); 부동 밀리볼트 =(값 / 1024.0) * 5000; 부동 섭씨 =밀리볼트 / 10; lcd.clear(); lcd.setCursor(0,0); lcd.print(섭씨); lcd.print("C"); lcd.setCursor(0,1); lcd.print((섭씨 * 9)/5 + 32); //섭씨를 화씨로 바꾸기 lcd.print("F"); 지연(1000);}
FJXZ51IHQAX1RR7.txt
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드"> 코드
<울> 코드 스니펫 #1
코드 스니펫 #2
코드 스니펫 #1일반 텍스트
// 라이브러리 코드 포함 #include // 인터페이스의 번호로 라이브러리를 초기화합니다.pinLiquidCrystal lcd(12, 11, 5, 4, 3, 2);// 변수 초기화int sensorPin =0; int tempC, tempF;void setup() {// LCD의 열과 행 수 설정:lcd.begin(16, 2);}void loop() {tempC =get_temperature(sensorPin);tempF =celsius_to_fahrenheit(tempC);lcd.setCursor(0,0);lcd.print(tempF); lcd.print(" "); lcd.print((문자)223); lcd.print("F");delay(200);}int get_temperature(int pin) {// 센서가 연결된 핀을 함수에 알려야 합니다. 우리는 위의 변수 핀을 사용하고 있습니다. // 해당 핀의 값을 읽습니다. 온도 =analogRead(핀);// 읽은 값을 기반으로 온도를 계산하고 그 값을 보냅니다. backfloat voltage =temperature * 5.0; voltage =voltage / 1024.0;반환((전압 - 0.5) * 100);}int celsius_to_fahrenheit(int temp) {반환(온도 * 9/5) + 32;}
코드 스니펫 #2일반 텍스트
#include LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //LCD를 연결할 디지털 핀 const int inPin =0; // A0은 sensorvoid setup(){ lcd.begin(16,2);}void loop(){ int value =analogRead(inPin); // 센서에서 값을 읽습니다. lcd.setCursor(0,1); 부동 밀리볼트 =(값 / 1024.0) * 5000; 부동 섭씨 =밀리볼트 / 10; lcd.clear(); lcd.setCursor(0,0); lcd.print(섭씨); lcd.print("C"); lcd.setCursor(0,1); lcd.print((섭씨 * 9)/5 + 32); //섭씨를 화씨로 바꾸기 lcd.print("F"); 지연(1000);}
섹션>