공부/아두이노(Arduino)

Knight (객체 - OOP)

도도-도윤 2017. 10. 14. 23:11

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


knight_OOP.zip


knight_OOP.zip
0.0MB