배터리연결

빨간 + 

검정 -






#include <AFMotor.h>

#include <SoftwareSerial.h>

byte INBYTE;

SoftwareSerial BTSerial(3, 2); //Connect HC-06 TX,RX

AF_DCMotor motor1(1);

AF_DCMotor motor2(3);


void setup() {

  Serial.begin(9600);           // set up Serial library at 9600 bps

  Serial.println("Motor test!");

  BTSerial.begin(9600);//블루투스 연결

  // turn on motor

  motor1.setSpeed(200);

  motor2.setSpeed(200);

  motor1.run(RELEASE);

  motor2.run(RELEASE);

}


void loop() {

  uint8_t i;

 if (BTSerial.available()){

    INBYTE = BTSerial.read();  

    Serial.println(INBYTE);

    switch(INBYTE){

      case 'a':

        motor1.setSpeed(200);  

        motor1.run(FORWARD);

        motor2.setSpeed(200);  

        motor2.run(FORWARD);

        break;

      case 'b':

        motor1.setSpeed(200);  

        motor1.run(BACKWARD);

        motor2.setSpeed(200);  

        motor2.run(BACKWARD);

        break;

      case 'c':

        motor1.run(RELEASE);  

        motor2.run(RELEASE);  

      break;

    }

  }


}







Posted by -현's-

댓글을 달아 주세요


●블루투스 모듈(HC-06)

- 블루투스를 이용할 수 있게 해주는 모듈이다. 아두이노 스케치에서 SoftwareSerial를 사용하여 통신한다.









●안드로이드 블루투스로 LED 점멸하는 예제



#include <SoftwareSerial.h>

byte INBYTE;

const int  ledPin = 10;

String str=""; 

SoftwareSerial BTSerial(3, 2); //Connect HC-06 TX,RX

void setup()  

{

  Serial.begin(9600); //PC와 연결

  BTSerial.begin(9600);//블루투스 연결

  pinMode(ledPin, OUTPUT);

}

void loop()

{

  if (BTSerial.available()){

    INBYTE = BTSerial.read();  

    switch(INBYTE){

      case 'a':

        digitalWrite(ledPin, LOW); 

      break;

      case 'b':

        digitalWrite(ledPin, HIGH);

      break;

    }

  }

}  





















Posted by -현's-

댓글을 달아 주세요


●Serial 사용해서 PC와 연결하기


char INBYTE;

const int  ledPin = 2; 

void setup() {

  Serial.begin(9600); 

  pinMode(ledPin, OUTPUT);

}

void loop() {

if(Serial.available()){

    INBYTE = Serial.read();  

    if( INBYTE == '0' ){

    Serial.println("0");

      digitalWrite(ledPin, LOW); 

    }

    if( INBYTE == '1' ){

    Serial.println("1");

      digitalWrite(ledPin, HIGH);

    }

    delay(50);

  }

  

}












Posted by -현's-

댓글을 달아 주세요


●7 segment LED 디지털 튜브

- 7개의 작대기로 문자를 표시하는 LED디저털 튜브이다.





●0~9까지 표시하는 예제


#define ledA 7

#define ledB 8

#define ledC 2

#define ledD 3

#define ledE 4

#define ledF 6

#define ledG 5


void setup() {

  pinMode(ledA, OUTPUT);

  pinMode(ledB, OUTPUT);

  pinMode(ledC, OUTPUT);

  pinMode(ledD, OUTPUT);

  pinMode(ledE, OUTPUT);

  pinMode(ledF, OUTPUT);

  pinMode(ledG, OUTPUT);

}


