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 |