'아두이노 기초'에 해당되는 글 12건

  1. 2015.02.27 17. ZigBee
  2. 2015.02.26 16. Bluetooth
  3. 2015.02.26 15. SimpleTimer
  4. 2015.02.25 14. 센서
  5. 2015.02.25 13. 라이브러리 만들기
  6. 2015.02.25 12. 디지털 입출력, 아날로그 입출력
  7. 2015.02.25 11. 시리얼 통신
  8. 2015.02.24 10. 서브모터
  9. 2015.02.24 9. 7세그먼트
  10. 2015.02.24 8. LCD 패널
아두이노 기초2015. 2. 27. 10:29


예제 1

char c = 'A';
int pingPong = 1;

void setup() {
  Serial.begin(9600);
  pinMode(9, OUTPUT);
}

void loop() {
  Serial.print(c);
  c = c + 1;
  if(c>'Z')
    c = 'A';

  if(pingPong == 0)
    digitalWrite(9, LOW);
  else
    digitalWrite(9, HIGH);

  pingPong = 1 - pingPong;
  delay(1000);
}


'아두이노 기초' 카테고리의 다른 글

16. Bluetooth  (0) 2015.02.26
15. SimpleTimer  (0) 2015.02.26
14. 센서  (0) 2015.02.25
13. 라이브러리 만들기  (0) 2015.02.25
12. 디지털 입출력, 아날로그 입출력  (0) 2015.02.25
Posted by trikyu
아두이노 기초2015. 2. 26. 18:23


예제 1

#include <SoftWareSerial.h>

void setup() {
  Serial.begin(9600);
  BT_Serial.begin(9600); // 블루투스 연결
}

void loop() {
  if(BT_Serial.available()) {
    Serial.write(BT_Serial.read()); // 블루투스 읽기
  }

  if(Serial.available()) {
    BT_Serial.write(Serial.read()); // 블루투스 쓰기
  }
}


'아두이노 기초' 카테고리의 다른 글

17. ZigBee  (0) 2015.02.27
15. SimpleTimer  (0) 2015.02.26
14. 센서  (0) 2015.02.25
13. 라이브러리 만들기  (0) 2015.02.25
12. 디지털 입출력, 아날로그 입출력  (0) 2015.02.25
Posted by trikyu
아두이노 기초2015. 2. 26. 10:49


예제 1

#include <SimpleTimer.h>
#define BUTTON 2
#define ALARM 8
#define LED 13

SimpleTimer timer;
int pState = LOW;
boolean booked = false;

void setup() {
  pinMode(BUTTON, INPUT);
  pinMode(LED, OUTPUT);
}

void loop() {
  int state = digitalRead(BUTTON);

  if(pState == LOW && state == HIGH) {
    if(booked == false) {
      booked = true;
      digitalWrite(LED, HIGH);
      timer.setTimeout(5000, beep); // 5초 뒤에 beep 함수 호출
    }
  }

  pState = state;
  timer.run();
}

void beep() {
  booked = false;
  digitalWrite(LED, LOW);
  tone(8, 1000, 20);
  delay(100);
  tone(8, 1000, 20);
  delay(100);
  tone(8, 1000, 20);
}


예제 2

#include <SimpleTimer.h>
#define LED 13

SimpleTimer timer;
boolean ledOn = false;

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
  timer.setInterval(1000, toggle); // 1초에 한번씩 toggle 함수 호출
  timer.setInterval(5000, notify); // 5초에 한번씩 notify 함수 호출
}

void loop() {
  timer.run();
}

void toggle() {
  if(ledOn == true) {
    digitalWrite(LED, LOW);
  } else {
    digitalWrite(LED, HIGH);
  }
  ledOn = !ledOn;
}

void notify() {
  Serial.print("Brightenss : ");
  Serial.println(analogRead(A0));
}


'아두이노 기초' 카테고리의 다른 글

17. ZigBee  (0) 2015.02.27
16. Bluetooth  (0) 2015.02.26
14. 센서  (0) 2015.02.25
13. 라이브러리 만들기  (0) 2015.02.25
12. 디지털 입출력, 아날로그 입출력  (0) 2015.02.25
Posted by trikyu
아두이노 기초2015. 2. 25. 23:11


예제 1

#include <dht11.h>
#define DHT11PIN 2
dht11 DHT11;

void setup() {
  Serial.begin(9600);
  Serial.println("Start");
}

void loop() {
  Serial.println();

  int chk = DHK11.read(DHT11PIN);

  Serial.print("Read sensor: ");
  switch(chk) {
    case 0: Serial.println("OK"); break;
    case -1: Serial.println("Checksum error"); break;
    case -2: Serial.println("Time out error"); break;
    default: Serial.println("Unknown error"); break;
  }

  Serial.print("Humidity (%): ");
  Serial.println(DHT11.humidity);

  Serial.print("Temperature (oC): ");
  Serial.println(DHT11.temperature);

  delay(2000);
}