void loop() {

  // 1

  digitalWrite(ledD, LOW);

  digitalWrite(ledE, LOW);

  digitalWrite(ledF, LOW);

  digitalWrite(ledG, LOW);

  digitalWrite(ledA, LOW);

  digitalWrite(ledB, HIGH);

  digitalWrite(ledC, HIGH);

  delay(1000);

  // 2

  digitalWrite(ledD, HIGH);

  digitalWrite(ledE, HIGH);

  digitalWrite(ledF, LOW);

  digitalWrite(ledG, HIGH);

  digitalWrite(ledA, HIGH);

  digitalWrite(ledB, HIGH);

  digitalWrite(ledC, LOW);

  delay(1000);

  // 3

  digitalWrite(ledD, HIGH);

  digitalWrite(ledE, LOW);

  digitalWrite(ledF, LOW);

  digitalWrite(ledG, HIGH);

  digitalWrite(ledA, HIGH);

  digitalWrite(ledB, HIGH);

  digitalWrite(ledC, HIGH);

  delay(1000);

  // 4

  digitalWrite(ledD, LOW);

  digitalWrite(ledE, LOW);

  digitalWrite(ledF, HIGH);

  digitalWrite(ledG, HIGH);

  digitalWrite(ledA, LOW);

  digitalWrite(ledB, HIGH);

  digitalWrite(ledC, HIGH);

  delay(1000);

  // 5

  digitalWrite(ledD, HIGH);

  digitalWrite(ledE, LOW);

  digitalWrite(ledF, HIGH);

  digitalWrite(ledG, HIGH);

  digitalWrite(ledA, HIGH);

  digitalWrite(ledB, LOW);

  digitalWrite(ledC, HIGH);

  delay(1000);

  // 6

  digitalWrite(ledD, HIGH);

  digitalWrite(ledE, HIGH);

  digitalWrite(ledF, HIGH);

  digitalWrite(ledG, HIGH);

  digitalWrite(ledA, HIGH);

  digitalWrite(ledB, LOW);

  digitalWrite(ledC, HIGH);

  delay(1000);

  // 7

  digitalWrite(ledD, LOW);

  digitalWrite(ledE, LOW);

  digitalWrite(ledF, LOW);

  digitalWrite(ledG, LOW);

  digitalWrite(ledA, HIGH);

  digitalWrite(ledB, HIGH);

  digitalWrite(ledC, HIGH);

  delay(1000);

  // 8

  digitalWrite(ledD, HIGH);

  digitalWrite(ledE, HIGH);

  digitalWrite(ledF, HIGH);

  digitalWrite(ledG, HIGH);

  digitalWrite(ledA, HIGH);

  digitalWrite(ledB, HIGH);

  digitalWrite(ledC, HIGH);

  delay(1000);

  // 9

  digitalWrite(ledD, HIGH);

  digitalWrite(ledE, LOW);

  digitalWrite(ledF, HIGH);

  digitalWrite(ledG, HIGH);

  digitalWrite(ledA, HIGH);

  digitalWrite(ledB, HIGH);

  digitalWrite(ledC, HIGH);

  delay(1000);

  // 0

  digitalWrite(ledD, HIGH);

  digitalWrite(ledE, HIGH);

  digitalWrite(ledF, HIGH);

  digitalWrite(ledG, LOW);

  digitalWrite(ledA, HIGH);

  digitalWrite(ledB, HIGH);

  digitalWrite(ledC, HIGH);

  delay(1000);

  

}

 









Posted by -현's-

댓글을 달아 주세요


●RGB

- 'R','G','B'에 0~255의 값을 주고 '-'를 GND에 연결한다.







●RGB LED 색 변화


int rgbPin1 = 9;

int rgbPin2 = 10;

int rgbPin3 = 11;


void setup() {

 pinMode(rgbPin1, OUTPUT);

 pinMode(rgbPin2, OUTPUT);

 pinMode(rgbPin3, OUTPUT); 

}


void loop() {

  analogWrite(rgbPin1, random(0,255));

  analogWrite(rgbPin2, random(0,255));

  analogWrite(rgbPin3, random(0,255)); 

  delay(500);

} 






Posted by -현's-

댓글을 달아 주세요


●아두이노 적외선 리모콘

- 아래 사이트에서 라이브러리를 다운받아 내 컴퓨터의 아두이노 설치경로인 Arduino\libraries에 복사한다. 적외선 리모콘 기능을 쓰려면 #include <IRremote.h>를 추가해야한다.


https://github.com/shirriff/Arduino-IRremote/ 








●적외선 리모콘 예제


#include <IRremote.h>


int RECV_PIN=2;

IRrecv irrecv(RECV_PIN);

decode_results results;


void setup() {

  Serial.begin(9600);

  irrecv.enableIRIn();

}


void loop() {

  if(irrecv.decode(&results)){

    Serial.println(results.value, HEX);

    irrecv.resume();  

  }

  delay(100);

} 






Posted by -현's-

댓글을 달아 주세요


빛의 세기에 따라 소리,LED밝기 조절 예제


const int ledPin = 6;

const int buzzerPin = 3;

const int lightPin = A0;

int lightValue;

int brightness;


