==========================================================
LED 깜빡깜빡
void setup( ) {
// 13번 디지털 핀을 출력으로 초기화
pinMode( 13, OUTPUT );
}
void loop( ) {
digitalWrite( 13, HIGH ); // LED를 켠다, 13번 핀에서 5V 가 출력
delay(1000) ; //1초간 대기
digitalWirte( 13, LOW ); // LED 끔, 13번 ㅣㄴ에서 0V가 출력
delay( 1000 ) ;
}
==========================================================
버튼으로 LED 켜기
void setup( ) {
pinMode( 13, OUTPUT ); // LED
pintMode( 7 , INPUT ); // BUTTON
Serial.begin ( 9600 ) ;
}
void loop( ) {
int val = digitalRead( 7 ) ;
Serial.println( val ) ;
if ( val == HIGH ){
digitalWrite( 13, HIGH ) ; // LED ON
}
else {
digitalWrite( 13, LOW ) ; // LED OFF
}
}
==========================================================
LED 밝기 밝아졌다 어두워졌다
void loop( ) {
for ( int i = 0 ; i < 100; i++ ) { // 점점 밝아졌다
analogWrite( 5 , i ) ;
delay(20);
}
for( int i = 100 ; i > 0 ; i-- ){ // 점점 어두워짐
analogWrite( 5, i );
delay(20);
}
}
==========================================================
조도 센서를 이용한 밝기 모니터링
int potpin = 0 ; // 조도센서에서 나오는 노란색 점퍼선은 A0 로 연결
int val = 0 ; // 조도센서로부터 나오는 아날로그 값 저장 변수
void setup( ) {
Serial.begin( 9600 ) ;
}
void loop( ) {
val = analogRead( potpin ); // 아날로그 값을 읽어서 val 에 저장
Serial.println(val) ; // 저장된값을 시리얼로 출력
delay( 10 ) ; // 0.01 초 대기
}
==========================================================
조도 센서
※ 빛이 세면 셀수록 저항이 약해지고 빛이 없으면 저항 세짐
빛이 셈 -> 읽어오는 값이 높음 빛이 약함 -> 읽어오는값 낮음
int cds = A1;
ind led = A0;
void setup(){ // 조도센서의 동작상태를 확인하기 위하여 시리얼 통신을 설정
Serial.begin(9600); // 전송속도 9600bps
pinMode( led, OUPUT );
}
// 블록안의 코드를 무한 반복
void loop ( ) {
int cdsValue = analogRead ( cds ) ;
// 조도센서로부터 측정된 밝기 값을 입력 전압의 크기 ( 0~ 5V ) 에 따라 0~1023 범위의 값으로
// 변환되어 반환
Serial.print(" cds = " ) ;
Serial.println ( cdsValue ) ; // 시리얼 모니터에 출력
// 조도센서로 부터 측정된 밝기 값이 500 보다 크다면, 아래의 블록을 실행,
if ( cdsValue > 500 ) {
// LED 가 연결된 핀의 로직레벨을 HIGH로 설정하여 LED ON
digitalWrite( led, HIGH );
// LED 상태 시리얼 모니터에 출력 ,
Serial.println("LED ON (cds > 50 )");
}
else{
digitalWrite( led, LOW );
Serial.println( "LED OFF ( cds < 500 ) " ) ;
}
delay(200); // 대기
}
==========================================================
모터 양방향 제어 ( 5초마다 방향 바꿈 )
int enablePin = 11;
int in1Pin = 10 ;
int in2Pin = 9 ;
boolean dir = false;
int speed = 255 ;
void setup( ) {
pinMode( in1Pin, OUTPUT );
pinMode( in2Pin, OUTPUT ) ;
pinMode( enablePin, OUTPUT );
}
void loop( ) {
dir = ! dir ;
setMotor ( speed, dir ) ;
delay ( 5000 ) ;
}
void setMotor ( int speed, bollean direct ) {
analogWrite( enablePin, speed );
digitalWrite( in1Pin, ! directt );
digitalWrite( in2Pin, direct ) ;
}
==========================================================
초음파
int trigPin = 9 ;
int echoPin = 8 ; // 출력핀과 입력핀 연결 설정, 다른핀을 연결해도됨
// 시리얼 속도설정, trigPin 을 출력, echoPin 을 입력으로 설정
void setup( ){
Serial.begin( 9600 );
pinMode( trigPin, OUTPUT );
pinMode( echoPin, INPUT );
}
// 초음파를 보낸다. 다 보내면 echo 가 HIGH (신호받기) 상태로 대기
void loop ( ) {
float duration, distance;
digitalWrite( trigPin, HIGH );
delay (10 ) ;
digitalWrite( trigPin, LOW );
duration = pulseIn ( echoPin, HIGH ); // echoPin 이 HIGH를 유지한 시간을 저장
// HIGH 였을때 시간( 초음파가 보냈다가 다시들어온 시간) 을 가지고 거리를 계싼
// 소리의 속도 340
// 1000 밀리세컨드 = 1초
distance = ( (float) ( 340 * duration ) / 1000 ) / 2 ;
}