目錄
1.前言
2.實驗分析
2.1.創建類
2.2.實例化對象
2.3.實現功能:LED閃爍
3.完整代碼
怎麼樣啊小夥子們,幾天不見,甚(ou)是(ou)想(ou)念(ou);從剛開始就聽到別人說arduino簡單到只適合玩玩的話,但是arduino真的只是侷限於此嗎?今天帶着大家來玩玩新東西:O(面向)O(大家沒有的對象)P(編程)。
今天的實驗環境賊簡單,一塊arduino裸板即可,因爲我們只用到13引腳,而13引腳在板子上集成了一個LED。
首先是創建一個類,學過例如c++,java這些面嚮對象語言的應該都清楚類是什麼,簡單來說類:對象的所有集合,人類是一個類;對象就是類實例化的東西;人類是個很寬的概念,那你這個人就是一個實例化的對象,而你的身高,體重這些都是人類共有的屬性;方法:舉例說,人(對象)走路(方法)就是一個方法,也就是所有對象都會用到的能完成特定功能的函數。
那麼類的好處很顯然,你能有無窮多個對象了,前提是你身體(電腦性能)好。
class LED
{
public:
int pin;
bool state;
LED(int p)
{
pin=p;
pinMode(pin,OUTPUT);
}
void on()
{
if(state == LOW) state=HIGH;
digitalWrite(pin,state);
}
void off()
{
if(state == HIGH) state=LOW;
digitalWrite(pin,state);
}
};
class關鍵字告訴編譯器你想要對象了,於是編譯器就給你個對象的集合(類)讓你隨便挑隨便選,然後你想要xiong大,腿長的(類的屬性),於是你定義兩個屬性;那麼LED類中的LED()就好比你挑對象之前,先告訴編譯器你是男是女,然後你對對象有啥要求,即用來初始化對象的屬性。然後你創建了兩個方法,就比如說你想讓TA來你身邊;可能很扯但不抽象;
LED led(13);
是的沒錯,類創建完之後,對象你就大約有∞多個了,這就好比女(LED,類名),小花(led,對象),13歲(wei fa的兄弟,(13),初始化對象的屬性);
所以這句話就是說,我要創建個led對象,它屬於LED類(具有LED類的所有屬性和方法);然後這個對象引腳號爲13;
void loop()
{
led.on();
delay(1000);
led.off();
delay(1000);
}
可以說很形象生動了吧,下面是完整代碼:
class LED
{
public:
int pin;
bool state;
LED(int p)
{
pin=p;
pinMode(pin,OUTPUT);
}
void on()
{
if(state == LOW) state=HIGH;
digitalWrite(pin,state);
}
void off()
{
if(state == HIGH) state=LOW;
digitalWrite(pin,state);
}
};
void setup()
{
}
LED led(13);
void loop()
{
led.on();
delay(1000);
led.off();
delay(1000);
}
學沒學會不重要,重要的是,如果你對【類】有了更深刻的理解,那這次就血賺不虧,更多精彩歡迎關注【菜小濤的CSDN】。