1. DC모터 제어하기.

   DC모터를 제어하기 위해서는 DC모터 , DC모터 모듈 , 9V전지가 필요합니다.

   제어 부분에 대해서는 아래그림을 참고해 주시면 됩니다.



in 핀의 HIGH(또는 아날로그값 ( 0 - 250 ) , LOW 를 조절하여 방향을 원하는대로 조절하는 기능을 가졌습니다.

또한 ENA핀을 HIGH , LOW 로 조절하여 ON/OFF 관리를 할 수 있습니다.


그럼 가변저항을 이용하여 속도를 조절하며 , 버튼을 이용하여 왼쪽 오른쪽 제어하는 소스를 구현해보겠습니다.



// 소스코드 1
// 버튼하나를 이용한 DC모터제어
int P1 = 10; // IN1 Pin
int P2 = 11; // IN2 Pin
int onOff = 9; // on/off (ENA Pin)
int btn = 2;   // Left & Right Select Button Pin
int sensorPin = A0; // SensorPin 
int sensorValue = 0; // Input Sensor Value
int val=0;           // Sensor Value Mapping 
int btn_state = 0;



void setup(){
  pinMode(10,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(onOff,OUTPUT);
  pinMode(btn , INPUT);
}

void loop(){
  btn_state = digitalRead(btn);
  digitalWrite(onOff , HIGH); //onoff
  sensorValue = analogRead(sensorPin); 
    val =  map(sensorValue , 0, 1023, 0, 250);
  if(btn_state == HIGH){
    
    analogWrite(P1 , val);
    digitalWrite(P2 , LOW);
  }else{
    analogWrite(P2 , val);
    digitalWrite(P1 , LOW);
  }

}



소스만 올리고 회로도가없어서 주석을 추가적으로 달았습니다.

아두이노는 한글에 너무 약해서 한글주석도 달기 힘드내요.


위와같이 소스를 구현하시면 아래처럼 작동합니다.


조금 더 응용을 해보아서 버튼 2개를 두어 오른쪽 왼쪽 방향키처럼 제어해보겠습니다.

버튼하나만 더 추가해주시면 됩니다.


// 소스코드 2
// 버튼두개를 이용한 DC모터제어
int P1 = 10;
int P2 = 11;
int onOff = 9;
int btn1 = 2;
int btn2 = 3;

int btn_state1 = 0;
int btn_state2 = 0;



void setup(){
  pinMode(10,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(onOff,OUTPUT);
  pinMode(btn1 , INPUT);
  pinMode(btn2 , INPUT);
}

void loop(){
  btn_state1 = digitalRead(btn1);
  btn_state2 = digitalRead(btn2);
  digitalWrite(onOff , HIGH); //onoff
   if(btn_state1 == HIGH && btn_state2 == LOW ){
    
    digitalWrite(P1 , HIGH);
    digitalWrite(P2 , LOW);
  }else if(btn_state1 == LOW && btn_state2 == HIGH){
    digitalWrite(P2 , HIGH);
    digitalWrite(P1 , LOW);
  }else{
    digitalWrite(P2 , LOW);
    digitalWrite(P1 , LOW);
  }

}


소스코드를 입력하시고 구동해보시면 됩니다.

버튼 다시는 방법은 제글을 찾아보시면 됩니다.






마이크와 스피커는 같은 구조로 이어져있습니다. 

용도에 따라 어떤식으로 좀더 특성에 맞게 구성되어있는것이지 구성자체는 진동을 주느냐 받느냐의 차이에 있습니다.


그래서 스피커를 마이크처럼 이용하여 진동을 받을 시 LED를 on/off 하는 소스를 구현했습니다,.


회로도는 간단합니다. 위처럼 가변저항같이 값을 가져오면 그값을 해석하여 LED를 추가적으로 설치하여 LED를 ON/OFF를 하는 소스입니다.




아래는 소스입니다.

시리얼모니터를 켜시고 받아오는 값을 측정하면서 소스를 조절하시면됩니다.



 
const int ledPin = 13;      // led connected to digital pin 13
const int knockSensor = A0; // the piezo is connected to analog pin 0
const int threshold = 20;  // threshold value to decide when the detected sound is a knock or not


// these variables will change:
int sensorReading = 0;      // variable to store the value read from the sensor pin
int ledState = LOW;         // variable used to store the last LED status, to toggle the light

void setup() {
 pinMode(ledPin, OUTPUT); // declare the ledPin as as OUTPUT
 Serial.begin(9600);       // use the serial port
}

void loop() {
  // read the sensor and store it in the variable sensorReading:
  sensorReading = analogRead(knockSensor);    
  Serial.println(sensorReading);
  // if the sensor reading is greater than the threshold:
  if (sensorReading >= threshold) {
    // toggle the status of the ledPin:
    ledState = !ledState;   
    // update the LED pin itself:        
    digitalWrite(ledPin, ledState);
    // send the string "Knock!" back to the computer, followed by newline
    Serial.println("Knock!");         
  }
  delay(100);  // delay to avoid overloading the serial port buffer
}

에프디크리에이티브 사 에서 제작한 교육용 아두이노를 이용하여

초음파 탐지기를 이용한 후방주차 감지 시스탬을 구현해보았습니다.



즉흥적으로 짠거라 회로도는 따로없고 사진을 참고하시면됩니다.


소스는

int cnt;
int dummcnt;
long Distance;
long Tempture;
unsigned long duration;
int pin = 15;

void setup() {
  pinMode(32, OUTPUT);   
  pinMode(40, OUTPUT);     
  pinMode(41, OUTPUT);     
  pinMode(42, OUTPUT);     
  pinMode(43, OUTPUT);     
  pinMode(44, OUTPUT);     
  pinMode(45, OUTPUT);     
  pinMode(46, OUTPUT);     
  pinMode(47, OUTPUT);  
    Serial.begin(9600);    
    Tempture = 25;    
    pinMode(pin,OUTPUT);
    digitalWrite(pin, LOW);

    cnt = 0;
}

void allOff(){
   digitalWrite(40, LOW); 
   digitalWrite(41, LOW);
   digitalWrite(42, LOW);
   digitalWrite(43, LOW);
   digitalWrite(44, LOW);
   digitalWrite(45, LOW);
   digitalWrite(46, LOW);
   digitalWrite(47, LOW);
  
   //delay(1000);
}
void onLed(int num){
   digitalWrite(32,LOW);
 for(int j = 0 ; j<num ; j++){
   int lednum = j+40;
   digitalWrite(lednum, HIGH);
  
 }

}

void loop() {

    delay(150);
    
    pinMode(pin,OUTPUT);
    
    digitalWrite(15,HIGH);
    delayMicroseconds(10); 
    digitalWrite(15,LOW);
    
    pinMode(pin,INPUT);
    duration = pulseIn(pin, HIGH);
    
    Distance = (331.5 + 0.607 * Tempture) * ( duration * 0.001 / 2 );

    Serial.print("value (mm) = ");
    Serial.println(Distance);    
    //led all off
   
    if(Distance<40){
      digitalWrite(32,HIGH);
      allOff();
    }else if(Distance>=50 && Distance < 100){
      digitalWrite(32,HIGH);
      delay(50);
      digitalWrite(32,LOW);
      delay(50);
      digitalWrite(32,HIGH);
      delay(50);
      digitalWrite(32,LOW);
      delay(50);
      digitalWrite(32,HIGH);
      delay(50);
      digitalWrite(32,LOW);
      delay(50);
      digitalWrite(32,HIGH);
      delay(50);
      digitalWrite(32,LOW);
      
      onLed(1);
    }else if(Distance>=100 && Distance < 150){
      digitalWrite(32,HIGH);
      delay(100);
      digitalWrite(32,LOW);
      delay(100);
      digitalWrite(32,HIGH);
      delay(100);
      digitalWrite(32,LOW);
      onLed(2);
    }else if(Distance>=150 && Distance < 200){
      digitalWrite(32,HIGH);
      delay(150);
      digitalWrite(32,LOW);
      onLed(3);     
    }else if(Distance>=200 && Distance < 250){
      digitalWrite(32,HIGH);
      delay(200);
      digitalWrite(32,LOW);
      onLed(4);     
    }else if(Distance>=250 && Distance < 300){
      onLed(5);   
    }else if(Distance>=300 && Distance < 350){
      onLed(6);
    }else if(Distance>=350 && Distance < 400){
      onLed(7);
    }else{
      onLed(8);
    }
}

위와같이 소스를 설정하시면 아래영상처럼 구동됩니다.

소리를 키워주세요!





아두이노를 쓰다보면 핀수가 부족해서 원하고자하는것을 못하는경우가 생깁니다.


이럴때를 대비해서 아두이노 사이트에서는 쉬프트라는 명령어를 제공합니다. (http://arduino.cc/en/Tutorial/ShiftOut)

74HC595이라는 쉬프트레지스터를 이용해서 포트를 확장하게 됩니다.


아두이노 사이트에 있는



이그림을 구현해 보도록 하겠습니다.


우선 74HC595를 이해해보면


출처 = http://blog.naver.com/eskelt/120157837942

11,12,14를 핀에 가지고 제어를 해줍니다.

중요한건 12번핀을 LOW화 시키고 코드를 집어넣은 뒤 12번 핀을 HIGH로 바꾸어 00000000 - 11111111 사이의 데이터를 집어넣을 수 있습니다.


핀번호에 맞추어 VCC , GND 까지 연결을 해줍니다.


아래소스는 기본 아두이노 사이트에서지원하는 샘플 소스입니다.


//Pin connected to ST_CP of 74HC595
int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;

void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

void loop() {
  //count up routine
  for (int j = 0; j < 256; j++) {
    //ground latchPin and hold low for as long as you are transmitting
    digitalWrite(latchPin, LOW);
    shiftOut(dataPin, clockPin, LSBFIRST, j);   
    //return the latch pin high to signal chip that it 
    //no longer needs to listen for information
    digitalWrite(latchPin, HIGH);
    delay(1000);
  }
} 
 

위 소스를 입력하고 동작시킨 영상입니다.



다음은 이걸활용한 LED매트릭스를 보여드릴께요

가변저항이란?

'저항값을 바꿀 수 있는 저항기' 를 말합니다.



요렇게 생긴거를 의미합니다.

- 스피커 볼륨

- 전등 밝기 

등에 많이 사용됩니다.


사용법은

이런식으로 양끝에 5V 와 접지를 이어주고 

가운대는 아날로그 입력을 꼳아줍니다. 

가변저항을 조절하여 출력되는 값을 A0으로 보내주어 값을 가져오는 방식입니다.


우선 가변저항 없이 기본소스를 입력하여 어떠한 변화가 오는지 알아봅시다.

// 샘플 소스 1
// LED 밝기 조절하기 ( 가변저항 X )
int led = 9
int brightness = 0;    
int fadeAmount = 5;    
void setup()  { 
  pinMode(led, OUTPUT);
} 

void loop()  { 
  analogWrite(led, brightness);    
  brightness = brightness + fadeAmount;
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ; 
  }     
  delay(30);                            
}


이런식으로 소스를 구현하고 led핀을 9번으로 넣어줍니다. 출력을 아날로그를 출력하며 0~255까지 5씩 밝기를 조절해줍니다.


밝았다가 어두워졌다가 하는 모습을 볼 수 있습니다.




그럼 가변저항을 이용한 소스를 보도록 하겠습니다.

우선 회로를 보시면


아까 위의 그림처럼 가변저항을 설정해 줍니다.

그리고 3 5 6 9 10 11 에 각각 LED를 연결해 저항 접지까지 연결해줍니다.

잘모르시는분은 1일차를 참고해주세요 

// 샘플소스 2 
// 가변저항을 이용하여 LED를 제어 1

int sensorPin = A0;    // select the input pin for the potentiometer
int sensorValue = 0;  // variable to store the value coming from the sensor
int brightness = 0;    
int brightness1 = 50;    
int brightness2 = 100;    
int brightness3 = 150;    
int brightness4 = 200;    
int brightness5 = 250;    
// 각각의 밝기 초기값을 설정
int fadeAmount = 5;    
int fadeAmount1 = 5;  
int fadeAmount2 = 5;  
int fadeAmount3 = 5;  
int fadeAmount4 = 5;  
int fadeAmount5 = 5;  
//가변값을 각각설정

void setup()  { 
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  //아날로그 출력핀을 설정
} 

void loop()  { 
  sensorValue = analogRead(sensorPin);    
  analogWrite(3, brightness); 
  analogWrite(5, brightness1); 
  analogWrite(6, brightness2); 
  analogWrite(9, brightness3); 
  analogWrite(10, brightness4); 
  analogWrite(11, brightness5); 

  brightness = brightness + fadeAmount;
  brightness1 = brightness1 + fadeAmount1;
  brightness2 = brightness2 + fadeAmount2;
  brightness3 = brightness3 + fadeAmount3;
  brightness4 = brightness4 + fadeAmount4;
  brightness5 = brightness5 + fadeAmount5;
  
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ; 
  }     
  if (brightness1 == 0 || brightness1 == 255) {
    fadeAmount1 = -fadeAmount1 ; 
  }
  if (brightness2 == 0 || brightness2 == 255) {
    fadeAmount2 = -fadeAmount2 ; 
  }
  if (brightness3 == 0 || brightness3 == 255) {
    fadeAmount3 = -fadeAmount3 ; 
  }
  if (brightness4 == 0 || brightness4 == 255) {
    fadeAmount4 = -fadeAmount4 ; 
  }
  if (brightness5 == 0 || brightness5 == 255) {
    fadeAmount5 = -fadeAmount5 ; 
  }
  delay(sensorValue);        
  //딜레이시간을 수신받는 가변저항을 이용하여 설정 
}

이런식으로 설정해줍니다.


포트를 A0-6 을 설정하지않고 디지털 포트를 설정한 이유는

A0-6은 아날로그 수신이 가능한포트이며

디지털포트중 ~ 물결표시가 적힌 포트는 아날로그 출력이 가능한 포트입니다.


이런식으로 설정을 해주면






마지막소스는 저항에따라 켜는 갯수를 정하는것입니다. 회로는 똑같고 프로그램만 변경합니다.


int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 11;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor

void setup() {
  // declare the ledPin as an OUTPUT:
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
}

void loop() {
  
  sensorValue = analogRead(sensorPin);    
  
 
  if(sensorValue == 0 ){
      digitalWrite(3, LOW);      
      digitalWrite(5, LOW);      
      digitalWrite(6, LOW);      
      digitalWrite(9, LOW);      
      digitalWrite(10, LOW);      
      digitalWrite(11, LOW);      
  }
  else if(sensorValue > 0  &&  sensorValue <= 40){
      digitalWrite(3 , HIGH);      
      digitalWrite(5 , LOW);      
      digitalWrite(6 , LOW);      
      digitalWrite(9 , LOW);      
      digitalWrite(10 , LOW);      
      digitalWrite(11, LOW);      
  }
  else if(sensorValue > 40  &&  sensorValue <= 80){
      digitalWrite(3, HIGH);      
      digitalWrite(5, HIGH);      
      digitalWrite(6, LOW);      
      digitalWrite(9, LOW);      
      digitalWrite(10, LOW);      
      digitalWrite(11, LOW);      
  }
  else if(sensorValue > 80  &&  sensorValue <= 120){
      digitalWrite(3, HIGH);      
      digitalWrite(5, HIGH);      
      digitalWrite(6, HIGH);      
      digitalWrite(9, LOW);      
      digitalWrite(10, LOW);      
      digitalWrite(11, LOW);      
  }
  else if(sensorValue > 120  &&  sensorValue <= 160){
      digitalWrite(3, HIGH);      
      digitalWrite(5, HIGH);      
      digitalWrite(6, HIGH);      
      digitalWrite(9, HIGH);      
      digitalWrite(10, LOW);      
      digitalWrite(11, LOW);      
  }
  else if(sensorValue > 160  &&  sensorValue <= 200){
      digitalWrite(3, HIGH);      
      digitalWrite(5, HIGH);      
      digitalWrite(6, HIGH);      
      digitalWrite(9, HIGH);      
      digitalWrite(10, HIGH);      
      digitalWrite(11, LOW);      
  }
  else{
      digitalWrite(3, HIGH);      
      digitalWrite(5, HIGH);      
      digitalWrite(6, HIGH);      
      digitalWrite(9, HIGH);      
      digitalWrite(10, HIGH);      
      digitalWrite(11, HIGH);      
  }
  
  delay(30);          
  
  //digitalWrite(ledPin, LOW);   
  


이런식으로 받는 값( 0 - 255 ) 를 감지해서 LED를 키는법입니다.

아날로그출력이아니라 디지털출력 그대로 사용하고 받는 값에 따라 갯수만 변경한 것입니다.




오늘은여기까지입니다.


확실히 내머리속에있는대 이걸꺼내는건 어렵내요.

ㅠㅠ


모르시는거 있으시면 꼭 리플달아주세요!!

아두이노는 스피커에 주파수를 입력하여 소리를 낼 수 있습니다.


http://arduino.cc/en/Reference/Tone 에 들어가면 Tone에 대한 설명이있습니다.



위의 그림처럼 연결해주고 소스에서 톤을 넣어주면 소리가 나게 됩니다.


아래는 소스입니다.


소스 코드 1 


  #include "pitches.h"


// notes in the melody:

int melody[] = {

  NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};


// note durations: 4 = quarter note, 8 = eighth note, etc.:

int noteDurations[] = {

  4, 8, 8, 4,4,4,4,4 };


void setup() {

  for (int thisNote = 0; thisNote < 8; thisNote++) {


    int noteDuration = 1000/noteDurations[thisNote];

    tone(8, melody[thisNote],noteDuration);


    int pauseBetweenNotes = noteDuration * 1.30;

    delay(pauseBetweenNotes);

    noTone(8);

  }

}


void loop() {

  // no need to repeat the melody.

}


tone( 'pinNum' , 'toneNote' , 'toneDuration' ); 를 채워주면되는데

Note는 음계 ( 도레미파솔라시도 )

Duration 는 지속시간(ms) 입니다.


아두이노 셈플 소스를 재생해보면 띠리리띠리띠띠! 라는 소리를 들을 수 있습니다.

따로 동영상을 촬영하지않아서 넘어가겠습니다.





이제 피아노! 를 만들어봅시다.


위의 회로를 사용하여 아래그림처럼 꾸몄습니다.


버튼의 용도는 2345 6789 핀을 이용해서

도래미파 솔라시도 이런식으로 넣어주었고 

소리의 경우 출력과 그라운드를 별도의 스피커에 넣어주였습니다.


음표는 같이 동봉된  pitches.h 를 보고 만드시면 됩니다.









방학하고 막 만든 LED 큐브 입니다. 아두이노와 연동은 아직 하지않은 상태고요 3x3x3 배열로 구성했습니다.


혼자납댐하다보니 피사의 사탑이

되었내요.


위에는 작동영상입니다.


카메라가 없어서 휴대폰으로 영상을 촬영하였습니다.




1. 버튼다루기!!


버튼이란 눌렸을때 , 안눌렸을때 를 구분하는 기능을 합니다. 오락실가면 보는 버튼들을 생각하시면되죠.


이번에 할 소스는 '버튼' 을 이용하여 'LED'를 껏다 켰다 하기입니다.


설계도를보시면 5V로 출력하는 부분이 스위치에 연결되어있고 

- 하나는 저항을 통해 접지

- 다른하나는 2번핀으로 들어갑니다.

* 여기서 저항을 사용하는이유 => 저항이없으면 모든전력이 GND로 들어가게됩니다, 하지만 저항이있기에 남는전류가 2번핀으로 들어가게되여 입력되게 됩니다.


위 설계도는 버튼을 눌렀을때 , 안눌렀을때 를 구분하는법입니다. 이제 빵판에 버튼을 이용해 LED를 제어해보도록 하겠습니다.




우선 편하게 진행하기위해 5v는 +에 접지는 -에 꼳아줍니다.

그다음 

버튼을 설치합니다.

버튼은 대각선으로 작동합니다. 버튼이 눌렸을때 대각선끼리 이어준다고 생각하시면됩니다.

이렇게되면 위의 설계도처럼 완성이되었내요.


다음은 LED를 설치합니다. 1일차와 같은원리니 어렵지 않다고 생각합니다.


 소스코드 1


const int buttonPin = 2;

const int ledPin =  11;

int buttonState = 0;

// v

void setup() {

    pinMode(ledPin, OUTPUT);      

    pinMode(buttonPin, INPUT);     

}


void loop(){

    buttonState = digitalRead(buttonPin);


   if (buttonState == HIGH) {     

      digitalWrite(ledPin, HIGH);  

  } 

  else {

     digitalWrite(ledPin, LOW); 

  }

}


위의 소스코드를 적고 작동시키면 아래와 같이 실행될 것입니다.






2. 버튼 2개로 LED 제어하기



빨간 LED는 아직사용할것이 아니니 신경쓰지 마셔도됩니다.

위의 설계도를 참고하여  버튼을 하나더 추가한뒤 소스를 변경해줍니다.


 소스코드 2


const int buttonPin = 2;

const int buttonPin2 = 4;

const int ledPin =  11;

int buttonState = 0;

int buttonState2 = 0;


void setup() {

    pinMode(ledPin, OUTPUT);      

    pinMode(buttonPin, INPUT);     

    pinMode(buttonPin2, INPUT);         

}


void loop(){

    buttonState = digitalRead(buttonPin);

    buttonState2 = digitalRead(buttonPin2);


   if (buttonState == HIGH && buttonState2 == HIGH) {     

      digitalWrite(ledPin, HIGH);  

  } 

  else {

     digitalWrite(ledPin, LOW); 

  }

}


위의 소스코드를 적고 작동시키면 아래와 같이 실행될 것입니다.






- 보너스

위의 방법을 활용하여 버튼2개눌렸을때 3개눌렸을때를 제어해봅시다.



솔직히 동영상이나 설명만보면어렵고

제글을 보러오신분들은 직접 해보시는걸 추천합니다. 사진만 따라하셔도 도움이 되리라 생각드려요.

C를 하신다는 가정하에 글을적기에 소스코드는 따로 설명드리지않습니다.


내일 또 오겠습니다.

'Programming > Arduino' 카테고리의 다른 글

74HC595를 이용한 3핀->8핀 만들기  (1) 2013.01.17
4일차 가변저항으로 LED 제어하기  (2) 2013.01.12
3일차 아두이노 피아노 만들기!!!  (2) 2013.01.11
보너스 - LED CUBE  (0) 2013.01.09
1일차 LED에 불켜보기.  (0) 2013.01.07

아두이노(Arduino)란?

하드웨어와 소프트웨어가 모두 오픈소스이며 물리적인 하드웨어를 지향합니다.

즉 소프트웨어적인것이아니라 눈으로보이는 것들을 지향하죠.


아두이노 개발툴은 Processing 를 기반으로하며 http://Arduino.cc 에서 다운로드가 가능합니다.

개발툴의 개발언어는 C언어를 기반으로하지만 개발툴 자체는 JAVA로 개발되어있어서 운영체제에 상관없이 개발이 가능합니다.


본론으로 들어가 아두이노가 어떻게 생겼는지 보면





이런식으로 생겼습니다. 손바닥보다 조금 작은 크기인데 각각의 위치가 어떤역활을 하는지보면



아래와 같은 식으로 이루어져있으며 통신은 USB통신을 사용합니다.


아두이노 IDE를 설치하고 처음실행하게되면 아래와같은 창이 뜹니다.



보시다싶이 위에가 소스입력창 아래가 컴파일출력창입니다.

아두이노를 usb로 연결한 후 usb에 연결된 번호를 장치관리자에서 확인한 후

< 보드 -> 시리얼포트 -> 아두이노가 연결된 포트 > 를 설정해줍니다


그뒤 < 파일 -> 예제 -> 1.Basic -> Blink > 를 열어줍니다.


예제소스

 /*

  Blink

  Turns on an LED on for one second, then off for one second, repeatedly.

 

  This example code is in the public domain.

 */

 

// Pin 13 has an LED connected on most Arduino boards.

// give it a name:

int led = 13;

// 13은 13번 포트를 의미하며 13번 포트는 아두이노에 내장된 led 와연결이되어있다.


// the setup routine runs once when you press reset:

void setup() {                

  // initialize the digital pin as an output.

  pinMode(led, OUTPUT);     

}


// the loop routine runs over and over again forever:

void loop() {

  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(1000);               // wait for a second

  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW

  delay(1000);               // wait for a second

}


소스를 간단히 보면 setup() , loop()로 나누어져있는대 

셋업은 처음부팅시 설정

loop는 반복하는 구간이다.


13번포트를 출력으로 설정한뒤 loop()에서 전력을 넣었다 끊었다 하고 그사이에 딜레이를 1000ms(1초)를 주어 깜빡이도록 해두었다.


아래는 포트를 11번으로 설정한뒤 LED를 꼳아서 아두이노를 돌려본 동영상이다.



이제 간단히 아두이노에 대해서 알아봣다. 처음에는 책만봤을때는 어려웟는데

확실히 비전공자를 위한 개발툴이다보니 ubee430같은것 보다 접근이 쉬웠다. 특정 운영체제를 깔지않아도되고 통신도 usb만꼳으면 바로된다.

내일 새로업로드하겠습니다.


무료호스팅하면 putty도 안되고 xe는 지워지지않아서 폴더명바꾸고 해도 지우기가 어려운 경우가 많습니다.

XE(제로보드)는 초보자나 처음작업시 자주 삭제하는 경우가 많은데, 삭제가안되어 문제가 생기기 마련이죠.


퍼미션에 권한이 안주어져있어서 인데요

퍼미션을 억지로 바꾸어 지워주고 DB를 지워주면 완전깔끔히 XE를 지울 수 있습니다.

(이런걸 돈 10000원씩이나주고 하긴아까우니 이방법을 유용히 쓰시면 될듯 합니다)


1. php파일을 이용한 방법

우선 아래 소스를 코딩하여 php파일을 만듭니다. 

예를들어 파일명이 xe_delete.php 라고 하겠습니다.


xe_delete.php

 <?php

$dir="xe/";

function delete_dir($path) {

  @chmod($path,0777);

  $directory = dir($path);

  while($entry = $directory->read()) {

    if ($entry != "." && $entry != "..") {

      if (is_dir($path."/".$entry)) { 

        delete_dir($path."/".$entry);

      } else {

        @chmod($path."/".$entry,0777);

        @UnLink ($path."/".$entry);

      }

    }

  }

  $directory->close();

  @rmdir($path);

}

delete_dir($dir);

echo"삭제완료";

?>


이파일을 xe상위폴더에 넣어주시면됩니다. 

/html/xe/ 가 XE 폴더면

/html/에 넣어주시면 되겠내요.


그뒤 xe_delete.php에 접속해줍니다.


삭제완료가 뜨면 FTP에 접속해서 확인하시면 XE가 지워진걸 확인하실 수 있습니다.


2. DB지우기.


phpmyadmin 에 접속하여 XE를 생성한 DB에 접속합니다.




위그림처럼 최하단에 모두체크를 누르신뒤 삭제 를 눌러줍니다.


정말 지울것이냐 물어보면 예 를 눌러줍니다.

참고로 복구할 수 없는 강을 건너는 것이니 참고하시고 예를 눌러줍니다.


그럼 깔끔히 XE가 지워진걸 확인하실 수 있습니다.


이제 깔끔히 재설치 하시면됩니다.


그럼 다들 이쁜홈페이지 만드세요!!

'Programming > PHP' 카테고리의 다른 글

[모바일웹] 모바일웹 해상도 meta 태그로 정하기.  (0) 2012.08.27
[모바일웹] 스마트폰 구분하기.  (0) 2012.08.24
세션이란?  (0) 2012.07.31
쿠키란  (0) 2012.07.10
PHP란?  (1) 2012.07.10

+ Recent posts