'아두이노 기초' 카테고리의 다른 글

16. Bluetooth  (0) 2015.02.26
15. SimpleTimer  (0) 2015.02.26
13. 라이브러리 만들기  (0) 2015.02.25
12. 디지털 입출력, 아날로그 입출력  (0) 2015.02.25
11. 시리얼 통신  (0) 2015.02.25
Posted by trikyu
아두이노 기초2015. 2. 25. 18:39


헤더 파일(Blinky.h)

#ifndef Blinky_h
#define Blinky_h

#include "Arduino.h"

class Blinky
{
  public:
    Blinky(int pin);
    void blinkLED(int delayTime);
  private:
    int _pin;
};

#end if


소스 파일(Blinky.cpp)

#include "Arduino.h"
#include "Blinky.h"

Blinky::Blinky(int pin)
{
  pinMode(pin, OUTPUT);
  _pin = pin;
}

void Blinky::blinkLED(int delayTime) {
  digitalWrite(_pin, HIGH);
  delay(delayTime);
  digitalWrite(_pin, LOW);
  delay(delayTime);
}


키워드 파일(keywords.txt)

// 글자 사이를 꼭 탭으로 띄어준다
Blinky     KEYWORD1
blinkLED   KEYWORD2


'아두이노 기초' 카테고리의 다른 글

15. SimpleTimer  (0) 2015.02.26
14. 센서  (0) 2015.02.25
12. 디지털 입출력, 아날로그 입출력  (0) 2015.02.25
11. 시리얼 통신  (0) 2015.02.25
10. 서브모터  (0) 2015.02.24
Posted by trikyu
아두이노 기초2015. 2. 25. 17:41


디지털 입출력

#define LED 11
#defind BUTON 2

void setup() {
  pinMode(LED, OUTPUT); // LED를 켜는것이기때문에 OUTPUT
  pinMode(BUTTON, INPUT); // BUTTON에서 값을 입력 받기때문에 INPUT
}

void loop() {
  if(digitalRead(BUTTON) == HIGH) {
    digitalWrite(LED, HIGH); // 버튼에 불을 켠다
  } else {
    digitalWrite(LED, LOW); // 버튼에 불을 끈다
  }
}


아날로그 입출력

void setup() {
  // 아날로그를 사용할 경우 pinMode 세팅은 할필요없음
}

void loop() {
  int val = analogRead(A0);
  analogWrite(9, map(val, 0, 1023, 0, 255));
}


'아두이노 기초' 카테고리의 다른 글

14. 센서  (0) 2015.02.25
13. 라이브러리 만들기  (0) 2015.02.25
11. 시리얼 통신  (0) 2015.02.25
10. 서브모터  (0) 2015.02.24
9. 7세그먼트  (0) 2015.02.24
Posted by trikyu
아두이노 기초2015. 2. 25. 16:41


예제 1

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println("Hello PC");
  delay(1000);
}


예제 2

#define LED 13

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if(Serial.available()) {
    if(Serial.read() == 'a') {
      digitalWrite(LED, HIGT);
      delay(1000);
      digitalWrite(LED, LOW);
    }
  }
}


'아두이노 기초' 카테고리의 다른 글

13. 라이브러리 만들기  (0) 2015.02.25
12. 디지털 입출력, 아날로그 입출력  (0) 2015.02.25
10. 서브모터  (0) 2015.02.24
9. 7세그먼트  (0) 2015.02.24
8. LCD 패널  (0) 2015.02.24
Posted by trikyu
아두이노 기초2015. 2. 24. 23:17


예제 1

#include <Servo.h>

Servo myservo; // Servo 라이브러리 변수 선언
int pos = 0;

void setup() {
  myservo.attach(9); // 서보 모터를 제어하고자 하는 핀 번호 설정
}

void loop() {
  // 서보 모터가 자동으로 0~120도로 움직인다.
  for(pos=0; pos<120; pos+=1) {
    myservo.write(pos); // 서보 모터의 각도를 설정
    delay(15);
  }
}


예제 2

#include <Servo.h>

Servo myservo; // Servo 라이브러리 변수 선언

void setup() {
  myservo.attach(9); // 서보 모터를 제어하고자 하는 핀 번호 설정
}

void loop() {
  myservo.write(map(analogRead(A0), 0, 1023, 0, 120));
  delay(15);
}


'아두이노 기초' 카테고리의 다른 글

12. 디지털 입출력, 아날로그 입출력  (0) 2015.02.25
11. 시리얼 통신  (0) 2015.02.25
9. 7세그먼트  (0) 2015.02.24
8. LCD 패널  (0) 2015.02.24
7. 초음파센서  (0) 2015.02.24
Posted by trikyu
아두이노 기초2015. 2. 24. 17:45


