Code Monkey home page Code Monkey logo

arduino's Introduction

Arduino

๐Ÿ›ซ ๊ฒฐ๊ณผ

ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2022-03-01 แ„‹แ…ฉแ„’แ…ฎ 8 41 54 (1)

๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹ ์„ ํ†ตํ•œ ์ถฉ๋Œ ์•Œ๋ฆผ ๋ฐ ๋ช…๋ น์–ด๊ธฐ๋ฐ˜ ์žฅ์• ๋ฌผ ํƒ์ง€ ๊ฑฐ๋ฆฌ ์ œ์–ด

Untitled (2)

ํšŒ๋กœ ๊ตฌ์„ฑ

  • ํƒํŠธ ์Šค์œ„์น˜๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ์„ ON(๊ฑฐ๋ฆฌ๊ฐ์ง€๋ชจ๋“œ ํ™œ์„ฑํ™”), OFF(๊ฑฐ๋ฆฌ๊ฐ์ง€๋ชจ๋“œ ๋น„ ํ™œ์„ฑํ™”)
  • ON์ผ ๊ฒฝ์šฐ ์ž๋™์ฐจ์™€ ์žฅ์• ๋ฌผ๊ณผ์˜ ๊ฑฐ๋ฆฌ๋ฅผ LCD์— ํ‘œ์‹œ.
  • ์žฅ์• ๋ฌผ๊ณผ์˜ ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ LED๊ฐ€ ์ ๋“ฑ๋˜๋Š” ์ƒ‰ ๋ฐ”๋€œ.
    • ์žฅ์• ๋ฌผ๊ณผ ๋งค์šฐ ๊ฐ€๊น๋‹ค : ๋นจ๊ฐ„์ƒ‰ LED ์ ๋“ฑ
    • ์žฅ์• ๋ฌผ๊ณผ ๊ฐ€๊น๋‹ค : ๋…ธ๋ž€์ƒ‰ LED ์ ๋“ฌ
    • ์žฅ์• ๋ฌผ๊ณผ์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€๋‹ค : ์ดˆ๋ก์ƒ‰ LED ์ ๋“ฑ
  • LED๋Š” ์šด์ „์ž์˜ ์‹œ์•ผ๋ฅผ ๊ฐ€๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๋„์„ผ์„œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฐจ ๋‚ด๋ถ€ ๋น› ๋ฐ๊ธฐ์— ๋”ฐ๋ผ LED์˜ ๋ฐ๊ธฐ๊ฐ€ ์กฐ์ ˆ๋œ๋‹ค.
  • ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹ ์œผ๋กœ, ์ ๋“ฑ๋˜๋Š” LED ๊ฑฐ๋ฆฌ์˜ ๋ฌผ๋ฆฌ์ ์ธ ๊ธฐ์ค€๊ฐ’์„ ๋ฐ”๊พธ์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฐจ์™€ ์žฅ์• ๋ฌผ๊ณผ์˜ ์ถฉ๋Œ์ด ์ผ์–ด๋‚œ **์‹œ์ (๋‚ ์งœ, ์‹œ๊ฐ„)**์„ ์ €์žฅํ•˜๊ณ  ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹ ์„ ํ†ตํ•˜์—ฌ ํ•ธ๋“œํฐ์œผ๋กœ ์•Œ๋ฆผ์„ ์ „์†กํ•œ๋‹ค.

๐Ÿ”ย ์„ผ์„œ ๋ฐ ๋ชจ๋“ˆ

  • ์ดˆ์ŒํŒŒ ์„ผ์„œ
  • ์กฐ๋„ ์„ผ์„œ
  • LCD ํŒจ๋„
  • ๋ธ”๋ฃจํˆฌ์Šค ๋ชจ๋“ˆ(HC-06)
  • LED

