코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2014-12-15 13:46:38
NO | 부품명 | 수량 | 상세설명 |
1 | 아두이노 | 2 | 오렌지 보드 |
2 | 서보모터 | 1 | 서보모터 mini |
3 | zigbee 모듈 | 2 | Digi international Xbee S1 |
4 | zigbee 쉴드 | 2 | |
5 | LCD | 1 | 3.75mm 64x16 Dot Matrix LED Display |
6 | 가변 저항기 | 1 | HC-SR04 |
7 | 압력센서 | 1 | |
8 | 9v 건전지 | 1 | |
9 | 브레드 보드 | 1 | DC 5V |
10 | 점퍼 케이블 | 1 |
부품명 | 아두이노 | 서보모터 | zigbee 모듈 | zigbee 쉴드 | LCD |
부품 사진 | |||||
부품명 | 가변 저항기 | 압력센서 | 9v 건전지 | 브레드 보드 | 점퍼 케이블 |
부품 사진 |
const int THRESHOLD = 50;
char ch = 'a'; char ch1 = 'b'; void setup() { Serial.begin(9600); //시리얼 통신 초기화 } void loop() { int sensorValue = analogRead(A0); //압력센서로 부터 데이터를 읽는다. if(sensorValue > THRESHOLD) { //값이 50 이상일 경우 Serial.write(ch); //계기판으로 데이터'a'를 전송 } else { Serial.write(ch1); //자리에 없을 경우 데이터 'b'를 전송 } delay(2000); }
#include <LiquidCrystal.h> #include <core_build_options.h> #include <swRTC.h> #include <Servo.h> Servo myservo; LiquidCrystal lcd(12,11,5,4,3,2); //RS 핀, E핀, 데이터 핀 4개 String lcdString = ""; //객체 선언 : 출력 할 글자 저장 swRTC rtc; //rtc선언
//방석에서 전송되는 데이터를 저장하는 변수 char temp; char ch = 'a'; //AM PM을 구분해 주는 함수 void Set_AMPM(int hour) { if(hour >=12) { lcd.print("PM"); } else { lcd.print("AM"); } lcd.print(hour%12, DEC); //시간 출력 } //10보다 작은수를 출력할때 앞에 0을 출력하게 하는 함수 void Set_lowThanTen(int time) { if(time < 10) { lcd.print("0"); lcd.print(time%10); } else lcd.print(time); } //알람이 울릴시간인지 체크하는 함수 void setup() { lcd.begin(16,2); //LCD 크기 지정, 2줄 16칸 lcd.clear(); //화면 초기화 rtc.stopRTC(); //정지 rtc.setTime(14,13,0); //시간, 분, 초 초기화 rtc.setDate(15, 12, 2014); //일, 월, 년 초기화 rtc.startRTC(); //시작 myservo.attach(9); //서보모터핀을 9번핀으로 선언 myservo.write(90); Serial.begin(9600); //시리얼 통신 초기화 } void loop() { int day; lcd.setCursor(0,0); //커서를 0,0에 지정 //1초 단위로 갱신하며 현재시간을 LCD에 출력 Set_AMPM(rtc.getHours()); lcd.print(":"); Set_lowThanTen(rtc.getMinutes()); lcd.print(":"); Set_lowThanTen(rtc.getSeconds()); //날짜를 LCD에 출력 lcd.print("["); Set_lowThanTen(rtc.getMonth()); lcd.print("/"); Set_lowThanTen(rtc.getDay()); lcd.print("]"); //세팅된 알람시간을 LCD에 출력 if(Serial.available()) { //방석으로 부터 데이터를 전송받는다 temp = ch; ch = Serial.read(); } if(ch == 'b') { //자리비움 일 때 if(temp == 'a') { //그 전 상태가 자리에 있었을 경우 LCD에 자리비울때의 시간을 표시
myservo.write(150); lcd.setCursor(0,1); lcd.print("Leave "); Set_AMPM(rtc.getHours()); lcd.print(":"); Set_lowThanTen(rtc.getMinutes()); lcd.print(":"); Set_lowThanTen(rtc.getSeconds()); } } else if(ch == 'a') { //자리에 있을 경우 if(temp == 'b') { //직전 상태가 자리비움 상태였을 경우 서보모터를 At work로 돌린다. myservo.write(30); } } //1초마다 LCD갱신 lcdString = ""; //문자열 초기화 lcd.print(" "); //전 글씨 삭제 delay(1000); }
수박쨈