예제 1

byte digits[10][7] = 
{
  {0,0,0,0,0,0,1}, // 0
  {1,0,0,1,1,1,1}, // 1
  {0,0,1,0,0,1,0}, // 2
  {0,0,0,0,1,1,0}, // 3
  {1,0,0,1,1,0,0}, // 4
  {0,1,0,0,1,0,0}, // 5
  {0,1,0,0,0,0,0}, // 6
  {0,0,0,1,1,1,1}, // 7
  {0,0,0,0,0,0,0}, // 8
  {0,0,0,1,1,0,0}, // 9
}

void setup() {
  for(int i=2; i<10; i++) {
    pinMode(i, OUTPUT); // 핀들은 LED이 때문에 켜는것이다. 그래서 OUTPUT이다.
  }
  digitalWrite(9, HIGH); // DP LED를 끈다.
}

void loop() {
  for(int i=0; i<100; i++) {
    delay(1000);
    displayDigit(i);
  }
}

void displayDigit(int num) {
  int pin = 2;
  for(int i=0; i<7; i++) {
    digitalWrite(pin+i, digits[num][i]);
  }
}


예제 2

#define PLUS 11
#define MINUS 12

int digit = 0;
byte digits[10][7] = 
{
  {0,0,0,0,0,0,1}, // 0
  {1,0,0,1,1,1,1}, // 1
  {0,0,1,0,0,1,0}, // 2
  {0,0,0,0,1,1,0}, // 3
  {1,0,0,1,1,0,0}, // 4
  {0,1,0,0,1,0,0}, // 5
  {0,1,0,0,0,0,0}, // 6
  {0,0,0,1,1,1,1}, // 7
  {0,0,0,0,0,0,0}, // 8
  {0,0,0,1,1,0,0}, // 9
}

void setup() {
  pinMode(PLUS, INPUT);
  pinMode(MINUS, INPUT);
  for(int i=2; i<10; i++) {
    pinMode(i, OUTPUT);
  }
  digitalWrite(9, HIGH); // DP LED를 끈다.
}

void loop() {
  if(digitalRead(PLUS) == HIGH) {
    ++digit;
    if(digit > 9) {
      digit = 0;
    }
  }
  
  if(digitalRead(MINUS) == HIGH) {
    --digit;
    if(digit < 0) {
      digit = 9;
    }
  }
  
  displayDigit(digit);
  delay(100);
}

void displayDigit(int num) {
  int pin = 2;
  for(int i=0; i<7; i++) {
    digitalWrite(pin+i, digits[num][i]);
  }
}


'아두이노 기초' 카테고리의 다른 글

11. 시리얼 통신  (0) 2015.02.25
10. 서브모터  (0) 2015.02.24
8. LCD 패널  (0) 2015.02.24
7. 초음파센서  (0) 2015.02.24
6. 조도센서  (0) 2015.02.24
Posted by trikyu
아두이노 기초2015. 2. 24. 15:57


예제 1

#include <liquidcrystal.h>

// LiquidCrystal 클래스 초기화
LiquidCrystal lcd(12,11,2,3,4,5); // 인자값들은 회로도의 핀번호와 일치

void setup() {
  lcd.begin(16,2); // LCD의 높낮이를 설정하는 명령어
  lcd.print("hello, world!"); // LCD에 텍스트를 출력하는 명령어
}

void loop() {
  lcd.setCursor(0,1); // 커서 위치를 설정
  lcd.print(analogRead(A0)); // 조도센서에서 값을 읽어 LCD에 표시
  delay(200); // 0.2초마다 화면에 표시
}


예제 2

#include <Liquidcrystal.h>
#define TRIG 8
#define ECHO 9

// LiquidCrystal 클래스 초기화
LiquidCrystal lcd(12,11,2,3,4,5); // 인자값들은 회로도의 핀번호와 일치

void setup() {
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
  lcd.begin(16,2); // LCD의 높낮이를 설정하는 명령어
}

void loop() {
  // 트리거에 대한 초기화작업
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  
  long distance = pulseIn(ECHO, HIGH) / 58.2; // cm로 환산하기 위해 58.2로 나누어 준다
  lcd.clear();
  lcd.setCursor(0,0); // 커서 위치를 설정
  lcd.print(distance);
  lcd.print("cm");
  delay(200); // 0.2초마다 화면에 표시
}


'아두이노 기초' 카테고리의 다른 글

11. 시리얼 통신  (0) 2015.02.25
10. 서브모터  (0) 2015.02.24
9. 7세그먼트  (0) 2015.02.24
7. 초음파센서  (0) 2015.02.24
6. 조도센서  (0) 2015.02.24
Posted by trikyu