โœ๏ธ ์„œ๋ก 

  • ํ”„๋กœ์ ํŠธ ๋ฐฐ๊ฒฝ
    • ์ข์€ ๊ธธ์„ ์šด์ „ํ•  ๋•Œ ๋ถˆ์•ˆํ•œ ๋งˆ์Œ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.
    • ์šด์ „์ด ๋ฏธ์ˆ™ํ•˜๋‹ค๋ฉด ๋ณธ์ธ ์ฐจ์˜ ํฌ๊ธฐ์™€ ๋ถ€ํ”ผ๋ฅผ ๊ฐ€๋Š ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
    • ๋ฌธ์ฝ•์ด๋‚˜ ๊ธํž˜๊ณผ ๊ฐ™์€ ์‚ฌ๊ณ ๊ฐ€ ๋‚˜ ๋ชฐ๋ž˜ ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.
  • ๋ฌธ์ œ์ •์˜
    • ๊ธฐ์กด ์ฐจ๋Ÿ‰๋“ค์€ ์†Œ๋ฆฌ๋ฅผ ํ†ตํ•ด ์žฅ์• ๋ฌผ๊ณผ ๊ฑฐ๋ฆฌ๋ฅผ ์•Œ๋ ค์ฃผ์ง€๋งŒ ๋ฌผ๋ฆฌ์ ์ธ ๊ฑฐ๋ฆฌ๋ฅผ ์ œ๊ณตํ•ด์ฃผ์ง„ ์•Š๋Š”๋‹ค.
    • ๊ตํ†ต์‚ฌ๊ณ ๊ฐ€ ์•„๋‹Œ์ด์ƒ ์ฐจ์˜ ์†์ƒ์€ ์–ธ์ œ์–ด๋””์„œ ์ผ์–ด๋‚ฌ๋Š”์ง€ ์•Œ๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ ์ถฉ๋Œ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ
    • ์•„๋‘์ด๋…ธ๋ฅผ ํ™œ์šฉํ•œ ์ž๋™์ฐจ ๊ธํž˜ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ๋ฌผ์ฒด ๊ฐ„ ๊ฑฐ๋ฆฌ ํƒ์ง€ ๋ฐ ๊ฒฝ๊ณ  ์•Œ๋ฆผ ํœด๋Œ€ํฐ ์ „์†ก ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ

๐Ÿ” ์‹œ์Šคํ…œ ๊ตฌ์„ฑ

Untitled (1)

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป๋‹ด๋‹น ์—…๋ฌด

  • ์•„๋‘์ด๋…ธ ํšŒ๋กœ ๊ตฌ์„ฑ
    • ํ”Œ๋กœํŒ… ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ํ’€๋‹ค์šด ์ €ํ•ญ ์ฑ„ํƒ
    • ์ง๊ด€์ ์ธ ์ƒํ™ฉ(Press : HIGH)์„ ์œ„ํ•ด ํ’€๋‹ค์šด ์ €ํ•ญ ์‚ฌ์šฉ
  • ์•„๋‘์ด๋…ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋ฐœ
    • ์กฐ๋„์„ผ์„œ์˜ sensing ๊ฐ’์„ ์—ญ๋งคํ•‘, PWM ์„ ํ†ตํ•œ ๋ฐ๊ธฐ์ œ์–ด
    • ์ฝ”๋“œ์˜ ํ•จ์ˆ˜ํ™”๋ฅผ ํ†ตํ•œ ์›ํ™œํ•œ ๋””๋ฒ„๊น… ํ™˜๊ฒฝ ์กฐ์„ฑ
    • ์Šค์œ„์น˜์˜ ๋ฐ”์šด์‹ฑ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ์œ„ํ•œ ๋กœ์ง ๊ตฌํ˜„
    • LCD ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ๊ฒฐ๊ณผ ์‹œ๊ฐํ™”
    • ๋ธ”๋ฃจํˆฌ์Šค ๊ธฐ๋ฐ˜ ๋น„ ๋™๊ธฐ์‹ ํ†ต์‹  ๊ตฌํ˜„
      • ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹ ์„ ํ†ตํ•œ ๋ช…๋ น์–ด๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ์ œ์–ด
      • ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹  ๊ธฐ๋ฐ˜ ์ถฉ๋Œ ๊ฐ์ง€ ๋ชจ๋‹ˆํ„ฐ๋ง