void setup() {

}


void loop() {

  lightValue = analogRead(lightPin);

  brightness = map(lightValue, 0,1023,0,255);

  analogWrite(ledPin,brightness);

  brightness = map(lightValue, 0,1023,100,1000);

  tone(buzzerPin,lightValue);

}








Posted by -현's-

댓글을 달아 주세요


●부저

- 능동부저(사진 오른쪽)

전류가 흐르면 자동으로 소리가 나는 부저이다.


- 수동부저(사진 왼쪽)

아두이노의 tone함수를 통해 소리를 내는 부저이다. 보통  31~65535의 주파수를 낼 수 있다. noTone함수로 소리르 끌수 있다.







●능동부저 소리내기


const int buzzerPin= 2;


void setup() {

  pinMode(buzzerPin,OUTPUT);

}


void loop() {

  digitalWrite(buzzerPin, HIGH);

  delay(1000);

  digitalWrite(buzzerPin, LOW);

  delay(1000);

  digitalWrite(buzzerPin, HIGH);

  delay(5000);

  digitalWrite(buzzerPin, LOW);

  delay(5000);

} 












●수동부저 소리내기


const int buzzerPin= 2;


void setup() {

}


void loop() {

  tone(buzzerPin,131);

  delay(1000);

  noTone(buzzerPin);

  delay(1000);

  

  tone(buzzerPin,147);

  delay(1000);

  noTone(buzzerPin);

  delay(1000);

  

  tone(buzzerPin,165);

  delay(1000);

  noTone(buzzerPin);

  delay(1000);


  tone(buzzerPin,175);

  delay(1000);

  noTone(buzzerPin);

  delay(1000);


  tone(buzzerPin,196);

  delay(1000);

  noTone(buzzerPin);

  delay(1000);


  tone(buzzerPin,220);

  delay(1000);

  noTone(buzzerPin);

  delay(1000);

  

  tone(buzzerPin,247);

  delay(1000);

  noTone(buzzerPin);

  delay(1000);

  

  tone(buzzerPin,262);

  delay(1000);

  noTone(buzzerPin);

  delay(1000);

}

 





Posted by -현's-

댓글을 달아 주세요


●광센서

- 빛에 노출되면 저항이 줄어드는 저항이다. 






●빛 세기에 의해 LED밝기 조절하는 예제


const int ledPin = 3;

const int lightPin = A0;

int lightValue;

int brightness;


void setup() {

  Serial.begin(9600);

}


void loop() {

  lightValue = analogRead(lightPin);

  Serial.println(lightValue);

  //0~1023값을 0에서 255값으로 환산한다.

  brightness = map(lightValue, 0,1023,0,255);

  analogWrite(ledPin,brightness);

}

 










●온도센서

- 온도에 따라 저항값이 달라지는 저항이다. 아래 온도센서는 LM35DZ이다. 양쪽에 5V, GND를 연결하고 가운데 값을 아두이노 입력핀에 연결한다.









●온도변화에 의해 LED밝기 변하는 예제


const int ledPin = 3;

const int thermPin = A0;

int thermValue;

int brightness;


void setup() {

  Serial.begin(9600);

}


void loop() {

  thermValue = analogRead(thermPin);

  Serial.println(thermValue);

  //0~1023값을 0에서 255값으로 환산한다.

  brightness = map(thermValue, 0,1023,0,255);

  analogWrite(ledPin,brightness);

}

 









Posted by -현's-

댓글을 달아 주세요


●가변저항

- 가변저항은 3개의 선으로 회로에 연결된다. 양쪽에 5V, GND를 연결하고 가운데를 출력값으로 이용한다. 저항의 값이 높아지거나 낮아짐에 따라 전류량이 조절된다. 저항이 낮은 상태에서는 전류량이 많아지고 저항이 높아지면 전류량이 줄어든다.









●가변저항을 이용한 led 밝기 조절 예제


const int ledPin = 3;

const int potentiometerPin = A0;

int potentiometerValue;

int brightness;


void setup() {

  

  Serial.begin(9600);

}


void loop() {

  potentiometerValue = analogRead(potentiometerPin);

  Serial.println(potentiometerValue);

  //0~1023값을 0에서 255값으로 환산한다.

  brightness = map(potentiometerValue, 0,1023,0,255);

  analogWrite(ledPin,brightness);

}






Posted by -현's-

댓글을 달아 주세요