음주운전을 하지 않는 가장 좋은방법은 대리운전 비용 1만원~1.2만원이 아깝지 않으면서 대리운전 전화번호를 누를 수 있는 정도의 취함 상태인 것 같다.
그래서 생각해본 아이디어가 아예 법적으로 차량에 의무적으로 장치를 설치하도록 하는데 이 장치는 차에 시동을 걸기 전 음주측정을 해야하고 정상 수치내에 있을때만 시동이 걸리는 장치!
물론 조수석에 앉을 누군가가 음주운전을 돕기 위해 대신불어준다면 안되겠지만..ㅠㅠ
아침 출근을 위해 정말 급하게 가글을 하고 나와 출근하려 시동을 걸었는데..가글액에 섞인 알코올 성분때문에 지각을 하는 경우도 생길 수 있겠다만..
그래도 한번 만들어 보자.
어차피 내게는 차량과 연동할 기술적 지식이 아직 없으므로! 하하하하
06.13 진행 중이나 아직 정리가 안됨
07.01 에 05.28 진행 내용 추가
실제 경찰들 처럼 더더더~ 멘트로 몰입감+정확성(3회 불어서 나온수치의 평균을 활용하는 벙법)을 높일 수 있도록 개선하였다. -_-;
이하 소스코드
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
}
void loop() {
lcd.setCursor(1, 0); //라인1로 커서 위치
lcd.print("Ready...");
delay(4000);
lcd.clear();
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
float mq3_value = 0;
float sensorValue = 0;
float val1=0;
float val2=0;
float val3=0;
lcd.print("333333333333"); //카운트 다운 3
delay(1000);
lcd.clear();
lcd.print("2222222222"); // 카운트 다운 2
delay(1000);
lcd.clear();
lcd.print("111111111"); // 카운트 다운 1
delay(1000);
lcd.clear();
lcd.print("Blow Now!!"); // 시작
delay(1000);
lcd.clear();
val1=analogRead(A0);
lcd.print("More!"); //더
delay(1000);
lcd.clear();
val2=analogRead(A0);
lcd.print("More!!!!!!!"); // 더ㅓㅓㅓㅓㅓㅓㅓ
delay(1000);
lcd.clear();
val3=analogRead(A0);
lcd.print("More!!!!!!!!!!!"); // 더ㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓ
delay(1000);
lcd.clear();
mq3_value = (((val1+val2+val3/3) / 1024) * 5.0); // 3회 측정치 평균값 내기
lcd.setCursor(0, 1); //라인2로 커서 위치
if ((mq3_value <= 0.7000) && (mq3_value > 0.0)) {
lcd.print(mq3_value);
lcd.print(" Fine!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Fine!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Fine!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Fine!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Fine!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
}
else if (mq3_value > 0.7000) {
lcd.print(mq3_value);
lcd.print(" Drunken!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Drunken!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Drunken!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Drunken!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Drunken!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
}
lcd.clear();
}
그래서 생각해본 아이디어가 아예 법적으로 차량에 의무적으로 장치를 설치하도록 하는데 이 장치는 차에 시동을 걸기 전 음주측정을 해야하고 정상 수치내에 있을때만 시동이 걸리는 장치!
물론 조수석에 앉을 누군가가 음주운전을 돕기 위해 대신불어준다면 안되겠지만..ㅠㅠ
아침 출근을 위해 정말 급하게 가글을 하고 나와 출근하려 시동을 걸었는데..가글액에 섞인 알코올 성분때문에 지각을 하는 경우도 생길 수 있겠다만..
그래도 한번 만들어 보자.
06.13 진행 중이나 아직 정리가 안됨
07.01 에 05.28 진행 내용 추가
실제 경찰들 처럼 더더더~ 멘트로 몰입감+정확성(3회 불어서 나온수치의 평균을 활용하는 벙법)을 높일 수 있도록 개선하였다. -_-;
Ready 상태. 이후 3,2,1 카운트 후 blow! 그리고 수치를 반복하여 깜빡이며 한다. |
이하 소스코드
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
}
void loop() {
lcd.setCursor(1, 0); //라인1로 커서 위치
lcd.print("Ready...");
delay(4000);
lcd.clear();
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
float mq3_value = 0;
float sensorValue = 0;
float val1=0;
float val2=0;
float val3=0;
lcd.print("333333333333"); //카운트 다운 3
delay(1000);
lcd.clear();
lcd.print("2222222222"); // 카운트 다운 2
delay(1000);
lcd.clear();
lcd.print("111111111"); // 카운트 다운 1
delay(1000);
lcd.clear();
lcd.print("Blow Now!!"); // 시작
delay(1000);
lcd.clear();
val1=analogRead(A0);
lcd.print("More!"); //더
delay(1000);
lcd.clear();
val2=analogRead(A0);
lcd.print("More!!!!!!!"); // 더ㅓㅓㅓㅓㅓㅓㅓ
delay(1000);
lcd.clear();
val3=analogRead(A0);
lcd.print("More!!!!!!!!!!!"); // 더ㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓ
delay(1000);
lcd.clear();
mq3_value = (((val1+val2+val3/3) / 1024) * 5.0); // 3회 측정치 평균값 내기
lcd.setCursor(0, 1); //라인2로 커서 위치
if ((mq3_value <= 0.7000) && (mq3_value > 0.0)) {
lcd.print(mq3_value);
lcd.print(" Fine!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Fine!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Fine!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Fine!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Fine!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
}
else if (mq3_value > 0.7000) {
lcd.print(mq3_value);
lcd.print(" Drunken!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Drunken!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Drunken!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Drunken!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
lcd.print(mq3_value);
lcd.print(" Drunken!");
delay(1000);
lcd.clear();
delay(500);
lcd.setCursor(0, 1); //라인2로 커서 위치
}
lcd.clear();
}
댓글
댓글 쓰기