๐Ÿ’กย ๋Š๋‚€ ์ 

  • ํšŒ๋กœ์ƒ์—์„œ์˜ ํ•œ๊ณ„(๋ฐ”์šด์‹ฑ ํ˜„์ƒ)๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ๋กœ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋จ
  • IoT๋ฅผ ํ™œ์šฉํ•˜๊ฒŒ ํ•˜๋“œ์›จ์–ด๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์ปจํŠธ๋กคํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ์œ ์ง€ ๋ฐ ๋ณด์ˆ˜๊ฐ€ ๊ฐ„ํŽธํ•ด์ง์„ ์•Œ๊ฒŒ ๋จ.
  • ์„ผ์‹ฑ๋œ data๋ฅผ ์ˆ˜์ง‘, ์ „์ฒ˜๋ฆฌ ๋ถ„์„์„ ํ†ตํ•ด ์„œ๋น„์Šคํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์—ญ๋Ÿ‰ ๊ฐ•ํ™”

๐Ÿ› ย ํ•œ๊ณ„์  ๋ฐ ๋ฏธ๋ž˜์—ฐ๊ตฌ

์ดˆ์ŒํŒŒ ์„ผ์„œ์˜ ์ •ํ™•์„ฑ

  • ์ดˆ์ŒํŒŒ์„ผ์„œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฝ์€ ๊ฐ’์ด 0์ผ ๊ฒฝ์šฐ โ€œ์ถฉ๋Œ ํ–ˆ๋‹ค" ๋ผ๊ณ  ํŒ๋‹จํ•˜๊ณ  ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ํ•˜์˜€์œผ๋‚˜, ์ดˆ์ŒํŒŒ์„ผ์„œ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ 0์ธ ์ƒํƒœ๋ฅผ ์ž˜ ์žก์•„๋‚ด์ง€ ๋ชปํ•˜์˜€๋‹ค.

    โ‡’ ๋ณธ์ธ์€ ๊ฑฐ๋ฆฌ๊ฐ€ 5cm ๋ฏธ๋งŒ์ผ์‹œ โ€œ์ถฉ๋Œํ–ˆ๋‹ค"๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์กฐ๋„ ์„ผ์„œ ๋ถˆ๋Ÿ‰

  • ์กฐ๋„ ์„ผ์„œ๋ฅผ ํ†ตํ•ด ์–ป์€ ๊ฐ’์„ ์—ญ ๋งคํ•‘ํ•˜์—ฌ LED์˜ ๋ฐ๊ธฐ๋ฅผ ์ œ์–ด ํ–ˆ์œผ๋‚˜, ์กฐ๋„ ์„ผ์„œ์˜ ๋ถˆ๋Ÿ‰์œผ๋กœ ํ˜„์žฌ ์กฐ๋„๊ฐ’์„ ์ž˜ ์ฝ์–ด๋‚ด์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋‹ค.

    โ‡’ ๊ทน๋‹จ์ ์ธ ์กฐ๋„ ์„ผ์‹ฑ๊ฒฐ๊ณผ๋Š” LED ๋ฐ๊ธฐ ์ฐจ์ด๋ฅผ ๋ณด์—ฌ์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ’ˆ์งˆ ์ข‹์€ ์กฐ๋„์„ผ์„œ๋ฅผ ์ด์šฉํ•ด์•ผ๋งŒ ํ•œ๋‹ค.

Code

#include <Wire.h>                        
#include <SoftwareSerial.h> // ๋ธ”๋ฃจํˆฌ์Šค
 
#include <hd44780.h>  // lcd
#include <hd44780ioClass/hd44780_I2Cexp.h>  //lcd
 
#include <core_build_options.h>
#include <swRTC.h> // ์‹œ๊ฐ„๋ชจ๋“ˆ
 
swRTC rtc;  //ํด๋ž˜์Šค ๊ฐœ์ฒด ์„ ์–ธ
 
hd44780_I2Cexp lcd;   // lcd ๊ฐ์ฒด ์ƒ์„ฑ
 
