본문으로 바로가기

교육 기록 남기기 - 4

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

DC 모터 제어


교제와 상관없이 직접 설계도 보고 연결 하였다.(첫도전)

DC 모터 제어 응용(가변저항사용,사진)

선풍기 만들기

#define STOP 0

#define SPEED1 80

#define SPEED2 100

#define SPEED3 255

int switchMode = 0;

void setup()

{

 pinMode(11,OUTPUT);

 pinMode(10,INPUT_PULLUP);

 pinMode(9,INPUT_PULLUP);

 pinMode(8,INPUT_PULLUP);

 pinMode(7,INPUT_PULLUP);

 

 analogWrite(11,STOP);

}


void switchsRead()

{

 if(digitalRead(10) == 0)

 {

   switchMode = SPEED1;

 }

 else if(digitalRead(9) == 0)

 {

   switchMode = SPEED2;

 }

 else if(digitalRead(8) == 0)

 {

   switchMode = SPEED3;

 }

 else if(digitalRead(7) == 0)

 {

   switchMode = STOP;

 }

}

void loop()

{

 switchsRead();

 analogWrite(11,switchMode);

}

L293D 제어(사진)

#define CW HIGH

#define CCW LOW

void setup()

{

 pinMode(9,OUTPUT);

 pinMode(8,OUTPUT);

 pinMode(7,OUTPUT);

}



void loop()

{

 int motorSpeed = analogRead(0) / 4.0;

 setMotor(motorSpeed,CW);

}

void setMotor(int motorSpeed, boolean motorDir)

{

 analogWrite(9,motorSpeed);

 digitalWrite(8,motorDir);

 digitalWrite(7,!motorDir);

}


초음파 센서

long duration,Cm,In;


void setup()

{

 pinMode(10,OUTPUT);

 pinMode(9,INPUT);

 digitalWrite(10,LOW);

 

 Serial.begin(9600);

}



void loop()

{

 digitalWrite(10,HIGH);

 delayMicroseconds(10);

 digitalWrite(10,LOW);

 duration = pulseIn(9,HIGH);

 

 Cm = duration / 29.1 / 2;

 In = duration / 74 / 2;

 

 Serial.print("Cm = ");

 Serial.print(Cm);

 Serial.print(" In = ");

 Serial.println(In);

 delay(1000);

}

서보 모터


#include<Servo.h>


int potVal;

int angle;

Servo myServo;


void setup()

{

 myServo.attach(8,640,2400);

 Serial.begin(9600);

}



void loop()

{

 potVal = analogRead(A0);

 angle = (potVal/1023.0) * 180.0;

 myServo.write(angle);

   

 Serial.print("angle : ");

 Serial.println(angle);

 delay(10);

}


블루투스 통신 응용



#include<SoftwareSerial.h>

char btn = '0';

// SoftwareSerial (RXD PIN, TXD PIN)

SoftwareSerial BTSerial(2,3);


void setup()

{

 Serial.begin(9600);  //PC

 BTSerial.begin(9600);  //BLUETOOTH

 pinMode(5,OUTPUT);

 pinMode(6,OUTPUT);

 pinMode(7,OUTPUT);

 ledON(btn);

}


void loop()

{

 if (BTSerial.available())

 {

   Serial.write(ledON(BTSerial.read()));

 }

 if(Serial.available())

 {

   BTSerial.write(Serial.read());

 }

}


char ledON(char btndata)

{

 if(btndata == '0')

 {

   digitalWrite(5,LOW);

   digitalWrite(6,LOW);

   digitalWrite(7,LOW);

 }

 else if (btndata == '1')

 {

   digitalWrite(5,HIGH);

   digitalWrite(6,LOW);

   digitalWrite(7,LOW);

 }

 else if (btndata == '2')

 {

   digitalWrite(5,LOW);

   digitalWrite(6,HIGH);

   digitalWrite(7,LOW);

 }

 else if (btndata == '3')

 {

   digitalWrite(5,LOW);

   digitalWrite(6,LOW);

   digitalWrite(7,HIGH);

 }

 else if (btndata == '4')

 {

   digitalWrite(5,HIGH);

   digitalWrite(6,HIGH);

   digitalWrite(7,HIGH);

 }

return btndata;

}


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

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