Arduino2014. 8. 8. 17:24

//아래 두 코드는 원하는 결과가 나오지 않는다.

// 엣지 풀? 업 , 엣지 풀?다운 을 생각해 코딩한다.


boolean LedState;

int preButton;


void setup()

{

  pinMode(8, OUTPUT);

  pinMode(9, INPUT_PULLUP);

  

  LedState = LOW;

  preButton = digitalRead(9);

}


void loop()

{

  int curButton = digitalRead(9);

  if(curButton == LOW && preButton == HIGH)

  {

    if(LedState == HIGH)  LedState = LOW;

    else LedState = HIGH;

  }

  

  preButton = curButton;

  digitalWrite(8, LedState);  

}



---------------------------------



unsigned long time;

int LedState;


void setup()

{

  pinMode(8, OUTPUT);

  pinMode(9, OUTPUT);//

  time = millis();

  LedState = LOW;

}


void loop()

{

  unsigned long time2 = millis();

  

  if(time2 - time >= 1000)

  {

    if(LedState == HIGH)

      {LedState = LOW; digitalWrite(9, !LedState); }

    else

      LedState = HIGH;

      

    //digitalWrite(9, LedState);  

    time = time2;

  }

  

  digitalWrite(8, LedState);

}

Posted by 코드버무려
Arduino2014. 8. 8. 15:25


A0입력에 아날로그 다이얼이나 IR센서를 넣는다.

11(11~)번 핀에 모터나 LED를 설치하면 아날로그 결과가 나온다.

void loop()

{

  int dial = analogRead(A0);

  analogWrite(11, dial/4);

}


"~"가 붙은 번호는 아날로그 출력이 가능핟.


---------------------------------------


동기방식은 어렵지만 멀티태스크가능하다.

비동기방식은 쉽지만 멀티태스킹이 불가능하다.  delay()를 사용.


delay(1000); 1000밀리세컨드 = 1초



----------------------------



시리얼 통신


void setup()

{

  Serial.begin(9600);

}


void loop()

{

  Serial.print("hello");

  Serial.println("hello"); // 끝엣 엔털를 쳦줌. New Line

}


-------------------------------


// 9번 핀에 연결된 버튼을 누루는 순간 꺼지고 

// 손가락을 떼면(버튼이 원위치로 뛰어로름) 꺼짐.

//

//  <추측> digitalWrite(8, HIGH/LOW);  에서 

//  Ardu-X 100 Starter Kit에 포함된 버튼은 

// 누를 때 LOW( 0 )값을 발생하고    

// 손가락을 뗄 때 HIGH( 1 )값을 발생한다.


void setup()

{

  pinMode(8, OUTPUT);

  pinMode(9, INPUT_PULLUP);

}


void loop()

{

  int button =  digitalRead(9) ;

  digitalWrite(8, button);  

  //digitalWrite(8, digitalRead(9)); 

}



----------------------------


//IR센서 1개 사용
void setup()

{

  Serial.begin(9600);

}


void loop()

{  

  int irValue = analogRead(A0);

  Serial.println(irValue, DEC);

}



----------------------------


// IR센서 3개 사용

void setup()

{

  Serial.begin(9600);

}


void loop()

{

  int irValue = analogRead(A0);

  Serial.print(irValue, DEC);

  Serial.print(", ");

  

  int irValue1 = analogRead(A1);

  Serial.print(irValue1, DEC);

  Serial.print(", ");


  int irValue2 = analogRead(2);

  Serial.println(irValue2, DEC);

}



---------------------------------

// a버튼을 누르느느 순간에 IR로 값을 받아 출력한다.


void setup()

{

  Serial.begin(9600);

}


void loop()

{

  if(Serial.available() > 0)

  {

    if(Serial.read() == 'a')

    {

      int irValue = analogRead(A0);

      Serial.print(irValue, DEC);

      Serial.print(", ");

  

      int irValue1 = analogRead(A1);

      Serial.print(irValue1, DEC);

      Serial.print(", ");

    

      int irValue2 = analogRead(2);

      Serial.println(irValue2, DEC);

    }

  }

}