unsigned int trigPin = 11; // trig
unsigned int echoPin = 12; // echo
 
#define button 2  // ๋ฒ„ํŠผ ์—ฐ๊ฒฐ ํ•€
 
int red_led = 10; // ๋นจ๊ฐ„์ƒ‰ led ํ•€ ๋ฒˆํ˜ธ
int yellow_led = 4; // ๋…ธ๋ž€์ƒ‰ led ํ•€๋ฒˆํ˜ธ
int green_led = 13; // ์ดˆ๋ก์ƒ‰ led ํ•€๋ฒˆํ˜ธ
 
// ๋””๋ฐ”์šด์‹ฑ์„ ์œ„ํ•œ ๋ณ€์ˆ˜
int cur = 0;  // current
int before = 0;
int state = 0;
int cnt = 0; // count
 
long distance;  // lcd์— ํ‘œ์‹œ๋  ๊ธธ์ด
long timeDistance;
 
String input = "";  //input ์ดˆ๊ธฐํ™”
String get_string(String input);
 
 
int d_red = 10; // ๋นจ๊ฐ„๋ถˆ์ด ์ผœ์งˆ ์กฐ๊ฑด(๊ฑฐ๋ฆฌ๊ฐ€ 10 ๋ฏธ๋งŒ์ผ๋–„)
int d_yellow = 50; // ๋…ธ๋ž€๋ถˆ์ด ์ผœ์งˆ ์กฐ๊ฑด( ๊ฑฐ๋ฆฌ๊ฐ€ 50 ๋ฏธ๋งŒ์ผ๋•Œ)
 
boolean key1 = true;
boolean key2 = true;
boolean key3 = true;
 
