Knight (객체 - OOP)
아두이노 키트도 객체지향 코딩이 가능합니다.
c++프로그래밍 기반으로 되어 있기 때문입니다.
#include <Arduino.h>
const byte ledPin = 8;
const byte interruptPin = 2;
volatile byte state = LOW;
void blink();
void setup()
{
for ( int i = 22; i < 25; i++ )
pinMode(i, OUTPUT);
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, CHANGE);
}
void loop()
{
JSystem* jsys = new JSystem();
jsys->knight(100);
digitalWrite(ledPin, state);
}
void blink(){
state = !state;
}
main.cpp
/*
* jSystem.h
*/
#ifndef _JSystem
#define _JSystem
class JSystem{
private:
public:
void knight(int time);
};
#endif
jSystem.h
/*
* JSystem.cpp
*
* Created: 2017-10-14 오후 4:42:30
* Author: jungdy
*/
#include <Arduino.h>
#include "jSystem.h"
void JSystem::knight(int time){
for (int i = 22; i < 25; i++)
{
digitalWrite(i, HIGH);
delay(time);
digitalWrite(i+1, HIGH);
delay(time);
digitalWrite(i+2, HIGH);
delay(time);
digitalWrite(i, LOW);
delay(time);
digitalWrite(i+1, LOW);
delay(time);
}
// Reverse(역방향)
for (int i = 24; i > 21; i--)
{
digitalWrite(i, HIGH);
delay(time);
digitalWrite(i-1, HIGH);
delay(time);
digitalWrite(i-2, HIGH);
delay(time);
digitalWrite(i, LOW);
delay(time);
digitalWrite(i-1, LOW);
delay(time);
}
}
jSystem.cpp
'공부 > 아두이노(Arduino)' 카테고리의 다른 글
전, 후진 - 자동차 구현 (0) | 2017.10.19 |
---|---|
digitalWrite, digitalRead없이 레지스터에서 아두이노 핀 제어 (0) | 2017.10.17 |
이더넷 - ENC28J60 모듈(RJ45) (0) | 2017.10.16 |
디스플레이 - LCD 2004A + I2C (0) | 2017.10.16 |
Knight Kits + 모터 구현하기 (0) | 2017.10.10 |