【arduino面向对象编程】arduino只适合玩玩?来看看arduino怎么造对象......

目录


1.前言
2.实验分析
  2.1.创建类
  2.2.实例化对象
  2.3.实现功能:LED闪烁
3.完整代码


1.前言

  怎么样啊小伙子们,几天不见,甚(ou)是(ou)想(ou)念(ou);从刚开始就听到别人说arduino简单到只适合玩玩的话,但是arduino真的只是局限于此吗?今天带着大家来玩玩新东西:O(面向)O(大家没有的对象)P(编程)。

2.实验分析

  今天的实验环境贼简单,一块arduino裸板即可,因为我们只用到13引脚,而13引脚在板子上集成了一个LED。


  首先是创建一个类,学过例如c++,java这些面向对象语言的应该都清楚类是什么,简单来说类:对象的所有集合,人类是一个类;对象就是类实例化的东西;人类是个很宽的概念,那你这个人就是一个实例化的对象,而你的身高,体重这些都是人类共有的属性;方法:举例说,人(对象)走路(方法)就是一个方法,也就是所有对象都会用到的能完成特定功能的函数。

  那么类的好处很显然,你能有无穷多个对象了,前提是你身体(电脑性能)好。

(1).创建类
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来你身边;可能很扯但不抽象;

  

(2).类的实例化对象
LED led(13);

  是的没错,类创建完之后,对象你就大约有∞多个了,这就好比女(LED,类名),小花(led,对象),13岁(wei fa的兄弟,(13),初始化对象的属性);

  所以这句话就是说,我要创建个led对象,它属于LED类(具有LED类的所有属性和方法);然后这个对象引脚号为13;

  

(3).实现功能:LED闪烁
void loop()
{
  led.on();
  delay(1000);
  led.off();
  delay(1000);
}

  
  

3.完整代码

  可以说很形象生动了吧,下面是完整代码:


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】。

发布了15 篇原创文章 · 获赞 150 · 访问量 9062

猜你喜欢

转载自blog.csdn.net/weixin_43894786/article/details/105508766