void setup(){
 Serial.begin(9600);
 Serial1.begin(9600);
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 pinMode(button, INPUT);
 lcd.init(); // lcd ์ดˆ๊ธฐํ™”
 lcd.backlight();
 
 pinMode(yellow_led, OUTPUT);
 pinMode(red_led,OUTPUT);
 pinMode(green_led,OUTPUT);
 digitalWrite(red_led, LOW);
 digitalWrite(green_led, LOW);
 
 rtc.stopRTC();            //์ •์ง€
 rtc.setTime(02, 15, 30);  //์‹œ, ๋ถ„, ์ดˆ
 rtc.setDate(12, 6, 2021); //์ผ, ์›”, ๋…„
 rtc.startRTC();           //์‹œ์ž‘
}
void loop(){
   input = get_string(input);
   if(input == "reset"){
     d_yellow = 50;  // ๋…ธ๋ž€๋ถˆ์ด ๊บผ์ง€๋Š” ๊ฑฐ๋ฆฌ๊ฐ’ 50cm๋กœ ์žฌ ์ดˆ๊ธฐํ™”
     d_red = 10; // ๋นจ๊ฐ„๋ถˆ์ด ๊บผ์ง€๋Š” ๊ฑฐ๋ฆฌ๊ฐ’ 10cm๋กœ ์žฌ ์ดˆ๊ธฐํ™”
   }else if( input.substring(0,1) == "y"){ // ๋ช…๋ น์–ด์˜ ์ฒซ๋ฒˆ์จฐ ๊ธ€์ž๊ฐ€ y์ผ ๊ฒฝ์šฐ
     // ๋ช…๋ น์–ด๊ฐ€ y๋กœ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋ฐ”๋€Œ๋Š” ์ˆ˜์น˜๊ฐ’์ด d_red๋ณด๋‹ค ํด ๊ฒฝ์šฐ!(๋…ธ๋ž€๋ถˆ์ ๋“ฑ ๊ฑฐ๋ฆฌ๊ฐ€ ๋นจ๊ฐ„๋ถˆ ์ ๋“ฑ ๊ฑฐ๋ฆฌ๋ณด๋‹ค ์งฆ์„ ์ˆœ ์—†๊ธฐ๋–„๋ฌธ)
     if(input.substring(1).toInt() > d_red){
       d_yellow = input.substring(1).toInt();  // ๋ช…๋ น์–ด์˜ ์ˆซ์ž๋งŒํผ์˜ ๊ฑฐ๋ฆฌ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•จ
       key1 = true;
     }else if(key1 && key2){ // yellow์˜ ๊ฑฐ๋ฆฌ๊ฐ’์ด red๋ณด๋‹ค ์ž‘์•„์งˆ๊ฒฝ์šฐ(๋ง์ด ์•ˆ๋˜๋Š” ์ƒํ™ฉ)
       Serial1.print(d_red);
       Serial1.write("๋ณด๋‹ค ํฌ๊ฒŒ ์ž…๋ ฅํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n");
       key1 = false;
     }
     
     
   }else if(input.substring(0,1) =="r" ){  // ๋ช…๋ น์–ด์˜ ์ฒซ๋ฒˆ์จฐ ๊ธ€์ž๊ฐ€ r์ผ ๊ฒฝ์šฐ
     // ๋ช…๋ น์–ด๊ฐ€ r๋กœ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋ฐ”๋€Œ๋Š” ์ˆ˜์น˜๊ฐ’์ด d_yellow๋ณด๋‹ค ์ž‘์„ ๊ฒฝ์šฐ๋งŒ!( ๋นจ๊ฐ„๋ถˆ ์ ๋“ฑ๊ฑฐ๋ฆฌ๊ฐ€ ๋…ธ๋ž€๋ถˆ ์ ๋“ฑ๊ฑฐ๋ฆฌ๋ณด๋‹ค ํด ์ˆ˜ ์—†๋‹ค.)
     if(input.substring(1).toInt() < d_yellow){
       d_red = input.substring(1).toInt(); // ๋ช…๋ น์–ด์˜ ์ˆซ์ž๊ฐ’์œผ๋กœ ๋นจ๊ฐ„๋ถˆ์ด ์ ๋“ฑ๋  ๊ฑฐ๋ฆฌ๊ฐ’ ์ดˆ๊ธฐํ™”
       key2 = true;
     }else if (key1 && key2){  // red์˜ ๊ฑฐ๋ฆฌ๊ฐ’์ด yellow์˜ ๊ฑฐ๋ฆฌ๊ฐ’๋ณด๋‹ค ์ปค์งˆ๊ฒฝ์šฐ ( ๋ง์ด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ)
       Serial1.print(d_yellow);
       Serial1.write("๋ณด๋‹ค ์ž‘๊ฒŒ ์ž…๋ ฅํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n");
       key2 = false;
     }
   }
 
   int cur = digitalRead(button);  // ๋ฒ„ํŠผ์˜ ์ƒํƒœ ๊ฒ€์‚ฌ
   // ๋””๋ฐ”์šด์‹ฑ ํ•ด๊ฒฐ
   if(cur != before){
     delay(5);
     cur = digitalRead(button);
   }
   
   if( cur == HIGH && before == LOW){
     state != state;
     Serial.println("๋ฐ”๋€œ");
     cnt+=1; // ๋ฒ„ํŠผ ํด๋ฆญ๋‹น cnt๊ฐ€ 1์”ฉ ์ฆ๊ฐ€
   }
   before = cur;
//    Serial.print(cnt);
   // cnt๊ฐ€ ์ง์ˆ˜์ผ๋•Œ ํ™€์ˆ˜์ผ๋•Œ ๋‚˜๋ˆ„์–ด์„œ ๊ธฐ๋Šฅ ์‹คํ˜„
   if(cnt%2==0){
     lcd.clear();
     lcd.setCursor(0,0);
     lcd.print("PRESS BUTTON");
     lcd.setCursor(0,1);
     lcd.print("FOR DISTANCE");
     delay(200);
     digitalWrite(red_led, LOW);
     digitalWrite(green_led, LOW);
   }else{
     showDistance(); // ๊ฑฐ๋ฆฌ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ฉ”์†Œ๋“œ
     showLight();  // ๋น›์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ฉ”์†Œ๋“œ
   }
}
 
 
// ๋ฒ„ํŠผ์œผ๋กœ ์ œ์–ดํ•˜๊ธฐ์œ„ํ•ด ํ•จ์ˆ˜๋กœ ์ƒ์„ฑ
void showDistance(){
   
   digitalWrite(trigPin, LOW);// trigํ•€์—์„œ ์ดˆ์ŒํŒŒ ๋‚ด๋ณด๋ƒ„ ์ผ๋‹จ low๋กœ ์ดˆ๊ธฐํ™”ํ•จ
   delayMicroseconds(2); //2 microsecond๋™์•ˆ ์ž ๊น delay
   
   digitalWrite(trigPin, HIGH); // ์ดˆ์ŒํŒŒ๋ฅผ ๋‚ด๋ณด๋‚ด๊ธฐ์œ„ํ•ด HIGH
   delayMicroseconds(10); // 10 microsecond๋™์•ˆ ์ž ๊น delay
   digitalWrite(trigPin, LOW); // ์ด์ œ ๊ทธ๋งŒ ๋‚ด๋ณด๋‚ด๊ธฐ ์œ„ํ•ด LOW๋กœ ๋‹ค์‹œ ๋ฐ”๊ฟ”์คŒ
 
   if( digitalRead(echoPin) == LOW){
     // ์ดˆ์ŒํŒŒ์„ผ์„œ ๊ฐ”๋‹ค๊ฐ€ ๋‹ค์‹œ ๋Œ์•„์˜ค๊ธฐ๋•Œ๋ฌธ์— 2๋กœ ๋‚˜๋ˆ„์–ด์คŒ, 1cm ์ด๋™ํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š”์‹œ๊ฐ„ 29.41us
     distance = (float)pulseIn(echoPin, HIGH)/29/2;
   }else{
     pinMode(echoPin, OUTPUT);
     digitalWrite(echoPin, LOW);
     pinMode(echoPin, INPUT);
   }
   if( distance <= 3){
     time(); // ํ˜„์žฌ์˜ ์‹œ๊ฐ„ ์ถœ๋ ฅ
     Serial.write("   ์ถฉ๋Œํ•˜์˜€์Šต๋‹ˆ๋‹ค\n"); // ์ถฉ๋Œ๋ฉ”์„ธ์ง€ ์ „๋‹ฌ
     Serial1.write("   ์ถฉ๋Œํ•˜์˜€์Šต๋‹ˆ๋‹ค\n");
   }
   
   lcd.clear();
   lcd.setCursor(0,0);
   lcd.print("Distance : ");
   lcd.setCursor(0,1);
   lcd.print(distance);
   lcd.print("cm");
   delay(500); // 0.5์ดˆ๋งˆ๋‹ค ์ˆซ์ž ๋ฐ”๋€Œ๋„๋ก
}
 
