본문으로 바로가기

교육 기록 남기기 - 3

category 아두이노 2014. 11. 20. 11:32

CDS 부품 배치

void setup()

{

 Serial.begin(9600);

}


void loop()

{

 int adcData = analogRead(A0);

 Serial.println(adcData);

}


디지털 온도계

#include<math.h>

#define A 0.001129148

#define B 0.000234125

#define C 0.0000000876741

#define Vin 5.0

#define R2 10000.0

double temp = 0.00;

void setup()

{

 Serial.begin(9600);

 pinMode(12,OUTPUT);

}


double SteinharHart(double R)

{

 double logR = log(R);

 double logR3 = logR * logR * logR;

 return 1.0/ (A+B * logR + C * logR3);

}

void loop()

{

 int adcData = analogRead(A0);

 double Vout = (adcData*Vin) / 1023;

 double Rth = ((Vin * R2) / Vout) - R2;

 double T = SteinharHart(Rth) - 273.15;

 if(T != temp){

   temp = T;

   Serial.println(T);

 }


 if(temp > 25)

 {

   digitalWrite(12,HIGH);

 }

 else

 {

   digitalWrite(12,LOW);

 }

 

}


아날로그 출력(PWM)

int ledPin = 11;

int adcPin = A0;


void setup()

{

 pinMode(ledPin,OUTPUT);

 Serial.begin(9600);

}


void loop()

{

 int adcData = analogRead(adcPin);

 int val = map(adcData, 0 , 1023, 0 ,255);

 Serial.println(val,DEC);

 analogWrite(ledPin,val);

}


컬러조명 만들기

int swCount = 0;

int swBuf = 0;


void setup()

{

 pinMode(11,OUTPUT);

 pinMode(10,OUTPUT);

 pinMode(9,OUTPUT);

 pinMode(2,OUTPUT);

}

unsigned char color[6][3] = {

 // R  G  B

 {255,0,0} //Red

 ,{0,255,0} //Green

 ,{0,0,255} //Blue

 ,{255,255,0} //Yellow

 ,{255,0,255} //

 ,{0,255,255} //

};

void loop()

{

 if (digitalRead(2) == LOW && swBuf == 0) {

   swBuf = 1;

 }

 else if(digitalRead(2) == HIGH && swBuf == 1) {

   swBuf = 0;

   swCount++;

   if(swCount > 5) {

     swCount = 0;

   }

 }

 setRgbColor (color[swCount][0] , color[swCount][1], color[swCount][2]);

}


void setRgbColor (char r, char g, char b){

 analogWrite(11,255-r);

 analogWrite(10,255-g);

 analogWrite(9,255-b);

}


EEPROM (응용) 값을 기억

#include<EEPROM.h>

int swCount = 0;

int swBuf = 0;


void setup()

{

 pinMode(11,OUTPUT);

 pinMode(10,OUTPUT);

 pinMode(9,OUTPUT);

 pinMode(2,INPUT_PULLUP);

 swCount = EEPROM.read(swCount);


}

unsigned char color[6][3] = {

 // R  G  B

 {255,0,0} //Red

 ,{0,255,0} //Green

 ,{0,0,255} //Blue

 ,{255,255,0} //Yellow

 ,{255,0,255} //

 ,{0,255,255} //

};

void loop()

{

 if (digitalRead(2) == LOW && swBuf == 0) {

   swBuf = 1;

 }

 else if(digitalRead(2) == HIGH && swBuf == 1) {

   swBuf = 0;

   swCount++;

   if(swCount > 5) {

     swCount = 0;

   }

   EEPROM.write(0,swCount);

 }

 setRgbColor (color[swCount][0] , color[swCount][1], color[swCount][2]);

}


void setRgbColor (char r, char g, char b){

 analogWrite(11,255-r);

 analogWrite(10,255-g);

 analogWrite(9,255-b);

}


릴레이 모듈 사용

void setup()

{

 pinMode(12,OUTPUT);

 pinMode(2,INPUT_PULLUP);

}


void loop()

{

 if(digitalRead(2) == LOW)

 {

   digitalWrite(12,HIGH);

 }

 else if (digitalRead(2) == HIGH)

 {

   digitalWrite(12,LOW);

 }

}


칩입 감지 시스템

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

프로젝트 - SmartWatch  (0) 2014.11.20
교육 기록 남기기 - 4  (0) 2014.11.20
교육 기록 남기기 - 2  (0) 2014.11.20
교육 기록 남기기 - 1  (0) 2014.11.20