728x90

Arduino IDE 다운로드

https://www.arduino.cc/en/Main/Software




아두이노 웹 시뮬레이터

https://circuits.io/lab


// led 번갈아 깜박


led의 긴 핀은 Cathode(전류가 흘러나오는 쪽), 짧은 쪽이 Anode(전류가 흘러들어가는 쪽)이다.

led의 긴핀 (다리가 구부러진 쪽)을 D13에 짧은 쪽을 저항을 통해 GND에 연결한다.



void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second

  digitalWrite(12, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(12, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}



// fnd 0~9 표시



int a = 2, b = 3, c = 4, d = 5, e = 6, f = 8, g = 7;  // 선을 꽂을 때, 교차되지 않도록 f와 g를 바꿈
int led[7] = { a, b, c, d, e, f, g };

int digit[10][7] = { {1, 1, 1, 1, 1, 1, 0}, // 0
                     {0, 1, 1, 0, 0, 0, 0}, // 1
                     {1, 1, 0, 1, 1, 0, 1}, // 2
                     {1, 1, 1, 1, 0, 0, 1}, // 3
                     {0, 1, 1, 0, 0, 1, 1}, // 4
                     {1, 0, 1, 1, 0, 1, 1},
                     {0, 0, 1, 1, 1, 1, 1},
                     {1, 1, 1, 0, 0, 1, 0},
                     {1, 1, 1, 1, 1, 1, 1},
                     {1, 1, 1, 0, 0, 1, 1} };

void setup() {
  // put your setup code here, to run once:
  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(c, OUTPUT);
  pinMode(d, OUTPUT);
  pinMode(e, OUTPUT);
  pinMode(f, OUTPUT);
  pinMode(g, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  for (int i=0; i<10; i++) {
    for (int j=0; j<7; j++) {
      digitalWrite(led[j], digit[i][j]);
    }
    delay(1000);
  }
}


// 건전지 전압 측정



//  택트 스위치로 LED 끄고 켜기


int sw = 2;
int led = 13;

void setup() {
  pinMode(sw, INPUT);
  pinMode(led, OUTPUT);
}

void loop() {
  if (digitalRead(sw) == HIGH)
  {
    digitalWrite(led, LOW);
  }
  else
  {
    digitalWrite(led, HIGH);    
  }
}



// pwm LED 단계적으로 밝아지게

아두이노에 pwm 표시가 있는 포트에 연결 (pwm 지원 아날로그 출력 포트에 연결)


analogWrite 함수를 사용한 pwm은 490Hz 주파수(1/490 sec 간격)로 HIGHT와 LOW를 오가며 전압을 변화시킨다.


밝기를 변화시킬 LED와 함께 사용할 저항 값은 다음과 같이 계산한다.


LED와 함께 사용할 저항 값 (Ω) = ( 전원 전압(V) - LED 규격 전압(V) )  /  정격 전류 (A)

     85 Ω =                   ( 5 V - 3.3 V )                 /   0. 02            


저항값이 꼭 정확히 맞아야 하는건 아니므로, 밝기 변화 단계는 적어지지만 무난하게 100 Ω 을 사용하면 된다.

byte n = 5;

void setup() {
  // put your setup code here, to run once:  
}

void loop() {
  for (int x = 0; x<n; x++)
  {
    analogWrite(9, x * 255 / n);  // pwm 아날로그 출력
    delay(1000);
  }
}


// 기울기 센서

void setup() { 
  pinMode(2, INPUT_PULLUP);
  pinMode(13, OUTPUT);
} 

void loop()
{ 
  boolean sw = false;

  while (sw == digitalRead(2));
  digitalWrite(13, LOW);
  delay(3000);
  digitalWrite(13, HIGH);
}


// piezo 스피커로 소리 출력

byte n = 5;

void setup() {
  // put your setup code here, to run once:  
}

void loop() {
  analogWrite(9, 255 / 2);
}


// PWM 아날로그 출력을 통한 모터 작동


int INA = 9; 
 
void setup() { }
 
void loop() { 
  for (int i=0; i<256; i+=5)  {
    analogWrite(INA, 255 - i);
    delay(100);
  }      
  delay(1000); 
}



'Study > Embedded' 카테고리의 다른 글

라즈베리 파이3, 기본 설정  (0) 2017.06.10
아두이노 LCD  (0) 2017.06.01
ATMEGA USART-C# App 연동  (0) 2016.12.12
7/21 Atmega128 포트/ win32 api  (0) 2016.07.21
7/8 LCD제어2  (0) 2016.07.08

+ Recent posts