void showLight(){
 /*
  * 100 ๋ฐ์Œ
  * 400 ํ‰์†Œ ํ˜•๊ด‘๋“ฑ
  * 800 ์–ด๋‘์›€
  */
 int cds = analogRead(A1); // ํ˜„์žฌ์˜ ์กฐ๋„๊ฐ’์„ ์ฝ์–ด์˜ด
 int bright = map(cds, 0, 1023, 255, 0); // ์–ด๋‘์›Œ์ง€๋ฉด LED๋„ ์–ด๋‘์›Œ์ง€๊ฒŒ ์—ญ๋งคํ•‘
//  Serial.println(cds);
 
 if (distance < d_red){
    // ๊ฑฐ๋ฆฌ๊ฐ€ d_red ๋ฏธ๋งŒ์ผ์‹œ ๋นจ๊ฐ„๋ถˆ ํ‘œ์‹œํ•˜๋Š”๋ฐ ํ˜„์žฌ ๋ฐ๊ธฐ์— ๊ณ ๋ คํ•˜์—ฌ ๋น› ๋ฐœ๊ด‘
   analogWrite(red_led, bright); // ํ˜„์žฌ ์กฐ๋„๊ฐ’์— ๋ฐ˜๋น„๋ก€ํ•˜์—ฌ ๋ฐ๊ธฐ ์กฐ์ •
   digitalWrite(green_led, LOW);
   digitalWrite(yellow_led,LOW);
 }else if(distance < d_yellow){
   // // ๊ฑฐ๋ฆฌ๊ฐ€ d_red ์ดˆ๊ณผ d_yellow ์ด์ƒ์ผ์‹œ ๋…ธ๋ž€๋ถˆ ํ‘œ์‹œ, ํ˜„์žฌ ๋ฐ๊ธฐ์— ๊ณ ๋ คํ•˜์—ฌ ๋น› ๋ฐœ๊ด‘
   analogWrite(yellow_led, bright);// ํ˜„์žฌ ์กฐ๋„๊ฐ’์— ๋ฐ˜๋น„๋ก€ํ•˜์—ฌ ๋ฐ๊ธฐ ์กฐ์ •
   digitalWrite(green_led, LOW);
   digitalWrite(red_led, LOW);    
 }else{
   // ๊ฑฐ๋ฆฌ๊ฐ€ d_yellow ์ด์ƒ์ผ์‹œ ์ดˆ๋ก๋ถˆ ํ‘œ์‹œ, ํ˜„์žฌ ๋ฐ๊ธฐ์— ๊ณ ๋ คํ•˜์—ฌ ๋น› ๋ฐœ๊ด‘
   digitalWrite(red_led, LOW);
   analogWrite(green_led, bright);// ํ˜„์žฌ ์กฐ๋„๊ฐ’์— ๋ฐ˜๋น„๋ก€ํ•˜์—ฌ ๋ฐ๊ธฐ ์กฐ์ •
   digitalWrite(yellow_led, LOW);
 }
 delay(100);
}
 
