아두이노 5차시(서브 모터, 가변 저항, 12D lcd)
2021. 6. 7. 00:33ㆍNEFUS_19/아두이노
#1 서보 모터
0도 부터 180도 사이를 움직이고
그사이값을 조절할 수 있다
보통:
갈색선 : gnd
빨간선 : 5V
노랑선 : pwm이 지원 되는 핀에 꽂아야한다. 밑그림에 있는 노란박스에 있는 핀에 꽂아야한다.
이 서보 모터는 Servo.h 라이브러리를 사용한다
#2 가변저항
저항의 일종으로 돌리는 만큼 저항이 바뀜
#3 LCD
vcc : 5V
gnd : gnd
scd : scd
sda : sda
reset 버튼과 가까운 것이 scl,
그다음이 sda이다
이 lcd는 Wire.h랑 LiquidCrystal_I2C.h라이브러리를 사용한다.
#4 실습(서보모터)
저항값에 따라 서보모터 각도 조절
#include<Servo.h>
Servo servo;
void setup() {
servo.attach(3);
}
void loop() {
int poten = analogRead(A0);
int servoV = map(poten, 0, 1023, 0, 180); //0에서 1023을 쪼개어 0에서 180으로 나타냄
servo.write(servoV);
}
#5 실습(lcd)
#include<Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20, 20, 4);
void setup() {
lcd.init();
lcd.backlight();
}
void loop() {
lcd.setCursor(1,0);
lcd.print("Nefus");
delay(1000);
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Network Focus");
delay(1000);
lcd.clear();
}
#6 실습(내가 원하는 거 만들기)
온도에 따라 lcddp표시 되는 값이 다르고 밝기에 따라 (0~180)을 화면 표시 서보모터를 돌린다.
#include<Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include<Servo.h>
LiquidCrystal_I2C lcd(0x20, 20, 4);
DHT dht(A1, DHT11);
Servo servo;
void setup() {
lcd.init();
lcd.backlight();
dht.begin();
servo.attach(3);
}
void loop() {
lcd.clear();
int h = dht.readHumidity();
int t = dht.readTemperature();
int cds = analogRead(A0);
int a = map(cds, 0, 1023, 0, 180);
servo.write(180-a);
lcd.setCursor(0,0);lcd.print("");
lcd.print("Temp: ");
lcd.print(t);
lcd.setCursor(10,0);
lcd.print("| CDS");
lcd.setCursor(0, 1);
lcd.print("Hum: ");
lcd.print(h);
lcd.setCursor(10,1);
lcd.print("| ");
lcd.print(a);
delay(1000);
}
'NEFUS_19 > 아두이노' 카테고리의 다른 글
아두이노 7차시 (RTC, 아두이노 끼리 시리얼 통신); (0) | 2021.06.20 |
---|---|
아두이노 6차시(릴레이, 블루투스, 실습) (0) | 2021.06.13 |
아두이노 4-2차시(사운드 센서, 온습도 센서) (0) | 2021.06.06 |
아두이노 4-1차시 (문법정리, 세그먼트 배열, 시리얼 모니터) (0) | 2021.06.06 |
아두이노 3차시 (세그먼트+ 부저+응용) (0) | 2021.05.30 |