------------------------

//stdio.h를 사용해서 간략하게 터미널에 출력


void setup()

{

  Serial.begin(9600);

}


void loop()

{

  if(Serial.available() > 0)

  {

    if(Serial.read() == 'a')

    {

      int irValue = analogRead(A0);  

      int irValue1 = analogRead(A1);    

      int irValue2 = analogRead(2);

       printf("IR1:%d,   IR2:%d,    IR3:%d\n", irValue, irValue1, irValue2);

    }

  }

}


Posted by 코드버무려
Arduino2014. 8. 8. 11:43


파일> 예제 > 예제 > basic > blink  선택하고 확인을 눌르고 업로드한다.





함수 (Sub-routine)


모든 프로그램은 엔트리포인트를 가ㅣ고 있다.

[반환형태]  [이름]  ([인자]....)

{

}



void setup()

{

최초에 한 번 해줄일

}


void loop()

{

반복적으로 할 일

}

'Arduino' 카테고리의 다른 글

블럭 차량 운전  (0) 2014.08.10
동기식과 비동기식  (0) 2014.08.08
시리얼 통신 Ardu-X 100 Starter Kit  (0) 2014.08.08
Ardu-X 100 설치, 드라이버 설치, 애드온 설치  (0) 2014.08.08
Posted by 코드버무려
Arduino2014. 8. 8. 10:48

http://rokitarduino.org/


http://www.robolink.co.kr/



http://rokitarduino.org/
http://rokitarduino.org/2014/05/23/arduino-ide-%EC%84%A4%EC%B9%98/



CP210x USB to UART Bridge VCP Drivers

Download for Windows XP/Server 2003/Vista/7/8/8.1 (v6.7)






아듀X100 usb드라이버 설치 완료 후 모습

포트 번호를 마줘준다.
도구 > 시리얼 포트 >  Com3번 ( 본인이 선택 한다. 같은 컴터에 꼽으면 바로 여기로 연결됨).

붉은색 power 는 외부전원(건전지)일 경우,.
중간 초록색 usb는 usb일 경우 켜짐( 보드마다 조금씩 달라서 안켜질 수도 있음).
세번째 파란색 불은 정상 작동한다고 바짝인다.

모든 하드웨어에는 최초에 적어도 프로그램 한 개는 들어잉ㅆ어야한다.
그 예로 pc에서는 롬바이오스이다.
여기서는 부트로더가 있다.  (보통 사용자가 바꿀 수 없다.).
여기서는 부트로더가 기본적으로 잘 작동한다고 led 청색을 반짝여준다.
부트로더는 무슨 역할을 하냐면 장치를 첨 켯을 때 작동시키는 역할을 한다.
여러분이 만든 프로그램을 받아들이는 역할을 한다. 
플레쉬라고 하는 메모리가 있는데 여러분이 만든 프로그램을 여기에 설치된다.
이 설치를 가능하케끔 지원하는 프로그맹이 부트로더이다.


reset 버튼: 내가 작성ㄷ한 프로그램을 지운다. 반짝이는 상태.

start버튼 : 내가 작성한 프로그램이 실행하는 상태. 불이 계속 들어온다(불이 길 게 반짝이면 이미 다른 프로그램이 들어 있고 불을 길게 반짝이라고 설정해놓은 상태다. 지우면  길게 반짝임이 사라진다.)


C언어는 거의 모든 언어의 모태가 되는ㄴ 언어가 되기에 ... 아무래도 그 언어를 잘 알고 계신분이 유리하고요 만약에 모르신다하더라고 이번 기회에 익히신다고 생각하시고요.
나는 언어는 한 개도 모든다 그럴 경우는 좀 오ㅓㄹ어렵구요.





'Arduino' 카테고리의 다른 글

블럭 차량 운전  (0) 2014.08.10
동기식과 비동기식  (0) 2014.08.08
시리얼 통신 Ardu-X 100 Starter Kit  (0) 2014.08.08
업로드는 내가 작성한 코드를 장치한다.  (0) 2014.08.08
Posted by 코드버무려