String get_string(String input){
 String inputString = "";             // ์•„๋ฌด๊ฒƒ๋„ ์ž…๋ ฅํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ๋นˆ ๋ฌธ์ž์—ด
 while(Serial1.available()) {      // ๋ธ”๋ฃจํˆฌ์Šค ํ†ต์‹ ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋˜๋ฉด(์Šค๋งˆํŠธํฐ -> ์•„๋‘์ด๋…ธ)
   delay(3);                         // ๋ฐ์ดํ„ฐ ์ˆ˜์‹ ์ด ์ž˜ ์ด๋ฃจ์–ด์ง€๊ธฐ ์œ„ํ•ด 3ms ๊ธฐ๋‹ค๋ฆผ
   if (Serial1.available() >0) {   // ์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด
     char c = Serial1.read();      // ์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ 1๊ฐœ๋ฅผ ๋ฐ›์•„ c๋กœ ์ €์žฅ(์ดํ›„์—๋Š” ๊ทธ๋‹ค์Œ๊ฑธ ๋ฐ›์•„ c๋กœ ์ €์žฅ
     inputString += c;                // ์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ c์™€ ๋ถ™์ž„.
   }
 }
 if(inputString.length() == 0) return input;    // ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 0์ด๋ฉด(๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์ง€ ์•Š์•˜๋‹ค๋ฉด) ๊ธฐ์กด์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜  
 else return inputString;             // ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์•˜๋‹ค๋ฉด ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅ
}
 
// ํ˜„์žฌ ์‹œ๊ฐ„ ์ถœ๋ ฅํ•จ์ˆ˜
void time(){
 Serial1.print(rtc.getYear(), DEC);  // ์—ฐ๋„
 Serial1.print("/");
 Serial1.print(rtc.getMonth(), DEC); // ์›”
 Serial1.print("/");
 Serial1.print(rtc.getDay(), DEC); // ์ผ
 Serial1.print("\t");
 
 Serial1.print(rtc.getHours(), DEC); // ์‹œ
 Serial1.print(":");
 Serial1.print(rtc.getMinutes(), DEC); // ๋ถ„
 Serial1.print(":");
 Serial1.print(rtc.getSeconds(), DEC); // ์ดˆ
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.