ex> 버튼을 눌렀을때 출력 강도가 높아지거나 낮아지는것을 LED 밝기로 어느정도 표현가능
EX_01>
# define LED_PIN 5 // 핀번호 설정
void setup(){
pinMode(LED_PIN, OUTPUT); // 해당 핀을 출력으로 설정
}
void loop(){
for (int i = 0; i <= 255; i++){
analogWrite(LED_PIN, i); // LED의 밝기를 1씩 증가시켜서 최대값인 255까지 증가시키겠다.
delay(10);
}
for (int i = 255; i >= 0; i--){
analogWrite(LED_PIN, i); // LED의 밝기는 1씩 감소시켜 최소값이 0까지 감소시키겠다
delay(10);
}
}
/*
LED의 핀번호를 설정하고, 해당 핀을 출력으로 설정,
반복문을 통해 해당 핀의 LED 밝기를 0 > 255 로 1씩 증가시켜 점점 밝아지고,
255 > 0 으로 1씩 감소시켜 점점 어두워지는것을 확인 할 수 있음.
*/
EX_02>
#define LED_PIN 5 // LED 핀번호 설정
#define PLUS_BUTTON_PIN 34 // PLUS 핀번호 설정
#define MINUS_BUTTON_PIN 35 // MINUS 핀번호 설정
int count = 0; // 증가 값
void setup(){
pinMode(PLUS_BUTTON_PIN, INPUT_PULLUP); // LED의 해당 핀을 출력으로 설정
pinMode(MINUS_BUTTON_PIN, INPUT_PULLUP); // BUTTON의 해당 핀을 입력으로 설정
}
void loop(){
// 플러스 버튼이 눌렸냐?
if (digitalRead(PLUS_BUTTON_PIN) == LOW) {
// count를 1 증가대입
count = (count < 100) ? count + 1 : count;
delay(200);
}
// 마이너스 버튼이 눌렸냐?
if (digitalRead(MINUS_BUTTON_PIN) == LOW) {
// count를 1 감소대입
count = (count > 0) ? count - 1 : count;
delay(200);
}
// count의 0~50값을 0~255로 환산해서 LED의 밝기를 컨트롤
analogWrite(LED_PIN, map(count, 0, 50, 0, 255);
}
/*
버튼을 누를 때 마다 count 변수의 값이 상승, 하락하고
변수의 값은 최소 0 최대 50일때 map 함수를 통해 0~255로 환산해서 밝기를 조절 하는 코드
*/
그만큼 다양한 분야에서 활용되고 있고, 최근에는 IoT(사물인터넷)과 접목되어 더욱 주목받고 있답니다.
이번 시간에는 아두이노에 대해 알아보고 직접 만들어보는 시간을 가져보도록 하겠습니다.
아두이노라는 말은 많이 들어봤는데 정확히 어떤건가요? 아두이노는 오픈소스 하드웨어 플랫폼인 마이크로컨트롤러 보드로서, 초보자들이 쉽게 접근할 수 있도록 설계되었습니다. 또한 C언어 기반이기 때문에 프로그래밍 언어를 몰라도 간단한 코딩만으로 제어가 가능하답니다.
따라서 누구나 손쉽게 자신만의 아이디어를 구현할 수 있다는 장점이 있죠.
아두이노 키트로는 뭘 만들 수 있나요? 아두이노 키트는 크게 세 가지로 나눌 수 있습니다. 첫 번째는 센서키트이고 두 번째는 모터키트, 마지막으로는 브레드보드 입니다. 센서는 빛센서, 온도센서, 습도센서 등 주변 환경을 감지하는데 도움을 주는 부품들을 말합니다. 이 중에서도 조도센서는 사람 눈처럼 빛을 인식해서 어두울 때 켜지고 밝을 때 꺼지는 LED를 이용하기 때문에 아주 유용하게 사용됩니다. 다음으로 모터키트는 DC모터, 서보모터, 스텝모터 등 구동장치를 의미하며, 특히 RC카 제작에 주로 사용되는 리니어 액추에이터 같은 경우엔 힘 조절이 가능하다는 장점이 있습니다. 마지막으로 브레드보드는 빵판이라고도 불리며, 회로 구성 시 전선 연결 및 납땜 없이 간편하게 작업할 수 있게 도와주는 도구입니다.
# 데이터의 삽입 (insert) #insert into 데이터베이스명 values (값1, 갑2, 값3, ...); insert INTO customer VALUES (1, '박안녕', 45, '대구중구'); insert into customer (`id`, `name`, `age`, `addr`) values(3, '홍길길길', 34, '서울 강남'); insert into customer (`id`, `name`, `age`, `addr`) values(6, '길길길', 64, '서울 강남'); insert into customer (`name`, `age`, `addr`) values('홍길동', 15, '대구 남구'); insert into customer (`name`, `age`, `addr`) values('김나나', 23, '대구 북구'); insert into customer (`name`, `age`, `addr`) values('김삿갓', 97, '대구 중구'); insert into customer (`age`) values(30);
#데이터의 조회 #SELECT 속성명 FROM 테이블명; SELECT * FROM `customer`; SELECT * FROM `user_tbl`;board_tbl SELECT * FROM `customer` WHERE age >= 30 AND id = 1; SELECT `name` as '이름' , addr as '나이' FROM `customer`;
-- UPDATE 테이블명 SET 속성 = 값 WHERE 속성 = 값 -- UPDATE customer SET addr = '대구 동구' WHERE id = 2; delete from `user_tbl` where user_id = 'vf';
-- DELETE FROM 테이블명 -- DELETE FROM `customer` WHERE id = 6; # 전부삭제 느림 테이블 구조는 남아있음 DELETE FROM customer; # 전부삭제 빠름 테이블 구조는 남아있음 truncate customer; # 전부삭제 테이블 구조까지 다 삭제 drop table customer;
SELECT * FROM `order`; insert into `order` values (1, 1, '모니터', 300000, now()); insert into `order` values (2, 2, '컴퓨터', 1300000, now()); insert into `order` values (3, 3, '그래픽카드', 1200000, now()); insert into `order` values (4, 4, 'cpu', 320000, now()); insert into `order` values (5, 5, '파워', 70000, now()); insert into `order` values (6, 6, '모니터', 12000, now()); insert into `order` values (7, 7, 'cpu', 80000, now()); update `order` set `customer_id` = 2 WHERE id = 2; update `order` set `name` = '컴퓨터' WHERE id = 3; update `order` set `price` = '520000' WHERE id = 5;
select `id` from `customer` where id = 2; # 서브쿼리 select * from customer where age <= (select age from customer where `name` = '김나나'); # 아닌것 조회 select * from `customer` where addr != '대구 동구';
select `name`, `order_date` from `order` where age <= (select `age` from customer where age = 20); # 나이가 20살 이하인 고객의 주문정보 중 상품명과 주문날짜 (날짜형식)만 출력 select `name`, date(`order_date`) from `order` where `customer_id` IN (select id from `customer` where age <= 20);
select O.`name`, date(O.`order_date`) from `order`O inner join `customer`C on C.id = O.customer_id where C.age <=20;
# 결합 (join) select avg(O.price), CAST(O.`order_date` AS DATE) from `order` O inner join `customer` C on O.`customer_id` = C.`id` where C.`name` = '홍길동';
use board_db; select * from board_tbl; select * from board_tbl order by b_group desc, b_order asc; -- 게시물 작성 1) 답변이 아닌 처음 게시물 작성 -- '게시물 4' 작성하기 select max(b_group)+1 from board_tbl; insert into board_tbl values (null, '게시물4', (select max(b_group)+1 from board_tbl board), 0, 0, 0, 0, 0);
-- 게시물2에 '자식 게시물3' 추가하기 insert into board_tbl values (null);
-- 작업 후 나머지 group의 order변경 작업, 부모의 answer_num + 1 작업
-- 부모의 answer_num + 1 작업 update `board_tbl` set `b_answer_num` = `b_anwser_num` + 1 where `b_id` = (select `b_parent_num` from ( select * from `board_tbl` where `b_id` = 12 ) B);
int a = 10; //a 변수에 10값 저장 int b = 3; // b변수에 3값 저장 double doubleB = 3; //자동형변환 System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/b); System.out.println(a%b);
System.out.println(a/doubleB); // 정수 / 실수 = 실수 System.out.println(a%doubleB); // 정수 % 실수 = 실수 System.out.println(doubleB%b); // 실수 % 정수 = 실수